Line data Source code
1 : /* parser auto-generated by pidl */
2 :
3 : #include "includes.h"
4 : #include "bin/default/librpc/gen_ndr/ndr_spoolss.h"
5 :
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 1036 : static enum ndr_err_code ndr_push_spoolss_Time(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_Time *r)
10 : {
11 1036 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12 1036 : if (ndr_flags & NDR_SCALARS) {
13 1036 : NDR_CHECK(ndr_push_align(ndr, 2));
14 1036 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->year));
15 1036 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->month));
16 1036 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day_of_week));
17 1036 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day));
18 1036 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->hour));
19 1036 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->minute));
20 1036 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->second));
21 1036 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->millisecond));
22 1036 : NDR_CHECK(ndr_push_trailer_align(ndr, 2));
23 : }
24 1036 : if (ndr_flags & NDR_BUFFERS) {
25 0 : }
26 1036 : return NDR_ERR_SUCCESS;
27 : }
28 :
29 372 : static enum ndr_err_code ndr_pull_spoolss_Time(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_Time *r)
30 : {
31 372 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
32 372 : if (ndr_flags & NDR_SCALARS) {
33 372 : NDR_CHECK(ndr_pull_align(ndr, 2));
34 372 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->year));
35 372 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->month));
36 372 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day_of_week));
37 372 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day));
38 372 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hour));
39 372 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->minute));
40 372 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->second));
41 372 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->millisecond));
42 372 : NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
43 : }
44 372 : if (ndr_flags & NDR_BUFFERS) {
45 4 : }
46 372 : return NDR_ERR_SUCCESS;
47 : }
48 :
49 0 : static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, libndr_flags flags)
50 : {
51 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time);
52 : }
53 :
54 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_TimeCtr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_TimeCtr *r)
55 : {
56 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
57 0 : if (ndr_flags & NDR_SCALARS) {
58 0 : NDR_CHECK(ndr_push_align(ndr, 5));
59 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_Time(r->time, ndr->flags)));
60 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->time));
61 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
62 : }
63 0 : if (ndr_flags & NDR_BUFFERS) {
64 0 : if (r->time) {
65 0 : NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, r->time));
66 : }
67 : }
68 0 : return NDR_ERR_SUCCESS;
69 : }
70 :
71 8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_TimeCtr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_TimeCtr *r)
72 : {
73 8 : uint32_t _ptr_time;
74 8 : TALLOC_CTX *_mem_save_time_0 = NULL;
75 8 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
76 8 : if (ndr_flags & NDR_SCALARS) {
77 4 : NDR_CHECK(ndr_pull_align(ndr, 5));
78 4 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
79 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_time));
80 4 : if (_ptr_time) {
81 4 : NDR_PULL_ALLOC(ndr, r->time);
82 : } else {
83 0 : r->time = NULL;
84 : }
85 4 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
86 : }
87 8 : if (ndr_flags & NDR_BUFFERS) {
88 4 : if (r->time) {
89 4 : _mem_save_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
90 4 : NDR_PULL_SET_MEM_CTX(ndr, r->time, 0);
91 4 : NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, r->time));
92 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_time_0, 0);
93 : }
94 : }
95 0 : return NDR_ERR_SUCCESS;
96 : }
97 :
98 0 : static void ndr_print_flags_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_TimeCtr *r)
99 : {
100 0 : ndr_print_spoolss_TimeCtr(ndr, name, r);
101 0 : }
102 :
103 4 : _PUBLIC_ void ndr_print_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, const struct spoolss_TimeCtr *r)
104 : {
105 4 : ndr_print_struct(ndr, name, "spoolss_TimeCtr");
106 4 : if (r == NULL) { ndr_print_null(ndr); return; }
107 4 : ndr->depth++;
108 4 : ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_Time(r->time, ndr->flags):r->size);
109 4 : ndr_print_ptr(ndr, "time", r->time);
110 4 : ndr->depth++;
111 4 : if (r->time) {
112 4 : ndr_print_spoolss_Time(ndr, "time", r->time);
113 : }
114 4 : ndr->depth--;
115 4 : ndr->depth--;
116 : }
117 :
118 1182 : static enum ndr_err_code ndr_push_spoolss_ProcessorArchitecture(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_ProcessorArchitecture r)
119 : {
120 1182 : NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
121 1182 : return NDR_ERR_SUCCESS;
122 : }
123 :
124 918 : static enum ndr_err_code ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_ProcessorArchitecture *r)
125 : {
126 12 : uint16_t v;
127 918 : NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
128 918 : *r = v;
129 918 : return NDR_ERR_SUCCESS;
130 : }
131 :
132 12 : _PUBLIC_ void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorArchitecture r)
133 : {
134 12 : const char *val = NULL;
135 :
136 12 : switch (r) {
137 8 : case PROCESSOR_ARCHITECTURE_INTEL: val = "PROCESSOR_ARCHITECTURE_INTEL"; break;
138 0 : case PROCESSOR_ARCHITECTURE_MIPS: val = "PROCESSOR_ARCHITECTURE_MIPS"; break;
139 0 : case PROCESSOR_ARCHITECTURE_ALPHA: val = "PROCESSOR_ARCHITECTURE_ALPHA"; break;
140 0 : case PROCESSOR_ARCHITECTURE_PPC: val = "PROCESSOR_ARCHITECTURE_PPC"; break;
141 0 : case PROCESSOR_ARCHITECTURE_SHX: val = "PROCESSOR_ARCHITECTURE_SHX"; break;
142 0 : case PROCESSOR_ARCHITECTURE_ARM: val = "PROCESSOR_ARCHITECTURE_ARM"; break;
143 0 : case PROCESSOR_ARCHITECTURE_IA64: val = "PROCESSOR_ARCHITECTURE_IA64"; break;
144 0 : case PROCESSOR_ARCHITECTURE_ALPHA64: val = "PROCESSOR_ARCHITECTURE_ALPHA64"; break;
145 0 : case PROCESSOR_ARCHITECTURE_MSIL: val = "PROCESSOR_ARCHITECTURE_MSIL"; break;
146 4 : case PROCESSOR_ARCHITECTURE_AMD64: val = "PROCESSOR_ARCHITECTURE_AMD64"; break;
147 0 : case PROCESSOR_ARCHITECTURE_IA32_ON_WIN64: val = "PROCESSOR_ARCHITECTURE_IA32_ON_WIN64"; break;
148 0 : case PROCESSOR_ARCHITECTURE_NEUTRAL: val = "PROCESSOR_ARCHITECTURE_NEUTRAL"; break;
149 0 : case PROCESSOR_ARCHITECTURE_ARM64: val = "PROCESSOR_ARCHITECTURE_ARM64"; break;
150 0 : case PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64: val = "PROCESSOR_ARCHITECTURE_ARM32_ON_WIN64"; break;
151 0 : case PROCESSOR_ARCHITECTURE_IA32_ON_ARM64: val = "PROCESSOR_ARCHITECTURE_IA32_ON_ARM64"; break;
152 0 : case PROCESSOR_ARCHITECTURE_UNKNOWN: val = "PROCESSOR_ARCHITECTURE_UNKNOWN"; break;
153 : }
154 12 : ndr_print_enum(ndr, name, "ENUM", val, r);
155 12 : }
156 :
157 416 : static enum ndr_err_code ndr_push_spoolss_ProcessorType(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_ProcessorType r)
158 : {
159 416 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
160 416 : return NDR_ERR_SUCCESS;
161 : }
162 :
163 140 : static enum ndr_err_code ndr_pull_spoolss_ProcessorType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_ProcessorType *r)
164 : {
165 0 : uint32_t v;
166 140 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
167 140 : *r = v;
168 140 : return NDR_ERR_SUCCESS;
169 : }
170 :
171 0 : _PUBLIC_ void ndr_print_spoolss_ProcessorType(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorType r)
172 : {
173 0 : const char *val = NULL;
174 :
175 0 : switch (r) {
176 0 : case PROCESSOR_INTEL_386: val = "PROCESSOR_INTEL_386"; break;
177 0 : case PROCESSOR_INTEL_486: val = "PROCESSOR_INTEL_486"; break;
178 0 : case PROCESSOR_INTEL_PENTIUM: val = "PROCESSOR_INTEL_PENTIUM"; break;
179 0 : case PROCESSOR_INTEL_860: val = "PROCESSOR_INTEL_860"; break;
180 0 : case PROCESSOR_INTEL_IA64: val = "PROCESSOR_INTEL_IA64"; break;
181 0 : case PROCESSOR_AMD_X8664: val = "PROCESSOR_AMD_X8664"; break;
182 0 : case PROCESSOR_MIPS_R2000: val = "PROCESSOR_MIPS_R2000"; break;
183 0 : case PROCESSOR_MIPS_R3000: val = "PROCESSOR_MIPS_R3000"; break;
184 0 : case PROCESSOR_ALPHA_21064: val = "PROCESSOR_ALPHA_21064"; break;
185 0 : case PROCESSOR_PPC_601: val = "PROCESSOR_PPC_601"; break;
186 0 : case PROCESSOR_PPC_603: val = "PROCESSOR_PPC_603"; break;
187 0 : case PROCESSOR_PPC_604: val = "PROCESSOR_PPC_604"; break;
188 0 : case PROCESSOR_PPC_620: val = "PROCESSOR_PPC_620"; break;
189 0 : case PROCESSOR_HITACHI_SH3: val = "PROCESSOR_HITACHI_SH3"; break;
190 0 : case PROCESSOR_HITACHI_SH3E: val = "PROCESSOR_HITACHI_SH3E"; break;
191 0 : case PROCESSOR_HITACHI_SH4: val = "PROCESSOR_HITACHI_SH4"; break;
192 0 : case PROCESSOR_MOTOROLA_821: val = "PROCESSOR_MOTOROLA_821"; break;
193 0 : case PROCESSOR_STRONGARM: val = "PROCESSOR_STRONGARM"; break;
194 0 : case PROCESSOR_ARM720: val = "PROCESSOR_ARM720"; break;
195 0 : case PROCESSOR_ARM820: val = "PROCESSOR_ARM820"; break;
196 0 : case PROCESSOR_ARM920: val = "PROCESSOR_ARM920"; break;
197 0 : case PROCESSOR_ARM_7TDMI: val = "PROCESSOR_ARM_7TDMI"; break;
198 0 : case PROCESSOR_OPTIL: val = "PROCESSOR_OPTIL"; break;
199 : }
200 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
201 0 : }
202 :
203 766 : static enum ndr_err_code ndr_push_spoolss_MajorVersion(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_MajorVersion r)
204 : {
205 766 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
206 766 : return NDR_ERR_SUCCESS;
207 : }
208 :
209 778 : static enum ndr_err_code ndr_pull_spoolss_MajorVersion(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_MajorVersion *r)
210 : {
211 12 : uint32_t v;
212 778 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
213 778 : *r = v;
214 778 : return NDR_ERR_SUCCESS;
215 : }
216 :
217 12 : _PUBLIC_ void ndr_print_spoolss_MajorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MajorVersion r)
218 : {
219 12 : const char *val = NULL;
220 :
221 12 : switch (r) {
222 0 : case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME: val = "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
223 0 : case SPOOLSS_MAJOR_VERSION_2000_2003_XP: val = "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
224 0 : case SPOOLSS_MAJOR_VERSION_2008_VISTA: val = "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
225 : }
226 12 : ndr_print_enum(ndr, name, "ENUM", val, r);
227 12 : }
228 :
229 766 : static enum ndr_err_code ndr_push_spoolss_MinorVersion(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_MinorVersion r)
230 : {
231 766 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
232 766 : return NDR_ERR_SUCCESS;
233 : }
234 :
235 778 : static enum ndr_err_code ndr_pull_spoolss_MinorVersion(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_MinorVersion *r)
236 : {
237 12 : uint32_t v;
238 778 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
239 778 : *r = v;
240 778 : return NDR_ERR_SUCCESS;
241 : }
242 :
243 12 : _PUBLIC_ void ndr_print_spoolss_MinorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MinorVersion r)
244 : {
245 12 : const char *val = NULL;
246 :
247 12 : switch (r) {
248 12 : case SPOOLSS_MINOR_VERSION_0: val = "SPOOLSS_MINOR_VERSION_0"; break;
249 0 : case SPOOLSS_MINOR_VERSION_XP: val = "SPOOLSS_MINOR_VERSION_XP"; break;
250 0 : case SPOOLSS_MINOR_VERSION_2003_XP64: val = "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
251 0 : case SPOOLSS_MINOR_VERSION_98: val = "SPOOLSS_MINOR_VERSION_98"; break;
252 0 : case SPOOLSS_MINOR_VERSION_ME: val = "SPOOLSS_MINOR_VERSION_ME"; break;
253 : }
254 12 : ndr_print_enum(ndr, name, "ENUM", val, r);
255 12 : }
256 :
257 2612 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
258 : {
259 2612 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
260 2612 : return NDR_ERR_SUCCESS;
261 : }
262 :
263 980 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
264 : {
265 4 : uint32_t v;
266 980 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
267 980 : *r = v;
268 980 : return NDR_ERR_SUCCESS;
269 : }
270 :
271 4 : _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
272 : {
273 4 : ndr_print_uint32(ndr, name, r);
274 4 : ndr->depth++;
275 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
276 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
277 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
278 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
279 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
280 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
281 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
282 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
283 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
284 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
285 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
286 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
287 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
288 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
289 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
290 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
291 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
292 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
293 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
294 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
295 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
296 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
297 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
298 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
299 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
300 4 : ndr->depth--;
301 4 : }
302 :
303 1036 : static enum ndr_err_code ndr_push_spoolss_JobStatus(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
304 : {
305 1036 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
306 1036 : return NDR_ERR_SUCCESS;
307 : }
308 :
309 368 : static enum ndr_err_code ndr_pull_spoolss_JobStatus(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
310 : {
311 0 : uint32_t v;
312 368 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
313 368 : *r = v;
314 368 : return NDR_ERR_SUCCESS;
315 : }
316 :
317 0 : _PUBLIC_ void ndr_print_spoolss_JobStatus(struct ndr_print *ndr, const char *name, uint32_t r)
318 : {
319 0 : ndr_print_uint32(ndr, name, r);
320 0 : ndr->depth++;
321 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED, r);
322 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR, r);
323 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING, r);
324 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING, r);
325 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING, r);
326 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE, r);
327 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT, r);
328 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED, r);
329 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED, r);
330 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ, r);
331 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION, r);
332 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART, r);
333 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE, r);
334 0 : ndr->depth--;
335 0 : }
336 :
337 416 : static enum ndr_err_code ndr_push_spoolss_Build(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_Build r)
338 : {
339 416 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
340 416 : return NDR_ERR_SUCCESS;
341 : }
342 :
343 140 : static enum ndr_err_code ndr_pull_spoolss_Build(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_Build *r)
344 : {
345 0 : uint32_t v;
346 140 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
347 140 : *r = v;
348 140 : return NDR_ERR_SUCCESS;
349 : }
350 :
351 0 : _PUBLIC_ void ndr_print_spoolss_Build(struct ndr_print *ndr, const char *name, enum spoolss_Build r)
352 : {
353 0 : const char *val = NULL;
354 :
355 0 : switch (r) {
356 0 : case SPOOLSS_DEBUGGING_BUILD: val = "SPOOLSS_DEBUGGING_BUILD"; break;
357 0 : case SPOOLSS_RELEASE_BUILD: val = "SPOOLSS_RELEASE_BUILD"; break;
358 : }
359 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
360 0 : }
361 :
362 832 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrinterInfo0 *r)
363 : {
364 832 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
365 832 : if (ndr_flags & NDR_SCALARS) {
366 416 : NDR_CHECK(ndr_push_align(ndr, 5));
367 : {
368 416 : libndr_flags _flags_save_string = ndr->flags;
369 416 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
370 416 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
371 416 : ndr->flags = _flags_save_string;
372 : }
373 : {
374 416 : libndr_flags _flags_save_string = ndr->flags;
375 416 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
376 416 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
377 416 : ndr->flags = _flags_save_string;
378 : }
379 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
380 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
381 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
382 416 : NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
383 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
384 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
385 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
386 416 : NDR_CHECK(ndr_push_spoolss_Build(ndr, NDR_SCALARS, r->free_build));
387 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
388 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
389 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
390 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
391 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
392 416 : NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
393 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
394 416 : NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
395 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
396 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
397 416 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
398 416 : NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
399 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
400 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
401 416 : NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
402 416 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
403 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
404 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
405 416 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
406 416 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
407 : }
408 832 : if (ndr_flags & NDR_BUFFERS) {
409 : {
410 416 : libndr_flags _flags_save_string = ndr->flags;
411 416 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
412 416 : if (r->printername) {
413 416 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
414 416 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
415 416 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
416 : }
417 416 : ndr->flags = _flags_save_string;
418 : }
419 : {
420 416 : libndr_flags _flags_save_string = ndr->flags;
421 416 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
422 416 : if (r->servername) {
423 212 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
424 212 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
425 212 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
426 : }
427 416 : ndr->flags = _flags_save_string;
428 : }
429 : }
430 832 : return NDR_ERR_SUCCESS;
431 : }
432 :
433 280 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterInfo0 *r)
434 : {
435 0 : uint32_t _ptr_printername;
436 280 : TALLOC_CTX *_mem_save_printername_0 = NULL;
437 0 : uint32_t _ptr_servername;
438 280 : TALLOC_CTX *_mem_save_servername_0 = NULL;
439 280 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
440 280 : if (ndr_flags & NDR_SCALARS) {
441 140 : NDR_CHECK(ndr_pull_align(ndr, 5));
442 : {
443 140 : libndr_flags _flags_save_string = ndr->flags;
444 140 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
445 140 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
446 140 : if (_ptr_printername) {
447 140 : NDR_PULL_ALLOC(ndr, r->printername);
448 140 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
449 : } else {
450 0 : r->printername = NULL;
451 : }
452 140 : ndr->flags = _flags_save_string;
453 : }
454 : {
455 140 : libndr_flags _flags_save_string = ndr->flags;
456 140 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
457 140 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
458 140 : if (_ptr_servername) {
459 72 : NDR_PULL_ALLOC(ndr, r->servername);
460 72 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
461 : } else {
462 68 : r->servername = NULL;
463 : }
464 140 : ndr->flags = _flags_save_string;
465 : }
466 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
467 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
468 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
469 140 : NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
470 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
471 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
472 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
473 140 : NDR_CHECK(ndr_pull_spoolss_Build(ndr, NDR_SCALARS, &r->free_build));
474 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
475 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
476 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
477 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
478 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
479 140 : NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
480 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
481 140 : NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
482 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
483 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
484 140 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
485 140 : NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
486 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
487 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
488 140 : NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
489 140 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
490 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
491 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
492 140 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
493 140 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
494 : }
495 280 : if (ndr_flags & NDR_BUFFERS) {
496 : {
497 140 : libndr_flags _flags_save_string = ndr->flags;
498 140 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
499 140 : if (r->printername) {
500 0 : uint32_t _relative_save_offset;
501 140 : _relative_save_offset = ndr->offset;
502 140 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
503 140 : _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
504 140 : NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
505 140 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
506 140 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
507 140 : if (ndr->offset > ndr->relative_highest_offset) {
508 124 : ndr->relative_highest_offset = ndr->offset;
509 : }
510 140 : ndr->offset = _relative_save_offset;
511 : }
512 140 : ndr->flags = _flags_save_string;
513 : }
514 : {
515 140 : libndr_flags _flags_save_string = ndr->flags;
516 140 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
517 140 : if (r->servername) {
518 0 : uint32_t _relative_save_offset;
519 72 : _relative_save_offset = ndr->offset;
520 72 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
521 72 : _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
522 72 : NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
523 72 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
524 72 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
525 72 : if (ndr->offset > ndr->relative_highest_offset) {
526 0 : ndr->relative_highest_offset = ndr->offset;
527 : }
528 72 : ndr->offset = _relative_save_offset;
529 : }
530 140 : ndr->flags = _flags_save_string;
531 : }
532 : }
533 280 : return NDR_ERR_SUCCESS;
534 : }
535 :
536 0 : static void ndr_print_flags_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterInfo0 *r)
537 : {
538 0 : ndr_print_spoolss_PrinterInfo0(ndr, name, r);
539 0 : }
540 :
541 0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
542 : {
543 0 : ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
544 0 : if (r == NULL) { ndr_print_null(ndr); return; }
545 0 : ndr->depth++;
546 : {
547 0 : libndr_flags _flags_save_string = ndr->flags;
548 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
549 0 : ndr_print_ptr(ndr, "printername", r->printername);
550 0 : ndr->depth++;
551 0 : if (r->printername) {
552 0 : ndr_print_string(ndr, "printername", r->printername);
553 : }
554 0 : ndr->depth--;
555 0 : ndr->flags = _flags_save_string;
556 : }
557 : {
558 0 : libndr_flags _flags_save_string = ndr->flags;
559 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
560 0 : ndr_print_ptr(ndr, "servername", r->servername);
561 0 : ndr->depth++;
562 0 : if (r->servername) {
563 0 : ndr_print_string(ndr, "servername", r->servername);
564 : }
565 0 : ndr->depth--;
566 0 : ndr->flags = _flags_save_string;
567 : }
568 0 : ndr_print_uint32(ndr, "cjobs", r->cjobs);
569 0 : ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
570 0 : ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
571 0 : ndr_print_spoolss_Time(ndr, "time", &r->time);
572 0 : ndr_print_uint32(ndr, "global_counter", r->global_counter);
573 0 : ndr_print_uint32(ndr, "total_pages", r->total_pages);
574 0 : ndr_print_uint32(ndr, "version", r->version);
575 0 : ndr_print_spoolss_Build(ndr, "free_build", r->free_build);
576 0 : ndr_print_uint32(ndr, "spooling", r->spooling);
577 0 : ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
578 0 : ndr_print_uint32(ndr, "session_counter", r->session_counter);
579 0 : ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
580 0 : ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
581 0 : ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
582 0 : ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
583 0 : ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
584 0 : ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
585 0 : ndr_print_uint32(ndr, "change_id", r->change_id);
586 0 : ndr_print_WERROR(ndr, "last_error", r->last_error);
587 0 : ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
588 0 : ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
589 0 : ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
590 0 : ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
591 0 : ndr_print_uint16(ndr, "processor_level", r->processor_level);
592 0 : ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
593 0 : ndr_print_uint32(ndr, "reserved2", r->reserved2);
594 0 : ndr_print_uint32(ndr, "reserved3", r->reserved3);
595 0 : ndr->depth--;
596 : }
597 :
598 0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, libndr_flags flags)
599 : {
600 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0);
601 : }
602 :
603 0 : static enum ndr_err_code ndr_push_spoolss_DM_Signature(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_Signature r)
604 : {
605 0 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
606 0 : return NDR_ERR_SUCCESS;
607 : }
608 :
609 0 : static enum ndr_err_code ndr_pull_spoolss_DM_Signature(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_Signature *r)
610 : {
611 0 : uint32_t v;
612 0 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
613 0 : *r = v;
614 0 : return NDR_ERR_SUCCESS;
615 : }
616 :
617 0 : _PUBLIC_ void ndr_print_spoolss_DM_Signature(struct ndr_print *ndr, const char *name, enum spoolss_DM_Signature r)
618 : {
619 0 : const char *val = NULL;
620 :
621 0 : switch (r) {
622 0 : case SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA: val = "SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA"; break;
623 0 : case SPOOLSS_DM_SIGNATURE_JTEXP: val = "SPOOLSS_DM_SIGNATURE_JTEXP"; break;
624 0 : case SPOOLSS_DM_SIGNATURE_PSEXTRA: val = "SPOOLSS_DM_SIGNATURE_PSEXTRA"; break;
625 : }
626 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
627 0 : }
628 :
629 0 : static enum ndr_err_code ndr_push_spoolss_DM_Layout(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_Layout r)
630 : {
631 0 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
632 0 : return NDR_ERR_SUCCESS;
633 : }
634 :
635 0 : static enum ndr_err_code ndr_pull_spoolss_DM_Layout(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_Layout *r)
636 : {
637 0 : uint32_t v;
638 0 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
639 0 : *r = v;
640 0 : return NDR_ERR_SUCCESS;
641 : }
642 :
643 0 : _PUBLIC_ void ndr_print_spoolss_DM_Layout(struct ndr_print *ndr, const char *name, enum spoolss_DM_Layout r)
644 : {
645 0 : const char *val = NULL;
646 :
647 0 : switch (r) {
648 0 : case SPOOLSS_DM_LAYOUT_NUP_DISABLED: val = "SPOOLSS_DM_LAYOUT_NUP_DISABLED"; break;
649 0 : case SPOOLSS_DM_LAYOUT_NUP_2: val = "SPOOLSS_DM_LAYOUT_NUP_2"; break;
650 0 : case SPOOLSS_DM_LAYOUT_NUP_4: val = "SPOOLSS_DM_LAYOUT_NUP_4"; break;
651 0 : case SPOOLSS_DM_LAYOUT_NUP_6: val = "SPOOLSS_DM_LAYOUT_NUP_6"; break;
652 0 : case SPOOLSS_DM_LAYOUT_NUP_9: val = "SPOOLSS_DM_LAYOUT_NUP_9"; break;
653 0 : case SPOOLSS_DM_LAYOUT_NUP_16: val = "SPOOLSS_DM_LAYOUT_NUP_16"; break;
654 0 : case SPOOLSS_DM_LAYOUT_BOOKLET: val = "SPOOLSS_DM_LAYOUT_BOOKLET"; break;
655 : }
656 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
657 0 : }
658 :
659 0 : static enum ndr_err_code ndr_push_spoolss_DM_NupDirection(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_NupDirection r)
660 : {
661 0 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
662 0 : return NDR_ERR_SUCCESS;
663 : }
664 :
665 0 : static enum ndr_err_code ndr_pull_spoolss_DM_NupDirection(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_NupDirection *r)
666 : {
667 0 : uint32_t v;
668 0 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
669 0 : *r = v;
670 0 : return NDR_ERR_SUCCESS;
671 : }
672 :
673 0 : _PUBLIC_ void ndr_print_spoolss_DM_NupDirection(struct ndr_print *ndr, const char *name, enum spoolss_DM_NupDirection r)
674 : {
675 0 : const char *val = NULL;
676 :
677 0 : switch (r) {
678 0 : case SPOOLSS_DM_NUP_DIRECTION_L2R_T2B: val = "SPOOLSS_DM_NUP_DIRECTION_L2R_T2B"; break;
679 0 : case SPOOLSS_DM_NUP_DIRECTION_T2B_L2R: val = "SPOOLSS_DM_NUP_DIRECTION_T2B_L2R"; break;
680 0 : case SPOOLSS_DM_NUP_DIRECTION_R2L_T2B: val = "SPOOLSS_DM_NUP_DIRECTION_R2L_T2B"; break;
681 0 : case SPOOLSS_DM_NUP_DIRECTION_T2B_R2L: val = "SPOOLSS_DM_NUP_DIRECTION_T2B_R2L"; break;
682 : }
683 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
684 0 : }
685 :
686 0 : static enum ndr_err_code ndr_push_spoolss_DM_NupBorderFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_NupBorderFlags r)
687 : {
688 0 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
689 0 : return NDR_ERR_SUCCESS;
690 : }
691 :
692 0 : static enum ndr_err_code ndr_pull_spoolss_DM_NupBorderFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_NupBorderFlags *r)
693 : {
694 0 : uint32_t v;
695 0 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
696 0 : *r = v;
697 0 : return NDR_ERR_SUCCESS;
698 : }
699 :
700 0 : _PUBLIC_ void ndr_print_spoolss_DM_NupBorderFlags(struct ndr_print *ndr, const char *name, enum spoolss_DM_NupBorderFlags r)
701 : {
702 0 : const char *val = NULL;
703 :
704 0 : switch (r) {
705 0 : case SPOOLSS_DM_NUP_BORDER_PRINT: val = "SPOOLSS_DM_NUP_BORDER_PRINT"; break;
706 0 : case SPOOLSS_DM_NUP_BORDER_NONE: val = "SPOOLSS_DM_NUP_BORDER_NONE"; break;
707 : }
708 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
709 0 : }
710 :
711 0 : static enum ndr_err_code ndr_push_spoolss_DM_BookletFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_BookletFlags r)
712 : {
713 0 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
714 0 : return NDR_ERR_SUCCESS;
715 : }
716 :
717 0 : static enum ndr_err_code ndr_pull_spoolss_DM_BookletFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DM_BookletFlags *r)
718 : {
719 0 : uint32_t v;
720 0 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
721 0 : *r = v;
722 0 : return NDR_ERR_SUCCESS;
723 : }
724 :
725 0 : _PUBLIC_ void ndr_print_spoolss_DM_BookletFlags(struct ndr_print *ndr, const char *name, enum spoolss_DM_BookletFlags r)
726 : {
727 0 : const char *val = NULL;
728 :
729 0 : switch (r) {
730 0 : case SPOOLSS_DM_BOOKLET_LEFT_FLIP: val = "SPOOLSS_DM_BOOKLET_LEFT_FLIP"; break;
731 0 : case SPOOLSS_DM_BOOKLET_RIGHT_FLIP: val = "SPOOLSS_DM_BOOKLET_RIGHT_FLIP"; break;
732 : }
733 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
734 0 : }
735 :
736 0 : static enum ndr_err_code ndr_push_spoolss_DMUNI_Quality(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DMUNI_Quality r)
737 : {
738 0 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
739 0 : return NDR_ERR_SUCCESS;
740 : }
741 :
742 0 : static enum ndr_err_code ndr_pull_spoolss_DMUNI_Quality(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DMUNI_Quality *r)
743 : {
744 0 : uint32_t v;
745 0 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
746 0 : *r = v;
747 0 : return NDR_ERR_SUCCESS;
748 : }
749 :
750 0 : _PUBLIC_ void ndr_print_spoolss_DMUNI_Quality(struct ndr_print *ndr, const char *name, enum spoolss_DMUNI_Quality r)
751 : {
752 0 : const char *val = NULL;
753 :
754 0 : switch (r) {
755 0 : case SPOOLSS_DM_UNI_QUALITY_BEST: val = "SPOOLSS_DM_UNI_QUALITY_BEST"; break;
756 0 : case SPOOLSS_DM_UNI_QUALITY_MEDIUM: val = "SPOOLSS_DM_UNI_QUALITY_MEDIUM"; break;
757 0 : case SPOOLSS_DM_UNI_QUALITY_DRAFT: val = "SPOOLSS_DM_UNI_QUALITY_DRAFT"; break;
758 : }
759 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
760 0 : }
761 :
762 0 : static enum ndr_err_code ndr_push_spoolss_DMUNI_Flags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
763 : {
764 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
765 0 : return NDR_ERR_SUCCESS;
766 : }
767 :
768 0 : static enum ndr_err_code ndr_pull_spoolss_DMUNI_Flags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
769 : {
770 0 : uint32_t v;
771 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
772 0 : *r = v;
773 0 : return NDR_ERR_SUCCESS;
774 : }
775 :
776 0 : _PUBLIC_ void ndr_print_spoolss_DMUNI_Flags(struct ndr_print *ndr, const char *name, uint32_t r)
777 : {
778 0 : ndr_print_uint32(ndr, name, r);
779 0 : ndr->depth++;
780 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS", SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS, r);
781 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL", SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL, r);
782 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING", SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING, r);
783 0 : ndr->depth--;
784 0 : }
785 :
786 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_UNIDRVEXTRA(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_UNIDRVEXTRA *r)
787 : {
788 0 : uint32_t cntr_wReserved_0;
789 0 : uint32_t cntr_aOptions_0;
790 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
791 0 : if (ndr_flags & NDR_SCALARS) {
792 0 : NDR_CHECK(ndr_push_align(ndr, 4));
793 0 : NDR_CHECK(ndr_push_spoolss_DM_Signature(ndr, NDR_SCALARS, SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA));
794 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 0x0022));
795 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wCoreJTExpSize));
796 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_spoolss_UNIDRVEXTRA(r, ndr->flags) + r->wCoreJTExpSize));
797 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wOEMExtra));
798 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwChecksum32));
799 0 : NDR_CHECK(ndr_push_spoolss_DMUNI_Flags(ndr, NDR_SCALARS, r->dwFlags));
800 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bReversePrint));
801 0 : NDR_CHECK(ndr_push_spoolss_DM_Layout(ndr, NDR_SCALARS, r->iLayout));
802 0 : NDR_CHECK(ndr_push_spoolss_DMUNI_Quality(ndr, NDR_SCALARS, r->iQuality));
803 0 : for (cntr_wReserved_0 = 0; cntr_wReserved_0 < (6); cntr_wReserved_0++) {
804 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wReserved[cntr_wReserved_0]));
805 : }
806 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwOptions));
807 0 : for (cntr_aOptions_0 = 0; cntr_aOptions_0 < (128); cntr_aOptions_0++) {
808 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->aOptions[cntr_aOptions_0]));
809 : }
810 0 : NDR_CHECK(ndr_push_spoolss_DM_NupDirection(ndr, NDR_SCALARS, r->dwNupDirection));
811 0 : NDR_CHECK(ndr_push_spoolss_DM_NupBorderFlags(ndr, NDR_SCALARS, r->dwNupBorderFlags));
812 0 : NDR_CHECK(ndr_push_spoolss_DM_BookletFlags(ndr, NDR_SCALARS, r->dwBookletFlags));
813 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
814 : }
815 0 : if (ndr_flags & NDR_BUFFERS) {
816 0 : }
817 0 : return NDR_ERR_SUCCESS;
818 : }
819 :
820 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_UNIDRVEXTRA(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_UNIDRVEXTRA *r)
821 : {
822 0 : uint32_t size_wReserved_0 = 0;
823 0 : uint32_t cntr_wReserved_0;
824 0 : uint32_t size_aOptions_0 = 0;
825 0 : uint32_t cntr_aOptions_0;
826 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
827 0 : if (ndr_flags & NDR_SCALARS) {
828 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
829 0 : NDR_CHECK(ndr_pull_spoolss_DM_Signature(ndr, NDR_SCALARS, &r->dwSignature));
830 0 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wVer));
831 0 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wCoreJTExpSize));
832 0 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wCoreFullSize));
833 0 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wOEMExtra));
834 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwChecksum32));
835 0 : NDR_CHECK(ndr_pull_spoolss_DMUNI_Flags(ndr, NDR_SCALARS, &r->dwFlags));
836 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bReversePrint));
837 0 : NDR_CHECK(ndr_pull_spoolss_DM_Layout(ndr, NDR_SCALARS, &r->iLayout));
838 0 : NDR_CHECK(ndr_pull_spoolss_DMUNI_Quality(ndr, NDR_SCALARS, &r->iQuality));
839 0 : size_wReserved_0 = 6;
840 0 : for (cntr_wReserved_0 = 0; cntr_wReserved_0 < (size_wReserved_0); cntr_wReserved_0++) {
841 0 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wReserved[cntr_wReserved_0]));
842 : }
843 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwOptions));
844 0 : size_aOptions_0 = 128;
845 0 : for (cntr_aOptions_0 = 0; cntr_aOptions_0 < (size_aOptions_0); cntr_aOptions_0++) {
846 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->aOptions[cntr_aOptions_0]));
847 : }
848 0 : NDR_CHECK(ndr_pull_spoolss_DM_NupDirection(ndr, NDR_SCALARS, &r->dwNupDirection));
849 0 : NDR_CHECK(ndr_pull_spoolss_DM_NupBorderFlags(ndr, NDR_SCALARS, &r->dwNupBorderFlags));
850 0 : NDR_CHECK(ndr_pull_spoolss_DM_BookletFlags(ndr, NDR_SCALARS, &r->dwBookletFlags));
851 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
852 : }
853 0 : if (ndr_flags & NDR_BUFFERS) {
854 0 : }
855 0 : return NDR_ERR_SUCCESS;
856 : }
857 :
858 0 : static void ndr_print_flags_spoolss_UNIDRVEXTRA(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_UNIDRVEXTRA *r)
859 : {
860 0 : ndr_print_spoolss_UNIDRVEXTRA(ndr, name, r);
861 0 : }
862 :
863 0 : _PUBLIC_ void ndr_print_spoolss_UNIDRVEXTRA(struct ndr_print *ndr, const char *name, const struct spoolss_UNIDRVEXTRA *r)
864 : {
865 0 : uint32_t cntr_wReserved_0;
866 0 : uint32_t cntr_aOptions_0;
867 0 : ndr_print_struct(ndr, name, "spoolss_UNIDRVEXTRA");
868 0 : if (r == NULL) { ndr_print_null(ndr); return; }
869 0 : ndr->depth++;
870 0 : ndr_print_spoolss_DM_Signature(ndr, "dwSignature", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA:r->dwSignature);
871 0 : ndr_print_uint16(ndr, "wVer", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x0022:r->wVer);
872 0 : ndr_print_uint16(ndr, "wCoreJTExpSize", r->wCoreJTExpSize);
873 0 : ndr_print_uint16(ndr, "wCoreFullSize", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_UNIDRVEXTRA(r, ndr->flags) + r->wCoreJTExpSize:r->wCoreFullSize);
874 0 : ndr_print_uint16(ndr, "wOEMExtra", r->wOEMExtra);
875 0 : ndr_print_uint32(ndr, "dwChecksum32", r->dwChecksum32);
876 0 : ndr_print_spoolss_DMUNI_Flags(ndr, "dwFlags", r->dwFlags);
877 0 : ndr_print_uint32(ndr, "bReversePrint", r->bReversePrint);
878 0 : ndr_print_spoolss_DM_Layout(ndr, "iLayout", r->iLayout);
879 0 : ndr_print_spoolss_DMUNI_Quality(ndr, "iQuality", r->iQuality);
880 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "wReserved", (uint32_t)(6));
881 0 : ndr->depth++;
882 0 : for (cntr_wReserved_0 = 0; cntr_wReserved_0 < (6); cntr_wReserved_0++) {
883 0 : ndr_print_uint16(ndr, "wReserved", r->wReserved[cntr_wReserved_0]);
884 : }
885 0 : ndr->depth--;
886 0 : ndr_print_uint32(ndr, "dwOptions", r->dwOptions);
887 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "aOptions", (uint32_t)(128));
888 0 : ndr->depth++;
889 0 : for (cntr_aOptions_0 = 0; cntr_aOptions_0 < (128); cntr_aOptions_0++) {
890 0 : ndr_print_uint32(ndr, "aOptions", r->aOptions[cntr_aOptions_0]);
891 : }
892 0 : ndr->depth--;
893 0 : ndr_print_spoolss_DM_NupDirection(ndr, "dwNupDirection", r->dwNupDirection);
894 0 : ndr_print_spoolss_DM_NupBorderFlags(ndr, "dwNupBorderFlags", r->dwNupBorderFlags);
895 0 : ndr_print_spoolss_DM_BookletFlags(ndr, "dwBookletFlags", r->dwBookletFlags);
896 0 : ndr->depth--;
897 : }
898 :
899 0 : _PUBLIC_ size_t ndr_size_spoolss_UNIDRVEXTRA(const struct spoolss_UNIDRVEXTRA *r, libndr_flags flags)
900 : {
901 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_UNIDRVEXTRA);
902 : }
903 :
904 16176 : static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
905 : {
906 16176 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
907 16176 : return NDR_ERR_SUCCESS;
908 : }
909 :
910 4680 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
911 : {
912 4 : uint32_t v;
913 4680 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
914 4680 : *r = v;
915 4680 : return NDR_ERR_SUCCESS;
916 : }
917 :
918 4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
919 : {
920 4 : ndr_print_uint32(ndr, name, r);
921 4 : ndr->depth++;
922 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
923 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
924 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
925 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
926 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
927 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
928 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
929 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
930 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
931 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
932 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
933 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
934 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
935 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
936 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
937 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
938 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
939 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
940 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
941 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
942 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
943 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
944 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
945 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
946 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
947 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
948 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
949 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
950 4 : ndr->depth--;
951 4 : }
952 :
953 16176 : static enum ndr_err_code ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeSpecVersion r)
954 : {
955 16176 : NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
956 16176 : return NDR_ERR_SUCCESS;
957 : }
958 :
959 4680 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeSpecVersion *r)
960 : {
961 4 : uint16_t v;
962 4680 : NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
963 4680 : *r = v;
964 4680 : return NDR_ERR_SUCCESS;
965 : }
966 :
967 4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeSpecVersion r)
968 : {
969 4 : const char *val = NULL;
970 :
971 4 : switch (r) {
972 0 : case DMSPEC_NT3: val = "DMSPEC_NT3"; break;
973 0 : case DMSPEC_WIN95_98_ME: val = "DMSPEC_WIN95_98_ME"; break;
974 4 : case DMSPEC_NT4_AND_ABOVE: val = "DMSPEC_NT4_AND_ABOVE"; break;
975 : }
976 4 : ndr_print_enum(ndr, name, "ENUM", val, r);
977 4 : }
978 :
979 16176 : static enum ndr_err_code ndr_push_spoolss_DeviceModeOrientation(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeOrientation r)
980 : {
981 16176 : NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
982 16176 : return NDR_ERR_SUCCESS;
983 : }
984 :
985 4680 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeOrientation *r)
986 : {
987 4 : uint16_t v;
988 4680 : NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
989 4680 : *r = v;
990 4680 : return NDR_ERR_SUCCESS;
991 : }
992 :
993 4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeOrientation r)
994 : {
995 4 : const char *val = NULL;
996 :
997 4 : switch (r) {
998 4 : case DMORIENT_PORTRAIT: val = "DMORIENT_PORTRAIT"; break;
999 0 : case DMORIENT_LANDSCAPE: val = "DMORIENT_LANDSCAPE"; break;
1000 : }
1001 4 : ndr_print_enum(ndr, name, "ENUM", val, r);
1002 4 : }
1003 :
1004 16176 : static enum ndr_err_code ndr_push_spoolss_DeviceModePaperSize(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModePaperSize r)
1005 : {
1006 16176 : NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1007 16176 : return NDR_ERR_SUCCESS;
1008 : }
1009 :
1010 4680 : static enum ndr_err_code ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModePaperSize *r)
1011 : {
1012 4 : uint16_t v;
1013 4680 : NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1014 4680 : *r = v;
1015 4680 : return NDR_ERR_SUCCESS;
1016 : }
1017 :
1018 4 : _PUBLIC_ void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePaperSize r)
1019 : {
1020 4 : const char *val = NULL;
1021 :
1022 4 : switch (r) {
1023 4 : case DMPAPER_LETTER: val = "DMPAPER_LETTER"; break;
1024 0 : case DMPAPER_LETTERSMALL: val = "DMPAPER_LETTERSMALL"; break;
1025 0 : case DMPAPER_TABLOID: val = "DMPAPER_TABLOID"; break;
1026 0 : case DMPAPER_LEDGER: val = "DMPAPER_LEDGER"; break;
1027 0 : case DMPAPER_LEGAL: val = "DMPAPER_LEGAL"; break;
1028 0 : case DMPAPER_STATEMENT: val = "DMPAPER_STATEMENT"; break;
1029 0 : case DMPAPER_EXECUTIVE: val = "DMPAPER_EXECUTIVE"; break;
1030 0 : case DMPAPER_A3: val = "DMPAPER_A3"; break;
1031 0 : case DMPAPER_A4: val = "DMPAPER_A4"; break;
1032 0 : case DMPAPER_A4SMALL: val = "DMPAPER_A4SMALL"; break;
1033 0 : case DMPAPER_A5: val = "DMPAPER_A5"; break;
1034 0 : case DMPAPER_B4: val = "DMPAPER_B4"; break;
1035 0 : case DMPAPER_B5: val = "DMPAPER_B5"; break;
1036 0 : case DMPAPER_FOLIO: val = "DMPAPER_FOLIO"; break;
1037 0 : case DMPAPER_QUARTO: val = "DMPAPER_QUARTO"; break;
1038 0 : case DMPAPER_10X14: val = "DMPAPER_10X14"; break;
1039 0 : case DMPAPER_11X17: val = "DMPAPER_11X17"; break;
1040 0 : case DMPAPER_NOTE: val = "DMPAPER_NOTE"; break;
1041 0 : case DMPAPER_ENV_9: val = "DMPAPER_ENV_9"; break;
1042 0 : case DMPAPER_ENV_10: val = "DMPAPER_ENV_10"; break;
1043 0 : case DMPAPER_ENV_11: val = "DMPAPER_ENV_11"; break;
1044 0 : case DMPAPER_ENV_12: val = "DMPAPER_ENV_12"; break;
1045 0 : case DMPAPER_ENV_14: val = "DMPAPER_ENV_14"; break;
1046 0 : case DMPAPER_CSHEET: val = "DMPAPER_CSHEET"; break;
1047 0 : case DMPAPER_DSHEET: val = "DMPAPER_DSHEET"; break;
1048 0 : case DMPAPER_ESHEET: val = "DMPAPER_ESHEET"; break;
1049 0 : case DMPAPER_ENV_DL: val = "DMPAPER_ENV_DL"; break;
1050 0 : case DMPAPER_ENV_C5: val = "DMPAPER_ENV_C5"; break;
1051 0 : case DMPAPER_ENV_C3: val = "DMPAPER_ENV_C3"; break;
1052 0 : case DMPAPER_ENV_C4: val = "DMPAPER_ENV_C4"; break;
1053 0 : case DMPAPER_ENV_C6: val = "DMPAPER_ENV_C6"; break;
1054 0 : case DMPAPER_ENV_C65: val = "DMPAPER_ENV_C65"; break;
1055 0 : case DMPAPER_ENV_B4: val = "DMPAPER_ENV_B4"; break;
1056 0 : case DMPAPER_ENV_B5: val = "DMPAPER_ENV_B5"; break;
1057 0 : case DMPAPER_ENV_B6: val = "DMPAPER_ENV_B6"; break;
1058 0 : case DMPAPER_ENV_ITALY: val = "DMPAPER_ENV_ITALY"; break;
1059 0 : case DMPAPER_ENV_MONARCH: val = "DMPAPER_ENV_MONARCH"; break;
1060 0 : case DMPAPER_ENV_PERSONAL: val = "DMPAPER_ENV_PERSONAL"; break;
1061 0 : case DMPAPER_FANFOLD_US: val = "DMPAPER_FANFOLD_US"; break;
1062 0 : case DMPAPER_FANFOLD_STD_GERMAN: val = "DMPAPER_FANFOLD_STD_GERMAN"; break;
1063 0 : case DMPAPER_FANFOLD_LGL_GERMAN: val = "DMPAPER_FANFOLD_LGL_GERMAN"; break;
1064 0 : case DMPAPER_DBL_JAPANESE_POSTCARD: val = "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
1065 0 : case DMPAPER_A6: val = "DMPAPER_A6"; break;
1066 0 : case DMPAPER_JENV_KAKU2: val = "DMPAPER_JENV_KAKU2"; break;
1067 0 : case DMPAPER_JENV_KAKU3: val = "DMPAPER_JENV_KAKU3"; break;
1068 0 : case DMPAPER_JENV_CHOU3: val = "DMPAPER_JENV_CHOU3"; break;
1069 0 : case DMPAPER_JENV_CHOU4: val = "DMPAPER_JENV_CHOU4"; break;
1070 0 : case DMPAPER_LETTER_ROTATED: val = "DMPAPER_LETTER_ROTATED"; break;
1071 0 : case DMPAPER_A3_ROTATED: val = "DMPAPER_A3_ROTATED"; break;
1072 0 : case DMPAPER_A4_ROTATED: val = "DMPAPER_A4_ROTATED"; break;
1073 0 : case DMPAPER_A5_ROTATED: val = "DMPAPER_A5_ROTATED"; break;
1074 0 : case DMPAPER_B4_JIS_ROTATED: val = "DMPAPER_B4_JIS_ROTATED"; break;
1075 0 : case DMPAPER_B5_JIS_ROTATED: val = "DMPAPER_B5_JIS_ROTATED"; break;
1076 0 : case DMPAPER_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
1077 0 : case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
1078 0 : case DMPAPER_A6_ROTATED: val = "DMPAPER_A6_ROTATED"; break;
1079 0 : case DMPAPER_JENV_KAKU2_ROTATED: val = "DMPAPER_JENV_KAKU2_ROTATED"; break;
1080 0 : case DMPAPER_JENV_KAKU3_ROTATED: val = "DMPAPER_JENV_KAKU3_ROTATED"; break;
1081 0 : case DMPAPER_JENV_CHOU3_ROTATED: val = "DMPAPER_JENV_CHOU3_ROTATED"; break;
1082 0 : case DMPAPER_JENV_CHOU4_ROTATED: val = "DMPAPER_JENV_CHOU4_ROTATED"; break;
1083 0 : case DMPAPER_B6_JIS: val = "DMPAPER_B6_JIS"; break;
1084 0 : case DMPAPER_B6_JIS_ROTATED: val = "DMPAPER_B6_JIS_ROTATED"; break;
1085 0 : case DMPAPER_12X11: val = "DMPAPER_12X11"; break;
1086 0 : case DMPAPER_JENV_YOU4: val = "DMPAPER_JENV_YOU4"; break;
1087 0 : case DMPAPER_JENV_YOU4_ROTATED: val = "DMPAPER_JENV_YOU4_ROTATED"; break;
1088 0 : case DMPAPER_P16K: val = "DMPAPER_P16K"; break;
1089 0 : case DMPAPER_P32K: val = "DMPAPER_P32K"; break;
1090 0 : case DMPAPER_P32KBIG: val = "DMPAPER_P32KBIG"; break;
1091 0 : case DMPAPER_PENV_1: val = "DMPAPER_PENV_1"; break;
1092 0 : case DMPAPER_PENV_2: val = "DMPAPER_PENV_2"; break;
1093 0 : case DMPAPER_PENV_3: val = "DMPAPER_PENV_3"; break;
1094 0 : case DMPAPER_PENV_4: val = "DMPAPER_PENV_4"; break;
1095 0 : case DMPAPER_PENV_5: val = "DMPAPER_PENV_5"; break;
1096 0 : case DMPAPER_PENV_6: val = "DMPAPER_PENV_6"; break;
1097 0 : case DMPAPER_PENV_7: val = "DMPAPER_PENV_7"; break;
1098 0 : case DMPAPER_PENV_8: val = "DMPAPER_PENV_8"; break;
1099 0 : case DMPAPER_PENV_9: val = "DMPAPER_PENV_9"; break;
1100 0 : case DMPAPER_PENV_10: val = "DMPAPER_PENV_10"; break;
1101 0 : case DMPAPER_P16K_ROTATED: val = "DMPAPER_P16K_ROTATED"; break;
1102 0 : case DMPAPER_P32K_ROTATED: val = "DMPAPER_P32K_ROTATED"; break;
1103 0 : case DMPAPER_P32KBIG_ROTATED: val = "DMPAPER_P32KBIG_ROTATED"; break;
1104 0 : case DMPAPER_PENV_1_ROTATED: val = "DMPAPER_PENV_1_ROTATED"; break;
1105 0 : case DMPAPER_PENV_2_ROTATED: val = "DMPAPER_PENV_2_ROTATED"; break;
1106 0 : case DMPAPER_PENV_3_ROTATED: val = "DMPAPER_PENV_3_ROTATED"; break;
1107 0 : case DMPAPER_PENV_4_ROTATED: val = "DMPAPER_PENV_4_ROTATED"; break;
1108 0 : case DMPAPER_PENV_5_ROTATED: val = "DMPAPER_PENV_5_ROTATED"; break;
1109 0 : case DMPAPER_PENV_6_ROTATED: val = "DMPAPER_PENV_6_ROTATED"; break;
1110 0 : case DMPAPER_PENV_7_ROTATED: val = "DMPAPER_PENV_7_ROTATED"; break;
1111 0 : case DMPAPER_PENV_8_ROTATED: val = "DMPAPER_PENV_8_ROTATED"; break;
1112 0 : case DMPAPER_PENV_9_ROTATED: val = "DMPAPER_PENV_9_ROTATED"; break;
1113 0 : case DMPAPER_PENV_10_ROTATED: val = "DMPAPER_PENV_10_ROTATED"; break;
1114 : }
1115 4 : ndr_print_enum(ndr, name, "ENUM", val, r);
1116 4 : }
1117 :
1118 16176 : static enum ndr_err_code ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeDefaultSource r)
1119 : {
1120 16176 : NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1121 16176 : return NDR_ERR_SUCCESS;
1122 : }
1123 :
1124 4680 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeDefaultSource *r)
1125 : {
1126 4 : uint16_t v;
1127 4680 : NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1128 4680 : *r = v;
1129 4680 : return NDR_ERR_SUCCESS;
1130 : }
1131 :
1132 4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDefaultSource r)
1133 : {
1134 4 : const char *val = NULL;
1135 :
1136 4 : switch (r) {
1137 0 : case DMBIN_UPPER: val = "DMBIN_UPPER"; break;
1138 0 : case DMBIN_LOWER: val = "DMBIN_LOWER"; break;
1139 0 : case DMBIN_MIDDLE: val = "DMBIN_MIDDLE"; break;
1140 0 : case DMBIN_MANUAL: val = "DMBIN_MANUAL"; break;
1141 0 : case DMBIN_ENVELOPE: val = "DMBIN_ENVELOPE"; break;
1142 0 : case DMBIN_ENVMANUAL: val = "DMBIN_ENVMANUAL"; break;
1143 0 : case DMBIN_AUTO: val = "DMBIN_AUTO"; break;
1144 0 : case DMBIN_TRACTOR: val = "DMBIN_TRACTOR"; break;
1145 0 : case DMBIN_SMALLFMT: val = "DMBIN_SMALLFMT"; break;
1146 0 : case DMBIN_LARGEFMT: val = "DMBIN_LARGEFMT"; break;
1147 0 : case DMBIN_LARGECAPACITY: val = "DMBIN_LARGECAPACITY"; break;
1148 0 : case DMBIN_CASSETTE: val = "DMBIN_CASSETTE"; break;
1149 4 : case DMBIN_FORMSOURCE: val = "DMBIN_FORMSOURCE"; break;
1150 : }
1151 4 : ndr_print_enum(ndr, name, "ENUM", val, r);
1152 4 : }
1153 :
1154 16176 : static enum ndr_err_code ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModePrintQuality r)
1155 : {
1156 16176 : NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1157 16176 : return NDR_ERR_SUCCESS;
1158 : }
1159 :
1160 4680 : static enum ndr_err_code ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModePrintQuality *r)
1161 : {
1162 4 : uint16_t v;
1163 4680 : NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1164 4680 : *r = v;
1165 4680 : return NDR_ERR_SUCCESS;
1166 : }
1167 :
1168 4 : _PUBLIC_ void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePrintQuality r)
1169 : {
1170 4 : const char *val = NULL;
1171 :
1172 4 : switch (r) {
1173 0 : case DMRES_HIGH: val = "DMRES_HIGH"; break;
1174 0 : case DMRES_MEDIUM: val = "DMRES_MEDIUM"; break;
1175 0 : case DMRES_LOW: val = "DMRES_LOW"; break;
1176 0 : case DMRES_DRAFT: val = "DMRES_DRAFT"; break;
1177 : }
1178 4 : ndr_print_enum(ndr, name, "ENUM", val, r);
1179 4 : }
1180 :
1181 16176 : static enum ndr_err_code ndr_push_spoolss_DeviceModeColor(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeColor r)
1182 : {
1183 16176 : NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1184 16176 : return NDR_ERR_SUCCESS;
1185 : }
1186 :
1187 4680 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeColor(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeColor *r)
1188 : {
1189 4 : uint16_t v;
1190 4680 : NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1191 4680 : *r = v;
1192 4680 : return NDR_ERR_SUCCESS;
1193 : }
1194 :
1195 4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeColor(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeColor r)
1196 : {
1197 4 : const char *val = NULL;
1198 :
1199 4 : switch (r) {
1200 4 : case DMRES_MONOCHROME: val = "DMRES_MONOCHROME"; break;
1201 0 : case DMRES_COLOR: val = "DMRES_COLOR"; break;
1202 : }
1203 4 : ndr_print_enum(ndr, name, "ENUM", val, r);
1204 4 : }
1205 :
1206 16176 : static enum ndr_err_code ndr_push_spoolss_DeviceModeDuplex(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeDuplex r)
1207 : {
1208 16176 : NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1209 16176 : return NDR_ERR_SUCCESS;
1210 : }
1211 :
1212 4680 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeDuplex *r)
1213 : {
1214 4 : uint16_t v;
1215 4680 : NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1216 4680 : *r = v;
1217 4680 : return NDR_ERR_SUCCESS;
1218 : }
1219 :
1220 4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDuplex r)
1221 : {
1222 4 : const char *val = NULL;
1223 :
1224 4 : switch (r) {
1225 4 : case DMDUP_SIMPLEX: val = "DMDUP_SIMPLEX"; break;
1226 0 : case DMDUP_VERTICAL: val = "DMDUP_VERTICAL"; break;
1227 0 : case DMDUP_HORIZONTAL: val = "DMDUP_HORIZONTAL"; break;
1228 : }
1229 4 : ndr_print_enum(ndr, name, "ENUM", val, r);
1230 4 : }
1231 :
1232 16176 : static enum ndr_err_code ndr_push_spoolss_DeviceModeTTOption(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeTTOption r)
1233 : {
1234 16176 : NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1235 16176 : return NDR_ERR_SUCCESS;
1236 : }
1237 :
1238 4680 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeTTOption *r)
1239 : {
1240 4 : uint16_t v;
1241 4680 : NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1242 4680 : *r = v;
1243 4680 : return NDR_ERR_SUCCESS;
1244 : }
1245 :
1246 4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeTTOption r)
1247 : {
1248 4 : const char *val = NULL;
1249 :
1250 4 : switch (r) {
1251 0 : case DMTT_BITMAP: val = "DMTT_BITMAP"; break;
1252 0 : case DMTT_DOWNLOAD: val = "DMTT_DOWNLOAD"; break;
1253 4 : case DMTT_SUBDEV: val = "DMTT_SUBDEV"; break;
1254 0 : case DMTT_DOWNLOAD_OUTLINE: val = "DMTT_DOWNLOAD_OUTLINE"; break;
1255 : }
1256 4 : ndr_print_enum(ndr, name, "ENUM", val, r);
1257 4 : }
1258 :
1259 16176 : static enum ndr_err_code ndr_push_spoolss_DeviceModeCollate(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeCollate r)
1260 : {
1261 16176 : NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1262 16176 : return NDR_ERR_SUCCESS;
1263 : }
1264 :
1265 4680 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeCollate *r)
1266 : {
1267 4 : uint16_t v;
1268 4680 : NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1269 4680 : *r = v;
1270 4680 : return NDR_ERR_SUCCESS;
1271 : }
1272 :
1273 4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeCollate(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeCollate r)
1274 : {
1275 4 : const char *val = NULL;
1276 :
1277 4 : switch (r) {
1278 0 : case DMCOLLATE_FALSE: val = "DMCOLLATE_FALSE"; break;
1279 4 : case DMCOLLATE_TRUE: val = "DMCOLLATE_TRUE"; break;
1280 : }
1281 4 : ndr_print_enum(ndr, name, "ENUM", val, r);
1282 4 : }
1283 :
1284 16176 : static enum ndr_err_code ndr_push_spoolss_DeviceModeNUp(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeNUp r)
1285 : {
1286 16176 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1287 16176 : return NDR_ERR_SUCCESS;
1288 : }
1289 :
1290 4680 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeNUp *r)
1291 : {
1292 4 : uint32_t v;
1293 4680 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1294 4680 : *r = v;
1295 4680 : return NDR_ERR_SUCCESS;
1296 : }
1297 :
1298 4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeNUp(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeNUp r)
1299 : {
1300 4 : const char *val = NULL;
1301 :
1302 4 : switch (r) {
1303 4 : case DMNUP_SYSTEM: val = "DMNUP_SYSTEM"; break;
1304 0 : case DMNUP_ONEUP: val = "DMNUP_ONEUP"; break;
1305 : }
1306 4 : ndr_print_enum(ndr, name, "ENUM", val, r);
1307 4 : }
1308 :
1309 16176 : static enum ndr_err_code ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeICMMethod r)
1310 : {
1311 16176 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1312 16176 : return NDR_ERR_SUCCESS;
1313 : }
1314 :
1315 4680 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeICMMethod *r)
1316 : {
1317 4 : uint32_t v;
1318 4680 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1319 4680 : *r = v;
1320 4680 : return NDR_ERR_SUCCESS;
1321 : }
1322 :
1323 4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMMethod r)
1324 : {
1325 4 : const char *val = NULL;
1326 :
1327 4 : switch (r) {
1328 4 : case DMICMMETHOD_NONE: val = "DMICMMETHOD_NONE"; break;
1329 0 : case DMICMMETHOD_SYSTEM: val = "DMICMMETHOD_SYSTEM"; break;
1330 0 : case DMICMMETHOD_DRIVER: val = "DMICMMETHOD_DRIVER"; break;
1331 0 : case DMICMMETHOD_DEVICE: val = "DMICMMETHOD_DEVICE"; break;
1332 : }
1333 4 : ndr_print_enum(ndr, name, "ENUM", val, r);
1334 4 : }
1335 :
1336 16176 : static enum ndr_err_code ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeICMIntent r)
1337 : {
1338 16176 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1339 16176 : return NDR_ERR_SUCCESS;
1340 : }
1341 :
1342 4680 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeICMIntent *r)
1343 : {
1344 4 : uint32_t v;
1345 4680 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1346 4680 : *r = v;
1347 4680 : return NDR_ERR_SUCCESS;
1348 : }
1349 :
1350 4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMIntent r)
1351 : {
1352 4 : const char *val = NULL;
1353 :
1354 4 : switch (r) {
1355 0 : case DMICM_SATURATE: val = "DMICM_SATURATE"; break;
1356 4 : case DMICM_CONTRAST: val = "DMICM_CONTRAST"; break;
1357 0 : case DMICM_COLORIMETRIC: val = "DMICM_COLORIMETRIC"; break;
1358 0 : case DMICM_ABS_COLORIMETRIC: val = "DMICM_ABS_COLORIMETRIC"; break;
1359 : }
1360 4 : ndr_print_enum(ndr, name, "ENUM", val, r);
1361 4 : }
1362 :
1363 16176 : static enum ndr_err_code ndr_push_spoolss_DeviceModeMediaType(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeMediaType r)
1364 : {
1365 16176 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1366 16176 : return NDR_ERR_SUCCESS;
1367 : }
1368 :
1369 4680 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeMediaType *r)
1370 : {
1371 4 : uint32_t v;
1372 4680 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1373 4680 : *r = v;
1374 4680 : return NDR_ERR_SUCCESS;
1375 : }
1376 :
1377 4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeMediaType r)
1378 : {
1379 4 : const char *val = NULL;
1380 :
1381 4 : switch (r) {
1382 0 : case DMMEDIA_STANDARD: val = "DMMEDIA_STANDARD"; break;
1383 0 : case DMMEDIA_TRANSPARENCY: val = "DMMEDIA_TRANSPARENCY"; break;
1384 0 : case DMMEDIA_GLOSSY: val = "DMMEDIA_GLOSSY"; break;
1385 : }
1386 4 : ndr_print_enum(ndr, name, "ENUM", val, r);
1387 4 : }
1388 :
1389 16176 : static enum ndr_err_code ndr_push_spoolss_DeviceModeDitherType(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeDitherType r)
1390 : {
1391 16176 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1392 16176 : return NDR_ERR_SUCCESS;
1393 : }
1394 :
1395 4680 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DeviceModeDitherType *r)
1396 : {
1397 4 : uint32_t v;
1398 4680 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1399 4680 : *r = v;
1400 4680 : return NDR_ERR_SUCCESS;
1401 : }
1402 :
1403 4 : _PUBLIC_ void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDitherType r)
1404 : {
1405 4 : const char *val = NULL;
1406 :
1407 4 : switch (r) {
1408 0 : case DMDITHER_NONE: val = "DMDITHER_NONE"; break;
1409 0 : case DMDITHER_COARSE: val = "DMDITHER_COARSE"; break;
1410 0 : case DMDITHER_FINE: val = "DMDITHER_FINE"; break;
1411 0 : case DMDITHER_LINEART: val = "DMDITHER_LINEART"; break;
1412 0 : case DMDITHER_ERRORDIFFUSION: val = "DMDITHER_ERRORDIFFUSION"; break;
1413 0 : case DMDITHER_RESERVED6: val = "DMDITHER_RESERVED6"; break;
1414 0 : case DMDITHER_RESERVED7: val = "DMDITHER_RESERVED7"; break;
1415 0 : case DMDITHER_RESERVED8: val = "DMDITHER_RESERVED8"; break;
1416 0 : case DMDITHER_RESERVED9: val = "DMDITHER_RESERVED9"; break;
1417 0 : case DMDITHER_GRAYSCALE: val = "DMDITHER_GRAYSCALE"; break;
1418 : }
1419 4 : ndr_print_enum(ndr, name, "ENUM", val, r);
1420 4 : }
1421 :
1422 16176 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DeviceMode *r)
1423 : {
1424 16176 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1425 16176 : if (ndr_flags & NDR_SCALARS) {
1426 16176 : NDR_CHECK(ndr_push_align(ndr, 4));
1427 16176 : NDR_CHECK(ndr_push_charset_to_null(ndr, NDR_SCALARS, r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1428 16176 : NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, r->specversion));
1429 16176 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
1430 16176 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
1431 16176 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
1432 16176 : NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
1433 16176 : NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, r->orientation));
1434 16176 : NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, r->papersize));
1435 16176 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
1436 16176 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
1437 16176 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
1438 16176 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
1439 16176 : NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, r->defaultsource));
1440 16176 : NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, r->printquality));
1441 16176 : NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr, NDR_SCALARS, r->color));
1442 16176 : NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, r->duplex));
1443 16176 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
1444 16176 : NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, r->ttoption));
1445 16176 : NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, r->collate));
1446 16176 : NDR_CHECK(ndr_push_charset_to_null(ndr, NDR_SCALARS, r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1447 16176 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
1448 16176 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
1449 16176 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
1450 16176 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
1451 16176 : NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, r->displayflags));
1452 16176 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
1453 16176 : NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, r->icmmethod));
1454 16176 : NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, r->icmintent));
1455 16176 : NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, r->mediatype));
1456 16176 : NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, r->dithertype));
1457 16176 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
1458 16176 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
1459 16176 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
1460 16176 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
1461 : {
1462 16176 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
1463 16176 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1464 : {
1465 0 : struct ndr_push *_ndr_driverextra_data;
1466 16176 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
1467 16176 : NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
1468 16176 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
1469 : }
1470 16176 : ndr->flags = _flags_save_DATA_BLOB;
1471 : }
1472 16176 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1473 : }
1474 16176 : if (ndr_flags & NDR_BUFFERS) {
1475 0 : }
1476 16176 : return NDR_ERR_SUCCESS;
1477 : }
1478 :
1479 4680 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DeviceMode *r)
1480 : {
1481 4680 : uint32_t size_devicename_0 = 0;
1482 4680 : uint32_t size_formname_0 = 0;
1483 4680 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1484 4680 : if (ndr_flags & NDR_SCALARS) {
1485 4680 : NDR_CHECK(ndr_pull_align(ndr, 4));
1486 4680 : size_devicename_0 = MAXDEVICENAME;
1487 4680 : NDR_CHECK(ndr_pull_charset_to_null(ndr, NDR_SCALARS, &r->devicename, size_devicename_0, sizeof(uint16_t), CH_UTF16));
1488 4684 : NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, &r->specversion));
1489 4680 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
1490 4680 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1491 4680 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
1492 4684 : NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
1493 4684 : NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, &r->orientation));
1494 4684 : NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, &r->papersize));
1495 4680 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
1496 4680 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
1497 4680 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
1498 4680 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
1499 4684 : NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, &r->defaultsource));
1500 4684 : NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, &r->printquality));
1501 4684 : NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr, NDR_SCALARS, &r->color));
1502 4684 : NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, &r->duplex));
1503 4680 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
1504 4684 : NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, &r->ttoption));
1505 4684 : NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, &r->collate));
1506 4680 : size_formname_0 = MAXDEVICENAME;
1507 4680 : NDR_CHECK(ndr_pull_charset_to_null(ndr, NDR_SCALARS, &r->formname, size_formname_0, sizeof(uint16_t), CH_UTF16));
1508 4680 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
1509 4680 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
1510 4680 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
1511 4680 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
1512 4684 : NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, &r->displayflags));
1513 4680 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
1514 4684 : NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, &r->icmmethod));
1515 4684 : NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, &r->icmintent));
1516 4684 : NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, &r->mediatype));
1517 4684 : NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, &r->dithertype));
1518 4680 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1519 4680 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
1520 4680 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
1521 4680 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
1522 : {
1523 4680 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
1524 4680 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1525 : {
1526 4 : struct ndr_pull *_ndr_driverextra_data;
1527 4680 : ssize_t sub_size = r->__driverextra_length;
1528 4680 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, sub_size));
1529 4680 : NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
1530 4680 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, sub_size));
1531 : }
1532 4680 : ndr->flags = _flags_save_DATA_BLOB;
1533 : }
1534 4680 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1535 : }
1536 4680 : if (ndr_flags & NDR_BUFFERS) {
1537 4 : }
1538 4680 : return NDR_ERR_SUCCESS;
1539 : }
1540 :
1541 0 : static void ndr_print_flags_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DeviceMode *r)
1542 : {
1543 0 : ndr_print_spoolss_DeviceMode(ndr, name, r);
1544 0 : }
1545 :
1546 4 : _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
1547 : {
1548 4 : ndr_print_struct(ndr, name, "spoolss_DeviceMode");
1549 4 : if (r == NULL) { ndr_print_null(ndr); return; }
1550 4 : ndr->depth++;
1551 4 : ndr_print_string(ndr, "devicename", r->devicename);
1552 4 : ndr_print_spoolss_DeviceModeSpecVersion(ndr, "specversion", r->specversion);
1553 4 : ndr_print_uint16(ndr, "driverversion", r->driverversion);
1554 4 : ndr_print_uint16(ndr, "size", r->size);
1555 4 : ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
1556 4 : ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
1557 4 : ndr_print_spoolss_DeviceModeOrientation(ndr, "orientation", r->orientation);
1558 4 : ndr_print_spoolss_DeviceModePaperSize(ndr, "papersize", r->papersize);
1559 4 : ndr_print_uint16(ndr, "paperlength", r->paperlength);
1560 4 : ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
1561 4 : ndr_print_uint16(ndr, "scale", r->scale);
1562 4 : ndr_print_uint16(ndr, "copies", r->copies);
1563 4 : ndr_print_spoolss_DeviceModeDefaultSource(ndr, "defaultsource", r->defaultsource);
1564 4 : ndr_print_spoolss_DeviceModePrintQuality(ndr, "printquality", r->printquality);
1565 4 : ndr_print_spoolss_DeviceModeColor(ndr, "color", r->color);
1566 4 : ndr_print_spoolss_DeviceModeDuplex(ndr, "duplex", r->duplex);
1567 4 : ndr_print_uint16(ndr, "yresolution", r->yresolution);
1568 4 : ndr_print_spoolss_DeviceModeTTOption(ndr, "ttoption", r->ttoption);
1569 4 : ndr_print_spoolss_DeviceModeCollate(ndr, "collate", r->collate);
1570 4 : ndr_print_string(ndr, "formname", r->formname);
1571 4 : ndr_print_uint16(ndr, "logpixels", r->logpixels);
1572 4 : ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
1573 4 : ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
1574 4 : ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
1575 4 : ndr_print_spoolss_DeviceModeNUp(ndr, "displayflags", r->displayflags);
1576 4 : ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
1577 4 : ndr_print_spoolss_DeviceModeICMMethod(ndr, "icmmethod", r->icmmethod);
1578 4 : ndr_print_spoolss_DeviceModeICMIntent(ndr, "icmintent", r->icmintent);
1579 4 : ndr_print_spoolss_DeviceModeMediaType(ndr, "mediatype", r->mediatype);
1580 4 : ndr_print_spoolss_DeviceModeDitherType(ndr, "dithertype", r->dithertype);
1581 4 : ndr_print_uint32(ndr, "reserved1", r->reserved1);
1582 4 : ndr_print_uint32(ndr, "reserved2", r->reserved2);
1583 4 : ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
1584 4 : ndr_print_uint32(ndr, "panningheight", r->panningheight);
1585 : {
1586 4 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
1587 4 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1588 4 : ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
1589 4 : ndr->flags = _flags_save_DATA_BLOB;
1590 : }
1591 4 : ndr->depth--;
1592 : }
1593 :
1594 11242 : _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, libndr_flags flags)
1595 : {
1596 11242 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode);
1597 : }
1598 :
1599 972 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
1600 : {
1601 972 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1602 972 : return NDR_ERR_SUCCESS;
1603 : }
1604 :
1605 444 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
1606 : {
1607 0 : uint32_t v;
1608 444 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1609 444 : *r = v;
1610 444 : return NDR_ERR_SUCCESS;
1611 : }
1612 :
1613 0 : _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1614 : {
1615 0 : ndr_print_uint32(ndr, name, r);
1616 0 : ndr->depth++;
1617 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
1618 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
1619 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
1620 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
1621 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
1622 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
1623 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
1624 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
1625 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
1626 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
1627 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
1628 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
1629 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
1630 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
1631 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
1632 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
1633 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
1634 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
1635 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
1636 0 : ndr->depth--;
1637 0 : }
1638 :
1639 2568 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
1640 : {
1641 2568 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1642 2568 : return NDR_ERR_SUCCESS;
1643 : }
1644 :
1645 964 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
1646 : {
1647 4 : uint32_t v;
1648 964 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1649 964 : *r = v;
1650 964 : return NDR_ERR_SUCCESS;
1651 : }
1652 :
1653 4 : _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
1654 : {
1655 4 : ndr_print_uint32(ndr, name, r);
1656 4 : ndr->depth++;
1657 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
1658 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
1659 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
1660 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
1661 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
1662 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
1663 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
1664 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
1665 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
1666 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
1667 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
1668 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
1669 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
1670 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
1671 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
1672 4 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
1673 4 : ndr->depth--;
1674 4 : }
1675 :
1676 1584 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrinterInfo1 *r)
1677 : {
1678 1584 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1679 1584 : if (ndr_flags & NDR_SCALARS) {
1680 792 : NDR_CHECK(ndr_push_align(ndr, 5));
1681 792 : NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
1682 : {
1683 792 : libndr_flags _flags_save_string = ndr->flags;
1684 792 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1685 792 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
1686 792 : ndr->flags = _flags_save_string;
1687 : }
1688 : {
1689 792 : libndr_flags _flags_save_string = ndr->flags;
1690 792 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1691 792 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
1692 792 : ndr->flags = _flags_save_string;
1693 : }
1694 : {
1695 792 : libndr_flags _flags_save_string = ndr->flags;
1696 792 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1697 792 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1698 792 : ndr->flags = _flags_save_string;
1699 : }
1700 792 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1701 : }
1702 1584 : if (ndr_flags & NDR_BUFFERS) {
1703 : {
1704 792 : libndr_flags _flags_save_string = ndr->flags;
1705 792 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1706 792 : if (r->description) {
1707 792 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
1708 792 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
1709 792 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
1710 : }
1711 792 : ndr->flags = _flags_save_string;
1712 : }
1713 : {
1714 792 : libndr_flags _flags_save_string = ndr->flags;
1715 792 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1716 792 : if (r->name) {
1717 792 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name));
1718 792 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
1719 792 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name));
1720 : }
1721 792 : ndr->flags = _flags_save_string;
1722 : }
1723 : {
1724 792 : libndr_flags _flags_save_string = ndr->flags;
1725 792 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1726 792 : if (r->comment) {
1727 792 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->comment));
1728 792 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1729 792 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->comment));
1730 : }
1731 792 : ndr->flags = _flags_save_string;
1732 : }
1733 : }
1734 1584 : return NDR_ERR_SUCCESS;
1735 : }
1736 :
1737 528 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterInfo1 *r)
1738 : {
1739 0 : uint32_t _ptr_description;
1740 528 : TALLOC_CTX *_mem_save_description_0 = NULL;
1741 0 : uint32_t _ptr_name;
1742 528 : TALLOC_CTX *_mem_save_name_0 = NULL;
1743 0 : uint32_t _ptr_comment;
1744 528 : TALLOC_CTX *_mem_save_comment_0 = NULL;
1745 528 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1746 528 : if (ndr_flags & NDR_SCALARS) {
1747 264 : NDR_CHECK(ndr_pull_align(ndr, 5));
1748 264 : NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
1749 : {
1750 264 : libndr_flags _flags_save_string = ndr->flags;
1751 264 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1752 264 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
1753 264 : if (_ptr_description) {
1754 264 : NDR_PULL_ALLOC(ndr, r->description);
1755 264 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
1756 : } else {
1757 0 : r->description = NULL;
1758 : }
1759 264 : ndr->flags = _flags_save_string;
1760 : }
1761 : {
1762 264 : libndr_flags _flags_save_string = ndr->flags;
1763 264 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1764 264 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
1765 264 : if (_ptr_name) {
1766 264 : NDR_PULL_ALLOC(ndr, r->name);
1767 264 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
1768 : } else {
1769 0 : r->name = NULL;
1770 : }
1771 264 : ndr->flags = _flags_save_string;
1772 : }
1773 : {
1774 264 : libndr_flags _flags_save_string = ndr->flags;
1775 264 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1776 264 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1777 264 : if (_ptr_comment) {
1778 264 : NDR_PULL_ALLOC(ndr, r->comment);
1779 264 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1780 : } else {
1781 0 : r->comment = NULL;
1782 : }
1783 264 : ndr->flags = _flags_save_string;
1784 : }
1785 264 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1786 : }
1787 528 : if (ndr_flags & NDR_BUFFERS) {
1788 : {
1789 264 : libndr_flags _flags_save_string = ndr->flags;
1790 264 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1791 264 : if (r->description) {
1792 0 : uint32_t _relative_save_offset;
1793 264 : _relative_save_offset = ndr->offset;
1794 264 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
1795 264 : _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
1796 264 : NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
1797 264 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
1798 264 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
1799 264 : if (ndr->offset > ndr->relative_highest_offset) {
1800 80 : ndr->relative_highest_offset = ndr->offset;
1801 : }
1802 264 : ndr->offset = _relative_save_offset;
1803 : }
1804 264 : ndr->flags = _flags_save_string;
1805 : }
1806 : {
1807 264 : libndr_flags _flags_save_string = ndr->flags;
1808 264 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1809 264 : if (r->name) {
1810 0 : uint32_t _relative_save_offset;
1811 264 : _relative_save_offset = ndr->offset;
1812 264 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
1813 264 : _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1814 264 : NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
1815 264 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
1816 264 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
1817 264 : if (ndr->offset > ndr->relative_highest_offset) {
1818 0 : ndr->relative_highest_offset = ndr->offset;
1819 : }
1820 264 : ndr->offset = _relative_save_offset;
1821 : }
1822 264 : ndr->flags = _flags_save_string;
1823 : }
1824 : {
1825 264 : libndr_flags _flags_save_string = ndr->flags;
1826 264 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1827 264 : if (r->comment) {
1828 0 : uint32_t _relative_save_offset;
1829 264 : _relative_save_offset = ndr->offset;
1830 264 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1831 264 : _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1832 264 : NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1833 264 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1834 264 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1835 264 : if (ndr->offset > ndr->relative_highest_offset) {
1836 0 : ndr->relative_highest_offset = ndr->offset;
1837 : }
1838 264 : ndr->offset = _relative_save_offset;
1839 : }
1840 264 : ndr->flags = _flags_save_string;
1841 : }
1842 : }
1843 528 : return NDR_ERR_SUCCESS;
1844 : }
1845 :
1846 0 : static void ndr_print_flags_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterInfo1 *r)
1847 : {
1848 0 : ndr_print_spoolss_PrinterInfo1(ndr, name, r);
1849 0 : }
1850 :
1851 0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
1852 : {
1853 0 : ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
1854 0 : if (r == NULL) { ndr_print_null(ndr); return; }
1855 0 : ndr->depth++;
1856 0 : ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
1857 : {
1858 0 : libndr_flags _flags_save_string = ndr->flags;
1859 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1860 0 : ndr_print_ptr(ndr, "description", r->description);
1861 0 : ndr->depth++;
1862 0 : if (r->description) {
1863 0 : ndr_print_string(ndr, "description", r->description);
1864 : }
1865 0 : ndr->depth--;
1866 0 : ndr->flags = _flags_save_string;
1867 : }
1868 : {
1869 0 : libndr_flags _flags_save_string = ndr->flags;
1870 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1871 0 : ndr_print_ptr(ndr, "name", r->name);
1872 0 : ndr->depth++;
1873 0 : if (r->name) {
1874 0 : ndr_print_string(ndr, "name", r->name);
1875 : }
1876 0 : ndr->depth--;
1877 0 : ndr->flags = _flags_save_string;
1878 : }
1879 : {
1880 0 : libndr_flags _flags_save_string = ndr->flags;
1881 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1882 0 : ndr_print_ptr(ndr, "comment", r->comment);
1883 0 : ndr->depth++;
1884 0 : if (r->comment) {
1885 0 : ndr_print_string(ndr, "comment", r->comment);
1886 : }
1887 0 : ndr->depth--;
1888 0 : ndr->flags = _flags_save_string;
1889 : }
1890 0 : ndr->depth--;
1891 : }
1892 :
1893 0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, libndr_flags flags)
1894 : {
1895 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1);
1896 : }
1897 :
1898 1224 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterInfo2 *r)
1899 : {
1900 0 : uint32_t _ptr_servername;
1901 1224 : TALLOC_CTX *_mem_save_servername_0 = NULL;
1902 0 : uint32_t _ptr_printername;
1903 1224 : TALLOC_CTX *_mem_save_printername_0 = NULL;
1904 0 : uint32_t _ptr_sharename;
1905 1224 : TALLOC_CTX *_mem_save_sharename_0 = NULL;
1906 0 : uint32_t _ptr_portname;
1907 1224 : TALLOC_CTX *_mem_save_portname_0 = NULL;
1908 0 : uint32_t _ptr_drivername;
1909 1224 : TALLOC_CTX *_mem_save_drivername_0 = NULL;
1910 0 : uint32_t _ptr_comment;
1911 1224 : TALLOC_CTX *_mem_save_comment_0 = NULL;
1912 0 : uint32_t _ptr_location;
1913 1224 : TALLOC_CTX *_mem_save_location_0 = NULL;
1914 0 : uint32_t _ptr_devmode;
1915 1224 : TALLOC_CTX *_mem_save_devmode_0 = NULL;
1916 0 : uint32_t _ptr_sepfile;
1917 1224 : TALLOC_CTX *_mem_save_sepfile_0 = NULL;
1918 0 : uint32_t _ptr_printprocessor;
1919 1224 : TALLOC_CTX *_mem_save_printprocessor_0 = NULL;
1920 0 : uint32_t _ptr_datatype;
1921 1224 : TALLOC_CTX *_mem_save_datatype_0 = NULL;
1922 0 : uint32_t _ptr_parameters;
1923 1224 : TALLOC_CTX *_mem_save_parameters_0 = NULL;
1924 0 : uint32_t _ptr_secdesc;
1925 1224 : TALLOC_CTX *_mem_save_secdesc_0 = NULL;
1926 1224 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1927 1224 : if (ndr_flags & NDR_SCALARS) {
1928 612 : NDR_CHECK(ndr_pull_align(ndr, 5));
1929 : {
1930 612 : libndr_flags _flags_save_string = ndr->flags;
1931 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1932 612 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1933 612 : if (_ptr_servername) {
1934 292 : NDR_PULL_ALLOC(ndr, r->servername);
1935 292 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1936 : } else {
1937 320 : r->servername = NULL;
1938 : }
1939 612 : ndr->flags = _flags_save_string;
1940 : }
1941 : {
1942 612 : libndr_flags _flags_save_string = ndr->flags;
1943 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1944 612 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1945 612 : if (_ptr_printername) {
1946 612 : NDR_PULL_ALLOC(ndr, r->printername);
1947 612 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1948 : } else {
1949 0 : r->printername = NULL;
1950 : }
1951 612 : ndr->flags = _flags_save_string;
1952 : }
1953 : {
1954 612 : libndr_flags _flags_save_string = ndr->flags;
1955 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1956 612 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1957 612 : if (_ptr_sharename) {
1958 612 : NDR_PULL_ALLOC(ndr, r->sharename);
1959 612 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1960 : } else {
1961 0 : r->sharename = NULL;
1962 : }
1963 612 : ndr->flags = _flags_save_string;
1964 : }
1965 : {
1966 612 : libndr_flags _flags_save_string = ndr->flags;
1967 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1968 612 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1969 612 : if (_ptr_portname) {
1970 612 : NDR_PULL_ALLOC(ndr, r->portname);
1971 612 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1972 : } else {
1973 0 : r->portname = NULL;
1974 : }
1975 612 : ndr->flags = _flags_save_string;
1976 : }
1977 : {
1978 612 : libndr_flags _flags_save_string = ndr->flags;
1979 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1980 612 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1981 612 : if (_ptr_drivername) {
1982 612 : NDR_PULL_ALLOC(ndr, r->drivername);
1983 612 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1984 : } else {
1985 0 : r->drivername = NULL;
1986 : }
1987 612 : ndr->flags = _flags_save_string;
1988 : }
1989 : {
1990 612 : libndr_flags _flags_save_string = ndr->flags;
1991 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1992 612 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1993 612 : if (_ptr_comment) {
1994 612 : NDR_PULL_ALLOC(ndr, r->comment);
1995 612 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1996 : } else {
1997 0 : r->comment = NULL;
1998 : }
1999 612 : ndr->flags = _flags_save_string;
2000 : }
2001 : {
2002 612 : libndr_flags _flags_save_string = ndr->flags;
2003 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2004 612 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
2005 612 : if (_ptr_location) {
2006 612 : NDR_PULL_ALLOC(ndr, r->location);
2007 612 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
2008 : } else {
2009 0 : r->location = NULL;
2010 : }
2011 612 : ndr->flags = _flags_save_string;
2012 : }
2013 : {
2014 612 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
2015 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2016 612 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2017 612 : if (_ptr_devmode) {
2018 572 : NDR_PULL_ALLOC(ndr, r->devmode);
2019 572 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2020 : } else {
2021 40 : r->devmode = NULL;
2022 : }
2023 612 : ndr->flags = _flags_save_spoolss_DeviceMode;
2024 : }
2025 : {
2026 612 : libndr_flags _flags_save_string = ndr->flags;
2027 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2028 612 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
2029 612 : if (_ptr_sepfile) {
2030 612 : NDR_PULL_ALLOC(ndr, r->sepfile);
2031 612 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
2032 : } else {
2033 0 : r->sepfile = NULL;
2034 : }
2035 612 : ndr->flags = _flags_save_string;
2036 : }
2037 : {
2038 612 : libndr_flags _flags_save_string = ndr->flags;
2039 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2040 612 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
2041 612 : if (_ptr_printprocessor) {
2042 612 : NDR_PULL_ALLOC(ndr, r->printprocessor);
2043 612 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
2044 : } else {
2045 0 : r->printprocessor = NULL;
2046 : }
2047 612 : ndr->flags = _flags_save_string;
2048 : }
2049 : {
2050 612 : libndr_flags _flags_save_string = ndr->flags;
2051 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2052 612 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
2053 612 : if (_ptr_datatype) {
2054 612 : NDR_PULL_ALLOC(ndr, r->datatype);
2055 612 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
2056 : } else {
2057 0 : r->datatype = NULL;
2058 : }
2059 612 : ndr->flags = _flags_save_string;
2060 : }
2061 : {
2062 612 : libndr_flags _flags_save_string = ndr->flags;
2063 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2064 612 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
2065 612 : if (_ptr_parameters) {
2066 612 : NDR_PULL_ALLOC(ndr, r->parameters);
2067 612 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
2068 : } else {
2069 0 : r->parameters = NULL;
2070 : }
2071 612 : ndr->flags = _flags_save_string;
2072 : }
2073 : {
2074 612 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
2075 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2076 612 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
2077 612 : if (_ptr_secdesc) {
2078 612 : NDR_PULL_ALLOC(ndr, r->secdesc);
2079 612 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
2080 : } else {
2081 0 : r->secdesc = NULL;
2082 : }
2083 612 : ndr->flags = _flags_save_spoolss_security_descriptor;
2084 : }
2085 612 : NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2086 612 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
2087 612 : if (r->priority > 99) {
2088 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->priority), (uint32_t)(0), (uint32_t)(99));
2089 : }
2090 612 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
2091 612 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
2092 612 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
2093 612 : NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2094 612 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
2095 612 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
2096 612 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2097 : }
2098 1224 : if (ndr_flags & NDR_BUFFERS) {
2099 : {
2100 612 : libndr_flags _flags_save_string = ndr->flags;
2101 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2102 612 : if (r->servername) {
2103 0 : uint32_t _relative_save_offset;
2104 292 : _relative_save_offset = ndr->offset;
2105 292 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
2106 292 : _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2107 292 : NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
2108 292 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
2109 292 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
2110 292 : if (ndr->offset > ndr->relative_highest_offset) {
2111 228 : ndr->relative_highest_offset = ndr->offset;
2112 : }
2113 292 : ndr->offset = _relative_save_offset;
2114 : }
2115 612 : ndr->flags = _flags_save_string;
2116 : }
2117 : {
2118 612 : libndr_flags _flags_save_string = ndr->flags;
2119 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2120 612 : if (r->printername) {
2121 0 : uint32_t _relative_save_offset;
2122 612 : _relative_save_offset = ndr->offset;
2123 612 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2124 612 : _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2125 612 : NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2126 612 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2127 612 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2128 612 : if (ndr->offset > ndr->relative_highest_offset) {
2129 272 : ndr->relative_highest_offset = ndr->offset;
2130 : }
2131 612 : ndr->offset = _relative_save_offset;
2132 : }
2133 612 : ndr->flags = _flags_save_string;
2134 : }
2135 : {
2136 612 : libndr_flags _flags_save_string = ndr->flags;
2137 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2138 612 : if (r->sharename) {
2139 0 : uint32_t _relative_save_offset;
2140 612 : _relative_save_offset = ndr->offset;
2141 612 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
2142 612 : _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2143 612 : NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
2144 612 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
2145 612 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
2146 612 : if (ndr->offset > ndr->relative_highest_offset) {
2147 0 : ndr->relative_highest_offset = ndr->offset;
2148 : }
2149 612 : ndr->offset = _relative_save_offset;
2150 : }
2151 612 : ndr->flags = _flags_save_string;
2152 : }
2153 : {
2154 612 : libndr_flags _flags_save_string = ndr->flags;
2155 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2156 612 : if (r->portname) {
2157 0 : uint32_t _relative_save_offset;
2158 612 : _relative_save_offset = ndr->offset;
2159 612 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2160 612 : _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2161 612 : NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2162 612 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2163 612 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2164 612 : if (ndr->offset > ndr->relative_highest_offset) {
2165 0 : ndr->relative_highest_offset = ndr->offset;
2166 : }
2167 612 : ndr->offset = _relative_save_offset;
2168 : }
2169 612 : ndr->flags = _flags_save_string;
2170 : }
2171 : {
2172 612 : libndr_flags _flags_save_string = ndr->flags;
2173 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2174 612 : if (r->drivername) {
2175 0 : uint32_t _relative_save_offset;
2176 612 : _relative_save_offset = ndr->offset;
2177 612 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
2178 612 : _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2179 612 : NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
2180 612 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
2181 612 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
2182 612 : if (ndr->offset > ndr->relative_highest_offset) {
2183 0 : ndr->relative_highest_offset = ndr->offset;
2184 : }
2185 612 : ndr->offset = _relative_save_offset;
2186 : }
2187 612 : ndr->flags = _flags_save_string;
2188 : }
2189 : {
2190 612 : libndr_flags _flags_save_string = ndr->flags;
2191 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2192 612 : if (r->comment) {
2193 0 : uint32_t _relative_save_offset;
2194 612 : _relative_save_offset = ndr->offset;
2195 612 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
2196 612 : _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
2197 612 : NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
2198 612 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
2199 612 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
2200 612 : if (ndr->offset > ndr->relative_highest_offset) {
2201 0 : ndr->relative_highest_offset = ndr->offset;
2202 : }
2203 612 : ndr->offset = _relative_save_offset;
2204 : }
2205 612 : ndr->flags = _flags_save_string;
2206 : }
2207 : {
2208 612 : libndr_flags _flags_save_string = ndr->flags;
2209 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2210 612 : if (r->location) {
2211 0 : uint32_t _relative_save_offset;
2212 612 : _relative_save_offset = ndr->offset;
2213 612 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
2214 612 : _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
2215 612 : NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
2216 612 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
2217 612 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
2218 612 : if (ndr->offset > ndr->relative_highest_offset) {
2219 0 : ndr->relative_highest_offset = ndr->offset;
2220 : }
2221 612 : ndr->offset = _relative_save_offset;
2222 : }
2223 612 : ndr->flags = _flags_save_string;
2224 : }
2225 : {
2226 612 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
2227 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2228 612 : if (r->devmode) {
2229 0 : uint32_t _relative_save_offset;
2230 572 : _relative_save_offset = ndr->offset;
2231 572 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2232 572 : _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2233 572 : NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2234 : {
2235 0 : struct ndr_pull *_ndr_devmode;
2236 572 : ssize_t sub_size = -1;
2237 572 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, sub_size));
2238 572 : NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2239 572 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, sub_size));
2240 : }
2241 572 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2242 572 : if (ndr->offset > ndr->relative_highest_offset) {
2243 0 : ndr->relative_highest_offset = ndr->offset;
2244 : }
2245 572 : ndr->offset = _relative_save_offset;
2246 : }
2247 612 : ndr->flags = _flags_save_spoolss_DeviceMode;
2248 : }
2249 : {
2250 612 : libndr_flags _flags_save_string = ndr->flags;
2251 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2252 612 : if (r->sepfile) {
2253 0 : uint32_t _relative_save_offset;
2254 612 : _relative_save_offset = ndr->offset;
2255 612 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
2256 612 : _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
2257 612 : NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
2258 612 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
2259 612 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
2260 612 : if (ndr->offset > ndr->relative_highest_offset) {
2261 0 : ndr->relative_highest_offset = ndr->offset;
2262 : }
2263 612 : ndr->offset = _relative_save_offset;
2264 : }
2265 612 : ndr->flags = _flags_save_string;
2266 : }
2267 : {
2268 612 : libndr_flags _flags_save_string = ndr->flags;
2269 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2270 612 : if (r->printprocessor) {
2271 0 : uint32_t _relative_save_offset;
2272 612 : _relative_save_offset = ndr->offset;
2273 612 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
2274 612 : _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
2275 612 : NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
2276 612 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
2277 612 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
2278 612 : if (ndr->offset > ndr->relative_highest_offset) {
2279 0 : ndr->relative_highest_offset = ndr->offset;
2280 : }
2281 612 : ndr->offset = _relative_save_offset;
2282 : }
2283 612 : ndr->flags = _flags_save_string;
2284 : }
2285 : {
2286 612 : libndr_flags _flags_save_string = ndr->flags;
2287 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2288 612 : if (r->datatype) {
2289 0 : uint32_t _relative_save_offset;
2290 612 : _relative_save_offset = ndr->offset;
2291 612 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
2292 612 : _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
2293 612 : NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
2294 612 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
2295 612 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
2296 612 : if (ndr->offset > ndr->relative_highest_offset) {
2297 0 : ndr->relative_highest_offset = ndr->offset;
2298 : }
2299 612 : ndr->offset = _relative_save_offset;
2300 : }
2301 612 : ndr->flags = _flags_save_string;
2302 : }
2303 : {
2304 612 : libndr_flags _flags_save_string = ndr->flags;
2305 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2306 612 : if (r->parameters) {
2307 0 : uint32_t _relative_save_offset;
2308 612 : _relative_save_offset = ndr->offset;
2309 612 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
2310 612 : _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
2311 612 : NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
2312 612 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
2313 612 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
2314 612 : if (ndr->offset > ndr->relative_highest_offset) {
2315 0 : ndr->relative_highest_offset = ndr->offset;
2316 : }
2317 612 : ndr->offset = _relative_save_offset;
2318 : }
2319 612 : ndr->flags = _flags_save_string;
2320 : }
2321 : {
2322 612 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
2323 612 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2324 612 : if (r->secdesc) {
2325 0 : uint32_t _relative_save_offset;
2326 612 : _relative_save_offset = ndr->offset;
2327 612 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2328 612 : _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2329 612 : NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2330 : {
2331 0 : struct ndr_pull *_ndr_secdesc;
2332 612 : ssize_t sub_size = -1;
2333 612 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, sub_size));
2334 612 : NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2335 612 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, sub_size));
2336 : }
2337 612 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2338 612 : if (ndr->offset > ndr->relative_highest_offset) {
2339 0 : ndr->relative_highest_offset = ndr->offset;
2340 : }
2341 612 : ndr->offset = _relative_save_offset;
2342 : }
2343 612 : ndr->flags = _flags_save_spoolss_security_descriptor;
2344 : }
2345 : }
2346 1224 : return NDR_ERR_SUCCESS;
2347 : }
2348 :
2349 0 : static void ndr_print_flags_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterInfo2 *r)
2350 : {
2351 0 : ndr_print_spoolss_PrinterInfo2(ndr, name, r);
2352 0 : }
2353 :
2354 0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
2355 : {
2356 0 : ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
2357 0 : if (r == NULL) { ndr_print_null(ndr); return; }
2358 0 : ndr->depth++;
2359 : {
2360 0 : libndr_flags _flags_save_string = ndr->flags;
2361 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2362 0 : ndr_print_ptr(ndr, "servername", r->servername);
2363 0 : ndr->depth++;
2364 0 : if (r->servername) {
2365 0 : ndr_print_string(ndr, "servername", r->servername);
2366 : }
2367 0 : ndr->depth--;
2368 0 : ndr->flags = _flags_save_string;
2369 : }
2370 : {
2371 0 : libndr_flags _flags_save_string = ndr->flags;
2372 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2373 0 : ndr_print_ptr(ndr, "printername", r->printername);
2374 0 : ndr->depth++;
2375 0 : if (r->printername) {
2376 0 : ndr_print_string(ndr, "printername", r->printername);
2377 : }
2378 0 : ndr->depth--;
2379 0 : ndr->flags = _flags_save_string;
2380 : }
2381 : {
2382 0 : libndr_flags _flags_save_string = ndr->flags;
2383 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2384 0 : ndr_print_ptr(ndr, "sharename", r->sharename);
2385 0 : ndr->depth++;
2386 0 : if (r->sharename) {
2387 0 : ndr_print_string(ndr, "sharename", r->sharename);
2388 : }
2389 0 : ndr->depth--;
2390 0 : ndr->flags = _flags_save_string;
2391 : }
2392 : {
2393 0 : libndr_flags _flags_save_string = ndr->flags;
2394 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2395 0 : ndr_print_ptr(ndr, "portname", r->portname);
2396 0 : ndr->depth++;
2397 0 : if (r->portname) {
2398 0 : ndr_print_string(ndr, "portname", r->portname);
2399 : }
2400 0 : ndr->depth--;
2401 0 : ndr->flags = _flags_save_string;
2402 : }
2403 : {
2404 0 : libndr_flags _flags_save_string = ndr->flags;
2405 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2406 0 : ndr_print_ptr(ndr, "drivername", r->drivername);
2407 0 : ndr->depth++;
2408 0 : if (r->drivername) {
2409 0 : ndr_print_string(ndr, "drivername", r->drivername);
2410 : }
2411 0 : ndr->depth--;
2412 0 : ndr->flags = _flags_save_string;
2413 : }
2414 : {
2415 0 : libndr_flags _flags_save_string = ndr->flags;
2416 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2417 0 : ndr_print_ptr(ndr, "comment", r->comment);
2418 0 : ndr->depth++;
2419 0 : if (r->comment) {
2420 0 : ndr_print_string(ndr, "comment", r->comment);
2421 : }
2422 0 : ndr->depth--;
2423 0 : ndr->flags = _flags_save_string;
2424 : }
2425 : {
2426 0 : libndr_flags _flags_save_string = ndr->flags;
2427 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2428 0 : ndr_print_ptr(ndr, "location", r->location);
2429 0 : ndr->depth++;
2430 0 : if (r->location) {
2431 0 : ndr_print_string(ndr, "location", r->location);
2432 : }
2433 0 : ndr->depth--;
2434 0 : ndr->flags = _flags_save_string;
2435 : }
2436 : {
2437 0 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
2438 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2439 0 : ndr_print_ptr(ndr, "devmode", r->devmode);
2440 0 : ndr->depth++;
2441 0 : if (r->devmode) {
2442 0 : ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2443 : }
2444 0 : ndr->depth--;
2445 0 : ndr->flags = _flags_save_spoolss_DeviceMode;
2446 : }
2447 : {
2448 0 : libndr_flags _flags_save_string = ndr->flags;
2449 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2450 0 : ndr_print_ptr(ndr, "sepfile", r->sepfile);
2451 0 : ndr->depth++;
2452 0 : if (r->sepfile) {
2453 0 : ndr_print_string(ndr, "sepfile", r->sepfile);
2454 : }
2455 0 : ndr->depth--;
2456 0 : ndr->flags = _flags_save_string;
2457 : }
2458 : {
2459 0 : libndr_flags _flags_save_string = ndr->flags;
2460 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2461 0 : ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
2462 0 : ndr->depth++;
2463 0 : if (r->printprocessor) {
2464 0 : ndr_print_string(ndr, "printprocessor", r->printprocessor);
2465 : }
2466 0 : ndr->depth--;
2467 0 : ndr->flags = _flags_save_string;
2468 : }
2469 : {
2470 0 : libndr_flags _flags_save_string = ndr->flags;
2471 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2472 0 : ndr_print_ptr(ndr, "datatype", r->datatype);
2473 0 : ndr->depth++;
2474 0 : if (r->datatype) {
2475 0 : ndr_print_string(ndr, "datatype", r->datatype);
2476 : }
2477 0 : ndr->depth--;
2478 0 : ndr->flags = _flags_save_string;
2479 : }
2480 : {
2481 0 : libndr_flags _flags_save_string = ndr->flags;
2482 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2483 0 : ndr_print_ptr(ndr, "parameters", r->parameters);
2484 0 : ndr->depth++;
2485 0 : if (r->parameters) {
2486 0 : ndr_print_string(ndr, "parameters", r->parameters);
2487 : }
2488 0 : ndr->depth--;
2489 0 : ndr->flags = _flags_save_string;
2490 : }
2491 : {
2492 0 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
2493 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2494 0 : ndr_print_ptr(ndr, "secdesc", r->secdesc);
2495 0 : ndr->depth++;
2496 0 : if (r->secdesc) {
2497 0 : ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
2498 : }
2499 0 : ndr->depth--;
2500 0 : ndr->flags = _flags_save_spoolss_security_descriptor;
2501 : }
2502 0 : ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2503 0 : ndr_print_uint32(ndr, "priority", r->priority);
2504 0 : ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
2505 0 : ndr_print_uint32(ndr, "starttime", r->starttime);
2506 0 : ndr_print_uint32(ndr, "untiltime", r->untiltime);
2507 0 : ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2508 0 : ndr_print_uint32(ndr, "cjobs", r->cjobs);
2509 0 : ndr_print_uint32(ndr, "averageppm", r->averageppm);
2510 0 : ndr->depth--;
2511 : }
2512 :
2513 0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, libndr_flags flags)
2514 : {
2515 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2);
2516 : }
2517 :
2518 552 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrinterInfo3 *r)
2519 : {
2520 552 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2521 552 : if (ndr_flags & NDR_SCALARS) {
2522 276 : NDR_CHECK(ndr_push_align(ndr, 5));
2523 : {
2524 276 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
2525 276 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2526 276 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2527 276 : ndr->flags = _flags_save_spoolss_security_descriptor;
2528 : }
2529 276 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2530 : }
2531 552 : if (ndr_flags & NDR_BUFFERS) {
2532 : {
2533 276 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
2534 276 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2535 276 : if (r->secdesc) {
2536 276 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
2537 : {
2538 0 : struct ndr_push *_ndr_secdesc;
2539 276 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2540 276 : NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2541 276 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2542 : }
2543 276 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
2544 : }
2545 276 : ndr->flags = _flags_save_spoolss_security_descriptor;
2546 : }
2547 : }
2548 552 : return NDR_ERR_SUCCESS;
2549 : }
2550 :
2551 184 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterInfo3 *r)
2552 : {
2553 0 : uint32_t _ptr_secdesc;
2554 184 : TALLOC_CTX *_mem_save_secdesc_0 = NULL;
2555 184 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2556 184 : if (ndr_flags & NDR_SCALARS) {
2557 92 : NDR_CHECK(ndr_pull_align(ndr, 5));
2558 : {
2559 92 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
2560 92 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2561 92 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
2562 92 : if (_ptr_secdesc) {
2563 92 : NDR_PULL_ALLOC(ndr, r->secdesc);
2564 92 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
2565 : } else {
2566 0 : r->secdesc = NULL;
2567 : }
2568 92 : ndr->flags = _flags_save_spoolss_security_descriptor;
2569 : }
2570 92 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2571 : }
2572 184 : if (ndr_flags & NDR_BUFFERS) {
2573 : {
2574 92 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
2575 92 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2576 92 : if (r->secdesc) {
2577 0 : uint32_t _relative_save_offset;
2578 92 : _relative_save_offset = ndr->offset;
2579 92 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2580 92 : _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2581 92 : NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2582 : {
2583 0 : struct ndr_pull *_ndr_secdesc;
2584 92 : ssize_t sub_size = -1;
2585 92 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, sub_size));
2586 92 : NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2587 92 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, sub_size));
2588 : }
2589 92 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2590 92 : if (ndr->offset > ndr->relative_highest_offset) {
2591 92 : ndr->relative_highest_offset = ndr->offset;
2592 : }
2593 92 : ndr->offset = _relative_save_offset;
2594 : }
2595 92 : ndr->flags = _flags_save_spoolss_security_descriptor;
2596 : }
2597 : }
2598 184 : return NDR_ERR_SUCCESS;
2599 : }
2600 :
2601 0 : static void ndr_print_flags_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterInfo3 *r)
2602 : {
2603 0 : ndr_print_spoolss_PrinterInfo3(ndr, name, r);
2604 0 : }
2605 :
2606 0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
2607 : {
2608 0 : ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
2609 0 : if (r == NULL) { ndr_print_null(ndr); return; }
2610 0 : ndr->depth++;
2611 : {
2612 0 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
2613 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2614 0 : ndr_print_ptr(ndr, "secdesc", r->secdesc);
2615 0 : ndr->depth++;
2616 0 : if (r->secdesc) {
2617 0 : ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
2618 : }
2619 0 : ndr->depth--;
2620 0 : ndr->flags = _flags_save_spoolss_security_descriptor;
2621 : }
2622 0 : ndr->depth--;
2623 : }
2624 :
2625 0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, libndr_flags flags)
2626 : {
2627 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3);
2628 : }
2629 :
2630 504 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrinterInfo4 *r)
2631 : {
2632 504 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2633 504 : if (ndr_flags & NDR_SCALARS) {
2634 252 : NDR_CHECK(ndr_push_align(ndr, 5));
2635 : {
2636 252 : libndr_flags _flags_save_string = ndr->flags;
2637 252 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2638 252 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2639 252 : ndr->flags = _flags_save_string;
2640 : }
2641 : {
2642 252 : libndr_flags _flags_save_string = ndr->flags;
2643 252 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2644 252 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
2645 252 : ndr->flags = _flags_save_string;
2646 : }
2647 252 : NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2648 252 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2649 : }
2650 504 : if (ndr_flags & NDR_BUFFERS) {
2651 : {
2652 252 : libndr_flags _flags_save_string = ndr->flags;
2653 252 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2654 252 : if (r->printername) {
2655 252 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
2656 252 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2657 252 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
2658 : }
2659 252 : ndr->flags = _flags_save_string;
2660 : }
2661 : {
2662 252 : libndr_flags _flags_save_string = ndr->flags;
2663 252 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2664 252 : if (r->servername) {
2665 12 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
2666 12 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
2667 12 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
2668 : }
2669 252 : ndr->flags = _flags_save_string;
2670 : }
2671 : }
2672 504 : return NDR_ERR_SUCCESS;
2673 : }
2674 :
2675 168 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterInfo4 *r)
2676 : {
2677 0 : uint32_t _ptr_printername;
2678 168 : TALLOC_CTX *_mem_save_printername_0 = NULL;
2679 0 : uint32_t _ptr_servername;
2680 168 : TALLOC_CTX *_mem_save_servername_0 = NULL;
2681 168 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2682 168 : if (ndr_flags & NDR_SCALARS) {
2683 84 : NDR_CHECK(ndr_pull_align(ndr, 5));
2684 : {
2685 84 : libndr_flags _flags_save_string = ndr->flags;
2686 84 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2687 84 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2688 84 : if (_ptr_printername) {
2689 84 : NDR_PULL_ALLOC(ndr, r->printername);
2690 84 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2691 : } else {
2692 0 : r->printername = NULL;
2693 : }
2694 84 : ndr->flags = _flags_save_string;
2695 : }
2696 : {
2697 84 : libndr_flags _flags_save_string = ndr->flags;
2698 84 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2699 84 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
2700 84 : if (_ptr_servername) {
2701 4 : NDR_PULL_ALLOC(ndr, r->servername);
2702 4 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
2703 : } else {
2704 80 : r->servername = NULL;
2705 : }
2706 84 : ndr->flags = _flags_save_string;
2707 : }
2708 84 : NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2709 84 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2710 : }
2711 168 : if (ndr_flags & NDR_BUFFERS) {
2712 : {
2713 84 : libndr_flags _flags_save_string = ndr->flags;
2714 84 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2715 84 : if (r->printername) {
2716 0 : uint32_t _relative_save_offset;
2717 84 : _relative_save_offset = ndr->offset;
2718 84 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2719 84 : _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2720 84 : NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2721 84 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2722 84 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2723 84 : if (ndr->offset > ndr->relative_highest_offset) {
2724 52 : ndr->relative_highest_offset = ndr->offset;
2725 : }
2726 84 : ndr->offset = _relative_save_offset;
2727 : }
2728 84 : ndr->flags = _flags_save_string;
2729 : }
2730 : {
2731 84 : libndr_flags _flags_save_string = ndr->flags;
2732 84 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2733 84 : if (r->servername) {
2734 0 : uint32_t _relative_save_offset;
2735 4 : _relative_save_offset = ndr->offset;
2736 4 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
2737 4 : _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2738 4 : NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
2739 4 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
2740 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
2741 4 : if (ndr->offset > ndr->relative_highest_offset) {
2742 0 : ndr->relative_highest_offset = ndr->offset;
2743 : }
2744 4 : ndr->offset = _relative_save_offset;
2745 : }
2746 84 : ndr->flags = _flags_save_string;
2747 : }
2748 : }
2749 168 : return NDR_ERR_SUCCESS;
2750 : }
2751 :
2752 0 : static void ndr_print_flags_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterInfo4 *r)
2753 : {
2754 0 : ndr_print_spoolss_PrinterInfo4(ndr, name, r);
2755 0 : }
2756 :
2757 0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
2758 : {
2759 0 : ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
2760 0 : if (r == NULL) { ndr_print_null(ndr); return; }
2761 0 : ndr->depth++;
2762 : {
2763 0 : libndr_flags _flags_save_string = ndr->flags;
2764 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2765 0 : ndr_print_ptr(ndr, "printername", r->printername);
2766 0 : ndr->depth++;
2767 0 : if (r->printername) {
2768 0 : ndr_print_string(ndr, "printername", r->printername);
2769 : }
2770 0 : ndr->depth--;
2771 0 : ndr->flags = _flags_save_string;
2772 : }
2773 : {
2774 0 : libndr_flags _flags_save_string = ndr->flags;
2775 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2776 0 : ndr_print_ptr(ndr, "servername", r->servername);
2777 0 : ndr->depth++;
2778 0 : if (r->servername) {
2779 0 : ndr_print_string(ndr, "servername", r->servername);
2780 : }
2781 0 : ndr->depth--;
2782 0 : ndr->flags = _flags_save_string;
2783 : }
2784 0 : ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2785 0 : ndr->depth--;
2786 : }
2787 :
2788 0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, libndr_flags flags)
2789 : {
2790 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4);
2791 : }
2792 :
2793 504 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrinterInfo5 *r)
2794 : {
2795 504 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2796 504 : if (ndr_flags & NDR_SCALARS) {
2797 252 : NDR_CHECK(ndr_push_align(ndr, 5));
2798 : {
2799 252 : libndr_flags _flags_save_string = ndr->flags;
2800 252 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2801 252 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2802 252 : ndr->flags = _flags_save_string;
2803 : }
2804 : {
2805 252 : libndr_flags _flags_save_string = ndr->flags;
2806 252 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2807 252 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
2808 252 : ndr->flags = _flags_save_string;
2809 : }
2810 252 : NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2811 252 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
2812 252 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
2813 252 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2814 : }
2815 504 : if (ndr_flags & NDR_BUFFERS) {
2816 : {
2817 252 : libndr_flags _flags_save_string = ndr->flags;
2818 252 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2819 252 : if (r->printername) {
2820 252 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
2821 252 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2822 252 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
2823 : }
2824 252 : ndr->flags = _flags_save_string;
2825 : }
2826 : {
2827 252 : libndr_flags _flags_save_string = ndr->flags;
2828 252 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2829 252 : if (r->portname) {
2830 252 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->portname));
2831 252 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
2832 252 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->portname));
2833 : }
2834 252 : ndr->flags = _flags_save_string;
2835 : }
2836 : }
2837 504 : return NDR_ERR_SUCCESS;
2838 : }
2839 :
2840 168 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterInfo5 *r)
2841 : {
2842 0 : uint32_t _ptr_printername;
2843 168 : TALLOC_CTX *_mem_save_printername_0 = NULL;
2844 0 : uint32_t _ptr_portname;
2845 168 : TALLOC_CTX *_mem_save_portname_0 = NULL;
2846 168 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2847 168 : if (ndr_flags & NDR_SCALARS) {
2848 84 : NDR_CHECK(ndr_pull_align(ndr, 5));
2849 : {
2850 84 : libndr_flags _flags_save_string = ndr->flags;
2851 84 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2852 84 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2853 84 : if (_ptr_printername) {
2854 84 : NDR_PULL_ALLOC(ndr, r->printername);
2855 84 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2856 : } else {
2857 0 : r->printername = NULL;
2858 : }
2859 84 : ndr->flags = _flags_save_string;
2860 : }
2861 : {
2862 84 : libndr_flags _flags_save_string = ndr->flags;
2863 84 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2864 84 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
2865 84 : if (_ptr_portname) {
2866 84 : NDR_PULL_ALLOC(ndr, r->portname);
2867 84 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
2868 : } else {
2869 0 : r->portname = NULL;
2870 : }
2871 84 : ndr->flags = _flags_save_string;
2872 : }
2873 84 : NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2874 84 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
2875 84 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
2876 84 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2877 : }
2878 168 : if (ndr_flags & NDR_BUFFERS) {
2879 : {
2880 84 : libndr_flags _flags_save_string = ndr->flags;
2881 84 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2882 84 : if (r->printername) {
2883 0 : uint32_t _relative_save_offset;
2884 84 : _relative_save_offset = ndr->offset;
2885 84 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2886 84 : _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2887 84 : NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2888 84 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2889 84 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2890 84 : if (ndr->offset > ndr->relative_highest_offset) {
2891 52 : ndr->relative_highest_offset = ndr->offset;
2892 : }
2893 84 : ndr->offset = _relative_save_offset;
2894 : }
2895 84 : ndr->flags = _flags_save_string;
2896 : }
2897 : {
2898 84 : libndr_flags _flags_save_string = ndr->flags;
2899 84 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2900 84 : if (r->portname) {
2901 0 : uint32_t _relative_save_offset;
2902 84 : _relative_save_offset = ndr->offset;
2903 84 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2904 84 : _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2905 84 : NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2906 84 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2907 84 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2908 84 : if (ndr->offset > ndr->relative_highest_offset) {
2909 0 : ndr->relative_highest_offset = ndr->offset;
2910 : }
2911 84 : ndr->offset = _relative_save_offset;
2912 : }
2913 84 : ndr->flags = _flags_save_string;
2914 : }
2915 : }
2916 168 : return NDR_ERR_SUCCESS;
2917 : }
2918 :
2919 0 : static void ndr_print_flags_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterInfo5 *r)
2920 : {
2921 0 : ndr_print_spoolss_PrinterInfo5(ndr, name, r);
2922 0 : }
2923 :
2924 0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
2925 : {
2926 0 : ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
2927 0 : if (r == NULL) { ndr_print_null(ndr); return; }
2928 0 : ndr->depth++;
2929 : {
2930 0 : libndr_flags _flags_save_string = ndr->flags;
2931 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2932 0 : ndr_print_ptr(ndr, "printername", r->printername);
2933 0 : ndr->depth++;
2934 0 : if (r->printername) {
2935 0 : ndr_print_string(ndr, "printername", r->printername);
2936 : }
2937 0 : ndr->depth--;
2938 0 : ndr->flags = _flags_save_string;
2939 : }
2940 : {
2941 0 : libndr_flags _flags_save_string = ndr->flags;
2942 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2943 0 : ndr_print_ptr(ndr, "portname", r->portname);
2944 0 : ndr->depth++;
2945 0 : if (r->portname) {
2946 0 : ndr_print_string(ndr, "portname", r->portname);
2947 : }
2948 0 : ndr->depth--;
2949 0 : ndr->flags = _flags_save_string;
2950 : }
2951 0 : ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2952 0 : ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2953 0 : ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2954 0 : ndr->depth--;
2955 : }
2956 :
2957 0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, libndr_flags flags)
2958 : {
2959 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5);
2960 : }
2961 :
2962 132 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrinterInfo6 *r)
2963 : {
2964 132 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2965 132 : if (ndr_flags & NDR_SCALARS) {
2966 132 : NDR_CHECK(ndr_push_align(ndr, 4));
2967 132 : NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2968 132 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2969 : }
2970 132 : if (ndr_flags & NDR_BUFFERS) {
2971 0 : }
2972 132 : return NDR_ERR_SUCCESS;
2973 : }
2974 :
2975 44 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterInfo6 *r)
2976 : {
2977 44 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2978 44 : if (ndr_flags & NDR_SCALARS) {
2979 44 : NDR_CHECK(ndr_pull_align(ndr, 4));
2980 44 : NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2981 44 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2982 : }
2983 44 : if (ndr_flags & NDR_BUFFERS) {
2984 0 : }
2985 44 : return NDR_ERR_SUCCESS;
2986 : }
2987 :
2988 0 : static void ndr_print_flags_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterInfo6 *r)
2989 : {
2990 0 : ndr_print_spoolss_PrinterInfo6(ndr, name, r);
2991 0 : }
2992 :
2993 0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2994 : {
2995 0 : ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2996 0 : if (r == NULL) { ndr_print_null(ndr); return; }
2997 0 : ndr->depth++;
2998 0 : ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2999 0 : ndr->depth--;
3000 : }
3001 :
3002 0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, libndr_flags flags)
3003 : {
3004 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6);
3005 : }
3006 :
3007 176 : static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
3008 : {
3009 176 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3010 176 : return NDR_ERR_SUCCESS;
3011 : }
3012 :
3013 64 : static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
3014 : {
3015 0 : uint32_t v;
3016 64 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3017 64 : *r = v;
3018 64 : return NDR_ERR_SUCCESS;
3019 : }
3020 :
3021 0 : _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
3022 : {
3023 0 : ndr_print_uint32(ndr, name, r);
3024 0 : ndr->depth++;
3025 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
3026 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
3027 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
3028 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
3029 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
3030 0 : ndr->depth--;
3031 0 : }
3032 :
3033 336 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrinterInfo7 *r)
3034 : {
3035 336 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3036 336 : if (ndr_flags & NDR_SCALARS) {
3037 168 : NDR_CHECK(ndr_push_align(ndr, 5));
3038 : {
3039 168 : libndr_flags _flags_save_string = ndr->flags;
3040 168 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3041 168 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
3042 168 : ndr->flags = _flags_save_string;
3043 : }
3044 168 : NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
3045 168 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3046 : }
3047 336 : if (ndr_flags & NDR_BUFFERS) {
3048 : {
3049 168 : libndr_flags _flags_save_string = ndr->flags;
3050 168 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3051 168 : if (r->guid) {
3052 168 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->guid));
3053 168 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
3054 168 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->guid));
3055 : }
3056 168 : ndr->flags = _flags_save_string;
3057 : }
3058 : }
3059 336 : return NDR_ERR_SUCCESS;
3060 : }
3061 :
3062 112 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterInfo7 *r)
3063 : {
3064 0 : uint32_t _ptr_guid;
3065 112 : TALLOC_CTX *_mem_save_guid_0 = NULL;
3066 112 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3067 112 : if (ndr_flags & NDR_SCALARS) {
3068 56 : NDR_CHECK(ndr_pull_align(ndr, 5));
3069 : {
3070 56 : libndr_flags _flags_save_string = ndr->flags;
3071 56 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3072 56 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
3073 56 : if (_ptr_guid) {
3074 56 : NDR_PULL_ALLOC(ndr, r->guid);
3075 56 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
3076 : } else {
3077 0 : r->guid = NULL;
3078 : }
3079 56 : ndr->flags = _flags_save_string;
3080 : }
3081 56 : NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
3082 56 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3083 : }
3084 112 : if (ndr_flags & NDR_BUFFERS) {
3085 : {
3086 56 : libndr_flags _flags_save_string = ndr->flags;
3087 56 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3088 56 : if (r->guid) {
3089 0 : uint32_t _relative_save_offset;
3090 56 : _relative_save_offset = ndr->offset;
3091 56 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
3092 56 : _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
3093 56 : NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
3094 56 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
3095 56 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
3096 56 : if (ndr->offset > ndr->relative_highest_offset) {
3097 56 : ndr->relative_highest_offset = ndr->offset;
3098 : }
3099 56 : ndr->offset = _relative_save_offset;
3100 : }
3101 56 : ndr->flags = _flags_save_string;
3102 : }
3103 : }
3104 112 : return NDR_ERR_SUCCESS;
3105 : }
3106 :
3107 0 : static void ndr_print_flags_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterInfo7 *r)
3108 : {
3109 0 : ndr_print_spoolss_PrinterInfo7(ndr, name, r);
3110 0 : }
3111 :
3112 0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
3113 : {
3114 0 : ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
3115 0 : if (r == NULL) { ndr_print_null(ndr); return; }
3116 0 : ndr->depth++;
3117 : {
3118 0 : libndr_flags _flags_save_string = ndr->flags;
3119 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3120 0 : ndr_print_ptr(ndr, "guid", r->guid);
3121 0 : ndr->depth++;
3122 0 : if (r->guid) {
3123 0 : ndr_print_string(ndr, "guid", r->guid);
3124 : }
3125 0 : ndr->depth--;
3126 0 : ndr->flags = _flags_save_string;
3127 : }
3128 0 : ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
3129 0 : ndr->depth--;
3130 : }
3131 :
3132 0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, libndr_flags flags)
3133 : {
3134 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7);
3135 : }
3136 :
3137 4992 : static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DeviceModeInfo *r)
3138 : {
3139 4992 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3140 4992 : if (ndr_flags & NDR_SCALARS) {
3141 2496 : NDR_CHECK(ndr_push_align(ndr, 5));
3142 : {
3143 2496 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
3144 2496 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3145 2496 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3146 2496 : ndr->flags = _flags_save_spoolss_DeviceMode;
3147 : }
3148 2496 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3149 : }
3150 4992 : if (ndr_flags & NDR_BUFFERS) {
3151 : {
3152 2496 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
3153 2496 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3154 2496 : if (r->devmode) {
3155 2484 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
3156 : {
3157 0 : struct ndr_push *_ndr_devmode;
3158 2484 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3159 2484 : NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3160 2484 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
3161 : }
3162 2484 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
3163 : }
3164 2496 : ndr->flags = _flags_save_spoolss_DeviceMode;
3165 : }
3166 : }
3167 4992 : return NDR_ERR_SUCCESS;
3168 : }
3169 :
3170 1664 : static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DeviceModeInfo *r)
3171 : {
3172 0 : uint32_t _ptr_devmode;
3173 1664 : TALLOC_CTX *_mem_save_devmode_0 = NULL;
3174 1664 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3175 1664 : if (ndr_flags & NDR_SCALARS) {
3176 832 : NDR_CHECK(ndr_pull_align(ndr, 5));
3177 : {
3178 832 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
3179 832 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3180 832 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3181 832 : if (_ptr_devmode) {
3182 828 : NDR_PULL_ALLOC(ndr, r->devmode);
3183 828 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3184 : } else {
3185 4 : r->devmode = NULL;
3186 : }
3187 832 : ndr->flags = _flags_save_spoolss_DeviceMode;
3188 : }
3189 832 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3190 : }
3191 1664 : if (ndr_flags & NDR_BUFFERS) {
3192 : {
3193 832 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
3194 832 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3195 832 : if (r->devmode) {
3196 0 : uint32_t _relative_save_offset;
3197 828 : _relative_save_offset = ndr->offset;
3198 828 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
3199 828 : _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3200 828 : NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3201 : {
3202 0 : struct ndr_pull *_ndr_devmode;
3203 828 : ssize_t sub_size = -1;
3204 828 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, sub_size));
3205 828 : NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3206 828 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, sub_size));
3207 : }
3208 828 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3209 828 : if (ndr->offset > ndr->relative_highest_offset) {
3210 828 : ndr->relative_highest_offset = ndr->offset;
3211 : }
3212 828 : ndr->offset = _relative_save_offset;
3213 : }
3214 832 : ndr->flags = _flags_save_spoolss_DeviceMode;
3215 : }
3216 : }
3217 1664 : return NDR_ERR_SUCCESS;
3218 : }
3219 :
3220 0 : _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
3221 : {
3222 0 : ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
3223 0 : if (r == NULL) { ndr_print_null(ndr); return; }
3224 0 : ndr->depth++;
3225 : {
3226 0 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
3227 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3228 0 : ndr_print_ptr(ndr, "devmode", r->devmode);
3229 0 : ndr->depth++;
3230 0 : if (r->devmode) {
3231 0 : ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3232 : }
3233 0 : ndr->depth--;
3234 0 : ndr->flags = _flags_save_spoolss_DeviceMode;
3235 : }
3236 0 : ndr->depth--;
3237 : }
3238 :
3239 8108 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_PrinterInfo *r)
3240 : {
3241 8108 : uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
3242 0 : uint32_t level;
3243 : {
3244 8108 : libndr_flags _flags_save_UNION = ndr->flags;
3245 8108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
3246 8108 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3247 8108 : if (ndr_flags & NDR_SCALARS) {
3248 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
3249 6668 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
3250 6668 : NDR_CHECK(ndr_push_union_align(ndr, 5));
3251 6668 : switch (level) {
3252 416 : case 0: {
3253 416 : NDR_CHECK(ndr_push_align(ndr, 5));
3254 416 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3255 416 : NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
3256 416 : break; }
3257 :
3258 792 : case 1: {
3259 792 : NDR_CHECK(ndr_push_align(ndr, 5));
3260 792 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3261 792 : NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
3262 792 : break; }
3263 :
3264 1884 : case 2: {
3265 1884 : NDR_CHECK(ndr_push_align(ndr, 5));
3266 1884 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3267 1884 : NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
3268 1884 : break; }
3269 :
3270 276 : case 3: {
3271 276 : NDR_CHECK(ndr_push_align(ndr, 5));
3272 276 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3273 276 : NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
3274 276 : break; }
3275 :
3276 252 : case 4: {
3277 252 : NDR_CHECK(ndr_push_align(ndr, 5));
3278 252 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3279 252 : NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
3280 252 : break; }
3281 :
3282 252 : case 5: {
3283 252 : NDR_CHECK(ndr_push_align(ndr, 5));
3284 252 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3285 252 : NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
3286 252 : break; }
3287 :
3288 132 : case 6: {
3289 132 : NDR_CHECK(ndr_push_align(ndr, 4));
3290 132 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3291 132 : NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
3292 132 : break; }
3293 :
3294 168 : case 7: {
3295 168 : NDR_CHECK(ndr_push_align(ndr, 5));
3296 168 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3297 168 : NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
3298 168 : break; }
3299 :
3300 2496 : case 8: {
3301 2496 : NDR_CHECK(ndr_push_align(ndr, 5));
3302 2496 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3303 2496 : NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
3304 2496 : break; }
3305 :
3306 0 : case 9: {
3307 0 : NDR_CHECK(ndr_push_align(ndr, 5));
3308 0 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3309 0 : NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
3310 0 : break; }
3311 :
3312 0 : default: {
3313 0 : break; }
3314 :
3315 : }
3316 : }
3317 8108 : if (ndr_flags & NDR_BUFFERS) {
3318 6668 : if (!(ndr_flags & NDR_SCALARS)) {
3319 : /* We didn't get it above, and the token is not needed after this. */
3320 1440 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
3321 : }
3322 6668 : NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
3323 6668 : switch (level) {
3324 416 : case 0:
3325 416 : NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
3326 416 : break;
3327 :
3328 792 : case 1:
3329 792 : NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
3330 792 : break;
3331 :
3332 1884 : case 2:
3333 1884 : NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
3334 1884 : break;
3335 :
3336 276 : case 3:
3337 276 : NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
3338 276 : break;
3339 :
3340 252 : case 4:
3341 252 : NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
3342 252 : break;
3343 :
3344 252 : case 5:
3345 252 : NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
3346 252 : break;
3347 :
3348 132 : case 6:
3349 132 : break;
3350 :
3351 168 : case 7:
3352 168 : NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
3353 168 : break;
3354 :
3355 2496 : case 8:
3356 2496 : NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
3357 2496 : break;
3358 :
3359 0 : case 9:
3360 0 : NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
3361 0 : break;
3362 :
3363 0 : default:
3364 0 : break;
3365 :
3366 : }
3367 : }
3368 8108 : ndr->flags = _flags_save_UNION;
3369 : }
3370 8108 : ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
3371 8108 : return NDR_ERR_SUCCESS;
3372 : }
3373 :
3374 2668 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_PrinterInfo *r)
3375 : {
3376 2668 : uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
3377 0 : uint32_t level;
3378 : {
3379 2668 : libndr_flags _flags_save_UNION = ndr->flags;
3380 2668 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
3381 2668 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3382 2668 : if (ndr_flags & NDR_SCALARS) {
3383 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
3384 2208 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
3385 2208 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
3386 2208 : switch (level) {
3387 140 : case 0: {
3388 140 : NDR_CHECK(ndr_pull_align(ndr, 5));
3389 140 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3390 140 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
3391 140 : break; }
3392 :
3393 264 : case 1: {
3394 264 : NDR_CHECK(ndr_pull_align(ndr, 5));
3395 264 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3396 264 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
3397 264 : break; }
3398 :
3399 612 : case 2: {
3400 612 : NDR_CHECK(ndr_pull_align(ndr, 5));
3401 612 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3402 612 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
3403 612 : break; }
3404 :
3405 92 : case 3: {
3406 92 : NDR_CHECK(ndr_pull_align(ndr, 5));
3407 92 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3408 92 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
3409 92 : break; }
3410 :
3411 84 : case 4: {
3412 84 : NDR_CHECK(ndr_pull_align(ndr, 5));
3413 84 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3414 84 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
3415 84 : break; }
3416 :
3417 84 : case 5: {
3418 84 : NDR_CHECK(ndr_pull_align(ndr, 5));
3419 84 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3420 84 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
3421 84 : break; }
3422 :
3423 44 : case 6: {
3424 44 : NDR_CHECK(ndr_pull_align(ndr, 4));
3425 44 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3426 44 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
3427 44 : break; }
3428 :
3429 56 : case 7: {
3430 56 : NDR_CHECK(ndr_pull_align(ndr, 5));
3431 56 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3432 56 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
3433 56 : break; }
3434 :
3435 832 : case 8: {
3436 832 : NDR_CHECK(ndr_pull_align(ndr, 5));
3437 832 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3438 832 : NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
3439 832 : break; }
3440 :
3441 0 : case 9: {
3442 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
3443 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3444 0 : NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
3445 0 : break; }
3446 :
3447 0 : default: {
3448 0 : break; }
3449 :
3450 : }
3451 : }
3452 2668 : if (ndr_flags & NDR_BUFFERS) {
3453 2208 : if (!(ndr_flags & NDR_SCALARS)) {
3454 : /* We didn't get it above, and the token is not needed after this. */
3455 460 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
3456 : }
3457 2208 : switch (level) {
3458 140 : case 0:
3459 140 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3460 140 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
3461 140 : break;
3462 :
3463 264 : case 1:
3464 264 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3465 264 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
3466 264 : break;
3467 :
3468 612 : case 2:
3469 612 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3470 612 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
3471 612 : break;
3472 :
3473 92 : case 3:
3474 92 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3475 92 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
3476 92 : break;
3477 :
3478 84 : case 4:
3479 84 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3480 84 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
3481 84 : break;
3482 :
3483 84 : case 5:
3484 84 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3485 84 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
3486 84 : break;
3487 :
3488 44 : case 6:
3489 44 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3490 44 : break;
3491 :
3492 56 : case 7:
3493 56 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3494 56 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
3495 56 : break;
3496 :
3497 832 : case 8:
3498 832 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3499 832 : NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
3500 832 : break;
3501 :
3502 0 : case 9:
3503 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3504 0 : NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
3505 0 : break;
3506 :
3507 0 : default:
3508 0 : break;
3509 :
3510 : }
3511 : }
3512 2668 : ndr->flags = _flags_save_UNION;
3513 : }
3514 2668 : ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
3515 2668 : return NDR_ERR_SUCCESS;
3516 : }
3517 :
3518 0 : _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
3519 : {
3520 0 : uint32_t level;
3521 : {
3522 0 : libndr_flags _flags_save_UNION = ndr->flags;
3523 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
3524 0 : level = ndr_print_steal_switch_value(ndr, r);
3525 0 : ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
3526 0 : switch (level) {
3527 0 : case 0:
3528 0 : ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
3529 0 : break;
3530 :
3531 0 : case 1:
3532 0 : ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
3533 0 : break;
3534 :
3535 0 : case 2:
3536 0 : ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
3537 0 : break;
3538 :
3539 0 : case 3:
3540 0 : ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
3541 0 : break;
3542 :
3543 0 : case 4:
3544 0 : ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
3545 0 : break;
3546 :
3547 0 : case 5:
3548 0 : ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
3549 0 : break;
3550 :
3551 0 : case 6:
3552 0 : ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
3553 0 : break;
3554 :
3555 0 : case 7:
3556 0 : ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
3557 0 : break;
3558 :
3559 0 : case 8:
3560 0 : ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
3561 0 : break;
3562 :
3563 0 : case 9:
3564 0 : ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
3565 0 : break;
3566 :
3567 0 : default:
3568 0 : break;
3569 :
3570 : }
3571 0 : ndr->flags = _flags_save_UNION;
3572 : }
3573 0 : }
3574 :
3575 3480 : _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, libndr_flags flags)
3576 : {
3577 3480 : flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
3578 3480 : return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo);
3579 : }
3580 :
3581 1668 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DevmodeContainer *r)
3582 : {
3583 1668 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3584 1668 : if (ndr_flags & NDR_SCALARS) {
3585 1668 : NDR_CHECK(ndr_push_align(ndr, 5));
3586 1668 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->flags)));
3587 1668 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3588 1668 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3589 : }
3590 1668 : if (ndr_flags & NDR_BUFFERS) {
3591 1668 : if (r->devmode) {
3592 : {
3593 0 : struct ndr_push *_ndr_devmode;
3594 312 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->flags)));
3595 312 : NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3596 312 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->flags)));
3597 : }
3598 : }
3599 : }
3600 1668 : return NDR_ERR_SUCCESS;
3601 : }
3602 :
3603 1688 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DevmodeContainer *r)
3604 : {
3605 20 : uint32_t _ptr_devmode;
3606 1688 : TALLOC_CTX *_mem_save_devmode_0 = NULL;
3607 1688 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3608 1688 : if (ndr_flags & NDR_SCALARS) {
3609 1688 : NDR_CHECK(ndr_pull_align(ndr, 5));
3610 1688 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
3611 1688 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3612 1688 : if (_ptr_devmode) {
3613 316 : NDR_PULL_ALLOC(ndr, r->devmode);
3614 : } else {
3615 1372 : r->devmode = NULL;
3616 : }
3617 1688 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3618 : }
3619 1688 : if (ndr_flags & NDR_BUFFERS) {
3620 1688 : if (r->devmode) {
3621 316 : _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3622 316 : NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3623 : {
3624 4 : struct ndr_pull *_ndr_devmode;
3625 316 : ssize_t sub_size = r->_ndr_size;
3626 316 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, sub_size));
3627 316 : NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3628 316 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, sub_size));
3629 : }
3630 316 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3631 : }
3632 : }
3633 1668 : return NDR_ERR_SUCCESS;
3634 : }
3635 :
3636 0 : static void ndr_print_flags_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DevmodeContainer *r)
3637 : {
3638 0 : ndr_print_spoolss_DevmodeContainer(ndr, name, r);
3639 0 : }
3640 :
3641 20 : _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
3642 : {
3643 20 : ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
3644 20 : if (r == NULL) { ndr_print_null(ndr); return; }
3645 20 : ndr->depth++;
3646 20 : ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?_ndr_size_spoolss_DeviceMode(r->devmode, ndr->flags):r->_ndr_size);
3647 20 : ndr_print_ptr(ndr, "devmode", r->devmode);
3648 20 : ndr->depth++;
3649 20 : if (r->devmode) {
3650 4 : ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3651 : }
3652 20 : ndr->depth--;
3653 20 : ndr->depth--;
3654 : }
3655 :
3656 960 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_JobInfo1 *r)
3657 : {
3658 960 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3659 960 : if (ndr_flags & NDR_SCALARS) {
3660 480 : NDR_CHECK(ndr_push_align(ndr, 5));
3661 480 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3662 : {
3663 480 : libndr_flags _flags_save_string = ndr->flags;
3664 480 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3665 480 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3666 480 : ndr->flags = _flags_save_string;
3667 : }
3668 : {
3669 480 : libndr_flags _flags_save_string = ndr->flags;
3670 480 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3671 480 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3672 480 : ndr->flags = _flags_save_string;
3673 : }
3674 : {
3675 480 : libndr_flags _flags_save_string = ndr->flags;
3676 480 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3677 480 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3678 480 : ndr->flags = _flags_save_string;
3679 : }
3680 : {
3681 480 : libndr_flags _flags_save_string = ndr->flags;
3682 480 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3683 480 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3684 480 : ndr->flags = _flags_save_string;
3685 : }
3686 : {
3687 480 : libndr_flags _flags_save_string = ndr->flags;
3688 480 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3689 480 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3690 480 : ndr->flags = _flags_save_string;
3691 : }
3692 : {
3693 480 : libndr_flags _flags_save_string = ndr->flags;
3694 480 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3695 480 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3696 480 : ndr->flags = _flags_save_string;
3697 : }
3698 480 : NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3699 480 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3700 480 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3701 480 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3702 480 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3703 480 : NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3704 480 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3705 : }
3706 960 : if (ndr_flags & NDR_BUFFERS) {
3707 : {
3708 480 : libndr_flags _flags_save_string = ndr->flags;
3709 480 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3710 480 : if (r->printer_name) {
3711 480 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3712 480 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3713 480 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3714 : }
3715 480 : ndr->flags = _flags_save_string;
3716 : }
3717 : {
3718 480 : libndr_flags _flags_save_string = ndr->flags;
3719 480 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3720 480 : if (r->server_name) {
3721 480 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3722 480 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3723 480 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
3724 : }
3725 480 : ndr->flags = _flags_save_string;
3726 : }
3727 : {
3728 480 : libndr_flags _flags_save_string = ndr->flags;
3729 480 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3730 480 : if (r->user_name) {
3731 480 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3732 480 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3733 480 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
3734 : }
3735 480 : ndr->flags = _flags_save_string;
3736 : }
3737 : {
3738 480 : libndr_flags _flags_save_string = ndr->flags;
3739 480 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3740 480 : if (r->document_name) {
3741 480 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3742 480 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3743 480 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
3744 : }
3745 480 : ndr->flags = _flags_save_string;
3746 : }
3747 : {
3748 480 : libndr_flags _flags_save_string = ndr->flags;
3749 480 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3750 480 : if (r->data_type) {
3751 480 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3752 480 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3753 480 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
3754 : }
3755 480 : ndr->flags = _flags_save_string;
3756 : }
3757 : {
3758 480 : libndr_flags _flags_save_string = ndr->flags;
3759 480 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3760 480 : if (r->text_status) {
3761 480 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3762 480 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3763 480 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3764 : }
3765 480 : ndr->flags = _flags_save_string;
3766 : }
3767 : }
3768 960 : return NDR_ERR_SUCCESS;
3769 : }
3770 :
3771 320 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_JobInfo1 *r)
3772 : {
3773 0 : uint32_t _ptr_printer_name;
3774 320 : TALLOC_CTX *_mem_save_printer_name_0 = NULL;
3775 0 : uint32_t _ptr_server_name;
3776 320 : TALLOC_CTX *_mem_save_server_name_0 = NULL;
3777 0 : uint32_t _ptr_user_name;
3778 320 : TALLOC_CTX *_mem_save_user_name_0 = NULL;
3779 0 : uint32_t _ptr_document_name;
3780 320 : TALLOC_CTX *_mem_save_document_name_0 = NULL;
3781 0 : uint32_t _ptr_data_type;
3782 320 : TALLOC_CTX *_mem_save_data_type_0 = NULL;
3783 0 : uint32_t _ptr_text_status;
3784 320 : TALLOC_CTX *_mem_save_text_status_0 = NULL;
3785 320 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3786 320 : if (ndr_flags & NDR_SCALARS) {
3787 160 : NDR_CHECK(ndr_pull_align(ndr, 5));
3788 160 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3789 : {
3790 160 : libndr_flags _flags_save_string = ndr->flags;
3791 160 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3792 160 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3793 160 : if (_ptr_printer_name) {
3794 160 : NDR_PULL_ALLOC(ndr, r->printer_name);
3795 160 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3796 : } else {
3797 0 : r->printer_name = NULL;
3798 : }
3799 160 : ndr->flags = _flags_save_string;
3800 : }
3801 : {
3802 160 : libndr_flags _flags_save_string = ndr->flags;
3803 160 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3804 160 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3805 160 : if (_ptr_server_name) {
3806 160 : NDR_PULL_ALLOC(ndr, r->server_name);
3807 160 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3808 : } else {
3809 0 : r->server_name = NULL;
3810 : }
3811 160 : ndr->flags = _flags_save_string;
3812 : }
3813 : {
3814 160 : libndr_flags _flags_save_string = ndr->flags;
3815 160 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3816 160 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3817 160 : if (_ptr_user_name) {
3818 160 : NDR_PULL_ALLOC(ndr, r->user_name);
3819 160 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3820 : } else {
3821 0 : r->user_name = NULL;
3822 : }
3823 160 : ndr->flags = _flags_save_string;
3824 : }
3825 : {
3826 160 : libndr_flags _flags_save_string = ndr->flags;
3827 160 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3828 160 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3829 160 : if (_ptr_document_name) {
3830 160 : NDR_PULL_ALLOC(ndr, r->document_name);
3831 160 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3832 : } else {
3833 0 : r->document_name = NULL;
3834 : }
3835 160 : ndr->flags = _flags_save_string;
3836 : }
3837 : {
3838 160 : libndr_flags _flags_save_string = ndr->flags;
3839 160 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3840 160 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3841 160 : if (_ptr_data_type) {
3842 160 : NDR_PULL_ALLOC(ndr, r->data_type);
3843 160 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3844 : } else {
3845 0 : r->data_type = NULL;
3846 : }
3847 160 : ndr->flags = _flags_save_string;
3848 : }
3849 : {
3850 160 : libndr_flags _flags_save_string = ndr->flags;
3851 160 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3852 160 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3853 160 : if (_ptr_text_status) {
3854 160 : NDR_PULL_ALLOC(ndr, r->text_status);
3855 160 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3856 : } else {
3857 0 : r->text_status = NULL;
3858 : }
3859 160 : ndr->flags = _flags_save_string;
3860 : }
3861 160 : NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3862 160 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3863 160 : if (r->priority > 99) {
3864 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->priority), (uint32_t)(0), (uint32_t)(99));
3865 : }
3866 160 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3867 160 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3868 160 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3869 160 : NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3870 160 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3871 : }
3872 320 : if (ndr_flags & NDR_BUFFERS) {
3873 : {
3874 160 : libndr_flags _flags_save_string = ndr->flags;
3875 160 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3876 160 : if (r->printer_name) {
3877 0 : uint32_t _relative_save_offset;
3878 160 : _relative_save_offset = ndr->offset;
3879 160 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3880 160 : _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3881 160 : NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3882 160 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3883 160 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3884 160 : if (ndr->offset > ndr->relative_highest_offset) {
3885 76 : ndr->relative_highest_offset = ndr->offset;
3886 : }
3887 160 : ndr->offset = _relative_save_offset;
3888 : }
3889 160 : ndr->flags = _flags_save_string;
3890 : }
3891 : {
3892 160 : libndr_flags _flags_save_string = ndr->flags;
3893 160 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3894 160 : if (r->server_name) {
3895 0 : uint32_t _relative_save_offset;
3896 160 : _relative_save_offset = ndr->offset;
3897 160 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3898 160 : _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3899 160 : NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3900 160 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3901 160 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3902 160 : if (ndr->offset > ndr->relative_highest_offset) {
3903 0 : ndr->relative_highest_offset = ndr->offset;
3904 : }
3905 160 : ndr->offset = _relative_save_offset;
3906 : }
3907 160 : ndr->flags = _flags_save_string;
3908 : }
3909 : {
3910 160 : libndr_flags _flags_save_string = ndr->flags;
3911 160 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3912 160 : if (r->user_name) {
3913 0 : uint32_t _relative_save_offset;
3914 160 : _relative_save_offset = ndr->offset;
3915 160 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3916 160 : _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3917 160 : NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3918 160 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3919 160 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3920 160 : if (ndr->offset > ndr->relative_highest_offset) {
3921 0 : ndr->relative_highest_offset = ndr->offset;
3922 : }
3923 160 : ndr->offset = _relative_save_offset;
3924 : }
3925 160 : ndr->flags = _flags_save_string;
3926 : }
3927 : {
3928 160 : libndr_flags _flags_save_string = ndr->flags;
3929 160 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3930 160 : if (r->document_name) {
3931 0 : uint32_t _relative_save_offset;
3932 160 : _relative_save_offset = ndr->offset;
3933 160 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3934 160 : _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3935 160 : NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3936 160 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3937 160 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3938 160 : if (ndr->offset > ndr->relative_highest_offset) {
3939 0 : ndr->relative_highest_offset = ndr->offset;
3940 : }
3941 160 : ndr->offset = _relative_save_offset;
3942 : }
3943 160 : ndr->flags = _flags_save_string;
3944 : }
3945 : {
3946 160 : libndr_flags _flags_save_string = ndr->flags;
3947 160 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3948 160 : if (r->data_type) {
3949 0 : uint32_t _relative_save_offset;
3950 160 : _relative_save_offset = ndr->offset;
3951 160 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3952 160 : _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3953 160 : NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3954 160 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3955 160 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3956 160 : if (ndr->offset > ndr->relative_highest_offset) {
3957 0 : ndr->relative_highest_offset = ndr->offset;
3958 : }
3959 160 : ndr->offset = _relative_save_offset;
3960 : }
3961 160 : ndr->flags = _flags_save_string;
3962 : }
3963 : {
3964 160 : libndr_flags _flags_save_string = ndr->flags;
3965 160 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3966 160 : if (r->text_status) {
3967 0 : uint32_t _relative_save_offset;
3968 160 : _relative_save_offset = ndr->offset;
3969 160 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3970 160 : _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3971 160 : NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3972 160 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3973 160 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3974 160 : if (ndr->offset > ndr->relative_highest_offset) {
3975 0 : ndr->relative_highest_offset = ndr->offset;
3976 : }
3977 160 : ndr->offset = _relative_save_offset;
3978 : }
3979 160 : ndr->flags = _flags_save_string;
3980 : }
3981 : }
3982 320 : return NDR_ERR_SUCCESS;
3983 : }
3984 :
3985 0 : static void ndr_print_flags_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_JobInfo1 *r)
3986 : {
3987 0 : ndr_print_spoolss_JobInfo1(ndr, name, r);
3988 0 : }
3989 :
3990 0 : _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
3991 : {
3992 0 : ndr_print_struct(ndr, name, "spoolss_JobInfo1");
3993 0 : if (r == NULL) { ndr_print_null(ndr); return; }
3994 0 : ndr->depth++;
3995 0 : ndr_print_uint32(ndr, "job_id", r->job_id);
3996 : {
3997 0 : libndr_flags _flags_save_string = ndr->flags;
3998 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3999 0 : ndr_print_ptr(ndr, "printer_name", r->printer_name);
4000 0 : ndr->depth++;
4001 0 : if (r->printer_name) {
4002 0 : ndr_print_string(ndr, "printer_name", r->printer_name);
4003 : }
4004 0 : ndr->depth--;
4005 0 : ndr->flags = _flags_save_string;
4006 : }
4007 : {
4008 0 : libndr_flags _flags_save_string = ndr->flags;
4009 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4010 0 : ndr_print_ptr(ndr, "server_name", r->server_name);
4011 0 : ndr->depth++;
4012 0 : if (r->server_name) {
4013 0 : ndr_print_string(ndr, "server_name", r->server_name);
4014 : }
4015 0 : ndr->depth--;
4016 0 : ndr->flags = _flags_save_string;
4017 : }
4018 : {
4019 0 : libndr_flags _flags_save_string = ndr->flags;
4020 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4021 0 : ndr_print_ptr(ndr, "user_name", r->user_name);
4022 0 : ndr->depth++;
4023 0 : if (r->user_name) {
4024 0 : ndr_print_string(ndr, "user_name", r->user_name);
4025 : }
4026 0 : ndr->depth--;
4027 0 : ndr->flags = _flags_save_string;
4028 : }
4029 : {
4030 0 : libndr_flags _flags_save_string = ndr->flags;
4031 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4032 0 : ndr_print_ptr(ndr, "document_name", r->document_name);
4033 0 : ndr->depth++;
4034 0 : if (r->document_name) {
4035 0 : ndr_print_string(ndr, "document_name", r->document_name);
4036 : }
4037 0 : ndr->depth--;
4038 0 : ndr->flags = _flags_save_string;
4039 : }
4040 : {
4041 0 : libndr_flags _flags_save_string = ndr->flags;
4042 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4043 0 : ndr_print_ptr(ndr, "data_type", r->data_type);
4044 0 : ndr->depth++;
4045 0 : if (r->data_type) {
4046 0 : ndr_print_string(ndr, "data_type", r->data_type);
4047 : }
4048 0 : ndr->depth--;
4049 0 : ndr->flags = _flags_save_string;
4050 : }
4051 : {
4052 0 : libndr_flags _flags_save_string = ndr->flags;
4053 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4054 0 : ndr_print_ptr(ndr, "text_status", r->text_status);
4055 0 : ndr->depth++;
4056 0 : if (r->text_status) {
4057 0 : ndr_print_string(ndr, "text_status", r->text_status);
4058 : }
4059 0 : ndr->depth--;
4060 0 : ndr->flags = _flags_save_string;
4061 : }
4062 0 : ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4063 0 : ndr_print_uint32(ndr, "priority", r->priority);
4064 0 : ndr_print_uint32(ndr, "position", r->position);
4065 0 : ndr_print_uint32(ndr, "total_pages", r->total_pages);
4066 0 : ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4067 0 : ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4068 0 : ndr->depth--;
4069 : }
4070 :
4071 0 : _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, libndr_flags flags)
4072 : {
4073 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1);
4074 : }
4075 :
4076 216 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_JobInfo2 *r)
4077 : {
4078 216 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
4079 216 : if (ndr_flags & NDR_SCALARS) {
4080 108 : NDR_CHECK(ndr_push_align(ndr, 5));
4081 108 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4082 : {
4083 108 : libndr_flags _flags_save_string = ndr->flags;
4084 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4085 108 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
4086 108 : ndr->flags = _flags_save_string;
4087 : }
4088 : {
4089 108 : libndr_flags _flags_save_string = ndr->flags;
4090 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4091 108 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
4092 108 : ndr->flags = _flags_save_string;
4093 : }
4094 : {
4095 108 : libndr_flags _flags_save_string = ndr->flags;
4096 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4097 108 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
4098 108 : ndr->flags = _flags_save_string;
4099 : }
4100 : {
4101 108 : libndr_flags _flags_save_string = ndr->flags;
4102 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4103 108 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
4104 108 : ndr->flags = _flags_save_string;
4105 : }
4106 : {
4107 108 : libndr_flags _flags_save_string = ndr->flags;
4108 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4109 108 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
4110 108 : ndr->flags = _flags_save_string;
4111 : }
4112 : {
4113 108 : libndr_flags _flags_save_string = ndr->flags;
4114 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4115 108 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
4116 108 : ndr->flags = _flags_save_string;
4117 : }
4118 : {
4119 108 : libndr_flags _flags_save_string = ndr->flags;
4120 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4121 108 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
4122 108 : ndr->flags = _flags_save_string;
4123 : }
4124 : {
4125 108 : libndr_flags _flags_save_string = ndr->flags;
4126 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4127 108 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
4128 108 : ndr->flags = _flags_save_string;
4129 : }
4130 : {
4131 108 : libndr_flags _flags_save_string = ndr->flags;
4132 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4133 108 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
4134 108 : ndr->flags = _flags_save_string;
4135 : }
4136 : {
4137 108 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
4138 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4139 108 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
4140 108 : ndr->flags = _flags_save_spoolss_DeviceMode;
4141 : }
4142 : {
4143 108 : libndr_flags _flags_save_string = ndr->flags;
4144 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4145 108 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
4146 108 : ndr->flags = _flags_save_string;
4147 : }
4148 : {
4149 108 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
4150 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4151 108 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
4152 108 : ndr->flags = _flags_save_spoolss_security_descriptor;
4153 : }
4154 108 : NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4155 108 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4156 108 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4157 108 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4158 108 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4159 108 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4160 108 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4161 108 : NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4162 108 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4163 108 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4164 108 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4165 : }
4166 216 : if (ndr_flags & NDR_BUFFERS) {
4167 : {
4168 108 : libndr_flags _flags_save_string = ndr->flags;
4169 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4170 108 : if (r->printer_name) {
4171 108 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
4172 108 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
4173 108 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
4174 : }
4175 108 : ndr->flags = _flags_save_string;
4176 : }
4177 : {
4178 108 : libndr_flags _flags_save_string = ndr->flags;
4179 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4180 108 : if (r->server_name) {
4181 108 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
4182 108 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
4183 108 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
4184 : }
4185 108 : ndr->flags = _flags_save_string;
4186 : }
4187 : {
4188 108 : libndr_flags _flags_save_string = ndr->flags;
4189 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4190 108 : if (r->user_name) {
4191 108 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
4192 108 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
4193 108 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
4194 : }
4195 108 : ndr->flags = _flags_save_string;
4196 : }
4197 : {
4198 108 : libndr_flags _flags_save_string = ndr->flags;
4199 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4200 108 : if (r->document_name) {
4201 108 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
4202 108 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
4203 108 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
4204 : }
4205 108 : ndr->flags = _flags_save_string;
4206 : }
4207 : {
4208 108 : libndr_flags _flags_save_string = ndr->flags;
4209 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4210 108 : if (r->notify_name) {
4211 108 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
4212 108 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
4213 108 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
4214 : }
4215 108 : ndr->flags = _flags_save_string;
4216 : }
4217 : {
4218 108 : libndr_flags _flags_save_string = ndr->flags;
4219 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4220 108 : if (r->data_type) {
4221 108 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
4222 108 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
4223 108 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
4224 : }
4225 108 : ndr->flags = _flags_save_string;
4226 : }
4227 : {
4228 108 : libndr_flags _flags_save_string = ndr->flags;
4229 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4230 108 : if (r->print_processor) {
4231 108 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
4232 108 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
4233 108 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
4234 : }
4235 108 : ndr->flags = _flags_save_string;
4236 : }
4237 : {
4238 108 : libndr_flags _flags_save_string = ndr->flags;
4239 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4240 108 : if (r->parameters) {
4241 108 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
4242 108 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
4243 108 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
4244 : }
4245 108 : ndr->flags = _flags_save_string;
4246 : }
4247 : {
4248 108 : libndr_flags _flags_save_string = ndr->flags;
4249 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4250 108 : if (r->driver_name) {
4251 108 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
4252 108 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
4253 108 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
4254 : }
4255 108 : ndr->flags = _flags_save_string;
4256 : }
4257 : {
4258 108 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
4259 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4260 108 : if (r->devmode) {
4261 108 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
4262 : {
4263 0 : struct ndr_push *_ndr_devmode;
4264 108 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
4265 108 : NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4266 108 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
4267 : }
4268 108 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
4269 : }
4270 108 : ndr->flags = _flags_save_spoolss_DeviceMode;
4271 : }
4272 : {
4273 108 : libndr_flags _flags_save_string = ndr->flags;
4274 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4275 108 : if (r->text_status) {
4276 108 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
4277 108 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
4278 108 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
4279 : }
4280 108 : ndr->flags = _flags_save_string;
4281 : }
4282 : {
4283 108 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
4284 108 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4285 108 : if (r->secdesc) {
4286 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
4287 : {
4288 0 : struct ndr_push *_ndr_secdesc;
4289 0 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4290 0 : NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4291 0 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4292 : }
4293 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
4294 : }
4295 108 : ndr->flags = _flags_save_spoolss_security_descriptor;
4296 : }
4297 : }
4298 216 : return NDR_ERR_SUCCESS;
4299 : }
4300 :
4301 72 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_JobInfo2 *r)
4302 : {
4303 0 : uint32_t _ptr_printer_name;
4304 72 : TALLOC_CTX *_mem_save_printer_name_0 = NULL;
4305 0 : uint32_t _ptr_server_name;
4306 72 : TALLOC_CTX *_mem_save_server_name_0 = NULL;
4307 0 : uint32_t _ptr_user_name;
4308 72 : TALLOC_CTX *_mem_save_user_name_0 = NULL;
4309 0 : uint32_t _ptr_document_name;
4310 72 : TALLOC_CTX *_mem_save_document_name_0 = NULL;
4311 0 : uint32_t _ptr_notify_name;
4312 72 : TALLOC_CTX *_mem_save_notify_name_0 = NULL;
4313 0 : uint32_t _ptr_data_type;
4314 72 : TALLOC_CTX *_mem_save_data_type_0 = NULL;
4315 0 : uint32_t _ptr_print_processor;
4316 72 : TALLOC_CTX *_mem_save_print_processor_0 = NULL;
4317 0 : uint32_t _ptr_parameters;
4318 72 : TALLOC_CTX *_mem_save_parameters_0 = NULL;
4319 0 : uint32_t _ptr_driver_name;
4320 72 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
4321 0 : uint32_t _ptr_devmode;
4322 72 : TALLOC_CTX *_mem_save_devmode_0 = NULL;
4323 0 : uint32_t _ptr_text_status;
4324 72 : TALLOC_CTX *_mem_save_text_status_0 = NULL;
4325 0 : uint32_t _ptr_secdesc;
4326 72 : TALLOC_CTX *_mem_save_secdesc_0 = NULL;
4327 72 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
4328 72 : if (ndr_flags & NDR_SCALARS) {
4329 36 : NDR_CHECK(ndr_pull_align(ndr, 5));
4330 36 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4331 : {
4332 36 : libndr_flags _flags_save_string = ndr->flags;
4333 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4334 36 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4335 36 : if (_ptr_printer_name) {
4336 36 : NDR_PULL_ALLOC(ndr, r->printer_name);
4337 36 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4338 : } else {
4339 0 : r->printer_name = NULL;
4340 : }
4341 36 : ndr->flags = _flags_save_string;
4342 : }
4343 : {
4344 36 : libndr_flags _flags_save_string = ndr->flags;
4345 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4346 36 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4347 36 : if (_ptr_server_name) {
4348 36 : NDR_PULL_ALLOC(ndr, r->server_name);
4349 36 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4350 : } else {
4351 0 : r->server_name = NULL;
4352 : }
4353 36 : ndr->flags = _flags_save_string;
4354 : }
4355 : {
4356 36 : libndr_flags _flags_save_string = ndr->flags;
4357 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4358 36 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4359 36 : if (_ptr_user_name) {
4360 36 : NDR_PULL_ALLOC(ndr, r->user_name);
4361 36 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4362 : } else {
4363 0 : r->user_name = NULL;
4364 : }
4365 36 : ndr->flags = _flags_save_string;
4366 : }
4367 : {
4368 36 : libndr_flags _flags_save_string = ndr->flags;
4369 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4370 36 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4371 36 : if (_ptr_document_name) {
4372 36 : NDR_PULL_ALLOC(ndr, r->document_name);
4373 36 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4374 : } else {
4375 0 : r->document_name = NULL;
4376 : }
4377 36 : ndr->flags = _flags_save_string;
4378 : }
4379 : {
4380 36 : libndr_flags _flags_save_string = ndr->flags;
4381 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4382 36 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4383 36 : if (_ptr_notify_name) {
4384 36 : NDR_PULL_ALLOC(ndr, r->notify_name);
4385 36 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4386 : } else {
4387 0 : r->notify_name = NULL;
4388 : }
4389 36 : ndr->flags = _flags_save_string;
4390 : }
4391 : {
4392 36 : libndr_flags _flags_save_string = ndr->flags;
4393 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4394 36 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4395 36 : if (_ptr_data_type) {
4396 36 : NDR_PULL_ALLOC(ndr, r->data_type);
4397 36 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4398 : } else {
4399 0 : r->data_type = NULL;
4400 : }
4401 36 : ndr->flags = _flags_save_string;
4402 : }
4403 : {
4404 36 : libndr_flags _flags_save_string = ndr->flags;
4405 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4406 36 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4407 36 : if (_ptr_print_processor) {
4408 36 : NDR_PULL_ALLOC(ndr, r->print_processor);
4409 36 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4410 : } else {
4411 0 : r->print_processor = NULL;
4412 : }
4413 36 : ndr->flags = _flags_save_string;
4414 : }
4415 : {
4416 36 : libndr_flags _flags_save_string = ndr->flags;
4417 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4418 36 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4419 36 : if (_ptr_parameters) {
4420 36 : NDR_PULL_ALLOC(ndr, r->parameters);
4421 36 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4422 : } else {
4423 0 : r->parameters = NULL;
4424 : }
4425 36 : ndr->flags = _flags_save_string;
4426 : }
4427 : {
4428 36 : libndr_flags _flags_save_string = ndr->flags;
4429 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4430 36 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4431 36 : if (_ptr_driver_name) {
4432 36 : NDR_PULL_ALLOC(ndr, r->driver_name);
4433 36 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4434 : } else {
4435 0 : r->driver_name = NULL;
4436 : }
4437 36 : ndr->flags = _flags_save_string;
4438 : }
4439 : {
4440 36 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
4441 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4442 36 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4443 36 : if (_ptr_devmode) {
4444 36 : NDR_PULL_ALLOC(ndr, r->devmode);
4445 36 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4446 : } else {
4447 0 : r->devmode = NULL;
4448 : }
4449 36 : ndr->flags = _flags_save_spoolss_DeviceMode;
4450 : }
4451 : {
4452 36 : libndr_flags _flags_save_string = ndr->flags;
4453 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4454 36 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4455 36 : if (_ptr_text_status) {
4456 36 : NDR_PULL_ALLOC(ndr, r->text_status);
4457 36 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4458 : } else {
4459 0 : r->text_status = NULL;
4460 : }
4461 36 : ndr->flags = _flags_save_string;
4462 : }
4463 : {
4464 36 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
4465 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4466 36 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4467 36 : if (_ptr_secdesc) {
4468 0 : NDR_PULL_ALLOC(ndr, r->secdesc);
4469 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4470 : } else {
4471 36 : r->secdesc = NULL;
4472 : }
4473 36 : ndr->flags = _flags_save_spoolss_security_descriptor;
4474 : }
4475 36 : NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4476 36 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4477 36 : if (r->priority > 99) {
4478 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->priority), (uint32_t)(0), (uint32_t)(99));
4479 : }
4480 36 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4481 36 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4482 36 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4483 36 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4484 36 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4485 36 : NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4486 36 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4487 36 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4488 36 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4489 : }
4490 72 : if (ndr_flags & NDR_BUFFERS) {
4491 : {
4492 36 : libndr_flags _flags_save_string = ndr->flags;
4493 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4494 36 : if (r->printer_name) {
4495 0 : uint32_t _relative_save_offset;
4496 36 : _relative_save_offset = ndr->offset;
4497 36 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4498 36 : _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4499 36 : NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4500 36 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4501 36 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4502 36 : if (ndr->offset > ndr->relative_highest_offset) {
4503 8 : ndr->relative_highest_offset = ndr->offset;
4504 : }
4505 36 : ndr->offset = _relative_save_offset;
4506 : }
4507 36 : ndr->flags = _flags_save_string;
4508 : }
4509 : {
4510 36 : libndr_flags _flags_save_string = ndr->flags;
4511 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4512 36 : if (r->server_name) {
4513 0 : uint32_t _relative_save_offset;
4514 36 : _relative_save_offset = ndr->offset;
4515 36 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4516 36 : _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4517 36 : NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4518 36 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4519 36 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4520 36 : if (ndr->offset > ndr->relative_highest_offset) {
4521 0 : ndr->relative_highest_offset = ndr->offset;
4522 : }
4523 36 : ndr->offset = _relative_save_offset;
4524 : }
4525 36 : ndr->flags = _flags_save_string;
4526 : }
4527 : {
4528 36 : libndr_flags _flags_save_string = ndr->flags;
4529 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4530 36 : if (r->user_name) {
4531 0 : uint32_t _relative_save_offset;
4532 36 : _relative_save_offset = ndr->offset;
4533 36 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4534 36 : _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4535 36 : NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4536 36 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4537 36 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4538 36 : if (ndr->offset > ndr->relative_highest_offset) {
4539 0 : ndr->relative_highest_offset = ndr->offset;
4540 : }
4541 36 : ndr->offset = _relative_save_offset;
4542 : }
4543 36 : ndr->flags = _flags_save_string;
4544 : }
4545 : {
4546 36 : libndr_flags _flags_save_string = ndr->flags;
4547 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4548 36 : if (r->document_name) {
4549 0 : uint32_t _relative_save_offset;
4550 36 : _relative_save_offset = ndr->offset;
4551 36 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4552 36 : _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4553 36 : NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4554 36 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4555 36 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4556 36 : if (ndr->offset > ndr->relative_highest_offset) {
4557 0 : ndr->relative_highest_offset = ndr->offset;
4558 : }
4559 36 : ndr->offset = _relative_save_offset;
4560 : }
4561 36 : ndr->flags = _flags_save_string;
4562 : }
4563 : {
4564 36 : libndr_flags _flags_save_string = ndr->flags;
4565 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4566 36 : if (r->notify_name) {
4567 0 : uint32_t _relative_save_offset;
4568 36 : _relative_save_offset = ndr->offset;
4569 36 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4570 36 : _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4571 36 : NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4572 36 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4573 36 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4574 36 : if (ndr->offset > ndr->relative_highest_offset) {
4575 0 : ndr->relative_highest_offset = ndr->offset;
4576 : }
4577 36 : ndr->offset = _relative_save_offset;
4578 : }
4579 36 : ndr->flags = _flags_save_string;
4580 : }
4581 : {
4582 36 : libndr_flags _flags_save_string = ndr->flags;
4583 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4584 36 : if (r->data_type) {
4585 0 : uint32_t _relative_save_offset;
4586 36 : _relative_save_offset = ndr->offset;
4587 36 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4588 36 : _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4589 36 : NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4590 36 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4591 36 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4592 36 : if (ndr->offset > ndr->relative_highest_offset) {
4593 0 : ndr->relative_highest_offset = ndr->offset;
4594 : }
4595 36 : ndr->offset = _relative_save_offset;
4596 : }
4597 36 : ndr->flags = _flags_save_string;
4598 : }
4599 : {
4600 36 : libndr_flags _flags_save_string = ndr->flags;
4601 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4602 36 : if (r->print_processor) {
4603 0 : uint32_t _relative_save_offset;
4604 36 : _relative_save_offset = ndr->offset;
4605 36 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4606 36 : _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4607 36 : NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4608 36 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4609 36 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4610 36 : if (ndr->offset > ndr->relative_highest_offset) {
4611 0 : ndr->relative_highest_offset = ndr->offset;
4612 : }
4613 36 : ndr->offset = _relative_save_offset;
4614 : }
4615 36 : ndr->flags = _flags_save_string;
4616 : }
4617 : {
4618 36 : libndr_flags _flags_save_string = ndr->flags;
4619 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4620 36 : if (r->parameters) {
4621 0 : uint32_t _relative_save_offset;
4622 36 : _relative_save_offset = ndr->offset;
4623 36 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4624 36 : _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4625 36 : NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4626 36 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4627 36 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4628 36 : if (ndr->offset > ndr->relative_highest_offset) {
4629 0 : ndr->relative_highest_offset = ndr->offset;
4630 : }
4631 36 : ndr->offset = _relative_save_offset;
4632 : }
4633 36 : ndr->flags = _flags_save_string;
4634 : }
4635 : {
4636 36 : libndr_flags _flags_save_string = ndr->flags;
4637 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4638 36 : if (r->driver_name) {
4639 0 : uint32_t _relative_save_offset;
4640 36 : _relative_save_offset = ndr->offset;
4641 36 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4642 36 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4643 36 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4644 36 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4645 36 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4646 36 : if (ndr->offset > ndr->relative_highest_offset) {
4647 0 : ndr->relative_highest_offset = ndr->offset;
4648 : }
4649 36 : ndr->offset = _relative_save_offset;
4650 : }
4651 36 : ndr->flags = _flags_save_string;
4652 : }
4653 : {
4654 36 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
4655 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4656 36 : if (r->devmode) {
4657 0 : uint32_t _relative_save_offset;
4658 36 : _relative_save_offset = ndr->offset;
4659 36 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4660 36 : _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4661 36 : NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4662 : {
4663 0 : struct ndr_pull *_ndr_devmode;
4664 36 : ssize_t sub_size = -1;
4665 36 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, sub_size));
4666 36 : NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4667 36 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, sub_size));
4668 : }
4669 36 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4670 36 : if (ndr->offset > ndr->relative_highest_offset) {
4671 0 : ndr->relative_highest_offset = ndr->offset;
4672 : }
4673 36 : ndr->offset = _relative_save_offset;
4674 : }
4675 36 : ndr->flags = _flags_save_spoolss_DeviceMode;
4676 : }
4677 : {
4678 36 : libndr_flags _flags_save_string = ndr->flags;
4679 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4680 36 : if (r->text_status) {
4681 0 : uint32_t _relative_save_offset;
4682 36 : _relative_save_offset = ndr->offset;
4683 36 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4684 36 : _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4685 36 : NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4686 36 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4687 36 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4688 36 : if (ndr->offset > ndr->relative_highest_offset) {
4689 0 : ndr->relative_highest_offset = ndr->offset;
4690 : }
4691 36 : ndr->offset = _relative_save_offset;
4692 : }
4693 36 : ndr->flags = _flags_save_string;
4694 : }
4695 : {
4696 36 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
4697 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4698 36 : if (r->secdesc) {
4699 0 : uint32_t _relative_save_offset;
4700 0 : _relative_save_offset = ndr->offset;
4701 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4702 0 : _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4703 0 : NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4704 : {
4705 0 : struct ndr_pull *_ndr_secdesc;
4706 0 : ssize_t sub_size = -1;
4707 0 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, sub_size));
4708 0 : NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4709 0 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, sub_size));
4710 : }
4711 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4712 0 : if (ndr->offset > ndr->relative_highest_offset) {
4713 0 : ndr->relative_highest_offset = ndr->offset;
4714 : }
4715 0 : ndr->offset = _relative_save_offset;
4716 : }
4717 36 : ndr->flags = _flags_save_spoolss_security_descriptor;
4718 : }
4719 : }
4720 72 : return NDR_ERR_SUCCESS;
4721 : }
4722 :
4723 0 : static void ndr_print_flags_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_JobInfo2 *r)
4724 : {
4725 0 : ndr_print_spoolss_JobInfo2(ndr, name, r);
4726 0 : }
4727 :
4728 0 : _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
4729 : {
4730 0 : ndr_print_struct(ndr, name, "spoolss_JobInfo2");
4731 0 : if (r == NULL) { ndr_print_null(ndr); return; }
4732 0 : ndr->depth++;
4733 0 : ndr_print_uint32(ndr, "job_id", r->job_id);
4734 : {
4735 0 : libndr_flags _flags_save_string = ndr->flags;
4736 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4737 0 : ndr_print_ptr(ndr, "printer_name", r->printer_name);
4738 0 : ndr->depth++;
4739 0 : if (r->printer_name) {
4740 0 : ndr_print_string(ndr, "printer_name", r->printer_name);
4741 : }
4742 0 : ndr->depth--;
4743 0 : ndr->flags = _flags_save_string;
4744 : }
4745 : {
4746 0 : libndr_flags _flags_save_string = ndr->flags;
4747 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4748 0 : ndr_print_ptr(ndr, "server_name", r->server_name);
4749 0 : ndr->depth++;
4750 0 : if (r->server_name) {
4751 0 : ndr_print_string(ndr, "server_name", r->server_name);
4752 : }
4753 0 : ndr->depth--;
4754 0 : ndr->flags = _flags_save_string;
4755 : }
4756 : {
4757 0 : libndr_flags _flags_save_string = ndr->flags;
4758 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4759 0 : ndr_print_ptr(ndr, "user_name", r->user_name);
4760 0 : ndr->depth++;
4761 0 : if (r->user_name) {
4762 0 : ndr_print_string(ndr, "user_name", r->user_name);
4763 : }
4764 0 : ndr->depth--;
4765 0 : ndr->flags = _flags_save_string;
4766 : }
4767 : {
4768 0 : libndr_flags _flags_save_string = ndr->flags;
4769 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4770 0 : ndr_print_ptr(ndr, "document_name", r->document_name);
4771 0 : ndr->depth++;
4772 0 : if (r->document_name) {
4773 0 : ndr_print_string(ndr, "document_name", r->document_name);
4774 : }
4775 0 : ndr->depth--;
4776 0 : ndr->flags = _flags_save_string;
4777 : }
4778 : {
4779 0 : libndr_flags _flags_save_string = ndr->flags;
4780 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4781 0 : ndr_print_ptr(ndr, "notify_name", r->notify_name);
4782 0 : ndr->depth++;
4783 0 : if (r->notify_name) {
4784 0 : ndr_print_string(ndr, "notify_name", r->notify_name);
4785 : }
4786 0 : ndr->depth--;
4787 0 : ndr->flags = _flags_save_string;
4788 : }
4789 : {
4790 0 : libndr_flags _flags_save_string = ndr->flags;
4791 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4792 0 : ndr_print_ptr(ndr, "data_type", r->data_type);
4793 0 : ndr->depth++;
4794 0 : if (r->data_type) {
4795 0 : ndr_print_string(ndr, "data_type", r->data_type);
4796 : }
4797 0 : ndr->depth--;
4798 0 : ndr->flags = _flags_save_string;
4799 : }
4800 : {
4801 0 : libndr_flags _flags_save_string = ndr->flags;
4802 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4803 0 : ndr_print_ptr(ndr, "print_processor", r->print_processor);
4804 0 : ndr->depth++;
4805 0 : if (r->print_processor) {
4806 0 : ndr_print_string(ndr, "print_processor", r->print_processor);
4807 : }
4808 0 : ndr->depth--;
4809 0 : ndr->flags = _flags_save_string;
4810 : }
4811 : {
4812 0 : libndr_flags _flags_save_string = ndr->flags;
4813 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4814 0 : ndr_print_ptr(ndr, "parameters", r->parameters);
4815 0 : ndr->depth++;
4816 0 : if (r->parameters) {
4817 0 : ndr_print_string(ndr, "parameters", r->parameters);
4818 : }
4819 0 : ndr->depth--;
4820 0 : ndr->flags = _flags_save_string;
4821 : }
4822 : {
4823 0 : libndr_flags _flags_save_string = ndr->flags;
4824 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4825 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
4826 0 : ndr->depth++;
4827 0 : if (r->driver_name) {
4828 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
4829 : }
4830 0 : ndr->depth--;
4831 0 : ndr->flags = _flags_save_string;
4832 : }
4833 : {
4834 0 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
4835 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4836 0 : ndr_print_ptr(ndr, "devmode", r->devmode);
4837 0 : ndr->depth++;
4838 0 : if (r->devmode) {
4839 0 : ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4840 : }
4841 0 : ndr->depth--;
4842 0 : ndr->flags = _flags_save_spoolss_DeviceMode;
4843 : }
4844 : {
4845 0 : libndr_flags _flags_save_string = ndr->flags;
4846 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4847 0 : ndr_print_ptr(ndr, "text_status", r->text_status);
4848 0 : ndr->depth++;
4849 0 : if (r->text_status) {
4850 0 : ndr_print_string(ndr, "text_status", r->text_status);
4851 : }
4852 0 : ndr->depth--;
4853 0 : ndr->flags = _flags_save_string;
4854 : }
4855 : {
4856 0 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
4857 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4858 0 : ndr_print_ptr(ndr, "secdesc", r->secdesc);
4859 0 : ndr->depth++;
4860 0 : if (r->secdesc) {
4861 0 : ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
4862 : }
4863 0 : ndr->depth--;
4864 0 : ndr->flags = _flags_save_spoolss_security_descriptor;
4865 : }
4866 0 : ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4867 0 : ndr_print_uint32(ndr, "priority", r->priority);
4868 0 : ndr_print_uint32(ndr, "position", r->position);
4869 0 : ndr_print_uint32(ndr, "start_time", r->start_time);
4870 0 : ndr_print_uint32(ndr, "until_time", r->until_time);
4871 0 : ndr_print_uint32(ndr, "total_pages", r->total_pages);
4872 0 : ndr_print_uint32(ndr, "size", r->size);
4873 0 : ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4874 0 : ndr_print_uint32(ndr, "time", r->time);
4875 0 : ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4876 0 : ndr->depth--;
4877 : }
4878 :
4879 0 : _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, libndr_flags flags)
4880 : {
4881 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2);
4882 : }
4883 :
4884 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_JobInfo3 *r)
4885 : {
4886 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
4887 0 : if (ndr_flags & NDR_SCALARS) {
4888 0 : NDR_CHECK(ndr_push_align(ndr, 4));
4889 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4890 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
4891 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
4892 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
4893 : }
4894 0 : if (ndr_flags & NDR_BUFFERS) {
4895 0 : }
4896 0 : return NDR_ERR_SUCCESS;
4897 : }
4898 :
4899 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_JobInfo3 *r)
4900 : {
4901 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
4902 0 : if (ndr_flags & NDR_SCALARS) {
4903 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
4904 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4905 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
4906 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
4907 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
4908 : }
4909 0 : if (ndr_flags & NDR_BUFFERS) {
4910 0 : }
4911 0 : return NDR_ERR_SUCCESS;
4912 : }
4913 :
4914 0 : static void ndr_print_flags_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_JobInfo3 *r)
4915 : {
4916 0 : ndr_print_spoolss_JobInfo3(ndr, name, r);
4917 0 : }
4918 :
4919 0 : _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
4920 : {
4921 0 : ndr_print_struct(ndr, name, "spoolss_JobInfo3");
4922 0 : if (r == NULL) { ndr_print_null(ndr); return; }
4923 0 : ndr->depth++;
4924 0 : ndr_print_uint32(ndr, "job_id", r->job_id);
4925 0 : ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
4926 0 : ndr_print_uint32(ndr, "reserved", r->reserved);
4927 0 : ndr->depth--;
4928 : }
4929 :
4930 0 : _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, libndr_flags flags)
4931 : {
4932 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3);
4933 : }
4934 :
4935 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_JobInfo4 *r)
4936 : {
4937 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
4938 0 : if (ndr_flags & NDR_SCALARS) {
4939 0 : NDR_CHECK(ndr_push_align(ndr, 5));
4940 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4941 : {
4942 0 : libndr_flags _flags_save_string = ndr->flags;
4943 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4944 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
4945 0 : ndr->flags = _flags_save_string;
4946 : }
4947 : {
4948 0 : libndr_flags _flags_save_string = ndr->flags;
4949 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4950 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
4951 0 : ndr->flags = _flags_save_string;
4952 : }
4953 : {
4954 0 : libndr_flags _flags_save_string = ndr->flags;
4955 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4956 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
4957 0 : ndr->flags = _flags_save_string;
4958 : }
4959 : {
4960 0 : libndr_flags _flags_save_string = ndr->flags;
4961 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4962 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
4963 0 : ndr->flags = _flags_save_string;
4964 : }
4965 : {
4966 0 : libndr_flags _flags_save_string = ndr->flags;
4967 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4968 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
4969 0 : ndr->flags = _flags_save_string;
4970 : }
4971 : {
4972 0 : libndr_flags _flags_save_string = ndr->flags;
4973 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4974 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
4975 0 : ndr->flags = _flags_save_string;
4976 : }
4977 : {
4978 0 : libndr_flags _flags_save_string = ndr->flags;
4979 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4980 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
4981 0 : ndr->flags = _flags_save_string;
4982 : }
4983 : {
4984 0 : libndr_flags _flags_save_string = ndr->flags;
4985 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4986 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
4987 0 : ndr->flags = _flags_save_string;
4988 : }
4989 : {
4990 0 : libndr_flags _flags_save_string = ndr->flags;
4991 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4992 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
4993 0 : ndr->flags = _flags_save_string;
4994 : }
4995 : {
4996 0 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
4997 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4998 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
4999 0 : ndr->flags = _flags_save_spoolss_DeviceMode;
5000 : }
5001 : {
5002 0 : libndr_flags _flags_save_string = ndr->flags;
5003 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5004 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
5005 0 : ndr->flags = _flags_save_string;
5006 : }
5007 : {
5008 0 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
5009 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5010 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
5011 0 : ndr->flags = _flags_save_spoolss_security_descriptor;
5012 : }
5013 0 : NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5014 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5015 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5016 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5017 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5018 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5019 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5020 0 : NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5021 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5022 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5023 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5024 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5025 : }
5026 0 : if (ndr_flags & NDR_BUFFERS) {
5027 : {
5028 0 : libndr_flags _flags_save_string = ndr->flags;
5029 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5030 0 : if (r->printer_name) {
5031 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
5032 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
5033 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
5034 : }
5035 0 : ndr->flags = _flags_save_string;
5036 : }
5037 : {
5038 0 : libndr_flags _flags_save_string = ndr->flags;
5039 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5040 0 : if (r->server_name) {
5041 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
5042 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
5043 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
5044 : }
5045 0 : ndr->flags = _flags_save_string;
5046 : }
5047 : {
5048 0 : libndr_flags _flags_save_string = ndr->flags;
5049 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5050 0 : if (r->user_name) {
5051 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
5052 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
5053 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
5054 : }
5055 0 : ndr->flags = _flags_save_string;
5056 : }
5057 : {
5058 0 : libndr_flags _flags_save_string = ndr->flags;
5059 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5060 0 : if (r->document_name) {
5061 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
5062 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
5063 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
5064 : }
5065 0 : ndr->flags = _flags_save_string;
5066 : }
5067 : {
5068 0 : libndr_flags _flags_save_string = ndr->flags;
5069 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5070 0 : if (r->notify_name) {
5071 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
5072 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
5073 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
5074 : }
5075 0 : ndr->flags = _flags_save_string;
5076 : }
5077 : {
5078 0 : libndr_flags _flags_save_string = ndr->flags;
5079 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5080 0 : if (r->data_type) {
5081 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
5082 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
5083 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
5084 : }
5085 0 : ndr->flags = _flags_save_string;
5086 : }
5087 : {
5088 0 : libndr_flags _flags_save_string = ndr->flags;
5089 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5090 0 : if (r->print_processor) {
5091 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
5092 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
5093 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
5094 : }
5095 0 : ndr->flags = _flags_save_string;
5096 : }
5097 : {
5098 0 : libndr_flags _flags_save_string = ndr->flags;
5099 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5100 0 : if (r->parameters) {
5101 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
5102 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
5103 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
5104 : }
5105 0 : ndr->flags = _flags_save_string;
5106 : }
5107 : {
5108 0 : libndr_flags _flags_save_string = ndr->flags;
5109 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5110 0 : if (r->driver_name) {
5111 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
5112 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
5113 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
5114 : }
5115 0 : ndr->flags = _flags_save_string;
5116 : }
5117 : {
5118 0 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
5119 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5120 0 : if (r->devmode) {
5121 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
5122 : {
5123 0 : struct ndr_push *_ndr_devmode;
5124 0 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
5125 0 : NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
5126 0 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
5127 : }
5128 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
5129 : }
5130 0 : ndr->flags = _flags_save_spoolss_DeviceMode;
5131 : }
5132 : {
5133 0 : libndr_flags _flags_save_string = ndr->flags;
5134 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5135 0 : if (r->text_status) {
5136 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
5137 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
5138 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
5139 : }
5140 0 : ndr->flags = _flags_save_string;
5141 : }
5142 : {
5143 0 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
5144 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5145 0 : if (r->secdesc) {
5146 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
5147 : {
5148 0 : struct ndr_push *_ndr_secdesc;
5149 0 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
5150 0 : NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
5151 0 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
5152 : }
5153 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
5154 : }
5155 0 : ndr->flags = _flags_save_spoolss_security_descriptor;
5156 : }
5157 : }
5158 0 : return NDR_ERR_SUCCESS;
5159 : }
5160 :
5161 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_JobInfo4 *r)
5162 : {
5163 0 : uint32_t _ptr_printer_name;
5164 0 : TALLOC_CTX *_mem_save_printer_name_0 = NULL;
5165 0 : uint32_t _ptr_server_name;
5166 0 : TALLOC_CTX *_mem_save_server_name_0 = NULL;
5167 0 : uint32_t _ptr_user_name;
5168 0 : TALLOC_CTX *_mem_save_user_name_0 = NULL;
5169 0 : uint32_t _ptr_document_name;
5170 0 : TALLOC_CTX *_mem_save_document_name_0 = NULL;
5171 0 : uint32_t _ptr_notify_name;
5172 0 : TALLOC_CTX *_mem_save_notify_name_0 = NULL;
5173 0 : uint32_t _ptr_data_type;
5174 0 : TALLOC_CTX *_mem_save_data_type_0 = NULL;
5175 0 : uint32_t _ptr_print_processor;
5176 0 : TALLOC_CTX *_mem_save_print_processor_0 = NULL;
5177 0 : uint32_t _ptr_parameters;
5178 0 : TALLOC_CTX *_mem_save_parameters_0 = NULL;
5179 0 : uint32_t _ptr_driver_name;
5180 0 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
5181 0 : uint32_t _ptr_devmode;
5182 0 : TALLOC_CTX *_mem_save_devmode_0 = NULL;
5183 0 : uint32_t _ptr_text_status;
5184 0 : TALLOC_CTX *_mem_save_text_status_0 = NULL;
5185 0 : uint32_t _ptr_secdesc;
5186 0 : TALLOC_CTX *_mem_save_secdesc_0 = NULL;
5187 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
5188 0 : if (ndr_flags & NDR_SCALARS) {
5189 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
5190 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5191 : {
5192 0 : libndr_flags _flags_save_string = ndr->flags;
5193 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5194 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5195 0 : if (_ptr_printer_name) {
5196 0 : NDR_PULL_ALLOC(ndr, r->printer_name);
5197 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
5198 : } else {
5199 0 : r->printer_name = NULL;
5200 : }
5201 0 : ndr->flags = _flags_save_string;
5202 : }
5203 : {
5204 0 : libndr_flags _flags_save_string = ndr->flags;
5205 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5206 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5207 0 : if (_ptr_server_name) {
5208 0 : NDR_PULL_ALLOC(ndr, r->server_name);
5209 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
5210 : } else {
5211 0 : r->server_name = NULL;
5212 : }
5213 0 : ndr->flags = _flags_save_string;
5214 : }
5215 : {
5216 0 : libndr_flags _flags_save_string = ndr->flags;
5217 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5218 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5219 0 : if (_ptr_user_name) {
5220 0 : NDR_PULL_ALLOC(ndr, r->user_name);
5221 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
5222 : } else {
5223 0 : r->user_name = NULL;
5224 : }
5225 0 : ndr->flags = _flags_save_string;
5226 : }
5227 : {
5228 0 : libndr_flags _flags_save_string = ndr->flags;
5229 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5230 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5231 0 : if (_ptr_document_name) {
5232 0 : NDR_PULL_ALLOC(ndr, r->document_name);
5233 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
5234 : } else {
5235 0 : r->document_name = NULL;
5236 : }
5237 0 : ndr->flags = _flags_save_string;
5238 : }
5239 : {
5240 0 : libndr_flags _flags_save_string = ndr->flags;
5241 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5242 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5243 0 : if (_ptr_notify_name) {
5244 0 : NDR_PULL_ALLOC(ndr, r->notify_name);
5245 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
5246 : } else {
5247 0 : r->notify_name = NULL;
5248 : }
5249 0 : ndr->flags = _flags_save_string;
5250 : }
5251 : {
5252 0 : libndr_flags _flags_save_string = ndr->flags;
5253 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5254 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5255 0 : if (_ptr_data_type) {
5256 0 : NDR_PULL_ALLOC(ndr, r->data_type);
5257 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
5258 : } else {
5259 0 : r->data_type = NULL;
5260 : }
5261 0 : ndr->flags = _flags_save_string;
5262 : }
5263 : {
5264 0 : libndr_flags _flags_save_string = ndr->flags;
5265 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5266 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5267 0 : if (_ptr_print_processor) {
5268 0 : NDR_PULL_ALLOC(ndr, r->print_processor);
5269 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
5270 : } else {
5271 0 : r->print_processor = NULL;
5272 : }
5273 0 : ndr->flags = _flags_save_string;
5274 : }
5275 : {
5276 0 : libndr_flags _flags_save_string = ndr->flags;
5277 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5278 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5279 0 : if (_ptr_parameters) {
5280 0 : NDR_PULL_ALLOC(ndr, r->parameters);
5281 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
5282 : } else {
5283 0 : r->parameters = NULL;
5284 : }
5285 0 : ndr->flags = _flags_save_string;
5286 : }
5287 : {
5288 0 : libndr_flags _flags_save_string = ndr->flags;
5289 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5290 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5291 0 : if (_ptr_driver_name) {
5292 0 : NDR_PULL_ALLOC(ndr, r->driver_name);
5293 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
5294 : } else {
5295 0 : r->driver_name = NULL;
5296 : }
5297 0 : ndr->flags = _flags_save_string;
5298 : }
5299 : {
5300 0 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
5301 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5302 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
5303 0 : if (_ptr_devmode) {
5304 0 : NDR_PULL_ALLOC(ndr, r->devmode);
5305 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
5306 : } else {
5307 0 : r->devmode = NULL;
5308 : }
5309 0 : ndr->flags = _flags_save_spoolss_DeviceMode;
5310 : }
5311 : {
5312 0 : libndr_flags _flags_save_string = ndr->flags;
5313 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5314 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5315 0 : if (_ptr_text_status) {
5316 0 : NDR_PULL_ALLOC(ndr, r->text_status);
5317 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
5318 : } else {
5319 0 : r->text_status = NULL;
5320 : }
5321 0 : ndr->flags = _flags_save_string;
5322 : }
5323 : {
5324 0 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
5325 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5326 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
5327 0 : if (_ptr_secdesc) {
5328 0 : NDR_PULL_ALLOC(ndr, r->secdesc);
5329 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
5330 : } else {
5331 0 : r->secdesc = NULL;
5332 : }
5333 0 : ndr->flags = _flags_save_spoolss_security_descriptor;
5334 : }
5335 0 : NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5336 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5337 0 : if (r->priority > 99) {
5338 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->priority), (uint32_t)(0), (uint32_t)(99));
5339 : }
5340 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5341 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5342 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5343 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5344 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5345 0 : NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5346 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5347 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5348 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5349 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5350 : }
5351 0 : if (ndr_flags & NDR_BUFFERS) {
5352 : {
5353 0 : libndr_flags _flags_save_string = ndr->flags;
5354 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5355 0 : if (r->printer_name) {
5356 0 : uint32_t _relative_save_offset;
5357 0 : _relative_save_offset = ndr->offset;
5358 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
5359 0 : _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5360 0 : NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5361 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
5362 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5363 0 : if (ndr->offset > ndr->relative_highest_offset) {
5364 0 : ndr->relative_highest_offset = ndr->offset;
5365 : }
5366 0 : ndr->offset = _relative_save_offset;
5367 : }
5368 0 : ndr->flags = _flags_save_string;
5369 : }
5370 : {
5371 0 : libndr_flags _flags_save_string = ndr->flags;
5372 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5373 0 : if (r->server_name) {
5374 0 : uint32_t _relative_save_offset;
5375 0 : _relative_save_offset = ndr->offset;
5376 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
5377 0 : _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5378 0 : NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5379 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
5380 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5381 0 : if (ndr->offset > ndr->relative_highest_offset) {
5382 0 : ndr->relative_highest_offset = ndr->offset;
5383 : }
5384 0 : ndr->offset = _relative_save_offset;
5385 : }
5386 0 : ndr->flags = _flags_save_string;
5387 : }
5388 : {
5389 0 : libndr_flags _flags_save_string = ndr->flags;
5390 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5391 0 : if (r->user_name) {
5392 0 : uint32_t _relative_save_offset;
5393 0 : _relative_save_offset = ndr->offset;
5394 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
5395 0 : _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5396 0 : NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5397 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
5398 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5399 0 : if (ndr->offset > ndr->relative_highest_offset) {
5400 0 : ndr->relative_highest_offset = ndr->offset;
5401 : }
5402 0 : ndr->offset = _relative_save_offset;
5403 : }
5404 0 : ndr->flags = _flags_save_string;
5405 : }
5406 : {
5407 0 : libndr_flags _flags_save_string = ndr->flags;
5408 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5409 0 : if (r->document_name) {
5410 0 : uint32_t _relative_save_offset;
5411 0 : _relative_save_offset = ndr->offset;
5412 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
5413 0 : _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5414 0 : NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5415 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
5416 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5417 0 : if (ndr->offset > ndr->relative_highest_offset) {
5418 0 : ndr->relative_highest_offset = ndr->offset;
5419 : }
5420 0 : ndr->offset = _relative_save_offset;
5421 : }
5422 0 : ndr->flags = _flags_save_string;
5423 : }
5424 : {
5425 0 : libndr_flags _flags_save_string = ndr->flags;
5426 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5427 0 : if (r->notify_name) {
5428 0 : uint32_t _relative_save_offset;
5429 0 : _relative_save_offset = ndr->offset;
5430 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
5431 0 : _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5432 0 : NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5433 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
5434 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5435 0 : if (ndr->offset > ndr->relative_highest_offset) {
5436 0 : ndr->relative_highest_offset = ndr->offset;
5437 : }
5438 0 : ndr->offset = _relative_save_offset;
5439 : }
5440 0 : ndr->flags = _flags_save_string;
5441 : }
5442 : {
5443 0 : libndr_flags _flags_save_string = ndr->flags;
5444 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5445 0 : if (r->data_type) {
5446 0 : uint32_t _relative_save_offset;
5447 0 : _relative_save_offset = ndr->offset;
5448 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
5449 0 : _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5450 0 : NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5451 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
5452 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5453 0 : if (ndr->offset > ndr->relative_highest_offset) {
5454 0 : ndr->relative_highest_offset = ndr->offset;
5455 : }
5456 0 : ndr->offset = _relative_save_offset;
5457 : }
5458 0 : ndr->flags = _flags_save_string;
5459 : }
5460 : {
5461 0 : libndr_flags _flags_save_string = ndr->flags;
5462 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5463 0 : if (r->print_processor) {
5464 0 : uint32_t _relative_save_offset;
5465 0 : _relative_save_offset = ndr->offset;
5466 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
5467 0 : _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5468 0 : NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5469 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
5470 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5471 0 : if (ndr->offset > ndr->relative_highest_offset) {
5472 0 : ndr->relative_highest_offset = ndr->offset;
5473 : }
5474 0 : ndr->offset = _relative_save_offset;
5475 : }
5476 0 : ndr->flags = _flags_save_string;
5477 : }
5478 : {
5479 0 : libndr_flags _flags_save_string = ndr->flags;
5480 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5481 0 : if (r->parameters) {
5482 0 : uint32_t _relative_save_offset;
5483 0 : _relative_save_offset = ndr->offset;
5484 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
5485 0 : _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5486 0 : NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5487 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
5488 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5489 0 : if (ndr->offset > ndr->relative_highest_offset) {
5490 0 : ndr->relative_highest_offset = ndr->offset;
5491 : }
5492 0 : ndr->offset = _relative_save_offset;
5493 : }
5494 0 : ndr->flags = _flags_save_string;
5495 : }
5496 : {
5497 0 : libndr_flags _flags_save_string = ndr->flags;
5498 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5499 0 : if (r->driver_name) {
5500 0 : uint32_t _relative_save_offset;
5501 0 : _relative_save_offset = ndr->offset;
5502 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
5503 0 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5504 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5505 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
5506 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5507 0 : if (ndr->offset > ndr->relative_highest_offset) {
5508 0 : ndr->relative_highest_offset = ndr->offset;
5509 : }
5510 0 : ndr->offset = _relative_save_offset;
5511 : }
5512 0 : ndr->flags = _flags_save_string;
5513 : }
5514 : {
5515 0 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
5516 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5517 0 : if (r->devmode) {
5518 0 : uint32_t _relative_save_offset;
5519 0 : _relative_save_offset = ndr->offset;
5520 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
5521 0 : _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
5522 0 : NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
5523 : {
5524 0 : struct ndr_pull *_ndr_devmode;
5525 0 : ssize_t sub_size = -1;
5526 0 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, sub_size));
5527 0 : NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
5528 0 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, sub_size));
5529 : }
5530 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
5531 0 : if (ndr->offset > ndr->relative_highest_offset) {
5532 0 : ndr->relative_highest_offset = ndr->offset;
5533 : }
5534 0 : ndr->offset = _relative_save_offset;
5535 : }
5536 0 : ndr->flags = _flags_save_spoolss_DeviceMode;
5537 : }
5538 : {
5539 0 : libndr_flags _flags_save_string = ndr->flags;
5540 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5541 0 : if (r->text_status) {
5542 0 : uint32_t _relative_save_offset;
5543 0 : _relative_save_offset = ndr->offset;
5544 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
5545 0 : _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5546 0 : NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5547 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
5548 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5549 0 : if (ndr->offset > ndr->relative_highest_offset) {
5550 0 : ndr->relative_highest_offset = ndr->offset;
5551 : }
5552 0 : ndr->offset = _relative_save_offset;
5553 : }
5554 0 : ndr->flags = _flags_save_string;
5555 : }
5556 : {
5557 0 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
5558 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5559 0 : if (r->secdesc) {
5560 0 : uint32_t _relative_save_offset;
5561 0 : _relative_save_offset = ndr->offset;
5562 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
5563 0 : _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
5564 0 : NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
5565 : {
5566 0 : struct ndr_pull *_ndr_secdesc;
5567 0 : ssize_t sub_size = -1;
5568 0 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, sub_size));
5569 0 : NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
5570 0 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, sub_size));
5571 : }
5572 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
5573 0 : if (ndr->offset > ndr->relative_highest_offset) {
5574 0 : ndr->relative_highest_offset = ndr->offset;
5575 : }
5576 0 : ndr->offset = _relative_save_offset;
5577 : }
5578 0 : ndr->flags = _flags_save_spoolss_security_descriptor;
5579 : }
5580 : }
5581 0 : return NDR_ERR_SUCCESS;
5582 : }
5583 :
5584 0 : static void ndr_print_flags_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_JobInfo4 *r)
5585 : {
5586 0 : ndr_print_spoolss_JobInfo4(ndr, name, r);
5587 0 : }
5588 :
5589 0 : _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
5590 : {
5591 0 : ndr_print_struct(ndr, name, "spoolss_JobInfo4");
5592 0 : if (r == NULL) { ndr_print_null(ndr); return; }
5593 0 : ndr->depth++;
5594 0 : ndr_print_uint32(ndr, "job_id", r->job_id);
5595 : {
5596 0 : libndr_flags _flags_save_string = ndr->flags;
5597 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5598 0 : ndr_print_ptr(ndr, "printer_name", r->printer_name);
5599 0 : ndr->depth++;
5600 0 : if (r->printer_name) {
5601 0 : ndr_print_string(ndr, "printer_name", r->printer_name);
5602 : }
5603 0 : ndr->depth--;
5604 0 : ndr->flags = _flags_save_string;
5605 : }
5606 : {
5607 0 : libndr_flags _flags_save_string = ndr->flags;
5608 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5609 0 : ndr_print_ptr(ndr, "server_name", r->server_name);
5610 0 : ndr->depth++;
5611 0 : if (r->server_name) {
5612 0 : ndr_print_string(ndr, "server_name", r->server_name);
5613 : }
5614 0 : ndr->depth--;
5615 0 : ndr->flags = _flags_save_string;
5616 : }
5617 : {
5618 0 : libndr_flags _flags_save_string = ndr->flags;
5619 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5620 0 : ndr_print_ptr(ndr, "user_name", r->user_name);
5621 0 : ndr->depth++;
5622 0 : if (r->user_name) {
5623 0 : ndr_print_string(ndr, "user_name", r->user_name);
5624 : }
5625 0 : ndr->depth--;
5626 0 : ndr->flags = _flags_save_string;
5627 : }
5628 : {
5629 0 : libndr_flags _flags_save_string = ndr->flags;
5630 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5631 0 : ndr_print_ptr(ndr, "document_name", r->document_name);
5632 0 : ndr->depth++;
5633 0 : if (r->document_name) {
5634 0 : ndr_print_string(ndr, "document_name", r->document_name);
5635 : }
5636 0 : ndr->depth--;
5637 0 : ndr->flags = _flags_save_string;
5638 : }
5639 : {
5640 0 : libndr_flags _flags_save_string = ndr->flags;
5641 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5642 0 : ndr_print_ptr(ndr, "notify_name", r->notify_name);
5643 0 : ndr->depth++;
5644 0 : if (r->notify_name) {
5645 0 : ndr_print_string(ndr, "notify_name", r->notify_name);
5646 : }
5647 0 : ndr->depth--;
5648 0 : ndr->flags = _flags_save_string;
5649 : }
5650 : {
5651 0 : libndr_flags _flags_save_string = ndr->flags;
5652 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5653 0 : ndr_print_ptr(ndr, "data_type", r->data_type);
5654 0 : ndr->depth++;
5655 0 : if (r->data_type) {
5656 0 : ndr_print_string(ndr, "data_type", r->data_type);
5657 : }
5658 0 : ndr->depth--;
5659 0 : ndr->flags = _flags_save_string;
5660 : }
5661 : {
5662 0 : libndr_flags _flags_save_string = ndr->flags;
5663 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5664 0 : ndr_print_ptr(ndr, "print_processor", r->print_processor);
5665 0 : ndr->depth++;
5666 0 : if (r->print_processor) {
5667 0 : ndr_print_string(ndr, "print_processor", r->print_processor);
5668 : }
5669 0 : ndr->depth--;
5670 0 : ndr->flags = _flags_save_string;
5671 : }
5672 : {
5673 0 : libndr_flags _flags_save_string = ndr->flags;
5674 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5675 0 : ndr_print_ptr(ndr, "parameters", r->parameters);
5676 0 : ndr->depth++;
5677 0 : if (r->parameters) {
5678 0 : ndr_print_string(ndr, "parameters", r->parameters);
5679 : }
5680 0 : ndr->depth--;
5681 0 : ndr->flags = _flags_save_string;
5682 : }
5683 : {
5684 0 : libndr_flags _flags_save_string = ndr->flags;
5685 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5686 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
5687 0 : ndr->depth++;
5688 0 : if (r->driver_name) {
5689 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
5690 : }
5691 0 : ndr->depth--;
5692 0 : ndr->flags = _flags_save_string;
5693 : }
5694 : {
5695 0 : libndr_flags _flags_save_spoolss_DeviceMode = ndr->flags;
5696 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5697 0 : ndr_print_ptr(ndr, "devmode", r->devmode);
5698 0 : ndr->depth++;
5699 0 : if (r->devmode) {
5700 0 : ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
5701 : }
5702 0 : ndr->depth--;
5703 0 : ndr->flags = _flags_save_spoolss_DeviceMode;
5704 : }
5705 : {
5706 0 : libndr_flags _flags_save_string = ndr->flags;
5707 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5708 0 : ndr_print_ptr(ndr, "text_status", r->text_status);
5709 0 : ndr->depth++;
5710 0 : if (r->text_status) {
5711 0 : ndr_print_string(ndr, "text_status", r->text_status);
5712 : }
5713 0 : ndr->depth--;
5714 0 : ndr->flags = _flags_save_string;
5715 : }
5716 : {
5717 0 : libndr_flags _flags_save_spoolss_security_descriptor = ndr->flags;
5718 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5719 0 : ndr_print_ptr(ndr, "secdesc", r->secdesc);
5720 0 : ndr->depth++;
5721 0 : if (r->secdesc) {
5722 0 : ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
5723 : }
5724 0 : ndr->depth--;
5725 0 : ndr->flags = _flags_save_spoolss_security_descriptor;
5726 : }
5727 0 : ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5728 0 : ndr_print_uint32(ndr, "priority", r->priority);
5729 0 : ndr_print_uint32(ndr, "position", r->position);
5730 0 : ndr_print_uint32(ndr, "start_time", r->start_time);
5731 0 : ndr_print_uint32(ndr, "until_time", r->until_time);
5732 0 : ndr_print_uint32(ndr, "total_pages", r->total_pages);
5733 0 : ndr_print_uint32(ndr, "size", r->size);
5734 0 : ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5735 0 : ndr_print_uint32(ndr, "time", r->time);
5736 0 : ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5737 0 : ndr_print_uint32(ndr, "size_high", r->size_high);
5738 0 : ndr->depth--;
5739 : }
5740 :
5741 0 : _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, libndr_flags flags)
5742 : {
5743 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4);
5744 : }
5745 :
5746 984 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_JobInfo *r)
5747 : {
5748 984 : uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
5749 0 : uint32_t level;
5750 : {
5751 984 : libndr_flags _flags_save_UNION = ndr->flags;
5752 984 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5753 984 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
5754 984 : if (ndr_flags & NDR_SCALARS) {
5755 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
5756 588 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
5757 588 : NDR_CHECK(ndr_push_union_align(ndr, 5));
5758 588 : switch (level) {
5759 480 : case 1: {
5760 480 : NDR_CHECK(ndr_push_align(ndr, 5));
5761 480 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5762 480 : NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
5763 480 : break; }
5764 :
5765 108 : case 2: {
5766 108 : NDR_CHECK(ndr_push_align(ndr, 5));
5767 108 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5768 108 : NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
5769 108 : break; }
5770 :
5771 0 : case 3: {
5772 0 : NDR_CHECK(ndr_push_align(ndr, 4));
5773 0 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5774 0 : NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
5775 0 : break; }
5776 :
5777 0 : case 4: {
5778 0 : NDR_CHECK(ndr_push_align(ndr, 5));
5779 0 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5780 0 : NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5781 0 : break; }
5782 :
5783 0 : default: {
5784 0 : break; }
5785 :
5786 : }
5787 : }
5788 984 : if (ndr_flags & NDR_BUFFERS) {
5789 588 : if (!(ndr_flags & NDR_SCALARS)) {
5790 : /* We didn't get it above, and the token is not needed after this. */
5791 396 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
5792 : }
5793 588 : NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
5794 588 : switch (level) {
5795 480 : case 1:
5796 480 : NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5797 480 : break;
5798 :
5799 108 : case 2:
5800 108 : NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5801 108 : break;
5802 :
5803 0 : case 3:
5804 0 : break;
5805 :
5806 0 : case 4:
5807 0 : NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5808 0 : break;
5809 :
5810 0 : default:
5811 0 : break;
5812 :
5813 : }
5814 : }
5815 984 : ndr->flags = _flags_save_UNION;
5816 : }
5817 984 : ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
5818 984 : return NDR_ERR_SUCCESS;
5819 : }
5820 :
5821 328 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_JobInfo *r)
5822 : {
5823 328 : uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
5824 0 : uint32_t level;
5825 : {
5826 328 : libndr_flags _flags_save_UNION = ndr->flags;
5827 328 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5828 328 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
5829 328 : if (ndr_flags & NDR_SCALARS) {
5830 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
5831 196 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
5832 196 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
5833 196 : switch (level) {
5834 160 : case 1: {
5835 160 : NDR_CHECK(ndr_pull_align(ndr, 5));
5836 160 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5837 160 : NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
5838 160 : break; }
5839 :
5840 36 : case 2: {
5841 36 : NDR_CHECK(ndr_pull_align(ndr, 5));
5842 36 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5843 36 : NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
5844 36 : break; }
5845 :
5846 0 : case 3: {
5847 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
5848 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5849 0 : NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
5850 0 : break; }
5851 :
5852 0 : case 4: {
5853 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
5854 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5855 0 : NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5856 0 : break; }
5857 :
5858 0 : default: {
5859 0 : break; }
5860 :
5861 : }
5862 : }
5863 328 : if (ndr_flags & NDR_BUFFERS) {
5864 196 : if (!(ndr_flags & NDR_SCALARS)) {
5865 : /* We didn't get it above, and the token is not needed after this. */
5866 132 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
5867 : }
5868 196 : switch (level) {
5869 160 : case 1:
5870 160 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
5871 160 : NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5872 160 : break;
5873 :
5874 36 : case 2:
5875 36 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
5876 36 : NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5877 36 : break;
5878 :
5879 0 : case 3:
5880 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
5881 0 : break;
5882 :
5883 0 : case 4:
5884 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
5885 0 : NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5886 0 : break;
5887 :
5888 0 : default:
5889 0 : break;
5890 :
5891 : }
5892 : }
5893 328 : ndr->flags = _flags_save_UNION;
5894 : }
5895 328 : ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
5896 328 : return NDR_ERR_SUCCESS;
5897 : }
5898 :
5899 0 : _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
5900 : {
5901 0 : uint32_t level;
5902 : {
5903 0 : libndr_flags _flags_save_UNION = ndr->flags;
5904 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5905 0 : level = ndr_print_steal_switch_value(ndr, r);
5906 0 : ndr_print_union(ndr, name, level, "spoolss_JobInfo");
5907 0 : switch (level) {
5908 0 : case 1:
5909 0 : ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
5910 0 : break;
5911 :
5912 0 : case 2:
5913 0 : ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
5914 0 : break;
5915 :
5916 0 : case 3:
5917 0 : ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
5918 0 : break;
5919 :
5920 0 : case 4:
5921 0 : ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
5922 0 : break;
5923 :
5924 0 : default:
5925 0 : break;
5926 :
5927 : }
5928 0 : ndr->flags = _flags_save_UNION;
5929 : }
5930 0 : }
5931 :
5932 128 : _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, libndr_flags flags)
5933 : {
5934 128 : flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
5935 128 : return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo);
5936 : }
5937 :
5938 32 : static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetJobInfo1 *r)
5939 : {
5940 32 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
5941 32 : if (ndr_flags & NDR_SCALARS) {
5942 32 : NDR_CHECK(ndr_push_align(ndr, 5));
5943 32 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5944 32 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5945 32 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5946 32 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5947 32 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5948 32 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5949 32 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5950 32 : NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5951 32 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5952 32 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5953 32 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5954 32 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5955 32 : NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5956 32 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5957 : }
5958 32 : if (ndr_flags & NDR_BUFFERS) {
5959 32 : if (r->printer_name) {
5960 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5961 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5962 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5963 32 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5964 : }
5965 32 : if (r->server_name) {
5966 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5967 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5968 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5969 32 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5970 : }
5971 32 : if (r->user_name) {
5972 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5973 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5974 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5975 32 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5976 : }
5977 32 : if (r->document_name) {
5978 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5979 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5980 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5981 32 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5982 : }
5983 32 : if (r->data_type) {
5984 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5985 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5986 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5987 32 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5988 : }
5989 32 : if (r->text_status) {
5990 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5991 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5992 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5993 32 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5994 : }
5995 : }
5996 32 : return NDR_ERR_SUCCESS;
5997 : }
5998 :
5999 32 : static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetJobInfo1 *r)
6000 : {
6001 0 : uint32_t _ptr_printer_name;
6002 32 : uint32_t size_printer_name_1 = 0;
6003 32 : uint32_t length_printer_name_1 = 0;
6004 32 : TALLOC_CTX *_mem_save_printer_name_0 = NULL;
6005 0 : uint32_t _ptr_server_name;
6006 32 : uint32_t size_server_name_1 = 0;
6007 32 : uint32_t length_server_name_1 = 0;
6008 32 : TALLOC_CTX *_mem_save_server_name_0 = NULL;
6009 0 : uint32_t _ptr_user_name;
6010 32 : uint32_t size_user_name_1 = 0;
6011 32 : uint32_t length_user_name_1 = 0;
6012 32 : TALLOC_CTX *_mem_save_user_name_0 = NULL;
6013 0 : uint32_t _ptr_document_name;
6014 32 : uint32_t size_document_name_1 = 0;
6015 32 : uint32_t length_document_name_1 = 0;
6016 32 : TALLOC_CTX *_mem_save_document_name_0 = NULL;
6017 0 : uint32_t _ptr_data_type;
6018 32 : uint32_t size_data_type_1 = 0;
6019 32 : uint32_t length_data_type_1 = 0;
6020 32 : TALLOC_CTX *_mem_save_data_type_0 = NULL;
6021 0 : uint32_t _ptr_text_status;
6022 32 : uint32_t size_text_status_1 = 0;
6023 32 : uint32_t length_text_status_1 = 0;
6024 32 : TALLOC_CTX *_mem_save_text_status_0 = NULL;
6025 32 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
6026 32 : if (ndr_flags & NDR_SCALARS) {
6027 32 : NDR_CHECK(ndr_pull_align(ndr, 5));
6028 32 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
6029 32 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
6030 32 : if (_ptr_printer_name) {
6031 32 : NDR_PULL_ALLOC(ndr, r->printer_name);
6032 : } else {
6033 0 : r->printer_name = NULL;
6034 : }
6035 32 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
6036 32 : if (_ptr_server_name) {
6037 32 : NDR_PULL_ALLOC(ndr, r->server_name);
6038 : } else {
6039 0 : r->server_name = NULL;
6040 : }
6041 32 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
6042 32 : if (_ptr_user_name) {
6043 32 : NDR_PULL_ALLOC(ndr, r->user_name);
6044 : } else {
6045 0 : r->user_name = NULL;
6046 : }
6047 32 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
6048 32 : if (_ptr_document_name) {
6049 32 : NDR_PULL_ALLOC(ndr, r->document_name);
6050 : } else {
6051 0 : r->document_name = NULL;
6052 : }
6053 32 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
6054 32 : if (_ptr_data_type) {
6055 32 : NDR_PULL_ALLOC(ndr, r->data_type);
6056 : } else {
6057 0 : r->data_type = NULL;
6058 : }
6059 32 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
6060 32 : if (_ptr_text_status) {
6061 32 : NDR_PULL_ALLOC(ndr, r->text_status);
6062 : } else {
6063 0 : r->text_status = NULL;
6064 : }
6065 32 : NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
6066 32 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6067 32 : if (r->priority > 99) {
6068 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->priority), (uint32_t)(0), (uint32_t)(99));
6069 : }
6070 32 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
6071 32 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6072 32 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
6073 32 : NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
6074 32 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6075 : }
6076 32 : if (ndr_flags & NDR_BUFFERS) {
6077 32 : if (r->printer_name) {
6078 32 : _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6079 32 : NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
6080 32 : NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
6081 32 : NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
6082 32 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->printer_name, &size_printer_name_1));
6083 32 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->printer_name, &length_printer_name_1));
6084 32 : if (length_printer_name_1 > size_printer_name_1) {
6085 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printer_name_1, length_printer_name_1);
6086 : }
6087 32 : NDR_CHECK(ndr_check_string_terminator(ndr, length_printer_name_1, sizeof(uint16_t)));
6088 32 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, length_printer_name_1, sizeof(uint16_t), CH_UTF16));
6089 32 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
6090 : }
6091 32 : if (r->server_name) {
6092 32 : _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6093 32 : NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
6094 32 : NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
6095 32 : NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
6096 32 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->server_name, &size_server_name_1));
6097 32 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->server_name, &length_server_name_1));
6098 32 : if (length_server_name_1 > size_server_name_1) {
6099 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_name_1, length_server_name_1);
6100 : }
6101 32 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
6102 32 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
6103 32 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
6104 : }
6105 32 : if (r->user_name) {
6106 32 : _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6107 32 : NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
6108 32 : NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
6109 32 : NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
6110 32 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->user_name, &size_user_name_1));
6111 32 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->user_name, &length_user_name_1));
6112 32 : if (length_user_name_1 > size_user_name_1) {
6113 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_user_name_1, length_user_name_1);
6114 : }
6115 32 : NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t)));
6116 32 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16));
6117 32 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
6118 : }
6119 32 : if (r->document_name) {
6120 32 : _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6121 32 : NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
6122 32 : NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
6123 32 : NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
6124 32 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->document_name, &size_document_name_1));
6125 32 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->document_name, &length_document_name_1));
6126 32 : if (length_document_name_1 > size_document_name_1) {
6127 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_document_name_1, length_document_name_1);
6128 : }
6129 32 : NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
6130 32 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
6131 32 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
6132 : }
6133 32 : if (r->data_type) {
6134 32 : _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
6135 32 : NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
6136 32 : NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
6137 32 : NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
6138 32 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->data_type, &size_data_type_1));
6139 32 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->data_type, &length_data_type_1));
6140 32 : if (length_data_type_1 > size_data_type_1) {
6141 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_type_1, length_data_type_1);
6142 : }
6143 32 : NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
6144 32 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
6145 32 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
6146 : }
6147 32 : if (r->text_status) {
6148 32 : _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
6149 32 : NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
6150 32 : NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
6151 32 : NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
6152 32 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->text_status, &size_text_status_1));
6153 32 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->text_status, &length_text_status_1));
6154 32 : if (length_text_status_1 > size_text_status_1) {
6155 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_text_status_1, length_text_status_1);
6156 : }
6157 32 : NDR_CHECK(ndr_check_string_terminator(ndr, length_text_status_1, sizeof(uint16_t)));
6158 32 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, length_text_status_1, sizeof(uint16_t), CH_UTF16));
6159 32 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
6160 : }
6161 : }
6162 32 : return NDR_ERR_SUCCESS;
6163 : }
6164 :
6165 0 : _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
6166 : {
6167 0 : ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
6168 0 : if (r == NULL) { ndr_print_null(ndr); return; }
6169 0 : ndr->depth++;
6170 0 : ndr_print_uint32(ndr, "job_id", r->job_id);
6171 0 : ndr_print_ptr(ndr, "printer_name", r->printer_name);
6172 0 : ndr->depth++;
6173 0 : if (r->printer_name) {
6174 0 : ndr_print_string(ndr, "printer_name", r->printer_name);
6175 : }
6176 0 : ndr->depth--;
6177 0 : ndr_print_ptr(ndr, "server_name", r->server_name);
6178 0 : ndr->depth++;
6179 0 : if (r->server_name) {
6180 0 : ndr_print_string(ndr, "server_name", r->server_name);
6181 : }
6182 0 : ndr->depth--;
6183 0 : ndr_print_ptr(ndr, "user_name", r->user_name);
6184 0 : ndr->depth++;
6185 0 : if (r->user_name) {
6186 0 : ndr_print_string(ndr, "user_name", r->user_name);
6187 : }
6188 0 : ndr->depth--;
6189 0 : ndr_print_ptr(ndr, "document_name", r->document_name);
6190 0 : ndr->depth++;
6191 0 : if (r->document_name) {
6192 0 : ndr_print_string(ndr, "document_name", r->document_name);
6193 : }
6194 0 : ndr->depth--;
6195 0 : ndr_print_ptr(ndr, "data_type", r->data_type);
6196 0 : ndr->depth++;
6197 0 : if (r->data_type) {
6198 0 : ndr_print_string(ndr, "data_type", r->data_type);
6199 : }
6200 0 : ndr->depth--;
6201 0 : ndr_print_ptr(ndr, "text_status", r->text_status);
6202 0 : ndr->depth++;
6203 0 : if (r->text_status) {
6204 0 : ndr_print_string(ndr, "text_status", r->text_status);
6205 : }
6206 0 : ndr->depth--;
6207 0 : ndr_print_spoolss_JobStatus(ndr, "status", r->status);
6208 0 : ndr_print_uint32(ndr, "priority", r->priority);
6209 0 : ndr_print_uint32(ndr, "position", r->position);
6210 0 : ndr_print_uint32(ndr, "total_pages", r->total_pages);
6211 0 : ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
6212 0 : ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
6213 0 : ndr->depth--;
6214 : }
6215 :
6216 0 : static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetJobInfo2 *r)
6217 : {
6218 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
6219 0 : if (ndr_flags & NDR_SCALARS) {
6220 0 : NDR_CHECK(ndr_push_align(ndr, 5));
6221 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
6222 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
6223 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
6224 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
6225 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
6226 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
6227 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
6228 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
6229 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6230 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
6231 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->_devmode_ptr));
6232 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
6233 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->_secdesc_ptr));
6234 0 : NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
6235 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6236 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
6237 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
6238 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
6239 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6240 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
6241 0 : NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
6242 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
6243 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
6244 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6245 : }
6246 0 : if (ndr_flags & NDR_BUFFERS) {
6247 0 : if (r->printer_name) {
6248 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
6249 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6250 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
6251 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6252 : }
6253 0 : if (r->server_name) {
6254 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
6255 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6256 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
6257 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6258 : }
6259 0 : if (r->user_name) {
6260 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
6261 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6262 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
6263 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6264 : }
6265 0 : if (r->document_name) {
6266 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
6267 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6268 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
6269 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6270 : }
6271 0 : if (r->notify_name) {
6272 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
6273 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6274 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
6275 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6276 : }
6277 0 : if (r->data_type) {
6278 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
6279 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6280 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
6281 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6282 : }
6283 0 : if (r->print_processor) {
6284 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6285 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6286 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6287 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6288 : }
6289 0 : if (r->parameters) {
6290 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6291 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6292 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6293 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6294 : }
6295 0 : if (r->driver_name) {
6296 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6297 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6298 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6299 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6300 : }
6301 0 : if (r->text_status) {
6302 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
6303 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6304 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
6305 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6306 : }
6307 : }
6308 0 : return NDR_ERR_SUCCESS;
6309 : }
6310 :
6311 0 : static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetJobInfo2 *r)
6312 : {
6313 0 : uint32_t _ptr_printer_name;
6314 0 : uint32_t size_printer_name_1 = 0;
6315 0 : uint32_t length_printer_name_1 = 0;
6316 0 : TALLOC_CTX *_mem_save_printer_name_0 = NULL;
6317 0 : uint32_t _ptr_server_name;
6318 0 : uint32_t size_server_name_1 = 0;
6319 0 : uint32_t length_server_name_1 = 0;
6320 0 : TALLOC_CTX *_mem_save_server_name_0 = NULL;
6321 0 : uint32_t _ptr_user_name;
6322 0 : uint32_t size_user_name_1 = 0;
6323 0 : uint32_t length_user_name_1 = 0;
6324 0 : TALLOC_CTX *_mem_save_user_name_0 = NULL;
6325 0 : uint32_t _ptr_document_name;
6326 0 : uint32_t size_document_name_1 = 0;
6327 0 : uint32_t length_document_name_1 = 0;
6328 0 : TALLOC_CTX *_mem_save_document_name_0 = NULL;
6329 0 : uint32_t _ptr_notify_name;
6330 0 : uint32_t size_notify_name_1 = 0;
6331 0 : uint32_t length_notify_name_1 = 0;
6332 0 : TALLOC_CTX *_mem_save_notify_name_0 = NULL;
6333 0 : uint32_t _ptr_data_type;
6334 0 : uint32_t size_data_type_1 = 0;
6335 0 : uint32_t length_data_type_1 = 0;
6336 0 : TALLOC_CTX *_mem_save_data_type_0 = NULL;
6337 0 : uint32_t _ptr_print_processor;
6338 0 : uint32_t size_print_processor_1 = 0;
6339 0 : uint32_t length_print_processor_1 = 0;
6340 0 : TALLOC_CTX *_mem_save_print_processor_0 = NULL;
6341 0 : uint32_t _ptr_parameters;
6342 0 : uint32_t size_parameters_1 = 0;
6343 0 : uint32_t length_parameters_1 = 0;
6344 0 : TALLOC_CTX *_mem_save_parameters_0 = NULL;
6345 0 : uint32_t _ptr_driver_name;
6346 0 : uint32_t size_driver_name_1 = 0;
6347 0 : uint32_t length_driver_name_1 = 0;
6348 0 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
6349 0 : uint32_t _ptr_text_status;
6350 0 : uint32_t size_text_status_1 = 0;
6351 0 : uint32_t length_text_status_1 = 0;
6352 0 : TALLOC_CTX *_mem_save_text_status_0 = NULL;
6353 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
6354 0 : if (ndr_flags & NDR_SCALARS) {
6355 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
6356 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
6357 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
6358 0 : if (_ptr_printer_name) {
6359 0 : NDR_PULL_ALLOC(ndr, r->printer_name);
6360 : } else {
6361 0 : r->printer_name = NULL;
6362 : }
6363 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
6364 0 : if (_ptr_server_name) {
6365 0 : NDR_PULL_ALLOC(ndr, r->server_name);
6366 : } else {
6367 0 : r->server_name = NULL;
6368 : }
6369 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
6370 0 : if (_ptr_user_name) {
6371 0 : NDR_PULL_ALLOC(ndr, r->user_name);
6372 : } else {
6373 0 : r->user_name = NULL;
6374 : }
6375 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
6376 0 : if (_ptr_document_name) {
6377 0 : NDR_PULL_ALLOC(ndr, r->document_name);
6378 : } else {
6379 0 : r->document_name = NULL;
6380 : }
6381 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
6382 0 : if (_ptr_notify_name) {
6383 0 : NDR_PULL_ALLOC(ndr, r->notify_name);
6384 : } else {
6385 0 : r->notify_name = NULL;
6386 : }
6387 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
6388 0 : if (_ptr_data_type) {
6389 0 : NDR_PULL_ALLOC(ndr, r->data_type);
6390 : } else {
6391 0 : r->data_type = NULL;
6392 : }
6393 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
6394 0 : if (_ptr_print_processor) {
6395 0 : NDR_PULL_ALLOC(ndr, r->print_processor);
6396 : } else {
6397 0 : r->print_processor = NULL;
6398 : }
6399 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6400 0 : if (_ptr_parameters) {
6401 0 : NDR_PULL_ALLOC(ndr, r->parameters);
6402 : } else {
6403 0 : r->parameters = NULL;
6404 : }
6405 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
6406 0 : if (_ptr_driver_name) {
6407 0 : NDR_PULL_ALLOC(ndr, r->driver_name);
6408 : } else {
6409 0 : r->driver_name = NULL;
6410 : }
6411 0 : NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->_devmode_ptr));
6412 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
6413 0 : if (_ptr_text_status) {
6414 0 : NDR_PULL_ALLOC(ndr, r->text_status);
6415 : } else {
6416 0 : r->text_status = NULL;
6417 : }
6418 0 : NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->_secdesc_ptr));
6419 0 : NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
6420 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6421 0 : if (r->priority > 99) {
6422 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->priority), (uint32_t)(0), (uint32_t)(99));
6423 : }
6424 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
6425 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
6426 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
6427 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6428 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
6429 0 : NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
6430 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
6431 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
6432 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6433 : }
6434 0 : if (ndr_flags & NDR_BUFFERS) {
6435 0 : if (r->printer_name) {
6436 0 : _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6437 0 : NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
6438 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
6439 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
6440 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->printer_name, &size_printer_name_1));
6441 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->printer_name, &length_printer_name_1));
6442 0 : if (length_printer_name_1 > size_printer_name_1) {
6443 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printer_name_1, length_printer_name_1);
6444 : }
6445 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_printer_name_1, sizeof(uint16_t)));
6446 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, length_printer_name_1, sizeof(uint16_t), CH_UTF16));
6447 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
6448 : }
6449 0 : if (r->server_name) {
6450 0 : _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6451 0 : NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
6452 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
6453 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
6454 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->server_name, &size_server_name_1));
6455 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->server_name, &length_server_name_1));
6456 0 : if (length_server_name_1 > size_server_name_1) {
6457 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_name_1, length_server_name_1);
6458 : }
6459 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
6460 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
6461 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
6462 : }
6463 0 : if (r->user_name) {
6464 0 : _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6465 0 : NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
6466 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
6467 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
6468 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->user_name, &size_user_name_1));
6469 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->user_name, &length_user_name_1));
6470 0 : if (length_user_name_1 > size_user_name_1) {
6471 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_user_name_1, length_user_name_1);
6472 : }
6473 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t)));
6474 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16));
6475 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
6476 : }
6477 0 : if (r->document_name) {
6478 0 : _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6479 0 : NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
6480 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
6481 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
6482 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->document_name, &size_document_name_1));
6483 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->document_name, &length_document_name_1));
6484 0 : if (length_document_name_1 > size_document_name_1) {
6485 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_document_name_1, length_document_name_1);
6486 : }
6487 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
6488 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
6489 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
6490 : }
6491 0 : if (r->notify_name) {
6492 0 : _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6493 0 : NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
6494 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
6495 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
6496 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->notify_name, &size_notify_name_1));
6497 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->notify_name, &length_notify_name_1));
6498 0 : if (length_notify_name_1 > size_notify_name_1) {
6499 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_notify_name_1, length_notify_name_1);
6500 : }
6501 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_notify_name_1, sizeof(uint16_t)));
6502 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, length_notify_name_1, sizeof(uint16_t), CH_UTF16));
6503 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
6504 : }
6505 0 : if (r->data_type) {
6506 0 : _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
6507 0 : NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
6508 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
6509 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
6510 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->data_type, &size_data_type_1));
6511 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->data_type, &length_data_type_1));
6512 0 : if (length_data_type_1 > size_data_type_1) {
6513 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_type_1, length_data_type_1);
6514 : }
6515 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
6516 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
6517 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
6518 : }
6519 0 : if (r->print_processor) {
6520 0 : _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6521 0 : NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6522 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6523 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6524 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->print_processor, &size_print_processor_1));
6525 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->print_processor, &length_print_processor_1));
6526 0 : if (length_print_processor_1 > size_print_processor_1) {
6527 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_print_processor_1, length_print_processor_1);
6528 : }
6529 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_1, sizeof(uint16_t)));
6530 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, length_print_processor_1, sizeof(uint16_t), CH_UTF16));
6531 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6532 : }
6533 0 : if (r->parameters) {
6534 0 : _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6535 0 : NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6536 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6537 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6538 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->parameters, &size_parameters_1));
6539 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->parameters, &length_parameters_1));
6540 0 : if (length_parameters_1 > size_parameters_1) {
6541 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_parameters_1, length_parameters_1);
6542 : }
6543 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_parameters_1, sizeof(uint16_t)));
6544 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, length_parameters_1, sizeof(uint16_t), CH_UTF16));
6545 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6546 : }
6547 0 : if (r->driver_name) {
6548 0 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6549 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6550 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6551 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6552 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_name, &size_driver_name_1));
6553 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_name, &length_driver_name_1));
6554 0 : if (length_driver_name_1 > size_driver_name_1) {
6555 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_name_1, length_driver_name_1);
6556 : }
6557 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
6558 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
6559 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6560 : }
6561 0 : if (r->text_status) {
6562 0 : _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
6563 0 : NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
6564 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
6565 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
6566 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->text_status, &size_text_status_1));
6567 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->text_status, &length_text_status_1));
6568 0 : if (length_text_status_1 > size_text_status_1) {
6569 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_text_status_1, length_text_status_1);
6570 : }
6571 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_text_status_1, sizeof(uint16_t)));
6572 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, length_text_status_1, sizeof(uint16_t), CH_UTF16));
6573 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
6574 : }
6575 : }
6576 0 : return NDR_ERR_SUCCESS;
6577 : }
6578 :
6579 0 : _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
6580 : {
6581 0 : ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
6582 0 : if (r == NULL) { ndr_print_null(ndr); return; }
6583 0 : ndr->depth++;
6584 0 : ndr_print_uint32(ndr, "job_id", r->job_id);
6585 0 : ndr_print_ptr(ndr, "printer_name", r->printer_name);
6586 0 : ndr->depth++;
6587 0 : if (r->printer_name) {
6588 0 : ndr_print_string(ndr, "printer_name", r->printer_name);
6589 : }
6590 0 : ndr->depth--;
6591 0 : ndr_print_ptr(ndr, "server_name", r->server_name);
6592 0 : ndr->depth++;
6593 0 : if (r->server_name) {
6594 0 : ndr_print_string(ndr, "server_name", r->server_name);
6595 : }
6596 0 : ndr->depth--;
6597 0 : ndr_print_ptr(ndr, "user_name", r->user_name);
6598 0 : ndr->depth++;
6599 0 : if (r->user_name) {
6600 0 : ndr_print_string(ndr, "user_name", r->user_name);
6601 : }
6602 0 : ndr->depth--;
6603 0 : ndr_print_ptr(ndr, "document_name", r->document_name);
6604 0 : ndr->depth++;
6605 0 : if (r->document_name) {
6606 0 : ndr_print_string(ndr, "document_name", r->document_name);
6607 : }
6608 0 : ndr->depth--;
6609 0 : ndr_print_ptr(ndr, "notify_name", r->notify_name);
6610 0 : ndr->depth++;
6611 0 : if (r->notify_name) {
6612 0 : ndr_print_string(ndr, "notify_name", r->notify_name);
6613 : }
6614 0 : ndr->depth--;
6615 0 : ndr_print_ptr(ndr, "data_type", r->data_type);
6616 0 : ndr->depth++;
6617 0 : if (r->data_type) {
6618 0 : ndr_print_string(ndr, "data_type", r->data_type);
6619 : }
6620 0 : ndr->depth--;
6621 0 : ndr_print_ptr(ndr, "print_processor", r->print_processor);
6622 0 : ndr->depth++;
6623 0 : if (r->print_processor) {
6624 0 : ndr_print_string(ndr, "print_processor", r->print_processor);
6625 : }
6626 0 : ndr->depth--;
6627 0 : ndr_print_ptr(ndr, "parameters", r->parameters);
6628 0 : ndr->depth++;
6629 0 : if (r->parameters) {
6630 0 : ndr_print_string(ndr, "parameters", r->parameters);
6631 : }
6632 0 : ndr->depth--;
6633 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
6634 0 : ndr->depth++;
6635 0 : if (r->driver_name) {
6636 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
6637 : }
6638 0 : ndr->depth--;
6639 0 : ndr_print_uint3264(ndr, "_devmode_ptr", r->_devmode_ptr);
6640 0 : ndr_print_ptr(ndr, "text_status", r->text_status);
6641 0 : ndr->depth++;
6642 0 : if (r->text_status) {
6643 0 : ndr_print_string(ndr, "text_status", r->text_status);
6644 : }
6645 0 : ndr->depth--;
6646 0 : ndr_print_uint3264(ndr, "_secdesc_ptr", r->_secdesc_ptr);
6647 0 : ndr_print_spoolss_JobStatus(ndr, "status", r->status);
6648 0 : ndr_print_uint32(ndr, "priority", r->priority);
6649 0 : ndr_print_uint32(ndr, "position", r->position);
6650 0 : ndr_print_uint32(ndr, "start_time", r->start_time);
6651 0 : ndr_print_uint32(ndr, "until_time", r->until_time);
6652 0 : ndr_print_uint32(ndr, "total_pages", r->total_pages);
6653 0 : ndr_print_uint32(ndr, "size", r->size);
6654 0 : ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
6655 0 : ndr_print_uint32(ndr, "time", r->time);
6656 0 : ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
6657 0 : ndr->depth--;
6658 : }
6659 :
6660 0 : static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetJobInfo4 *r)
6661 : {
6662 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
6663 0 : if (ndr_flags & NDR_SCALARS) {
6664 0 : NDR_CHECK(ndr_push_align(ndr, 5));
6665 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
6666 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
6667 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
6668 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
6669 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
6670 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
6671 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
6672 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
6673 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6674 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
6675 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->_devmode_ptr));
6676 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
6677 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->_secdesc_ptr));
6678 0 : NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
6679 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6680 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
6681 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
6682 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
6683 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6684 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
6685 0 : NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
6686 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
6687 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
6688 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
6689 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6690 : }
6691 0 : if (ndr_flags & NDR_BUFFERS) {
6692 0 : if (r->printer_name) {
6693 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
6694 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6695 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
6696 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6697 : }
6698 0 : if (r->server_name) {
6699 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
6700 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6701 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
6702 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6703 : }
6704 0 : if (r->user_name) {
6705 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
6706 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6707 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
6708 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6709 : }
6710 0 : if (r->document_name) {
6711 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
6712 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6713 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
6714 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6715 : }
6716 0 : if (r->notify_name) {
6717 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
6718 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6719 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
6720 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6721 : }
6722 0 : if (r->data_type) {
6723 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
6724 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6725 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
6726 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6727 : }
6728 0 : if (r->print_processor) {
6729 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6730 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6731 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6732 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6733 : }
6734 0 : if (r->parameters) {
6735 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6736 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6737 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6738 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6739 : }
6740 0 : if (r->driver_name) {
6741 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6742 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6743 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6744 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6745 : }
6746 0 : if (r->text_status) {
6747 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
6748 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6749 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
6750 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6751 : }
6752 : }
6753 0 : return NDR_ERR_SUCCESS;
6754 : }
6755 :
6756 0 : static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetJobInfo4 *r)
6757 : {
6758 0 : uint32_t _ptr_printer_name;
6759 0 : uint32_t size_printer_name_1 = 0;
6760 0 : uint32_t length_printer_name_1 = 0;
6761 0 : TALLOC_CTX *_mem_save_printer_name_0 = NULL;
6762 0 : uint32_t _ptr_server_name;
6763 0 : uint32_t size_server_name_1 = 0;
6764 0 : uint32_t length_server_name_1 = 0;
6765 0 : TALLOC_CTX *_mem_save_server_name_0 = NULL;
6766 0 : uint32_t _ptr_user_name;
6767 0 : uint32_t size_user_name_1 = 0;
6768 0 : uint32_t length_user_name_1 = 0;
6769 0 : TALLOC_CTX *_mem_save_user_name_0 = NULL;
6770 0 : uint32_t _ptr_document_name;
6771 0 : uint32_t size_document_name_1 = 0;
6772 0 : uint32_t length_document_name_1 = 0;
6773 0 : TALLOC_CTX *_mem_save_document_name_0 = NULL;
6774 0 : uint32_t _ptr_notify_name;
6775 0 : uint32_t size_notify_name_1 = 0;
6776 0 : uint32_t length_notify_name_1 = 0;
6777 0 : TALLOC_CTX *_mem_save_notify_name_0 = NULL;
6778 0 : uint32_t _ptr_data_type;
6779 0 : uint32_t size_data_type_1 = 0;
6780 0 : uint32_t length_data_type_1 = 0;
6781 0 : TALLOC_CTX *_mem_save_data_type_0 = NULL;
6782 0 : uint32_t _ptr_print_processor;
6783 0 : uint32_t size_print_processor_1 = 0;
6784 0 : uint32_t length_print_processor_1 = 0;
6785 0 : TALLOC_CTX *_mem_save_print_processor_0 = NULL;
6786 0 : uint32_t _ptr_parameters;
6787 0 : uint32_t size_parameters_1 = 0;
6788 0 : uint32_t length_parameters_1 = 0;
6789 0 : TALLOC_CTX *_mem_save_parameters_0 = NULL;
6790 0 : uint32_t _ptr_driver_name;
6791 0 : uint32_t size_driver_name_1 = 0;
6792 0 : uint32_t length_driver_name_1 = 0;
6793 0 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
6794 0 : uint32_t _ptr_text_status;
6795 0 : uint32_t size_text_status_1 = 0;
6796 0 : uint32_t length_text_status_1 = 0;
6797 0 : TALLOC_CTX *_mem_save_text_status_0 = NULL;
6798 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
6799 0 : if (ndr_flags & NDR_SCALARS) {
6800 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
6801 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
6802 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
6803 0 : if (_ptr_printer_name) {
6804 0 : NDR_PULL_ALLOC(ndr, r->printer_name);
6805 : } else {
6806 0 : r->printer_name = NULL;
6807 : }
6808 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
6809 0 : if (_ptr_server_name) {
6810 0 : NDR_PULL_ALLOC(ndr, r->server_name);
6811 : } else {
6812 0 : r->server_name = NULL;
6813 : }
6814 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
6815 0 : if (_ptr_user_name) {
6816 0 : NDR_PULL_ALLOC(ndr, r->user_name);
6817 : } else {
6818 0 : r->user_name = NULL;
6819 : }
6820 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
6821 0 : if (_ptr_document_name) {
6822 0 : NDR_PULL_ALLOC(ndr, r->document_name);
6823 : } else {
6824 0 : r->document_name = NULL;
6825 : }
6826 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
6827 0 : if (_ptr_notify_name) {
6828 0 : NDR_PULL_ALLOC(ndr, r->notify_name);
6829 : } else {
6830 0 : r->notify_name = NULL;
6831 : }
6832 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
6833 0 : if (_ptr_data_type) {
6834 0 : NDR_PULL_ALLOC(ndr, r->data_type);
6835 : } else {
6836 0 : r->data_type = NULL;
6837 : }
6838 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
6839 0 : if (_ptr_print_processor) {
6840 0 : NDR_PULL_ALLOC(ndr, r->print_processor);
6841 : } else {
6842 0 : r->print_processor = NULL;
6843 : }
6844 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6845 0 : if (_ptr_parameters) {
6846 0 : NDR_PULL_ALLOC(ndr, r->parameters);
6847 : } else {
6848 0 : r->parameters = NULL;
6849 : }
6850 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
6851 0 : if (_ptr_driver_name) {
6852 0 : NDR_PULL_ALLOC(ndr, r->driver_name);
6853 : } else {
6854 0 : r->driver_name = NULL;
6855 : }
6856 0 : NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->_devmode_ptr));
6857 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
6858 0 : if (_ptr_text_status) {
6859 0 : NDR_PULL_ALLOC(ndr, r->text_status);
6860 : } else {
6861 0 : r->text_status = NULL;
6862 : }
6863 0 : NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->_secdesc_ptr));
6864 0 : NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
6865 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6866 0 : if (r->priority > 99) {
6867 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->priority), (uint32_t)(0), (uint32_t)(99));
6868 : }
6869 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
6870 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
6871 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
6872 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6873 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
6874 0 : NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
6875 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
6876 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
6877 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
6878 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6879 : }
6880 0 : if (ndr_flags & NDR_BUFFERS) {
6881 0 : if (r->printer_name) {
6882 0 : _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6883 0 : NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
6884 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
6885 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
6886 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->printer_name, &size_printer_name_1));
6887 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->printer_name, &length_printer_name_1));
6888 0 : if (length_printer_name_1 > size_printer_name_1) {
6889 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printer_name_1, length_printer_name_1);
6890 : }
6891 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_printer_name_1, sizeof(uint16_t)));
6892 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, length_printer_name_1, sizeof(uint16_t), CH_UTF16));
6893 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
6894 : }
6895 0 : if (r->server_name) {
6896 0 : _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6897 0 : NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
6898 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
6899 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
6900 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->server_name, &size_server_name_1));
6901 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->server_name, &length_server_name_1));
6902 0 : if (length_server_name_1 > size_server_name_1) {
6903 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_name_1, length_server_name_1);
6904 : }
6905 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
6906 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
6907 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
6908 : }
6909 0 : if (r->user_name) {
6910 0 : _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6911 0 : NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
6912 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
6913 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
6914 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->user_name, &size_user_name_1));
6915 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->user_name, &length_user_name_1));
6916 0 : if (length_user_name_1 > size_user_name_1) {
6917 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_user_name_1, length_user_name_1);
6918 : }
6919 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t)));
6920 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16));
6921 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
6922 : }
6923 0 : if (r->document_name) {
6924 0 : _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6925 0 : NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
6926 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
6927 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
6928 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->document_name, &size_document_name_1));
6929 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->document_name, &length_document_name_1));
6930 0 : if (length_document_name_1 > size_document_name_1) {
6931 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_document_name_1, length_document_name_1);
6932 : }
6933 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
6934 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
6935 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
6936 : }
6937 0 : if (r->notify_name) {
6938 0 : _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6939 0 : NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
6940 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
6941 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
6942 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->notify_name, &size_notify_name_1));
6943 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->notify_name, &length_notify_name_1));
6944 0 : if (length_notify_name_1 > size_notify_name_1) {
6945 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_notify_name_1, length_notify_name_1);
6946 : }
6947 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_notify_name_1, sizeof(uint16_t)));
6948 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, length_notify_name_1, sizeof(uint16_t), CH_UTF16));
6949 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
6950 : }
6951 0 : if (r->data_type) {
6952 0 : _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
6953 0 : NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
6954 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
6955 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
6956 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->data_type, &size_data_type_1));
6957 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->data_type, &length_data_type_1));
6958 0 : if (length_data_type_1 > size_data_type_1) {
6959 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_type_1, length_data_type_1);
6960 : }
6961 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
6962 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
6963 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
6964 : }
6965 0 : if (r->print_processor) {
6966 0 : _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6967 0 : NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6968 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6969 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6970 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->print_processor, &size_print_processor_1));
6971 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->print_processor, &length_print_processor_1));
6972 0 : if (length_print_processor_1 > size_print_processor_1) {
6973 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_print_processor_1, length_print_processor_1);
6974 : }
6975 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_1, sizeof(uint16_t)));
6976 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, length_print_processor_1, sizeof(uint16_t), CH_UTF16));
6977 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6978 : }
6979 0 : if (r->parameters) {
6980 0 : _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6981 0 : NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6982 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6983 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6984 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->parameters, &size_parameters_1));
6985 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->parameters, &length_parameters_1));
6986 0 : if (length_parameters_1 > size_parameters_1) {
6987 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_parameters_1, length_parameters_1);
6988 : }
6989 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_parameters_1, sizeof(uint16_t)));
6990 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, length_parameters_1, sizeof(uint16_t), CH_UTF16));
6991 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6992 : }
6993 0 : if (r->driver_name) {
6994 0 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6995 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6996 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6997 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6998 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_name, &size_driver_name_1));
6999 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_name, &length_driver_name_1));
7000 0 : if (length_driver_name_1 > size_driver_name_1) {
7001 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_name_1, length_driver_name_1);
7002 : }
7003 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
7004 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
7005 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7006 : }
7007 0 : if (r->text_status) {
7008 0 : _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
7009 0 : NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
7010 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
7011 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
7012 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->text_status, &size_text_status_1));
7013 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->text_status, &length_text_status_1));
7014 0 : if (length_text_status_1 > size_text_status_1) {
7015 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_text_status_1, length_text_status_1);
7016 : }
7017 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_text_status_1, sizeof(uint16_t)));
7018 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, length_text_status_1, sizeof(uint16_t), CH_UTF16));
7019 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
7020 : }
7021 : }
7022 0 : return NDR_ERR_SUCCESS;
7023 : }
7024 :
7025 0 : _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
7026 : {
7027 0 : ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
7028 0 : if (r == NULL) { ndr_print_null(ndr); return; }
7029 0 : ndr->depth++;
7030 0 : ndr_print_uint32(ndr, "job_id", r->job_id);
7031 0 : ndr_print_ptr(ndr, "printer_name", r->printer_name);
7032 0 : ndr->depth++;
7033 0 : if (r->printer_name) {
7034 0 : ndr_print_string(ndr, "printer_name", r->printer_name);
7035 : }
7036 0 : ndr->depth--;
7037 0 : ndr_print_ptr(ndr, "server_name", r->server_name);
7038 0 : ndr->depth++;
7039 0 : if (r->server_name) {
7040 0 : ndr_print_string(ndr, "server_name", r->server_name);
7041 : }
7042 0 : ndr->depth--;
7043 0 : ndr_print_ptr(ndr, "user_name", r->user_name);
7044 0 : ndr->depth++;
7045 0 : if (r->user_name) {
7046 0 : ndr_print_string(ndr, "user_name", r->user_name);
7047 : }
7048 0 : ndr->depth--;
7049 0 : ndr_print_ptr(ndr, "document_name", r->document_name);
7050 0 : ndr->depth++;
7051 0 : if (r->document_name) {
7052 0 : ndr_print_string(ndr, "document_name", r->document_name);
7053 : }
7054 0 : ndr->depth--;
7055 0 : ndr_print_ptr(ndr, "notify_name", r->notify_name);
7056 0 : ndr->depth++;
7057 0 : if (r->notify_name) {
7058 0 : ndr_print_string(ndr, "notify_name", r->notify_name);
7059 : }
7060 0 : ndr->depth--;
7061 0 : ndr_print_ptr(ndr, "data_type", r->data_type);
7062 0 : ndr->depth++;
7063 0 : if (r->data_type) {
7064 0 : ndr_print_string(ndr, "data_type", r->data_type);
7065 : }
7066 0 : ndr->depth--;
7067 0 : ndr_print_ptr(ndr, "print_processor", r->print_processor);
7068 0 : ndr->depth++;
7069 0 : if (r->print_processor) {
7070 0 : ndr_print_string(ndr, "print_processor", r->print_processor);
7071 : }
7072 0 : ndr->depth--;
7073 0 : ndr_print_ptr(ndr, "parameters", r->parameters);
7074 0 : ndr->depth++;
7075 0 : if (r->parameters) {
7076 0 : ndr_print_string(ndr, "parameters", r->parameters);
7077 : }
7078 0 : ndr->depth--;
7079 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
7080 0 : ndr->depth++;
7081 0 : if (r->driver_name) {
7082 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
7083 : }
7084 0 : ndr->depth--;
7085 0 : ndr_print_uint3264(ndr, "_devmode_ptr", r->_devmode_ptr);
7086 0 : ndr_print_ptr(ndr, "text_status", r->text_status);
7087 0 : ndr->depth++;
7088 0 : if (r->text_status) {
7089 0 : ndr_print_string(ndr, "text_status", r->text_status);
7090 : }
7091 0 : ndr->depth--;
7092 0 : ndr_print_uint3264(ndr, "_secdesc_ptr", r->_secdesc_ptr);
7093 0 : ndr_print_spoolss_JobStatus(ndr, "status", r->status);
7094 0 : ndr_print_uint32(ndr, "priority", r->priority);
7095 0 : ndr_print_uint32(ndr, "position", r->position);
7096 0 : ndr_print_uint32(ndr, "start_time", r->start_time);
7097 0 : ndr_print_uint32(ndr, "until_time", r->until_time);
7098 0 : ndr_print_uint32(ndr, "total_pages", r->total_pages);
7099 0 : ndr_print_uint32(ndr, "size", r->size);
7100 0 : ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
7101 0 : ndr_print_uint32(ndr, "time", r->time);
7102 0 : ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
7103 0 : ndr_print_uint32(ndr, "size_high", r->size_high);
7104 0 : ndr->depth--;
7105 : }
7106 :
7107 64 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_SetJobInfo *r)
7108 : {
7109 0 : uint32_t level;
7110 64 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7111 64 : if (ndr_flags & NDR_SCALARS) {
7112 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
7113 32 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
7114 32 : NDR_CHECK(ndr_push_union_align(ndr, 5));
7115 32 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7116 : /* ms_union is always aligned to the largest union arm*/
7117 32 : NDR_CHECK(ndr_push_align(ndr, 5));
7118 32 : switch (level) {
7119 32 : case 1: {
7120 32 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7121 32 : break; }
7122 :
7123 0 : case 2: {
7124 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7125 0 : break; }
7126 :
7127 0 : case 3: {
7128 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
7129 0 : break; }
7130 :
7131 0 : case 4: {
7132 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
7133 0 : break; }
7134 :
7135 0 : default: {
7136 0 : break; }
7137 :
7138 : }
7139 : }
7140 64 : if (ndr_flags & NDR_BUFFERS) {
7141 32 : if (!(ndr_flags & NDR_SCALARS)) {
7142 : /* We didn't get it above, and the token is not needed after this. */
7143 32 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
7144 : }
7145 32 : switch (level) {
7146 32 : case 1:
7147 32 : if (r->info1) {
7148 32 : NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7149 : }
7150 32 : break;
7151 :
7152 0 : case 2:
7153 0 : if (r->info2) {
7154 0 : NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7155 : }
7156 0 : break;
7157 :
7158 0 : case 3:
7159 0 : if (r->info3) {
7160 0 : NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
7161 : }
7162 0 : break;
7163 :
7164 0 : case 4:
7165 0 : if (r->info4) {
7166 0 : NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7167 : }
7168 0 : break;
7169 :
7170 0 : default:
7171 0 : break;
7172 :
7173 : }
7174 : }
7175 64 : return NDR_ERR_SUCCESS;
7176 : }
7177 :
7178 64 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_SetJobInfo *r)
7179 : {
7180 0 : uint32_t level;
7181 0 : uint32_t _level;
7182 64 : TALLOC_CTX *_mem_save_info1_0 = NULL;
7183 0 : uint32_t _ptr_info1;
7184 64 : TALLOC_CTX *_mem_save_info2_0 = NULL;
7185 0 : uint32_t _ptr_info2;
7186 64 : TALLOC_CTX *_mem_save_info3_0 = NULL;
7187 0 : uint32_t _ptr_info3;
7188 64 : TALLOC_CTX *_mem_save_info4_0 = NULL;
7189 0 : uint32_t _ptr_info4;
7190 64 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7191 64 : if (ndr_flags & NDR_SCALARS) {
7192 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
7193 32 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
7194 32 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
7195 32 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7196 32 : if (_level != level) {
7197 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
7198 : }
7199 : /* ms_union is always aligned to the largest union arm*/
7200 32 : NDR_CHECK(ndr_pull_align(ndr, 5));
7201 32 : switch (level) {
7202 32 : case 1: {
7203 32 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7204 32 : if (_ptr_info1) {
7205 32 : NDR_PULL_ALLOC(ndr, r->info1);
7206 : } else {
7207 0 : r->info1 = NULL;
7208 : }
7209 32 : break; }
7210 :
7211 0 : case 2: {
7212 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7213 0 : if (_ptr_info2) {
7214 0 : NDR_PULL_ALLOC(ndr, r->info2);
7215 : } else {
7216 0 : r->info2 = NULL;
7217 : }
7218 0 : break; }
7219 :
7220 0 : case 3: {
7221 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7222 0 : if (_ptr_info3) {
7223 0 : NDR_PULL_ALLOC(ndr, r->info3);
7224 : } else {
7225 0 : r->info3 = NULL;
7226 : }
7227 0 : break; }
7228 :
7229 0 : case 4: {
7230 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7231 0 : if (_ptr_info4) {
7232 0 : NDR_PULL_ALLOC(ndr, r->info4);
7233 : } else {
7234 0 : r->info4 = NULL;
7235 : }
7236 0 : break; }
7237 :
7238 0 : default: {
7239 0 : break; }
7240 :
7241 : }
7242 : }
7243 64 : if (ndr_flags & NDR_BUFFERS) {
7244 32 : if (!(ndr_flags & NDR_SCALARS)) {
7245 : /* We didn't get it above, and the token is not needed after this. */
7246 32 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
7247 : }
7248 32 : switch (level) {
7249 32 : case 1:
7250 32 : if (r->info1) {
7251 32 : _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7252 32 : NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7253 32 : NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7254 32 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7255 : }
7256 32 : break;
7257 :
7258 0 : case 2:
7259 0 : if (r->info2) {
7260 0 : _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7261 0 : NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7262 0 : NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7263 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7264 : }
7265 0 : break;
7266 :
7267 0 : case 3:
7268 0 : if (r->info3) {
7269 0 : _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7270 0 : NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7271 0 : NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
7272 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7273 : }
7274 0 : break;
7275 :
7276 0 : case 4:
7277 0 : if (r->info4) {
7278 0 : _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7279 0 : NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7280 0 : NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7281 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7282 : }
7283 0 : break;
7284 :
7285 0 : default:
7286 0 : break;
7287 :
7288 : }
7289 : }
7290 64 : return NDR_ERR_SUCCESS;
7291 : }
7292 :
7293 0 : _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
7294 : {
7295 0 : uint32_t level;
7296 0 : level = ndr_print_steal_switch_value(ndr, r);
7297 0 : ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
7298 0 : switch (level) {
7299 0 : case 1:
7300 0 : ndr_print_ptr(ndr, "info1", r->info1);
7301 0 : ndr->depth++;
7302 0 : if (r->info1) {
7303 0 : ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
7304 : }
7305 0 : ndr->depth--;
7306 0 : break;
7307 :
7308 0 : case 2:
7309 0 : ndr_print_ptr(ndr, "info2", r->info2);
7310 0 : ndr->depth++;
7311 0 : if (r->info2) {
7312 0 : ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
7313 : }
7314 0 : ndr->depth--;
7315 0 : break;
7316 :
7317 0 : case 3:
7318 0 : ndr_print_ptr(ndr, "info3", r->info3);
7319 0 : ndr->depth++;
7320 0 : if (r->info3) {
7321 0 : ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
7322 : }
7323 0 : ndr->depth--;
7324 0 : break;
7325 :
7326 0 : case 4:
7327 0 : ndr_print_ptr(ndr, "info4", r->info4);
7328 0 : ndr->depth++;
7329 0 : if (r->info4) {
7330 0 : ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
7331 : }
7332 0 : ndr->depth--;
7333 0 : break;
7334 :
7335 0 : default:
7336 0 : break;
7337 :
7338 : }
7339 0 : }
7340 :
7341 32 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_JobInfoContainer *r)
7342 : {
7343 32 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7344 32 : if (ndr_flags & NDR_SCALARS) {
7345 32 : NDR_CHECK(ndr_push_align(ndr, 5));
7346 32 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7347 32 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7348 32 : NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
7349 32 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7350 : }
7351 32 : if (ndr_flags & NDR_BUFFERS) {
7352 32 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7353 32 : NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
7354 : }
7355 32 : return NDR_ERR_SUCCESS;
7356 : }
7357 :
7358 32 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_JobInfoContainer *r)
7359 : {
7360 32 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7361 32 : if (ndr_flags & NDR_SCALARS) {
7362 32 : NDR_CHECK(ndr_pull_align(ndr, 5));
7363 32 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7364 32 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7365 32 : NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
7366 32 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7367 : }
7368 32 : if (ndr_flags & NDR_BUFFERS) {
7369 32 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7370 32 : NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
7371 : }
7372 32 : return NDR_ERR_SUCCESS;
7373 : }
7374 :
7375 0 : static void ndr_print_flags_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_JobInfoContainer *r)
7376 : {
7377 0 : ndr_print_spoolss_JobInfoContainer(ndr, name, r);
7378 0 : }
7379 :
7380 0 : _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
7381 : {
7382 0 : ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
7383 0 : if (r == NULL) { ndr_print_null(ndr); return; }
7384 0 : ndr->depth++;
7385 0 : ndr_print_uint32(ndr, "level", r->level);
7386 0 : ndr_print_set_switch_value(ndr, &r->info, r->level);
7387 0 : ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
7388 0 : ndr->depth--;
7389 : }
7390 :
7391 640 : static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_JobControl r)
7392 : {
7393 640 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
7394 640 : return NDR_ERR_SUCCESS;
7395 : }
7396 :
7397 640 : static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_JobControl *r)
7398 : {
7399 0 : uint32_t v;
7400 640 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
7401 640 : *r = v;
7402 640 : return NDR_ERR_SUCCESS;
7403 : }
7404 :
7405 0 : _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
7406 : {
7407 0 : const char *val = NULL;
7408 :
7409 0 : switch (r) {
7410 0 : case SPOOLSS_JOB_CONTROL_NOOP: val = "SPOOLSS_JOB_CONTROL_NOOP"; break;
7411 0 : case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
7412 0 : case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
7413 0 : case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
7414 0 : case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
7415 0 : case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
7416 0 : case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
7417 0 : case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
7418 0 : case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
7419 0 : case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
7420 : }
7421 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
7422 0 : }
7423 :
7424 584 : static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_PrinterControl r)
7425 : {
7426 584 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
7427 584 : return NDR_ERR_SUCCESS;
7428 : }
7429 :
7430 588 : static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_PrinterControl *r)
7431 : {
7432 4 : uint32_t v;
7433 588 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
7434 588 : *r = v;
7435 588 : return NDR_ERR_SUCCESS;
7436 : }
7437 :
7438 4 : _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
7439 : {
7440 4 : const char *val = NULL;
7441 :
7442 4 : switch (r) {
7443 4 : case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
7444 0 : case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
7445 0 : case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
7446 0 : case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
7447 0 : case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
7448 : }
7449 4 : ndr_print_enum(ndr, name, "ENUM", val, r);
7450 4 : }
7451 :
7452 0 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
7453 : {
7454 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7455 0 : if (ndr_flags & NDR_SCALARS) {
7456 0 : NDR_CHECK(ndr_push_align(ndr, 5));
7457 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7458 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7459 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
7460 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
7461 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
7462 0 : NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
7463 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
7464 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
7465 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
7466 0 : NDR_CHECK(ndr_push_spoolss_Build(ndr, NDR_SCALARS, r->free_build));
7467 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
7468 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
7469 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
7470 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
7471 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
7472 0 : NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
7473 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
7474 0 : NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
7475 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
7476 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
7477 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
7478 0 : NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7479 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
7480 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
7481 0 : NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
7482 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
7483 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
7484 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
7485 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
7486 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7487 : }
7488 0 : if (ndr_flags & NDR_BUFFERS) {
7489 0 : if (r->servername) {
7490 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7491 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7492 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7493 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7494 : }
7495 0 : if (r->printername) {
7496 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7497 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7498 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7499 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7500 : }
7501 : }
7502 0 : return NDR_ERR_SUCCESS;
7503 : }
7504 :
7505 0 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo0 *r)
7506 : {
7507 0 : uint32_t _ptr_servername;
7508 0 : uint32_t size_servername_1 = 0;
7509 0 : uint32_t length_servername_1 = 0;
7510 0 : TALLOC_CTX *_mem_save_servername_0 = NULL;
7511 0 : uint32_t _ptr_printername;
7512 0 : uint32_t size_printername_1 = 0;
7513 0 : uint32_t length_printername_1 = 0;
7514 0 : TALLOC_CTX *_mem_save_printername_0 = NULL;
7515 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7516 0 : if (ndr_flags & NDR_SCALARS) {
7517 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
7518 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7519 0 : if (_ptr_servername) {
7520 0 : NDR_PULL_ALLOC(ndr, r->servername);
7521 : } else {
7522 0 : r->servername = NULL;
7523 : }
7524 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7525 0 : if (_ptr_printername) {
7526 0 : NDR_PULL_ALLOC(ndr, r->printername);
7527 : } else {
7528 0 : r->printername = NULL;
7529 : }
7530 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
7531 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
7532 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
7533 0 : NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
7534 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
7535 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
7536 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
7537 0 : NDR_CHECK(ndr_pull_spoolss_Build(ndr, NDR_SCALARS, &r->free_build));
7538 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
7539 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
7540 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
7541 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
7542 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
7543 0 : NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
7544 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
7545 0 : NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
7546 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
7547 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
7548 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
7549 0 : NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7550 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
7551 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
7552 0 : NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
7553 0 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
7554 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
7555 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
7556 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
7557 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7558 : }
7559 0 : if (ndr_flags & NDR_BUFFERS) {
7560 0 : if (r->servername) {
7561 0 : _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7562 0 : NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7563 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7564 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7565 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->servername, &size_servername_1));
7566 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->servername, &length_servername_1));
7567 0 : if (length_servername_1 > size_servername_1) {
7568 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
7569 : }
7570 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
7571 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
7572 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7573 : }
7574 0 : if (r->printername) {
7575 0 : _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7576 0 : NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7577 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7578 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7579 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->printername, &size_printername_1));
7580 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->printername, &length_printername_1));
7581 0 : if (length_printername_1 > size_printername_1) {
7582 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printername_1, length_printername_1);
7583 : }
7584 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
7585 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
7586 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7587 : }
7588 : }
7589 0 : return NDR_ERR_SUCCESS;
7590 : }
7591 :
7592 0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
7593 : {
7594 0 : ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
7595 0 : if (r == NULL) { ndr_print_null(ndr); return; }
7596 0 : ndr->depth++;
7597 0 : ndr_print_ptr(ndr, "servername", r->servername);
7598 0 : ndr->depth++;
7599 0 : if (r->servername) {
7600 0 : ndr_print_string(ndr, "servername", r->servername);
7601 : }
7602 0 : ndr->depth--;
7603 0 : ndr_print_ptr(ndr, "printername", r->printername);
7604 0 : ndr->depth++;
7605 0 : if (r->printername) {
7606 0 : ndr_print_string(ndr, "printername", r->printername);
7607 : }
7608 0 : ndr->depth--;
7609 0 : ndr_print_uint32(ndr, "cjobs", r->cjobs);
7610 0 : ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
7611 0 : ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
7612 0 : ndr_print_spoolss_Time(ndr, "time", &r->time);
7613 0 : ndr_print_uint32(ndr, "global_counter", r->global_counter);
7614 0 : ndr_print_uint32(ndr, "total_pages", r->total_pages);
7615 0 : ndr_print_uint32(ndr, "version", r->version);
7616 0 : ndr_print_spoolss_Build(ndr, "free_build", r->free_build);
7617 0 : ndr_print_uint32(ndr, "spooling", r->spooling);
7618 0 : ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
7619 0 : ndr_print_uint32(ndr, "session_counter", r->session_counter);
7620 0 : ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
7621 0 : ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
7622 0 : ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
7623 0 : ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
7624 0 : ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
7625 0 : ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
7626 0 : ndr_print_uint32(ndr, "change_id", r->change_id);
7627 0 : ndr_print_WERROR(ndr, "last_error", r->last_error);
7628 0 : ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7629 0 : ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
7630 0 : ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
7631 0 : ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
7632 0 : ndr_print_uint16(ndr, "processor_level", r->processor_level);
7633 0 : ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
7634 0 : ndr_print_uint32(ndr, "reserved2", r->reserved2);
7635 0 : ndr_print_uint32(ndr, "reserved3", r->reserved3);
7636 0 : ndr->depth--;
7637 : }
7638 :
7639 0 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
7640 : {
7641 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7642 0 : if (ndr_flags & NDR_SCALARS) {
7643 0 : NDR_CHECK(ndr_push_align(ndr, 5));
7644 0 : NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
7645 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
7646 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
7647 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
7648 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7649 : }
7650 0 : if (ndr_flags & NDR_BUFFERS) {
7651 0 : if (r->description) {
7652 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
7653 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7654 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
7655 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7656 : }
7657 0 : if (r->name) {
7658 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
7659 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7660 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
7661 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7662 : }
7663 0 : if (r->comment) {
7664 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7665 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7666 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7667 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7668 : }
7669 : }
7670 0 : return NDR_ERR_SUCCESS;
7671 : }
7672 :
7673 0 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo1 *r)
7674 : {
7675 0 : uint32_t _ptr_description;
7676 0 : uint32_t size_description_1 = 0;
7677 0 : uint32_t length_description_1 = 0;
7678 0 : TALLOC_CTX *_mem_save_description_0 = NULL;
7679 0 : uint32_t _ptr_name;
7680 0 : uint32_t size_name_1 = 0;
7681 0 : uint32_t length_name_1 = 0;
7682 0 : TALLOC_CTX *_mem_save_name_0 = NULL;
7683 0 : uint32_t _ptr_comment;
7684 0 : uint32_t size_comment_1 = 0;
7685 0 : uint32_t length_comment_1 = 0;
7686 0 : TALLOC_CTX *_mem_save_comment_0 = NULL;
7687 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7688 0 : if (ndr_flags & NDR_SCALARS) {
7689 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
7690 0 : NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
7691 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
7692 0 : if (_ptr_description) {
7693 0 : NDR_PULL_ALLOC(ndr, r->description);
7694 : } else {
7695 0 : r->description = NULL;
7696 : }
7697 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
7698 0 : if (_ptr_name) {
7699 0 : NDR_PULL_ALLOC(ndr, r->name);
7700 : } else {
7701 0 : r->name = NULL;
7702 : }
7703 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
7704 0 : if (_ptr_comment) {
7705 0 : NDR_PULL_ALLOC(ndr, r->comment);
7706 : } else {
7707 0 : r->comment = NULL;
7708 : }
7709 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7710 : }
7711 0 : if (ndr_flags & NDR_BUFFERS) {
7712 0 : if (r->description) {
7713 0 : _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
7714 0 : NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
7715 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
7716 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
7717 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->description, &size_description_1));
7718 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->description, &length_description_1));
7719 0 : if (length_description_1 > size_description_1) {
7720 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_description_1, length_description_1);
7721 : }
7722 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_description_1, sizeof(uint16_t)));
7723 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, length_description_1, sizeof(uint16_t), CH_UTF16));
7724 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
7725 : }
7726 0 : if (r->name) {
7727 0 : _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7728 0 : NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
7729 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
7730 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
7731 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->name, &size_name_1));
7732 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->name, &length_name_1));
7733 0 : if (length_name_1 > size_name_1) {
7734 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_name_1, length_name_1);
7735 : }
7736 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t)));
7737 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16));
7738 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
7739 : }
7740 0 : if (r->comment) {
7741 0 : _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
7742 0 : NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
7743 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
7744 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
7745 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->comment, &size_comment_1));
7746 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->comment, &length_comment_1));
7747 0 : if (length_comment_1 > size_comment_1) {
7748 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_comment_1, length_comment_1);
7749 : }
7750 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t)));
7751 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16));
7752 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
7753 : }
7754 : }
7755 0 : return NDR_ERR_SUCCESS;
7756 : }
7757 :
7758 0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
7759 : {
7760 0 : ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
7761 0 : if (r == NULL) { ndr_print_null(ndr); return; }
7762 0 : ndr->depth++;
7763 0 : ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
7764 0 : ndr_print_ptr(ndr, "description", r->description);
7765 0 : ndr->depth++;
7766 0 : if (r->description) {
7767 0 : ndr_print_string(ndr, "description", r->description);
7768 : }
7769 0 : ndr->depth--;
7770 0 : ndr_print_ptr(ndr, "name", r->name);
7771 0 : ndr->depth++;
7772 0 : if (r->name) {
7773 0 : ndr_print_string(ndr, "name", r->name);
7774 : }
7775 0 : ndr->depth--;
7776 0 : ndr_print_ptr(ndr, "comment", r->comment);
7777 0 : ndr->depth++;
7778 0 : if (r->comment) {
7779 0 : ndr_print_string(ndr, "comment", r->comment);
7780 : }
7781 0 : ndr->depth--;
7782 0 : ndr->depth--;
7783 : }
7784 :
7785 180 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
7786 : {
7787 180 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7788 180 : if (ndr_flags & NDR_SCALARS) {
7789 180 : NDR_CHECK(ndr_push_align(ndr, 5));
7790 180 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7791 180 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7792 180 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
7793 180 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
7794 180 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
7795 180 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
7796 180 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
7797 180 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->devmode_ptr));
7798 180 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
7799 180 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
7800 180 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
7801 180 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
7802 180 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->secdesc_ptr));
7803 180 : NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7804 180 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
7805 180 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
7806 180 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
7807 180 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
7808 180 : NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7809 180 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
7810 180 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
7811 180 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7812 : }
7813 180 : if (ndr_flags & NDR_BUFFERS) {
7814 180 : if (r->servername) {
7815 64 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7816 64 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7817 64 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7818 64 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7819 : }
7820 180 : if (r->printername) {
7821 164 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7822 164 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7823 164 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7824 164 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7825 : }
7826 180 : if (r->sharename) {
7827 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
7828 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7829 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
7830 84 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7831 : }
7832 180 : if (r->portname) {
7833 148 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7834 148 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7835 148 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7836 148 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7837 : }
7838 180 : if (r->drivername) {
7839 132 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
7840 132 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7841 132 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
7842 132 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7843 : }
7844 180 : if (r->comment) {
7845 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7846 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7847 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7848 84 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7849 : }
7850 180 : if (r->location) {
7851 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
7852 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7853 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
7854 84 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7855 : }
7856 180 : if (r->sepfile) {
7857 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
7858 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7859 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
7860 84 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7861 : }
7862 180 : if (r->printprocessor) {
7863 116 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
7864 116 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7865 116 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
7866 116 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7867 : }
7868 180 : if (r->datatype) {
7869 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
7870 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7871 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
7872 84 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7873 : }
7874 180 : if (r->parameters) {
7875 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
7876 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7877 84 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
7878 84 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7879 : }
7880 : }
7881 180 : return NDR_ERR_SUCCESS;
7882 : }
7883 :
7884 184 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo2 *r)
7885 : {
7886 4 : uint32_t _ptr_servername;
7887 184 : uint32_t size_servername_1 = 0;
7888 184 : uint32_t length_servername_1 = 0;
7889 184 : TALLOC_CTX *_mem_save_servername_0 = NULL;
7890 4 : uint32_t _ptr_printername;
7891 184 : uint32_t size_printername_1 = 0;
7892 184 : uint32_t length_printername_1 = 0;
7893 184 : TALLOC_CTX *_mem_save_printername_0 = NULL;
7894 4 : uint32_t _ptr_sharename;
7895 184 : uint32_t size_sharename_1 = 0;
7896 184 : uint32_t length_sharename_1 = 0;
7897 184 : TALLOC_CTX *_mem_save_sharename_0 = NULL;
7898 4 : uint32_t _ptr_portname;
7899 184 : uint32_t size_portname_1 = 0;
7900 184 : uint32_t length_portname_1 = 0;
7901 184 : TALLOC_CTX *_mem_save_portname_0 = NULL;
7902 4 : uint32_t _ptr_drivername;
7903 184 : uint32_t size_drivername_1 = 0;
7904 184 : uint32_t length_drivername_1 = 0;
7905 184 : TALLOC_CTX *_mem_save_drivername_0 = NULL;
7906 4 : uint32_t _ptr_comment;
7907 184 : uint32_t size_comment_1 = 0;
7908 184 : uint32_t length_comment_1 = 0;
7909 184 : TALLOC_CTX *_mem_save_comment_0 = NULL;
7910 4 : uint32_t _ptr_location;
7911 184 : uint32_t size_location_1 = 0;
7912 184 : uint32_t length_location_1 = 0;
7913 184 : TALLOC_CTX *_mem_save_location_0 = NULL;
7914 4 : uint32_t _ptr_sepfile;
7915 184 : uint32_t size_sepfile_1 = 0;
7916 184 : uint32_t length_sepfile_1 = 0;
7917 184 : TALLOC_CTX *_mem_save_sepfile_0 = NULL;
7918 4 : uint32_t _ptr_printprocessor;
7919 184 : uint32_t size_printprocessor_1 = 0;
7920 184 : uint32_t length_printprocessor_1 = 0;
7921 184 : TALLOC_CTX *_mem_save_printprocessor_0 = NULL;
7922 4 : uint32_t _ptr_datatype;
7923 184 : uint32_t size_datatype_1 = 0;
7924 184 : uint32_t length_datatype_1 = 0;
7925 184 : TALLOC_CTX *_mem_save_datatype_0 = NULL;
7926 4 : uint32_t _ptr_parameters;
7927 184 : uint32_t size_parameters_1 = 0;
7928 184 : uint32_t length_parameters_1 = 0;
7929 184 : TALLOC_CTX *_mem_save_parameters_0 = NULL;
7930 184 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7931 184 : if (ndr_flags & NDR_SCALARS) {
7932 184 : NDR_CHECK(ndr_pull_align(ndr, 5));
7933 184 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7934 184 : if (_ptr_servername) {
7935 68 : NDR_PULL_ALLOC(ndr, r->servername);
7936 : } else {
7937 116 : r->servername = NULL;
7938 : }
7939 184 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7940 184 : if (_ptr_printername) {
7941 168 : NDR_PULL_ALLOC(ndr, r->printername);
7942 : } else {
7943 16 : r->printername = NULL;
7944 : }
7945 184 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
7946 184 : if (_ptr_sharename) {
7947 88 : NDR_PULL_ALLOC(ndr, r->sharename);
7948 : } else {
7949 96 : r->sharename = NULL;
7950 : }
7951 184 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7952 184 : if (_ptr_portname) {
7953 152 : NDR_PULL_ALLOC(ndr, r->portname);
7954 : } else {
7955 32 : r->portname = NULL;
7956 : }
7957 184 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
7958 184 : if (_ptr_drivername) {
7959 136 : NDR_PULL_ALLOC(ndr, r->drivername);
7960 : } else {
7961 48 : r->drivername = NULL;
7962 : }
7963 184 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
7964 184 : if (_ptr_comment) {
7965 88 : NDR_PULL_ALLOC(ndr, r->comment);
7966 : } else {
7967 96 : r->comment = NULL;
7968 : }
7969 184 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
7970 184 : if (_ptr_location) {
7971 88 : NDR_PULL_ALLOC(ndr, r->location);
7972 : } else {
7973 96 : r->location = NULL;
7974 : }
7975 184 : NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->devmode_ptr));
7976 184 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
7977 184 : if (_ptr_sepfile) {
7978 88 : NDR_PULL_ALLOC(ndr, r->sepfile);
7979 : } else {
7980 96 : r->sepfile = NULL;
7981 : }
7982 184 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
7983 184 : if (_ptr_printprocessor) {
7984 120 : NDR_PULL_ALLOC(ndr, r->printprocessor);
7985 : } else {
7986 64 : r->printprocessor = NULL;
7987 : }
7988 184 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
7989 184 : if (_ptr_datatype) {
7990 88 : NDR_PULL_ALLOC(ndr, r->datatype);
7991 : } else {
7992 96 : r->datatype = NULL;
7993 : }
7994 184 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
7995 184 : if (_ptr_parameters) {
7996 88 : NDR_PULL_ALLOC(ndr, r->parameters);
7997 : } else {
7998 96 : r->parameters = NULL;
7999 : }
8000 184 : NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->secdesc_ptr));
8001 184 : NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
8002 184 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
8003 184 : if (r->priority > 99) {
8004 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->priority), (uint32_t)(0), (uint32_t)(99));
8005 : }
8006 184 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
8007 184 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
8008 184 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
8009 184 : NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
8010 184 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
8011 184 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
8012 184 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8013 : }
8014 184 : if (ndr_flags & NDR_BUFFERS) {
8015 184 : if (r->servername) {
8016 68 : _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
8017 68 : NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
8018 68 : NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
8019 68 : NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
8020 68 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->servername, &size_servername_1));
8021 68 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->servername, &length_servername_1));
8022 68 : if (length_servername_1 > size_servername_1) {
8023 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
8024 : }
8025 68 : NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
8026 68 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
8027 68 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
8028 : }
8029 184 : if (r->printername) {
8030 168 : _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
8031 168 : NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
8032 168 : NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
8033 168 : NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
8034 168 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->printername, &size_printername_1));
8035 168 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->printername, &length_printername_1));
8036 168 : if (length_printername_1 > size_printername_1) {
8037 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printername_1, length_printername_1);
8038 : }
8039 168 : NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
8040 168 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
8041 168 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
8042 : }
8043 184 : if (r->sharename) {
8044 88 : _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
8045 88 : NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
8046 88 : NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
8047 88 : NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
8048 88 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->sharename, &size_sharename_1));
8049 88 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->sharename, &length_sharename_1));
8050 88 : if (length_sharename_1 > size_sharename_1) {
8051 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_sharename_1, length_sharename_1);
8052 : }
8053 88 : NDR_CHECK(ndr_check_string_terminator(ndr, length_sharename_1, sizeof(uint16_t)));
8054 88 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, length_sharename_1, sizeof(uint16_t), CH_UTF16));
8055 88 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
8056 : }
8057 184 : if (r->portname) {
8058 152 : _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
8059 152 : NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
8060 152 : NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
8061 152 : NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
8062 152 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->portname, &size_portname_1));
8063 152 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->portname, &length_portname_1));
8064 152 : if (length_portname_1 > size_portname_1) {
8065 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_portname_1, length_portname_1);
8066 : }
8067 152 : NDR_CHECK(ndr_check_string_terminator(ndr, length_portname_1, sizeof(uint16_t)));
8068 152 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, length_portname_1, sizeof(uint16_t), CH_UTF16));
8069 152 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
8070 : }
8071 184 : if (r->drivername) {
8072 136 : _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
8073 136 : NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
8074 136 : NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
8075 136 : NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
8076 136 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->drivername, &size_drivername_1));
8077 136 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->drivername, &length_drivername_1));
8078 136 : if (length_drivername_1 > size_drivername_1) {
8079 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_drivername_1, length_drivername_1);
8080 : }
8081 136 : NDR_CHECK(ndr_check_string_terminator(ndr, length_drivername_1, sizeof(uint16_t)));
8082 136 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, length_drivername_1, sizeof(uint16_t), CH_UTF16));
8083 136 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
8084 : }
8085 184 : if (r->comment) {
8086 88 : _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
8087 88 : NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
8088 88 : NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
8089 88 : NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
8090 88 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->comment, &size_comment_1));
8091 88 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->comment, &length_comment_1));
8092 88 : if (length_comment_1 > size_comment_1) {
8093 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_comment_1, length_comment_1);
8094 : }
8095 88 : NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t)));
8096 88 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16));
8097 88 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
8098 : }
8099 184 : if (r->location) {
8100 88 : _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
8101 88 : NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
8102 88 : NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
8103 88 : NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
8104 88 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->location, &size_location_1));
8105 88 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->location, &length_location_1));
8106 88 : if (length_location_1 > size_location_1) {
8107 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_location_1, length_location_1);
8108 : }
8109 88 : NDR_CHECK(ndr_check_string_terminator(ndr, length_location_1, sizeof(uint16_t)));
8110 88 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, length_location_1, sizeof(uint16_t), CH_UTF16));
8111 88 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
8112 : }
8113 184 : if (r->sepfile) {
8114 88 : _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
8115 88 : NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
8116 88 : NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
8117 88 : NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
8118 88 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->sepfile, &size_sepfile_1));
8119 88 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->sepfile, &length_sepfile_1));
8120 88 : if (length_sepfile_1 > size_sepfile_1) {
8121 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_sepfile_1, length_sepfile_1);
8122 : }
8123 88 : NDR_CHECK(ndr_check_string_terminator(ndr, length_sepfile_1, sizeof(uint16_t)));
8124 88 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, length_sepfile_1, sizeof(uint16_t), CH_UTF16));
8125 88 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
8126 : }
8127 184 : if (r->printprocessor) {
8128 120 : _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
8129 120 : NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
8130 120 : NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
8131 120 : NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
8132 120 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->printprocessor, &size_printprocessor_1));
8133 120 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->printprocessor, &length_printprocessor_1));
8134 120 : if (length_printprocessor_1 > size_printprocessor_1) {
8135 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printprocessor_1, length_printprocessor_1);
8136 : }
8137 120 : NDR_CHECK(ndr_check_string_terminator(ndr, length_printprocessor_1, sizeof(uint16_t)));
8138 120 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, length_printprocessor_1, sizeof(uint16_t), CH_UTF16));
8139 120 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
8140 : }
8141 184 : if (r->datatype) {
8142 88 : _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8143 88 : NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
8144 88 : NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
8145 88 : NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
8146 88 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->datatype, &size_datatype_1));
8147 88 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->datatype, &length_datatype_1));
8148 88 : if (length_datatype_1 > size_datatype_1) {
8149 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_datatype_1, length_datatype_1);
8150 : }
8151 88 : NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
8152 88 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
8153 88 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
8154 : }
8155 184 : if (r->parameters) {
8156 88 : _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
8157 88 : NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
8158 88 : NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
8159 88 : NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
8160 88 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->parameters, &size_parameters_1));
8161 88 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->parameters, &length_parameters_1));
8162 88 : if (length_parameters_1 > size_parameters_1) {
8163 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_parameters_1, length_parameters_1);
8164 : }
8165 88 : NDR_CHECK(ndr_check_string_terminator(ndr, length_parameters_1, sizeof(uint16_t)));
8166 88 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, length_parameters_1, sizeof(uint16_t), CH_UTF16));
8167 88 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
8168 : }
8169 : }
8170 180 : return NDR_ERR_SUCCESS;
8171 : }
8172 :
8173 4 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
8174 : {
8175 4 : ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
8176 4 : if (r == NULL) { ndr_print_null(ndr); return; }
8177 4 : ndr->depth++;
8178 4 : ndr_print_ptr(ndr, "servername", r->servername);
8179 4 : ndr->depth++;
8180 4 : if (r->servername) {
8181 4 : ndr_print_string(ndr, "servername", r->servername);
8182 : }
8183 4 : ndr->depth--;
8184 4 : ndr_print_ptr(ndr, "printername", r->printername);
8185 4 : ndr->depth++;
8186 4 : if (r->printername) {
8187 4 : ndr_print_string(ndr, "printername", r->printername);
8188 : }
8189 4 : ndr->depth--;
8190 4 : ndr_print_ptr(ndr, "sharename", r->sharename);
8191 4 : ndr->depth++;
8192 4 : if (r->sharename) {
8193 4 : ndr_print_string(ndr, "sharename", r->sharename);
8194 : }
8195 4 : ndr->depth--;
8196 4 : ndr_print_ptr(ndr, "portname", r->portname);
8197 4 : ndr->depth++;
8198 4 : if (r->portname) {
8199 4 : ndr_print_string(ndr, "portname", r->portname);
8200 : }
8201 4 : ndr->depth--;
8202 4 : ndr_print_ptr(ndr, "drivername", r->drivername);
8203 4 : ndr->depth++;
8204 4 : if (r->drivername) {
8205 4 : ndr_print_string(ndr, "drivername", r->drivername);
8206 : }
8207 4 : ndr->depth--;
8208 4 : ndr_print_ptr(ndr, "comment", r->comment);
8209 4 : ndr->depth++;
8210 4 : if (r->comment) {
8211 4 : ndr_print_string(ndr, "comment", r->comment);
8212 : }
8213 4 : ndr->depth--;
8214 4 : ndr_print_ptr(ndr, "location", r->location);
8215 4 : ndr->depth++;
8216 4 : if (r->location) {
8217 4 : ndr_print_string(ndr, "location", r->location);
8218 : }
8219 4 : ndr->depth--;
8220 4 : ndr_print_uint3264(ndr, "devmode_ptr", r->devmode_ptr);
8221 4 : ndr_print_ptr(ndr, "sepfile", r->sepfile);
8222 4 : ndr->depth++;
8223 4 : if (r->sepfile) {
8224 4 : ndr_print_string(ndr, "sepfile", r->sepfile);
8225 : }
8226 4 : ndr->depth--;
8227 4 : ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
8228 4 : ndr->depth++;
8229 4 : if (r->printprocessor) {
8230 4 : ndr_print_string(ndr, "printprocessor", r->printprocessor);
8231 : }
8232 4 : ndr->depth--;
8233 4 : ndr_print_ptr(ndr, "datatype", r->datatype);
8234 4 : ndr->depth++;
8235 4 : if (r->datatype) {
8236 4 : ndr_print_string(ndr, "datatype", r->datatype);
8237 : }
8238 4 : ndr->depth--;
8239 4 : ndr_print_ptr(ndr, "parameters", r->parameters);
8240 4 : ndr->depth++;
8241 4 : if (r->parameters) {
8242 4 : ndr_print_string(ndr, "parameters", r->parameters);
8243 : }
8244 4 : ndr->depth--;
8245 4 : ndr_print_uint3264(ndr, "secdesc_ptr", r->secdesc_ptr);
8246 4 : ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
8247 4 : ndr_print_uint32(ndr, "priority", r->priority);
8248 4 : ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
8249 4 : ndr_print_uint32(ndr, "starttime", r->starttime);
8250 4 : ndr_print_uint32(ndr, "untiltime", r->untiltime);
8251 4 : ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
8252 4 : ndr_print_uint32(ndr, "cjobs", r->cjobs);
8253 4 : ndr_print_uint32(ndr, "averageppm", r->averageppm);
8254 4 : ndr->depth--;
8255 : }
8256 :
8257 92 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
8258 : {
8259 92 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8260 92 : if (ndr_flags & NDR_SCALARS) {
8261 92 : NDR_CHECK(ndr_push_align(ndr, 5));
8262 92 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->sec_desc_ptr));
8263 92 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8264 : }
8265 92 : if (ndr_flags & NDR_BUFFERS) {
8266 0 : }
8267 92 : return NDR_ERR_SUCCESS;
8268 : }
8269 :
8270 96 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo3 *r)
8271 : {
8272 96 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8273 96 : if (ndr_flags & NDR_SCALARS) {
8274 96 : NDR_CHECK(ndr_pull_align(ndr, 5));
8275 96 : NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->sec_desc_ptr));
8276 96 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8277 : }
8278 96 : if (ndr_flags & NDR_BUFFERS) {
8279 4 : }
8280 96 : return NDR_ERR_SUCCESS;
8281 : }
8282 :
8283 4 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
8284 : {
8285 4 : ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
8286 4 : if (r == NULL) { ndr_print_null(ndr); return; }
8287 4 : ndr->depth++;
8288 4 : ndr_print_uint3264(ndr, "sec_desc_ptr", r->sec_desc_ptr);
8289 4 : ndr->depth--;
8290 : }
8291 :
8292 0 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
8293 : {
8294 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8295 0 : if (ndr_flags & NDR_SCALARS) {
8296 0 : NDR_CHECK(ndr_push_align(ndr, 5));
8297 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
8298 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
8299 0 : NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
8300 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8301 : }
8302 0 : if (ndr_flags & NDR_BUFFERS) {
8303 0 : if (r->printername) {
8304 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
8305 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8306 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
8307 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8308 : }
8309 0 : if (r->servername) {
8310 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
8311 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8312 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
8313 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8314 : }
8315 : }
8316 0 : return NDR_ERR_SUCCESS;
8317 : }
8318 :
8319 0 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo4 *r)
8320 : {
8321 0 : uint32_t _ptr_printername;
8322 0 : uint32_t size_printername_1 = 0;
8323 0 : uint32_t length_printername_1 = 0;
8324 0 : TALLOC_CTX *_mem_save_printername_0 = NULL;
8325 0 : uint32_t _ptr_servername;
8326 0 : uint32_t size_servername_1 = 0;
8327 0 : uint32_t length_servername_1 = 0;
8328 0 : TALLOC_CTX *_mem_save_servername_0 = NULL;
8329 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8330 0 : if (ndr_flags & NDR_SCALARS) {
8331 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
8332 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
8333 0 : if (_ptr_printername) {
8334 0 : NDR_PULL_ALLOC(ndr, r->printername);
8335 : } else {
8336 0 : r->printername = NULL;
8337 : }
8338 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
8339 0 : if (_ptr_servername) {
8340 0 : NDR_PULL_ALLOC(ndr, r->servername);
8341 : } else {
8342 0 : r->servername = NULL;
8343 : }
8344 0 : NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
8345 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8346 : }
8347 0 : if (ndr_flags & NDR_BUFFERS) {
8348 0 : if (r->printername) {
8349 0 : _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
8350 0 : NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
8351 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
8352 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
8353 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->printername, &size_printername_1));
8354 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->printername, &length_printername_1));
8355 0 : if (length_printername_1 > size_printername_1) {
8356 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printername_1, length_printername_1);
8357 : }
8358 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
8359 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
8360 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
8361 : }
8362 0 : if (r->servername) {
8363 0 : _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
8364 0 : NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
8365 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
8366 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
8367 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->servername, &size_servername_1));
8368 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->servername, &length_servername_1));
8369 0 : if (length_servername_1 > size_servername_1) {
8370 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
8371 : }
8372 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
8373 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
8374 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
8375 : }
8376 : }
8377 0 : return NDR_ERR_SUCCESS;
8378 : }
8379 :
8380 0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
8381 : {
8382 0 : ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
8383 0 : if (r == NULL) { ndr_print_null(ndr); return; }
8384 0 : ndr->depth++;
8385 0 : ndr_print_ptr(ndr, "printername", r->printername);
8386 0 : ndr->depth++;
8387 0 : if (r->printername) {
8388 0 : ndr_print_string(ndr, "printername", r->printername);
8389 : }
8390 0 : ndr->depth--;
8391 0 : ndr_print_ptr(ndr, "servername", r->servername);
8392 0 : ndr->depth++;
8393 0 : if (r->servername) {
8394 0 : ndr_print_string(ndr, "servername", r->servername);
8395 : }
8396 0 : ndr->depth--;
8397 0 : ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
8398 0 : ndr->depth--;
8399 : }
8400 :
8401 0 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
8402 : {
8403 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8404 0 : if (ndr_flags & NDR_SCALARS) {
8405 0 : NDR_CHECK(ndr_push_align(ndr, 5));
8406 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
8407 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
8408 0 : NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
8409 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
8410 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
8411 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8412 : }
8413 0 : if (ndr_flags & NDR_BUFFERS) {
8414 0 : if (r->printername) {
8415 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
8416 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8417 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
8418 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8419 : }
8420 0 : if (r->portname) {
8421 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
8422 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8423 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
8424 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8425 : }
8426 : }
8427 0 : return NDR_ERR_SUCCESS;
8428 : }
8429 :
8430 0 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo5 *r)
8431 : {
8432 0 : uint32_t _ptr_printername;
8433 0 : uint32_t size_printername_1 = 0;
8434 0 : uint32_t length_printername_1 = 0;
8435 0 : TALLOC_CTX *_mem_save_printername_0 = NULL;
8436 0 : uint32_t _ptr_portname;
8437 0 : uint32_t size_portname_1 = 0;
8438 0 : uint32_t length_portname_1 = 0;
8439 0 : TALLOC_CTX *_mem_save_portname_0 = NULL;
8440 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8441 0 : if (ndr_flags & NDR_SCALARS) {
8442 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
8443 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
8444 0 : if (_ptr_printername) {
8445 0 : NDR_PULL_ALLOC(ndr, r->printername);
8446 : } else {
8447 0 : r->printername = NULL;
8448 : }
8449 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
8450 0 : if (_ptr_portname) {
8451 0 : NDR_PULL_ALLOC(ndr, r->portname);
8452 : } else {
8453 0 : r->portname = NULL;
8454 : }
8455 0 : NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
8456 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
8457 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
8458 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8459 : }
8460 0 : if (ndr_flags & NDR_BUFFERS) {
8461 0 : if (r->printername) {
8462 0 : _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
8463 0 : NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
8464 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
8465 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
8466 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->printername, &size_printername_1));
8467 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->printername, &length_printername_1));
8468 0 : if (length_printername_1 > size_printername_1) {
8469 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printername_1, length_printername_1);
8470 : }
8471 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
8472 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
8473 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
8474 : }
8475 0 : if (r->portname) {
8476 0 : _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
8477 0 : NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
8478 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
8479 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
8480 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->portname, &size_portname_1));
8481 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->portname, &length_portname_1));
8482 0 : if (length_portname_1 > size_portname_1) {
8483 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_portname_1, length_portname_1);
8484 : }
8485 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_portname_1, sizeof(uint16_t)));
8486 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, length_portname_1, sizeof(uint16_t), CH_UTF16));
8487 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
8488 : }
8489 : }
8490 0 : return NDR_ERR_SUCCESS;
8491 : }
8492 :
8493 0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
8494 : {
8495 0 : ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
8496 0 : if (r == NULL) { ndr_print_null(ndr); return; }
8497 0 : ndr->depth++;
8498 0 : ndr_print_ptr(ndr, "printername", r->printername);
8499 0 : ndr->depth++;
8500 0 : if (r->printername) {
8501 0 : ndr_print_string(ndr, "printername", r->printername);
8502 : }
8503 0 : ndr->depth--;
8504 0 : ndr_print_ptr(ndr, "portname", r->portname);
8505 0 : ndr->depth++;
8506 0 : if (r->portname) {
8507 0 : ndr_print_string(ndr, "portname", r->portname);
8508 : }
8509 0 : ndr->depth--;
8510 0 : ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
8511 0 : ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
8512 0 : ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
8513 0 : ndr->depth--;
8514 : }
8515 :
8516 0 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
8517 : {
8518 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8519 0 : if (ndr_flags & NDR_SCALARS) {
8520 0 : NDR_CHECK(ndr_push_align(ndr, 4));
8521 0 : NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
8522 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
8523 : }
8524 0 : if (ndr_flags & NDR_BUFFERS) {
8525 0 : }
8526 0 : return NDR_ERR_SUCCESS;
8527 : }
8528 :
8529 0 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo6 *r)
8530 : {
8531 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8532 0 : if (ndr_flags & NDR_SCALARS) {
8533 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
8534 0 : NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
8535 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
8536 : }
8537 0 : if (ndr_flags & NDR_BUFFERS) {
8538 0 : }
8539 0 : return NDR_ERR_SUCCESS;
8540 : }
8541 :
8542 0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
8543 : {
8544 0 : ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
8545 0 : if (r == NULL) { ndr_print_null(ndr); return; }
8546 0 : ndr->depth++;
8547 0 : ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
8548 0 : ndr->depth--;
8549 : }
8550 :
8551 8 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
8552 : {
8553 8 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8554 8 : if (ndr_flags & NDR_SCALARS) {
8555 8 : NDR_CHECK(ndr_push_align(ndr, 5));
8556 8 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
8557 8 : NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
8558 8 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8559 : }
8560 8 : if (ndr_flags & NDR_BUFFERS) {
8561 8 : if (r->guid) {
8562 8 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
8563 8 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8564 8 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
8565 8 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8566 : }
8567 : }
8568 8 : return NDR_ERR_SUCCESS;
8569 : }
8570 :
8571 8 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo7 *r)
8572 : {
8573 0 : uint32_t _ptr_guid;
8574 8 : uint32_t size_guid_1 = 0;
8575 8 : uint32_t length_guid_1 = 0;
8576 8 : TALLOC_CTX *_mem_save_guid_0 = NULL;
8577 8 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8578 8 : if (ndr_flags & NDR_SCALARS) {
8579 8 : NDR_CHECK(ndr_pull_align(ndr, 5));
8580 8 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
8581 8 : if (_ptr_guid) {
8582 8 : NDR_PULL_ALLOC(ndr, r->guid);
8583 : } else {
8584 0 : r->guid = NULL;
8585 : }
8586 8 : NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
8587 8 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8588 : }
8589 8 : if (ndr_flags & NDR_BUFFERS) {
8590 8 : if (r->guid) {
8591 8 : _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
8592 8 : NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
8593 8 : NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
8594 8 : NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
8595 8 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->guid, &size_guid_1));
8596 8 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->guid, &length_guid_1));
8597 8 : if (length_guid_1 > size_guid_1) {
8598 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_guid_1, length_guid_1);
8599 : }
8600 8 : NDR_CHECK(ndr_check_string_terminator(ndr, length_guid_1, sizeof(uint16_t)));
8601 8 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, length_guid_1, sizeof(uint16_t), CH_UTF16));
8602 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
8603 : }
8604 : }
8605 8 : return NDR_ERR_SUCCESS;
8606 : }
8607 :
8608 0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
8609 : {
8610 0 : ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
8611 0 : if (r == NULL) { ndr_print_null(ndr); return; }
8612 0 : ndr->depth++;
8613 0 : ndr_print_ptr(ndr, "guid", r->guid);
8614 0 : ndr->depth++;
8615 0 : if (r->guid) {
8616 0 : ndr_print_string(ndr, "guid", r->guid);
8617 : }
8618 0 : ndr->depth--;
8619 0 : ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
8620 0 : ndr->depth--;
8621 : }
8622 :
8623 296 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo8(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo8 *r)
8624 : {
8625 296 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8626 296 : if (ndr_flags & NDR_SCALARS) {
8627 296 : NDR_CHECK(ndr_push_align(ndr, 5));
8628 296 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->devmode_ptr));
8629 296 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8630 : }
8631 296 : if (ndr_flags & NDR_BUFFERS) {
8632 0 : }
8633 296 : return NDR_ERR_SUCCESS;
8634 : }
8635 :
8636 296 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo8(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo8 *r)
8637 : {
8638 296 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8639 296 : if (ndr_flags & NDR_SCALARS) {
8640 296 : NDR_CHECK(ndr_pull_align(ndr, 5));
8641 296 : NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->devmode_ptr));
8642 296 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8643 : }
8644 296 : if (ndr_flags & NDR_BUFFERS) {
8645 0 : }
8646 296 : return NDR_ERR_SUCCESS;
8647 : }
8648 :
8649 0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo8 *r)
8650 : {
8651 0 : ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo8");
8652 0 : if (r == NULL) { ndr_print_null(ndr); return; }
8653 0 : ndr->depth++;
8654 0 : ndr_print_uint3264(ndr, "devmode_ptr", r->devmode_ptr);
8655 0 : ndr->depth--;
8656 : }
8657 :
8658 0 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo9(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfo9 *r)
8659 : {
8660 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8661 0 : if (ndr_flags & NDR_SCALARS) {
8662 0 : NDR_CHECK(ndr_push_align(ndr, 5));
8663 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->devmode_ptr));
8664 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8665 : }
8666 0 : if (ndr_flags & NDR_BUFFERS) {
8667 0 : }
8668 0 : return NDR_ERR_SUCCESS;
8669 : }
8670 :
8671 0 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo9(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfo9 *r)
8672 : {
8673 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8674 0 : if (ndr_flags & NDR_SCALARS) {
8675 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
8676 0 : NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->devmode_ptr));
8677 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8678 : }
8679 0 : if (ndr_flags & NDR_BUFFERS) {
8680 0 : }
8681 0 : return NDR_ERR_SUCCESS;
8682 : }
8683 :
8684 0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo9(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo9 *r)
8685 : {
8686 0 : ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo9");
8687 0 : if (r == NULL) { ndr_print_null(ndr); return; }
8688 0 : ndr->depth++;
8689 0 : ndr_print_uint3264(ndr, "devmode_ptr", r->devmode_ptr);
8690 0 : ndr->depth--;
8691 : }
8692 :
8693 1360 : static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_SetPrinterInfo *r)
8694 : {
8695 0 : uint32_t level;
8696 1360 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8697 1360 : if (ndr_flags & NDR_SCALARS) {
8698 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
8699 680 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
8700 680 : NDR_CHECK(ndr_push_union_align(ndr, 5));
8701 680 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
8702 : /* ms_union is always aligned to the largest union arm*/
8703 680 : NDR_CHECK(ndr_push_align(ndr, 5));
8704 680 : switch (level) {
8705 104 : case 0: {
8706 104 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
8707 104 : break; }
8708 :
8709 0 : case 1: {
8710 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
8711 0 : break; }
8712 :
8713 180 : case 2: {
8714 180 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
8715 180 : break; }
8716 :
8717 92 : case 3: {
8718 92 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
8719 92 : break; }
8720 :
8721 0 : case 4: {
8722 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
8723 0 : break; }
8724 :
8725 0 : case 5: {
8726 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
8727 0 : break; }
8728 :
8729 0 : case 6: {
8730 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
8731 0 : break; }
8732 :
8733 8 : case 7: {
8734 8 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
8735 8 : break; }
8736 :
8737 296 : case 8: {
8738 296 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
8739 296 : break; }
8740 :
8741 0 : case 9: {
8742 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
8743 0 : break; }
8744 :
8745 0 : default: {
8746 0 : break; }
8747 :
8748 : }
8749 : }
8750 1360 : if (ndr_flags & NDR_BUFFERS) {
8751 680 : if (!(ndr_flags & NDR_SCALARS)) {
8752 : /* We didn't get it above, and the token is not needed after this. */
8753 680 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
8754 : }
8755 680 : switch (level) {
8756 104 : case 0:
8757 104 : if (r->info0) {
8758 0 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
8759 : }
8760 104 : break;
8761 :
8762 0 : case 1:
8763 0 : if (r->info1) {
8764 0 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
8765 : }
8766 0 : break;
8767 :
8768 180 : case 2:
8769 180 : if (r->info2) {
8770 180 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
8771 : }
8772 180 : break;
8773 :
8774 92 : case 3:
8775 92 : if (r->info3) {
8776 92 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
8777 : }
8778 92 : break;
8779 :
8780 0 : case 4:
8781 0 : if (r->info4) {
8782 0 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
8783 : }
8784 0 : break;
8785 :
8786 0 : case 5:
8787 0 : if (r->info5) {
8788 0 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
8789 : }
8790 0 : break;
8791 :
8792 0 : case 6:
8793 0 : if (r->info6) {
8794 0 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
8795 : }
8796 0 : break;
8797 :
8798 8 : case 7:
8799 8 : if (r->info7) {
8800 8 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
8801 : }
8802 8 : break;
8803 :
8804 296 : case 8:
8805 296 : if (r->info8) {
8806 296 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
8807 : }
8808 296 : break;
8809 :
8810 0 : case 9:
8811 0 : if (r->info9) {
8812 0 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
8813 : }
8814 0 : break;
8815 :
8816 0 : default:
8817 0 : break;
8818 :
8819 : }
8820 : }
8821 1360 : return NDR_ERR_SUCCESS;
8822 : }
8823 :
8824 1376 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_SetPrinterInfo *r)
8825 : {
8826 16 : uint32_t level;
8827 16 : uint32_t _level;
8828 1376 : TALLOC_CTX *_mem_save_info0_0 = NULL;
8829 16 : uint32_t _ptr_info0;
8830 1376 : TALLOC_CTX *_mem_save_info1_0 = NULL;
8831 16 : uint32_t _ptr_info1;
8832 1376 : TALLOC_CTX *_mem_save_info2_0 = NULL;
8833 16 : uint32_t _ptr_info2;
8834 1376 : TALLOC_CTX *_mem_save_info3_0 = NULL;
8835 16 : uint32_t _ptr_info3;
8836 1376 : TALLOC_CTX *_mem_save_info4_0 = NULL;
8837 16 : uint32_t _ptr_info4;
8838 1376 : TALLOC_CTX *_mem_save_info5_0 = NULL;
8839 16 : uint32_t _ptr_info5;
8840 1376 : TALLOC_CTX *_mem_save_info6_0 = NULL;
8841 16 : uint32_t _ptr_info6;
8842 1376 : TALLOC_CTX *_mem_save_info7_0 = NULL;
8843 16 : uint32_t _ptr_info7;
8844 1376 : TALLOC_CTX *_mem_save_info8_0 = NULL;
8845 16 : uint32_t _ptr_info8;
8846 1376 : TALLOC_CTX *_mem_save_info9_0 = NULL;
8847 16 : uint32_t _ptr_info9;
8848 1376 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8849 1376 : if (ndr_flags & NDR_SCALARS) {
8850 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
8851 688 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
8852 688 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
8853 688 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
8854 688 : if (_level != level) {
8855 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
8856 : }
8857 : /* ms_union is always aligned to the largest union arm*/
8858 688 : NDR_CHECK(ndr_pull_align(ndr, 5));
8859 688 : switch (level) {
8860 104 : case 0: {
8861 104 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
8862 104 : if (_ptr_info0) {
8863 0 : NDR_PULL_ALLOC(ndr, r->info0);
8864 : } else {
8865 104 : r->info0 = NULL;
8866 : }
8867 104 : break; }
8868 :
8869 0 : case 1: {
8870 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
8871 0 : if (_ptr_info1) {
8872 0 : NDR_PULL_ALLOC(ndr, r->info1);
8873 : } else {
8874 0 : r->info1 = NULL;
8875 : }
8876 0 : break; }
8877 :
8878 184 : case 2: {
8879 184 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
8880 184 : if (_ptr_info2) {
8881 184 : NDR_PULL_ALLOC(ndr, r->info2);
8882 : } else {
8883 0 : r->info2 = NULL;
8884 : }
8885 180 : break; }
8886 :
8887 96 : case 3: {
8888 96 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
8889 96 : if (_ptr_info3) {
8890 96 : NDR_PULL_ALLOC(ndr, r->info3);
8891 : } else {
8892 0 : r->info3 = NULL;
8893 : }
8894 92 : break; }
8895 :
8896 0 : case 4: {
8897 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
8898 0 : if (_ptr_info4) {
8899 0 : NDR_PULL_ALLOC(ndr, r->info4);
8900 : } else {
8901 0 : r->info4 = NULL;
8902 : }
8903 0 : break; }
8904 :
8905 0 : case 5: {
8906 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
8907 0 : if (_ptr_info5) {
8908 0 : NDR_PULL_ALLOC(ndr, r->info5);
8909 : } else {
8910 0 : r->info5 = NULL;
8911 : }
8912 0 : break; }
8913 :
8914 0 : case 6: {
8915 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
8916 0 : if (_ptr_info6) {
8917 0 : NDR_PULL_ALLOC(ndr, r->info6);
8918 : } else {
8919 0 : r->info6 = NULL;
8920 : }
8921 0 : break; }
8922 :
8923 8 : case 7: {
8924 8 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
8925 8 : if (_ptr_info7) {
8926 8 : NDR_PULL_ALLOC(ndr, r->info7);
8927 : } else {
8928 0 : r->info7 = NULL;
8929 : }
8930 8 : break; }
8931 :
8932 296 : case 8: {
8933 296 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
8934 296 : if (_ptr_info8) {
8935 296 : NDR_PULL_ALLOC(ndr, r->info8);
8936 : } else {
8937 0 : r->info8 = NULL;
8938 : }
8939 296 : break; }
8940 :
8941 0 : case 9: {
8942 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
8943 0 : if (_ptr_info9) {
8944 0 : NDR_PULL_ALLOC(ndr, r->info9);
8945 : } else {
8946 0 : r->info9 = NULL;
8947 : }
8948 0 : break; }
8949 :
8950 0 : default: {
8951 0 : break; }
8952 :
8953 : }
8954 : }
8955 1376 : if (ndr_flags & NDR_BUFFERS) {
8956 688 : if (!(ndr_flags & NDR_SCALARS)) {
8957 : /* We didn't get it above, and the token is not needed after this. */
8958 688 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
8959 : }
8960 688 : switch (level) {
8961 104 : case 0:
8962 104 : if (r->info0) {
8963 0 : _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
8964 0 : NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
8965 0 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
8966 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
8967 : }
8968 104 : break;
8969 :
8970 0 : case 1:
8971 0 : if (r->info1) {
8972 0 : _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
8973 0 : NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
8974 0 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
8975 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
8976 : }
8977 0 : break;
8978 :
8979 184 : case 2:
8980 184 : if (r->info2) {
8981 184 : _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
8982 184 : NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
8983 184 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
8984 184 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
8985 : }
8986 180 : break;
8987 :
8988 96 : case 3:
8989 96 : if (r->info3) {
8990 96 : _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
8991 96 : NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
8992 96 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
8993 96 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
8994 : }
8995 92 : break;
8996 :
8997 0 : case 4:
8998 0 : if (r->info4) {
8999 0 : _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
9000 0 : NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
9001 0 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
9002 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
9003 : }
9004 0 : break;
9005 :
9006 0 : case 5:
9007 0 : if (r->info5) {
9008 0 : _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
9009 0 : NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
9010 0 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
9011 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
9012 : }
9013 0 : break;
9014 :
9015 0 : case 6:
9016 0 : if (r->info6) {
9017 0 : _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
9018 0 : NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
9019 0 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
9020 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
9021 : }
9022 0 : break;
9023 :
9024 8 : case 7:
9025 8 : if (r->info7) {
9026 8 : _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
9027 8 : NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
9028 8 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
9029 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
9030 : }
9031 8 : break;
9032 :
9033 296 : case 8:
9034 296 : if (r->info8) {
9035 296 : _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
9036 296 : NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
9037 296 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
9038 296 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
9039 : }
9040 296 : break;
9041 :
9042 0 : case 9:
9043 0 : if (r->info9) {
9044 0 : _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
9045 0 : NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
9046 0 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
9047 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
9048 : }
9049 0 : break;
9050 :
9051 0 : default:
9052 0 : break;
9053 :
9054 : }
9055 : }
9056 1360 : return NDR_ERR_SUCCESS;
9057 : }
9058 :
9059 8 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
9060 : {
9061 8 : uint32_t level;
9062 8 : level = ndr_print_steal_switch_value(ndr, r);
9063 8 : ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
9064 8 : switch (level) {
9065 0 : case 0:
9066 0 : ndr_print_ptr(ndr, "info0", r->info0);
9067 0 : ndr->depth++;
9068 0 : if (r->info0) {
9069 0 : ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
9070 : }
9071 0 : ndr->depth--;
9072 0 : break;
9073 :
9074 0 : case 1:
9075 0 : ndr_print_ptr(ndr, "info1", r->info1);
9076 0 : ndr->depth++;
9077 0 : if (r->info1) {
9078 0 : ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
9079 : }
9080 0 : ndr->depth--;
9081 0 : break;
9082 :
9083 4 : case 2:
9084 4 : ndr_print_ptr(ndr, "info2", r->info2);
9085 4 : ndr->depth++;
9086 4 : if (r->info2) {
9087 4 : ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
9088 : }
9089 4 : ndr->depth--;
9090 4 : break;
9091 :
9092 4 : case 3:
9093 4 : ndr_print_ptr(ndr, "info3", r->info3);
9094 4 : ndr->depth++;
9095 4 : if (r->info3) {
9096 4 : ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
9097 : }
9098 4 : ndr->depth--;
9099 4 : break;
9100 :
9101 0 : case 4:
9102 0 : ndr_print_ptr(ndr, "info4", r->info4);
9103 0 : ndr->depth++;
9104 0 : if (r->info4) {
9105 0 : ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
9106 : }
9107 0 : ndr->depth--;
9108 0 : break;
9109 :
9110 0 : case 5:
9111 0 : ndr_print_ptr(ndr, "info5", r->info5);
9112 0 : ndr->depth++;
9113 0 : if (r->info5) {
9114 0 : ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
9115 : }
9116 0 : ndr->depth--;
9117 0 : break;
9118 :
9119 0 : case 6:
9120 0 : ndr_print_ptr(ndr, "info6", r->info6);
9121 0 : ndr->depth++;
9122 0 : if (r->info6) {
9123 0 : ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
9124 : }
9125 0 : ndr->depth--;
9126 0 : break;
9127 :
9128 0 : case 7:
9129 0 : ndr_print_ptr(ndr, "info7", r->info7);
9130 0 : ndr->depth++;
9131 0 : if (r->info7) {
9132 0 : ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
9133 : }
9134 0 : ndr->depth--;
9135 0 : break;
9136 :
9137 0 : case 8:
9138 0 : ndr_print_ptr(ndr, "info8", r->info8);
9139 0 : ndr->depth++;
9140 0 : if (r->info8) {
9141 0 : ndr_print_spoolss_SetPrinterInfo8(ndr, "info8", r->info8);
9142 : }
9143 0 : ndr->depth--;
9144 0 : break;
9145 :
9146 0 : case 9:
9147 0 : ndr_print_ptr(ndr, "info9", r->info9);
9148 0 : ndr->depth++;
9149 0 : if (r->info9) {
9150 0 : ndr_print_spoolss_SetPrinterInfo9(ndr, "info9", r->info9);
9151 : }
9152 0 : ndr->depth--;
9153 0 : break;
9154 :
9155 0 : default:
9156 0 : break;
9157 :
9158 : }
9159 8 : }
9160 :
9161 680 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
9162 : {
9163 680 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9164 680 : if (ndr_flags & NDR_SCALARS) {
9165 680 : NDR_CHECK(ndr_push_align(ndr, 5));
9166 680 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
9167 680 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
9168 680 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
9169 680 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9170 : }
9171 680 : if (ndr_flags & NDR_BUFFERS) {
9172 680 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
9173 680 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
9174 : }
9175 680 : return NDR_ERR_SUCCESS;
9176 : }
9177 :
9178 688 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
9179 : {
9180 688 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9181 688 : if (ndr_flags & NDR_SCALARS) {
9182 688 : NDR_CHECK(ndr_pull_align(ndr, 5));
9183 688 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
9184 688 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
9185 688 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
9186 688 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9187 : }
9188 688 : if (ndr_flags & NDR_BUFFERS) {
9189 688 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
9190 688 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
9191 : }
9192 680 : return NDR_ERR_SUCCESS;
9193 : }
9194 :
9195 0 : static void ndr_print_flags_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_SetPrinterInfoCtr *r)
9196 : {
9197 0 : ndr_print_spoolss_SetPrinterInfoCtr(ndr, name, r);
9198 0 : }
9199 :
9200 8 : _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
9201 : {
9202 8 : ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
9203 8 : if (r == NULL) { ndr_print_null(ndr); return; }
9204 8 : ndr->depth++;
9205 8 : ndr_print_uint32(ndr, "level", r->level);
9206 8 : ndr_print_set_switch_value(ndr, &r->info, r->level);
9207 8 : ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
9208 8 : ndr->depth--;
9209 : }
9210 :
9211 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_StringArray *r)
9212 : {
9213 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9214 0 : if (ndr_flags & NDR_SCALARS) {
9215 0 : NDR_CHECK(ndr_push_align(ndr, 4));
9216 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->flags) - 4) / 2));
9217 : {
9218 0 : libndr_flags _flags_save_string_array = ndr->flags;
9219 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
9220 0 : NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
9221 0 : ndr->flags = _flags_save_string_array;
9222 : }
9223 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
9224 : }
9225 0 : if (ndr_flags & NDR_BUFFERS) {
9226 0 : }
9227 0 : return NDR_ERR_SUCCESS;
9228 : }
9229 :
9230 8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_StringArray *r)
9231 : {
9232 8 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9233 8 : if (ndr_flags & NDR_SCALARS) {
9234 8 : NDR_CHECK(ndr_pull_align(ndr, 4));
9235 8 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
9236 : {
9237 8 : libndr_flags _flags_save_string_array = ndr->flags;
9238 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
9239 8 : NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
9240 8 : ndr->flags = _flags_save_string_array;
9241 : }
9242 8 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
9243 : }
9244 8 : if (ndr_flags & NDR_BUFFERS) {
9245 8 : }
9246 8 : return NDR_ERR_SUCCESS;
9247 : }
9248 :
9249 0 : static void ndr_print_flags_spoolss_StringArray(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_StringArray *r)
9250 : {
9251 0 : ndr_print_spoolss_StringArray(ndr, name, r);
9252 0 : }
9253 :
9254 8 : _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
9255 : {
9256 8 : ndr_print_struct(ndr, name, "spoolss_StringArray");
9257 8 : if (r == NULL) { ndr_print_null(ndr); return; }
9258 8 : ndr->depth++;
9259 8 : ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?(ndr_size_spoolss_StringArray(r, ndr->flags) - 4) / 2:r->_ndr_size);
9260 : {
9261 8 : libndr_flags _flags_save_string_array = ndr->flags;
9262 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
9263 8 : ndr_print_string_array(ndr, "string", r->string);
9264 8 : ndr->flags = _flags_save_string_array;
9265 : }
9266 8 : ndr->depth--;
9267 : }
9268 :
9269 0 : static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddDriverInfo1 *r)
9270 : {
9271 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9272 0 : if (ndr_flags & NDR_SCALARS) {
9273 0 : NDR_CHECK(ndr_push_align(ndr, 5));
9274 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9275 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9276 : }
9277 0 : if (ndr_flags & NDR_BUFFERS) {
9278 0 : if (r->driver_name) {
9279 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9280 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9281 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9282 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9283 : }
9284 : }
9285 0 : return NDR_ERR_SUCCESS;
9286 : }
9287 :
9288 0 : static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddDriverInfo1 *r)
9289 : {
9290 0 : uint32_t _ptr_driver_name;
9291 0 : uint32_t size_driver_name_1 = 0;
9292 0 : uint32_t length_driver_name_1 = 0;
9293 0 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
9294 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9295 0 : if (ndr_flags & NDR_SCALARS) {
9296 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
9297 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9298 0 : if (_ptr_driver_name) {
9299 0 : NDR_PULL_ALLOC(ndr, r->driver_name);
9300 : } else {
9301 0 : r->driver_name = NULL;
9302 : }
9303 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9304 : }
9305 0 : if (ndr_flags & NDR_BUFFERS) {
9306 0 : if (r->driver_name) {
9307 0 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9308 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9309 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9310 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9311 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_name, &size_driver_name_1));
9312 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_name, &length_driver_name_1));
9313 0 : if (length_driver_name_1 > size_driver_name_1) {
9314 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_name_1, length_driver_name_1);
9315 : }
9316 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
9317 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
9318 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9319 : }
9320 : }
9321 0 : return NDR_ERR_SUCCESS;
9322 : }
9323 :
9324 0 : _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
9325 : {
9326 0 : ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
9327 0 : if (r == NULL) { ndr_print_null(ndr); return; }
9328 0 : ndr->depth++;
9329 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
9330 0 : ndr->depth++;
9331 0 : if (r->driver_name) {
9332 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
9333 : }
9334 0 : ndr->depth--;
9335 0 : ndr->depth--;
9336 : }
9337 :
9338 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DriverOSVersion r)
9339 : {
9340 0 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
9341 0 : return NDR_ERR_SUCCESS;
9342 : }
9343 :
9344 6 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DriverOSVersion *r)
9345 : {
9346 6 : uint32_t v;
9347 6 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
9348 6 : *r = v;
9349 6 : return NDR_ERR_SUCCESS;
9350 : }
9351 :
9352 6 : _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
9353 : {
9354 6 : const char *val = NULL;
9355 :
9356 6 : switch (r) {
9357 4 : case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
9358 0 : case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
9359 0 : case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
9360 2 : case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
9361 0 : case SPOOLSS_DRIVER_VERSION_2012: val = "SPOOLSS_DRIVER_VERSION_2012"; break;
9362 : }
9363 6 : ndr_print_enum(ndr, name, "ENUM", val, r);
9364 6 : }
9365 :
9366 0 : static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddDriverInfo2 *r)
9367 : {
9368 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9369 0 : if (ndr_flags & NDR_SCALARS) {
9370 0 : NDR_CHECK(ndr_push_align(ndr, 5));
9371 0 : NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9372 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9373 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9374 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9375 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9376 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9377 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9378 : }
9379 0 : if (ndr_flags & NDR_BUFFERS) {
9380 0 : if (r->driver_name) {
9381 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9382 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9383 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9384 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9385 : }
9386 0 : if (r->architecture) {
9387 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9388 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9389 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9390 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9391 : }
9392 0 : if (r->driver_path) {
9393 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9394 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9395 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9396 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9397 : }
9398 0 : if (r->data_file) {
9399 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9400 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9401 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9402 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9403 : }
9404 0 : if (r->config_file) {
9405 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9406 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9407 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9408 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9409 : }
9410 : }
9411 0 : return NDR_ERR_SUCCESS;
9412 : }
9413 :
9414 0 : static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddDriverInfo2 *r)
9415 : {
9416 0 : uint32_t _ptr_driver_name;
9417 0 : uint32_t size_driver_name_1 = 0;
9418 0 : uint32_t length_driver_name_1 = 0;
9419 0 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
9420 0 : uint32_t _ptr_architecture;
9421 0 : uint32_t size_architecture_1 = 0;
9422 0 : uint32_t length_architecture_1 = 0;
9423 0 : TALLOC_CTX *_mem_save_architecture_0 = NULL;
9424 0 : uint32_t _ptr_driver_path;
9425 0 : uint32_t size_driver_path_1 = 0;
9426 0 : uint32_t length_driver_path_1 = 0;
9427 0 : TALLOC_CTX *_mem_save_driver_path_0 = NULL;
9428 0 : uint32_t _ptr_data_file;
9429 0 : uint32_t size_data_file_1 = 0;
9430 0 : uint32_t length_data_file_1 = 0;
9431 0 : TALLOC_CTX *_mem_save_data_file_0 = NULL;
9432 0 : uint32_t _ptr_config_file;
9433 0 : uint32_t size_config_file_1 = 0;
9434 0 : uint32_t length_config_file_1 = 0;
9435 0 : TALLOC_CTX *_mem_save_config_file_0 = NULL;
9436 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9437 0 : if (ndr_flags & NDR_SCALARS) {
9438 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
9439 0 : NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9440 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9441 0 : if (_ptr_driver_name) {
9442 0 : NDR_PULL_ALLOC(ndr, r->driver_name);
9443 : } else {
9444 0 : r->driver_name = NULL;
9445 : }
9446 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9447 0 : if (_ptr_architecture) {
9448 0 : NDR_PULL_ALLOC(ndr, r->architecture);
9449 : } else {
9450 0 : r->architecture = NULL;
9451 : }
9452 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9453 0 : if (_ptr_driver_path) {
9454 0 : NDR_PULL_ALLOC(ndr, r->driver_path);
9455 : } else {
9456 0 : r->driver_path = NULL;
9457 : }
9458 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9459 0 : if (_ptr_data_file) {
9460 0 : NDR_PULL_ALLOC(ndr, r->data_file);
9461 : } else {
9462 0 : r->data_file = NULL;
9463 : }
9464 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9465 0 : if (_ptr_config_file) {
9466 0 : NDR_PULL_ALLOC(ndr, r->config_file);
9467 : } else {
9468 0 : r->config_file = NULL;
9469 : }
9470 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9471 : }
9472 0 : if (ndr_flags & NDR_BUFFERS) {
9473 0 : if (r->driver_name) {
9474 0 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9475 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9476 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9477 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9478 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_name, &size_driver_name_1));
9479 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_name, &length_driver_name_1));
9480 0 : if (length_driver_name_1 > size_driver_name_1) {
9481 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_name_1, length_driver_name_1);
9482 : }
9483 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
9484 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
9485 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9486 : }
9487 0 : if (r->architecture) {
9488 0 : _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9489 0 : NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9490 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9491 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9492 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->architecture, &size_architecture_1));
9493 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->architecture, &length_architecture_1));
9494 0 : if (length_architecture_1 > size_architecture_1) {
9495 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
9496 : }
9497 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
9498 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
9499 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9500 : }
9501 0 : if (r->driver_path) {
9502 0 : _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9503 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9504 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9505 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9506 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_path, &size_driver_path_1));
9507 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_path, &length_driver_path_1));
9508 0 : if (length_driver_path_1 > size_driver_path_1) {
9509 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_path_1, length_driver_path_1);
9510 : }
9511 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
9512 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
9513 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9514 : }
9515 0 : if (r->data_file) {
9516 0 : _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9517 0 : NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9518 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9519 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9520 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->data_file, &size_data_file_1));
9521 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->data_file, &length_data_file_1));
9522 0 : if (length_data_file_1 > size_data_file_1) {
9523 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_file_1, length_data_file_1);
9524 : }
9525 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
9526 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
9527 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9528 : }
9529 0 : if (r->config_file) {
9530 0 : _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9531 0 : NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9532 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9533 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9534 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->config_file, &size_config_file_1));
9535 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->config_file, &length_config_file_1));
9536 0 : if (length_config_file_1 > size_config_file_1) {
9537 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_config_file_1, length_config_file_1);
9538 : }
9539 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
9540 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
9541 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9542 : }
9543 : }
9544 0 : return NDR_ERR_SUCCESS;
9545 : }
9546 :
9547 0 : _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
9548 : {
9549 0 : ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
9550 0 : if (r == NULL) { ndr_print_null(ndr); return; }
9551 0 : ndr->depth++;
9552 0 : ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9553 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
9554 0 : ndr->depth++;
9555 0 : if (r->driver_name) {
9556 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
9557 : }
9558 0 : ndr->depth--;
9559 0 : ndr_print_ptr(ndr, "architecture", r->architecture);
9560 0 : ndr->depth++;
9561 0 : if (r->architecture) {
9562 0 : ndr_print_string(ndr, "architecture", r->architecture);
9563 : }
9564 0 : ndr->depth--;
9565 0 : ndr_print_ptr(ndr, "driver_path", r->driver_path);
9566 0 : ndr->depth++;
9567 0 : if (r->driver_path) {
9568 0 : ndr_print_string(ndr, "driver_path", r->driver_path);
9569 : }
9570 0 : ndr->depth--;
9571 0 : ndr_print_ptr(ndr, "data_file", r->data_file);
9572 0 : ndr->depth++;
9573 0 : if (r->data_file) {
9574 0 : ndr_print_string(ndr, "data_file", r->data_file);
9575 : }
9576 0 : ndr->depth--;
9577 0 : ndr_print_ptr(ndr, "config_file", r->config_file);
9578 0 : ndr->depth++;
9579 0 : if (r->config_file) {
9580 0 : ndr_print_string(ndr, "config_file", r->config_file);
9581 : }
9582 0 : ndr->depth--;
9583 0 : ndr->depth--;
9584 : }
9585 :
9586 0 : static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddDriverInfo3 *r)
9587 : {
9588 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9589 0 : if (ndr_flags & NDR_SCALARS) {
9590 0 : NDR_CHECK(ndr_push_align(ndr, 5));
9591 0 : NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9592 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9593 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9594 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9595 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9596 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9597 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9598 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9599 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9600 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2)));
9601 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9602 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9603 : }
9604 0 : if (ndr_flags & NDR_BUFFERS) {
9605 0 : if (r->driver_name) {
9606 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9607 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9608 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9609 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9610 : }
9611 0 : if (r->architecture) {
9612 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9613 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9614 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9615 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9616 : }
9617 0 : if (r->driver_path) {
9618 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9619 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9620 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9621 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9622 : }
9623 0 : if (r->data_file) {
9624 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9625 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9626 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9627 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9628 : }
9629 0 : if (r->config_file) {
9630 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9631 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9632 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9633 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9634 : }
9635 0 : if (r->help_file) {
9636 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9637 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9638 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9639 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9640 : }
9641 0 : if (r->monitor_name) {
9642 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9643 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9644 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9645 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9646 : }
9647 0 : if (r->default_datatype) {
9648 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9649 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9650 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9651 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9652 : }
9653 0 : if (r->dependent_files) {
9654 0 : NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9655 : }
9656 : }
9657 0 : return NDR_ERR_SUCCESS;
9658 : }
9659 :
9660 0 : static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddDriverInfo3 *r)
9661 : {
9662 0 : uint32_t _ptr_driver_name;
9663 0 : uint32_t size_driver_name_1 = 0;
9664 0 : uint32_t length_driver_name_1 = 0;
9665 0 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
9666 0 : uint32_t _ptr_architecture;
9667 0 : uint32_t size_architecture_1 = 0;
9668 0 : uint32_t length_architecture_1 = 0;
9669 0 : TALLOC_CTX *_mem_save_architecture_0 = NULL;
9670 0 : uint32_t _ptr_driver_path;
9671 0 : uint32_t size_driver_path_1 = 0;
9672 0 : uint32_t length_driver_path_1 = 0;
9673 0 : TALLOC_CTX *_mem_save_driver_path_0 = NULL;
9674 0 : uint32_t _ptr_data_file;
9675 0 : uint32_t size_data_file_1 = 0;
9676 0 : uint32_t length_data_file_1 = 0;
9677 0 : TALLOC_CTX *_mem_save_data_file_0 = NULL;
9678 0 : uint32_t _ptr_config_file;
9679 0 : uint32_t size_config_file_1 = 0;
9680 0 : uint32_t length_config_file_1 = 0;
9681 0 : TALLOC_CTX *_mem_save_config_file_0 = NULL;
9682 0 : uint32_t _ptr_help_file;
9683 0 : uint32_t size_help_file_1 = 0;
9684 0 : uint32_t length_help_file_1 = 0;
9685 0 : TALLOC_CTX *_mem_save_help_file_0 = NULL;
9686 0 : uint32_t _ptr_monitor_name;
9687 0 : uint32_t size_monitor_name_1 = 0;
9688 0 : uint32_t length_monitor_name_1 = 0;
9689 0 : TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
9690 0 : uint32_t _ptr_default_datatype;
9691 0 : uint32_t size_default_datatype_1 = 0;
9692 0 : uint32_t length_default_datatype_1 = 0;
9693 0 : TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
9694 0 : uint32_t _ptr_dependent_files;
9695 0 : TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
9696 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9697 0 : if (ndr_flags & NDR_SCALARS) {
9698 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
9699 0 : NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9700 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9701 0 : if (_ptr_driver_name) {
9702 0 : NDR_PULL_ALLOC(ndr, r->driver_name);
9703 : } else {
9704 0 : r->driver_name = NULL;
9705 : }
9706 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9707 0 : if (_ptr_architecture) {
9708 0 : NDR_PULL_ALLOC(ndr, r->architecture);
9709 : } else {
9710 0 : r->architecture = NULL;
9711 : }
9712 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9713 0 : if (_ptr_driver_path) {
9714 0 : NDR_PULL_ALLOC(ndr, r->driver_path);
9715 : } else {
9716 0 : r->driver_path = NULL;
9717 : }
9718 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9719 0 : if (_ptr_data_file) {
9720 0 : NDR_PULL_ALLOC(ndr, r->data_file);
9721 : } else {
9722 0 : r->data_file = NULL;
9723 : }
9724 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9725 0 : if (_ptr_config_file) {
9726 0 : NDR_PULL_ALLOC(ndr, r->config_file);
9727 : } else {
9728 0 : r->config_file = NULL;
9729 : }
9730 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9731 0 : if (_ptr_help_file) {
9732 0 : NDR_PULL_ALLOC(ndr, r->help_file);
9733 : } else {
9734 0 : r->help_file = NULL;
9735 : }
9736 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9737 0 : if (_ptr_monitor_name) {
9738 0 : NDR_PULL_ALLOC(ndr, r->monitor_name);
9739 : } else {
9740 0 : r->monitor_name = NULL;
9741 : }
9742 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9743 0 : if (_ptr_default_datatype) {
9744 0 : NDR_PULL_ALLOC(ndr, r->default_datatype);
9745 : } else {
9746 0 : r->default_datatype = NULL;
9747 : }
9748 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9749 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9750 0 : if (_ptr_dependent_files) {
9751 0 : NDR_PULL_ALLOC(ndr, r->dependent_files);
9752 : } else {
9753 0 : r->dependent_files = NULL;
9754 : }
9755 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9756 : }
9757 0 : if (ndr_flags & NDR_BUFFERS) {
9758 0 : if (r->driver_name) {
9759 0 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9760 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9761 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9762 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9763 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_name, &size_driver_name_1));
9764 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_name, &length_driver_name_1));
9765 0 : if (length_driver_name_1 > size_driver_name_1) {
9766 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_name_1, length_driver_name_1);
9767 : }
9768 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
9769 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
9770 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9771 : }
9772 0 : if (r->architecture) {
9773 0 : _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9774 0 : NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9775 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9776 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9777 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->architecture, &size_architecture_1));
9778 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->architecture, &length_architecture_1));
9779 0 : if (length_architecture_1 > size_architecture_1) {
9780 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
9781 : }
9782 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
9783 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
9784 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9785 : }
9786 0 : if (r->driver_path) {
9787 0 : _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9788 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9789 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9790 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9791 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_path, &size_driver_path_1));
9792 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_path, &length_driver_path_1));
9793 0 : if (length_driver_path_1 > size_driver_path_1) {
9794 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_path_1, length_driver_path_1);
9795 : }
9796 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
9797 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
9798 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9799 : }
9800 0 : if (r->data_file) {
9801 0 : _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9802 0 : NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9803 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9804 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9805 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->data_file, &size_data_file_1));
9806 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->data_file, &length_data_file_1));
9807 0 : if (length_data_file_1 > size_data_file_1) {
9808 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_file_1, length_data_file_1);
9809 : }
9810 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
9811 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
9812 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9813 : }
9814 0 : if (r->config_file) {
9815 0 : _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9816 0 : NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9817 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9818 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9819 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->config_file, &size_config_file_1));
9820 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->config_file, &length_config_file_1));
9821 0 : if (length_config_file_1 > size_config_file_1) {
9822 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_config_file_1, length_config_file_1);
9823 : }
9824 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
9825 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
9826 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9827 : }
9828 0 : if (r->help_file) {
9829 0 : _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9830 0 : NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9831 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9832 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9833 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->help_file, &size_help_file_1));
9834 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->help_file, &length_help_file_1));
9835 0 : if (length_help_file_1 > size_help_file_1) {
9836 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_help_file_1, length_help_file_1);
9837 : }
9838 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
9839 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
9840 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9841 : }
9842 0 : if (r->monitor_name) {
9843 0 : _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9844 0 : NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9845 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9846 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9847 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->monitor_name, &size_monitor_name_1));
9848 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->monitor_name, &length_monitor_name_1));
9849 0 : if (length_monitor_name_1 > size_monitor_name_1) {
9850 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_monitor_name_1, length_monitor_name_1);
9851 : }
9852 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
9853 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
9854 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9855 : }
9856 0 : if (r->default_datatype) {
9857 0 : _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9858 0 : NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9859 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9860 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9861 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->default_datatype, &size_default_datatype_1));
9862 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->default_datatype, &length_default_datatype_1));
9863 0 : if (length_default_datatype_1 > size_default_datatype_1) {
9864 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_default_datatype_1, length_default_datatype_1);
9865 : }
9866 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
9867 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
9868 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9869 : }
9870 0 : if (r->dependent_files) {
9871 0 : _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9872 0 : NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9873 0 : NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9874 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9875 : }
9876 : }
9877 0 : return NDR_ERR_SUCCESS;
9878 : }
9879 :
9880 0 : _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
9881 : {
9882 0 : ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
9883 0 : if (r == NULL) { ndr_print_null(ndr); return; }
9884 0 : ndr->depth++;
9885 0 : ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9886 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
9887 0 : ndr->depth++;
9888 0 : if (r->driver_name) {
9889 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
9890 : }
9891 0 : ndr->depth--;
9892 0 : ndr_print_ptr(ndr, "architecture", r->architecture);
9893 0 : ndr->depth++;
9894 0 : if (r->architecture) {
9895 0 : ndr_print_string(ndr, "architecture", r->architecture);
9896 : }
9897 0 : ndr->depth--;
9898 0 : ndr_print_ptr(ndr, "driver_path", r->driver_path);
9899 0 : ndr->depth++;
9900 0 : if (r->driver_path) {
9901 0 : ndr_print_string(ndr, "driver_path", r->driver_path);
9902 : }
9903 0 : ndr->depth--;
9904 0 : ndr_print_ptr(ndr, "data_file", r->data_file);
9905 0 : ndr->depth++;
9906 0 : if (r->data_file) {
9907 0 : ndr_print_string(ndr, "data_file", r->data_file);
9908 : }
9909 0 : ndr->depth--;
9910 0 : ndr_print_ptr(ndr, "config_file", r->config_file);
9911 0 : ndr->depth++;
9912 0 : if (r->config_file) {
9913 0 : ndr_print_string(ndr, "config_file", r->config_file);
9914 : }
9915 0 : ndr->depth--;
9916 0 : ndr_print_ptr(ndr, "help_file", r->help_file);
9917 0 : ndr->depth++;
9918 0 : if (r->help_file) {
9919 0 : ndr_print_string(ndr, "help_file", r->help_file);
9920 : }
9921 0 : ndr->depth--;
9922 0 : ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9923 0 : ndr->depth++;
9924 0 : if (r->monitor_name) {
9925 0 : ndr_print_string(ndr, "monitor_name", r->monitor_name);
9926 : }
9927 0 : ndr->depth--;
9928 0 : ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9929 0 : ndr->depth++;
9930 0 : if (r->default_datatype) {
9931 0 : ndr_print_string(ndr, "default_datatype", r->default_datatype);
9932 : }
9933 0 : ndr->depth--;
9934 0 : ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
9935 0 : ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9936 0 : ndr->depth++;
9937 0 : if (r->dependent_files) {
9938 0 : ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9939 : }
9940 0 : ndr->depth--;
9941 0 : ndr->depth--;
9942 : }
9943 :
9944 0 : static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddDriverInfo4 *r)
9945 : {
9946 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9947 0 : if (ndr_flags & NDR_SCALARS) {
9948 0 : NDR_CHECK(ndr_push_align(ndr, 5));
9949 0 : NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9950 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9951 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9952 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9953 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9954 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9955 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9956 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9957 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9958 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2)));
9959 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9960 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2)));
9961 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9962 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9963 : }
9964 0 : if (ndr_flags & NDR_BUFFERS) {
9965 0 : if (r->driver_name) {
9966 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9967 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9968 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9969 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9970 : }
9971 0 : if (r->architecture) {
9972 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9973 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9974 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9975 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9976 : }
9977 0 : if (r->driver_path) {
9978 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9979 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9980 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9981 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9982 : }
9983 0 : if (r->data_file) {
9984 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9985 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9986 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9987 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9988 : }
9989 0 : if (r->config_file) {
9990 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9991 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9992 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9993 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9994 : }
9995 0 : if (r->help_file) {
9996 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9997 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9998 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9999 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10000 : }
10001 0 : if (r->monitor_name) {
10002 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
10003 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10004 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
10005 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10006 : }
10007 0 : if (r->default_datatype) {
10008 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
10009 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10010 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
10011 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10012 : }
10013 0 : if (r->dependent_files) {
10014 0 : NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10015 : }
10016 0 : if (r->previous_names) {
10017 0 : NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10018 : }
10019 : }
10020 0 : return NDR_ERR_SUCCESS;
10021 : }
10022 :
10023 0 : static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddDriverInfo4 *r)
10024 : {
10025 0 : uint32_t _ptr_driver_name;
10026 0 : uint32_t size_driver_name_1 = 0;
10027 0 : uint32_t length_driver_name_1 = 0;
10028 0 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
10029 0 : uint32_t _ptr_architecture;
10030 0 : uint32_t size_architecture_1 = 0;
10031 0 : uint32_t length_architecture_1 = 0;
10032 0 : TALLOC_CTX *_mem_save_architecture_0 = NULL;
10033 0 : uint32_t _ptr_driver_path;
10034 0 : uint32_t size_driver_path_1 = 0;
10035 0 : uint32_t length_driver_path_1 = 0;
10036 0 : TALLOC_CTX *_mem_save_driver_path_0 = NULL;
10037 0 : uint32_t _ptr_data_file;
10038 0 : uint32_t size_data_file_1 = 0;
10039 0 : uint32_t length_data_file_1 = 0;
10040 0 : TALLOC_CTX *_mem_save_data_file_0 = NULL;
10041 0 : uint32_t _ptr_config_file;
10042 0 : uint32_t size_config_file_1 = 0;
10043 0 : uint32_t length_config_file_1 = 0;
10044 0 : TALLOC_CTX *_mem_save_config_file_0 = NULL;
10045 0 : uint32_t _ptr_help_file;
10046 0 : uint32_t size_help_file_1 = 0;
10047 0 : uint32_t length_help_file_1 = 0;
10048 0 : TALLOC_CTX *_mem_save_help_file_0 = NULL;
10049 0 : uint32_t _ptr_monitor_name;
10050 0 : uint32_t size_monitor_name_1 = 0;
10051 0 : uint32_t length_monitor_name_1 = 0;
10052 0 : TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
10053 0 : uint32_t _ptr_default_datatype;
10054 0 : uint32_t size_default_datatype_1 = 0;
10055 0 : uint32_t length_default_datatype_1 = 0;
10056 0 : TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
10057 0 : uint32_t _ptr_dependent_files;
10058 0 : TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
10059 0 : uint32_t _ptr_previous_names;
10060 0 : TALLOC_CTX *_mem_save_previous_names_0 = NULL;
10061 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
10062 0 : if (ndr_flags & NDR_SCALARS) {
10063 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
10064 0 : NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10065 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10066 0 : if (_ptr_driver_name) {
10067 0 : NDR_PULL_ALLOC(ndr, r->driver_name);
10068 : } else {
10069 0 : r->driver_name = NULL;
10070 : }
10071 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10072 0 : if (_ptr_architecture) {
10073 0 : NDR_PULL_ALLOC(ndr, r->architecture);
10074 : } else {
10075 0 : r->architecture = NULL;
10076 : }
10077 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10078 0 : if (_ptr_driver_path) {
10079 0 : NDR_PULL_ALLOC(ndr, r->driver_path);
10080 : } else {
10081 0 : r->driver_path = NULL;
10082 : }
10083 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10084 0 : if (_ptr_data_file) {
10085 0 : NDR_PULL_ALLOC(ndr, r->data_file);
10086 : } else {
10087 0 : r->data_file = NULL;
10088 : }
10089 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10090 0 : if (_ptr_config_file) {
10091 0 : NDR_PULL_ALLOC(ndr, r->config_file);
10092 : } else {
10093 0 : r->config_file = NULL;
10094 : }
10095 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10096 0 : if (_ptr_help_file) {
10097 0 : NDR_PULL_ALLOC(ndr, r->help_file);
10098 : } else {
10099 0 : r->help_file = NULL;
10100 : }
10101 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10102 0 : if (_ptr_monitor_name) {
10103 0 : NDR_PULL_ALLOC(ndr, r->monitor_name);
10104 : } else {
10105 0 : r->monitor_name = NULL;
10106 : }
10107 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10108 0 : if (_ptr_default_datatype) {
10109 0 : NDR_PULL_ALLOC(ndr, r->default_datatype);
10110 : } else {
10111 0 : r->default_datatype = NULL;
10112 : }
10113 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
10114 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10115 0 : if (_ptr_dependent_files) {
10116 0 : NDR_PULL_ALLOC(ndr, r->dependent_files);
10117 : } else {
10118 0 : r->dependent_files = NULL;
10119 : }
10120 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
10121 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10122 0 : if (_ptr_previous_names) {
10123 0 : NDR_PULL_ALLOC(ndr, r->previous_names);
10124 : } else {
10125 0 : r->previous_names = NULL;
10126 : }
10127 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10128 : }
10129 0 : if (ndr_flags & NDR_BUFFERS) {
10130 0 : if (r->driver_name) {
10131 0 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10132 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10133 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
10134 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
10135 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_name, &size_driver_name_1));
10136 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_name, &length_driver_name_1));
10137 0 : if (length_driver_name_1 > size_driver_name_1) {
10138 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_name_1, length_driver_name_1);
10139 : }
10140 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
10141 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
10142 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10143 : }
10144 0 : if (r->architecture) {
10145 0 : _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10146 0 : NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10147 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
10148 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
10149 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->architecture, &size_architecture_1));
10150 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->architecture, &length_architecture_1));
10151 0 : if (length_architecture_1 > size_architecture_1) {
10152 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
10153 : }
10154 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
10155 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
10156 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10157 : }
10158 0 : if (r->driver_path) {
10159 0 : _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10160 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10161 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
10162 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
10163 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_path, &size_driver_path_1));
10164 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_path, &length_driver_path_1));
10165 0 : if (length_driver_path_1 > size_driver_path_1) {
10166 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_path_1, length_driver_path_1);
10167 : }
10168 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
10169 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
10170 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10171 : }
10172 0 : if (r->data_file) {
10173 0 : _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10174 0 : NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10175 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
10176 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
10177 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->data_file, &size_data_file_1));
10178 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->data_file, &length_data_file_1));
10179 0 : if (length_data_file_1 > size_data_file_1) {
10180 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_file_1, length_data_file_1);
10181 : }
10182 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
10183 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
10184 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10185 : }
10186 0 : if (r->config_file) {
10187 0 : _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10188 0 : NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10189 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
10190 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
10191 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->config_file, &size_config_file_1));
10192 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->config_file, &length_config_file_1));
10193 0 : if (length_config_file_1 > size_config_file_1) {
10194 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_config_file_1, length_config_file_1);
10195 : }
10196 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
10197 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
10198 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10199 : }
10200 0 : if (r->help_file) {
10201 0 : _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10202 0 : NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10203 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
10204 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
10205 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->help_file, &size_help_file_1));
10206 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->help_file, &length_help_file_1));
10207 0 : if (length_help_file_1 > size_help_file_1) {
10208 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_help_file_1, length_help_file_1);
10209 : }
10210 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
10211 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
10212 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10213 : }
10214 0 : if (r->monitor_name) {
10215 0 : _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10216 0 : NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10217 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
10218 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
10219 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->monitor_name, &size_monitor_name_1));
10220 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->monitor_name, &length_monitor_name_1));
10221 0 : if (length_monitor_name_1 > size_monitor_name_1) {
10222 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_monitor_name_1, length_monitor_name_1);
10223 : }
10224 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
10225 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
10226 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10227 : }
10228 0 : if (r->default_datatype) {
10229 0 : _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10230 0 : NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10231 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
10232 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
10233 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->default_datatype, &size_default_datatype_1));
10234 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->default_datatype, &length_default_datatype_1));
10235 0 : if (length_default_datatype_1 > size_default_datatype_1) {
10236 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_default_datatype_1, length_default_datatype_1);
10237 : }
10238 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
10239 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
10240 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10241 : }
10242 0 : if (r->dependent_files) {
10243 0 : _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10244 0 : NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10245 0 : NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10246 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10247 : }
10248 0 : if (r->previous_names) {
10249 0 : _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10250 0 : NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10251 0 : NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10252 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10253 : }
10254 : }
10255 0 : return NDR_ERR_SUCCESS;
10256 : }
10257 :
10258 0 : _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
10259 : {
10260 0 : ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
10261 0 : if (r == NULL) { ndr_print_null(ndr); return; }
10262 0 : ndr->depth++;
10263 0 : ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10264 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
10265 0 : ndr->depth++;
10266 0 : if (r->driver_name) {
10267 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
10268 : }
10269 0 : ndr->depth--;
10270 0 : ndr_print_ptr(ndr, "architecture", r->architecture);
10271 0 : ndr->depth++;
10272 0 : if (r->architecture) {
10273 0 : ndr_print_string(ndr, "architecture", r->architecture);
10274 : }
10275 0 : ndr->depth--;
10276 0 : ndr_print_ptr(ndr, "driver_path", r->driver_path);
10277 0 : ndr->depth++;
10278 0 : if (r->driver_path) {
10279 0 : ndr_print_string(ndr, "driver_path", r->driver_path);
10280 : }
10281 0 : ndr->depth--;
10282 0 : ndr_print_ptr(ndr, "data_file", r->data_file);
10283 0 : ndr->depth++;
10284 0 : if (r->data_file) {
10285 0 : ndr_print_string(ndr, "data_file", r->data_file);
10286 : }
10287 0 : ndr->depth--;
10288 0 : ndr_print_ptr(ndr, "config_file", r->config_file);
10289 0 : ndr->depth++;
10290 0 : if (r->config_file) {
10291 0 : ndr_print_string(ndr, "config_file", r->config_file);
10292 : }
10293 0 : ndr->depth--;
10294 0 : ndr_print_ptr(ndr, "help_file", r->help_file);
10295 0 : ndr->depth++;
10296 0 : if (r->help_file) {
10297 0 : ndr_print_string(ndr, "help_file", r->help_file);
10298 : }
10299 0 : ndr->depth--;
10300 0 : ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10301 0 : ndr->depth++;
10302 0 : if (r->monitor_name) {
10303 0 : ndr_print_string(ndr, "monitor_name", r->monitor_name);
10304 : }
10305 0 : ndr->depth--;
10306 0 : ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10307 0 : ndr->depth++;
10308 0 : if (r->default_datatype) {
10309 0 : ndr_print_string(ndr, "default_datatype", r->default_datatype);
10310 : }
10311 0 : ndr->depth--;
10312 0 : ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
10313 0 : ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10314 0 : ndr->depth++;
10315 0 : if (r->dependent_files) {
10316 0 : ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
10317 : }
10318 0 : ndr->depth--;
10319 0 : ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
10320 0 : ndr_print_ptr(ndr, "previous_names", r->previous_names);
10321 0 : ndr->depth++;
10322 0 : if (r->previous_names) {
10323 0 : ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
10324 : }
10325 0 : ndr->depth--;
10326 0 : ndr->depth--;
10327 : }
10328 :
10329 0 : static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
10330 : {
10331 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
10332 0 : return NDR_ERR_SUCCESS;
10333 : }
10334 :
10335 0 : static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
10336 : {
10337 0 : uint32_t v;
10338 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
10339 0 : *r = v;
10340 0 : return NDR_ERR_SUCCESS;
10341 : }
10342 :
10343 0 : _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
10344 : {
10345 0 : ndr_print_uint32(ndr, name, r);
10346 0 : ndr->depth++;
10347 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
10348 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_XPS", PRINTER_DRIVER_XPS, r);
10349 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_SANDBOX_ENABLED", PRINTER_DRIVER_SANDBOX_ENABLED, r);
10350 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CLASS", PRINTER_DRIVER_CLASS, r);
10351 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_DERIVED", PRINTER_DRIVER_DERIVED, r);
10352 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_NOT_SHAREABLE", PRINTER_DRIVER_NOT_SHAREABLE, r);
10353 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CATEGORY_FAX", PRINTER_DRIVER_CATEGORY_FAX, r);
10354 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CATEGORY_FILE", PRINTER_DRIVER_CATEGORY_FILE, r);
10355 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CATEGORY_VIRTUAL", PRINTER_DRIVER_CATEGORY_VIRTUAL, r);
10356 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CATEGORY_SERVICE", PRINTER_DRIVER_CATEGORY_SERVICE, r);
10357 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_SOFT_RESET_REQUIRED", PRINTER_DRIVER_SOFT_RESET_REQUIRED, r);
10358 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CATEGORY_3D", PRINTER_DRIVER_CATEGORY_3D, r);
10359 0 : ndr->depth--;
10360 0 : }
10361 :
10362 0 : static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddDriverInfo6 *r)
10363 : {
10364 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10365 0 : if (ndr_flags & NDR_SCALARS) {
10366 0 : NDR_CHECK(ndr_push_align(ndr, 8));
10367 0 : NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10368 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
10369 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
10370 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
10371 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
10372 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
10373 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
10374 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
10375 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
10376 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2)));
10377 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
10378 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2)));
10379 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
10380 0 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
10381 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
10382 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
10383 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
10384 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
10385 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
10386 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
10387 : }
10388 0 : if (ndr_flags & NDR_BUFFERS) {
10389 0 : if (r->driver_name) {
10390 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
10391 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10392 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
10393 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10394 : }
10395 0 : if (r->architecture) {
10396 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
10397 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10398 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
10399 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10400 : }
10401 0 : if (r->driver_path) {
10402 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
10403 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10404 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
10405 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10406 : }
10407 0 : if (r->data_file) {
10408 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
10409 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10410 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
10411 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10412 : }
10413 0 : if (r->config_file) {
10414 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
10415 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10416 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
10417 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10418 : }
10419 0 : if (r->help_file) {
10420 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
10421 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10422 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
10423 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10424 : }
10425 0 : if (r->monitor_name) {
10426 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
10427 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10428 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
10429 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10430 : }
10431 0 : if (r->default_datatype) {
10432 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
10433 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10434 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
10435 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10436 : }
10437 0 : if (r->dependent_files) {
10438 0 : NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10439 : }
10440 0 : if (r->previous_names) {
10441 0 : NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10442 : }
10443 0 : if (r->manufacturer_name) {
10444 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
10445 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10446 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
10447 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10448 : }
10449 0 : if (r->manufacturer_url) {
10450 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
10451 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10452 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
10453 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10454 : }
10455 0 : if (r->hardware_id) {
10456 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
10457 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10458 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
10459 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10460 : }
10461 0 : if (r->provider) {
10462 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
10463 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10464 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
10465 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10466 : }
10467 : }
10468 0 : return NDR_ERR_SUCCESS;
10469 : }
10470 :
10471 4 : static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddDriverInfo6 *r)
10472 : {
10473 4 : uint32_t _ptr_driver_name;
10474 4 : uint32_t size_driver_name_1 = 0;
10475 4 : uint32_t length_driver_name_1 = 0;
10476 4 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
10477 4 : uint32_t _ptr_architecture;
10478 4 : uint32_t size_architecture_1 = 0;
10479 4 : uint32_t length_architecture_1 = 0;
10480 4 : TALLOC_CTX *_mem_save_architecture_0 = NULL;
10481 4 : uint32_t _ptr_driver_path;
10482 4 : uint32_t size_driver_path_1 = 0;
10483 4 : uint32_t length_driver_path_1 = 0;
10484 4 : TALLOC_CTX *_mem_save_driver_path_0 = NULL;
10485 4 : uint32_t _ptr_data_file;
10486 4 : uint32_t size_data_file_1 = 0;
10487 4 : uint32_t length_data_file_1 = 0;
10488 4 : TALLOC_CTX *_mem_save_data_file_0 = NULL;
10489 4 : uint32_t _ptr_config_file;
10490 4 : uint32_t size_config_file_1 = 0;
10491 4 : uint32_t length_config_file_1 = 0;
10492 4 : TALLOC_CTX *_mem_save_config_file_0 = NULL;
10493 4 : uint32_t _ptr_help_file;
10494 4 : uint32_t size_help_file_1 = 0;
10495 4 : uint32_t length_help_file_1 = 0;
10496 4 : TALLOC_CTX *_mem_save_help_file_0 = NULL;
10497 4 : uint32_t _ptr_monitor_name;
10498 4 : uint32_t size_monitor_name_1 = 0;
10499 4 : uint32_t length_monitor_name_1 = 0;
10500 4 : TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
10501 4 : uint32_t _ptr_default_datatype;
10502 4 : uint32_t size_default_datatype_1 = 0;
10503 4 : uint32_t length_default_datatype_1 = 0;
10504 4 : TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
10505 4 : uint32_t _ptr_dependent_files;
10506 4 : TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
10507 4 : uint32_t _ptr_previous_names;
10508 4 : TALLOC_CTX *_mem_save_previous_names_0 = NULL;
10509 4 : uint32_t _ptr_manufacturer_name;
10510 4 : uint32_t size_manufacturer_name_1 = 0;
10511 4 : uint32_t length_manufacturer_name_1 = 0;
10512 4 : TALLOC_CTX *_mem_save_manufacturer_name_0 = NULL;
10513 4 : uint32_t _ptr_manufacturer_url;
10514 4 : uint32_t size_manufacturer_url_1 = 0;
10515 4 : uint32_t length_manufacturer_url_1 = 0;
10516 4 : TALLOC_CTX *_mem_save_manufacturer_url_0 = NULL;
10517 4 : uint32_t _ptr_hardware_id;
10518 4 : uint32_t size_hardware_id_1 = 0;
10519 4 : uint32_t length_hardware_id_1 = 0;
10520 4 : TALLOC_CTX *_mem_save_hardware_id_0 = NULL;
10521 4 : uint32_t _ptr_provider;
10522 4 : uint32_t size_provider_1 = 0;
10523 4 : uint32_t length_provider_1 = 0;
10524 4 : TALLOC_CTX *_mem_save_provider_0 = NULL;
10525 4 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
10526 4 : if (ndr_flags & NDR_SCALARS) {
10527 4 : NDR_CHECK(ndr_pull_align(ndr, 8));
10528 4 : NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10529 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10530 4 : if (_ptr_driver_name) {
10531 4 : NDR_PULL_ALLOC(ndr, r->driver_name);
10532 : } else {
10533 0 : r->driver_name = NULL;
10534 : }
10535 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10536 4 : if (_ptr_architecture) {
10537 4 : NDR_PULL_ALLOC(ndr, r->architecture);
10538 : } else {
10539 0 : r->architecture = NULL;
10540 : }
10541 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10542 4 : if (_ptr_driver_path) {
10543 4 : NDR_PULL_ALLOC(ndr, r->driver_path);
10544 : } else {
10545 0 : r->driver_path = NULL;
10546 : }
10547 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10548 4 : if (_ptr_data_file) {
10549 4 : NDR_PULL_ALLOC(ndr, r->data_file);
10550 : } else {
10551 0 : r->data_file = NULL;
10552 : }
10553 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10554 4 : if (_ptr_config_file) {
10555 4 : NDR_PULL_ALLOC(ndr, r->config_file);
10556 : } else {
10557 0 : r->config_file = NULL;
10558 : }
10559 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10560 4 : if (_ptr_help_file) {
10561 4 : NDR_PULL_ALLOC(ndr, r->help_file);
10562 : } else {
10563 0 : r->help_file = NULL;
10564 : }
10565 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10566 4 : if (_ptr_monitor_name) {
10567 0 : NDR_PULL_ALLOC(ndr, r->monitor_name);
10568 : } else {
10569 4 : r->monitor_name = NULL;
10570 : }
10571 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10572 4 : if (_ptr_default_datatype) {
10573 0 : NDR_PULL_ALLOC(ndr, r->default_datatype);
10574 : } else {
10575 4 : r->default_datatype = NULL;
10576 : }
10577 4 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
10578 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10579 4 : if (_ptr_dependent_files) {
10580 4 : NDR_PULL_ALLOC(ndr, r->dependent_files);
10581 : } else {
10582 0 : r->dependent_files = NULL;
10583 : }
10584 4 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
10585 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10586 4 : if (_ptr_previous_names) {
10587 4 : NDR_PULL_ALLOC(ndr, r->previous_names);
10588 : } else {
10589 0 : r->previous_names = NULL;
10590 : }
10591 4 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
10592 4 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
10593 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
10594 4 : if (_ptr_manufacturer_name) {
10595 4 : NDR_PULL_ALLOC(ndr, r->manufacturer_name);
10596 : } else {
10597 0 : r->manufacturer_name = NULL;
10598 : }
10599 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
10600 4 : if (_ptr_manufacturer_url) {
10601 4 : NDR_PULL_ALLOC(ndr, r->manufacturer_url);
10602 : } else {
10603 0 : r->manufacturer_url = NULL;
10604 : }
10605 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
10606 4 : if (_ptr_hardware_id) {
10607 4 : NDR_PULL_ALLOC(ndr, r->hardware_id);
10608 : } else {
10609 0 : r->hardware_id = NULL;
10610 : }
10611 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
10612 4 : if (_ptr_provider) {
10613 4 : NDR_PULL_ALLOC(ndr, r->provider);
10614 : } else {
10615 0 : r->provider = NULL;
10616 : }
10617 4 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
10618 : }
10619 4 : if (ndr_flags & NDR_BUFFERS) {
10620 4 : if (r->driver_name) {
10621 4 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10622 4 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10623 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
10624 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
10625 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_name, &size_driver_name_1));
10626 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_name, &length_driver_name_1));
10627 4 : if (length_driver_name_1 > size_driver_name_1) {
10628 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_name_1, length_driver_name_1);
10629 : }
10630 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
10631 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
10632 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10633 : }
10634 4 : if (r->architecture) {
10635 4 : _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10636 4 : NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10637 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
10638 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
10639 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->architecture, &size_architecture_1));
10640 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->architecture, &length_architecture_1));
10641 4 : if (length_architecture_1 > size_architecture_1) {
10642 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
10643 : }
10644 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
10645 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
10646 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10647 : }
10648 4 : if (r->driver_path) {
10649 4 : _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10650 4 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10651 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
10652 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
10653 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_path, &size_driver_path_1));
10654 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_path, &length_driver_path_1));
10655 4 : if (length_driver_path_1 > size_driver_path_1) {
10656 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_path_1, length_driver_path_1);
10657 : }
10658 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
10659 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
10660 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10661 : }
10662 4 : if (r->data_file) {
10663 4 : _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10664 4 : NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10665 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
10666 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
10667 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->data_file, &size_data_file_1));
10668 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->data_file, &length_data_file_1));
10669 4 : if (length_data_file_1 > size_data_file_1) {
10670 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_file_1, length_data_file_1);
10671 : }
10672 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
10673 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
10674 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10675 : }
10676 4 : if (r->config_file) {
10677 4 : _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10678 4 : NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10679 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
10680 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
10681 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->config_file, &size_config_file_1));
10682 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->config_file, &length_config_file_1));
10683 4 : if (length_config_file_1 > size_config_file_1) {
10684 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_config_file_1, length_config_file_1);
10685 : }
10686 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
10687 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
10688 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10689 : }
10690 4 : if (r->help_file) {
10691 4 : _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10692 4 : NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10693 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
10694 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
10695 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->help_file, &size_help_file_1));
10696 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->help_file, &length_help_file_1));
10697 4 : if (length_help_file_1 > size_help_file_1) {
10698 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_help_file_1, length_help_file_1);
10699 : }
10700 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
10701 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
10702 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10703 : }
10704 4 : if (r->monitor_name) {
10705 0 : _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10706 0 : NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10707 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
10708 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
10709 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->monitor_name, &size_monitor_name_1));
10710 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->monitor_name, &length_monitor_name_1));
10711 0 : if (length_monitor_name_1 > size_monitor_name_1) {
10712 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_monitor_name_1, length_monitor_name_1);
10713 : }
10714 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
10715 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
10716 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10717 : }
10718 4 : if (r->default_datatype) {
10719 0 : _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10720 0 : NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10721 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
10722 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
10723 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->default_datatype, &size_default_datatype_1));
10724 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->default_datatype, &length_default_datatype_1));
10725 0 : if (length_default_datatype_1 > size_default_datatype_1) {
10726 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_default_datatype_1, length_default_datatype_1);
10727 : }
10728 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
10729 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
10730 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10731 : }
10732 4 : if (r->dependent_files) {
10733 4 : _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10734 4 : NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10735 4 : NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10736 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10737 : }
10738 4 : if (r->previous_names) {
10739 4 : _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10740 4 : NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10741 4 : NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10742 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10743 : }
10744 4 : if (r->manufacturer_name) {
10745 4 : _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10746 4 : NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10747 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
10748 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
10749 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->manufacturer_name, &size_manufacturer_name_1));
10750 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->manufacturer_name, &length_manufacturer_name_1));
10751 4 : if (length_manufacturer_name_1 > size_manufacturer_name_1) {
10752 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_manufacturer_name_1, length_manufacturer_name_1);
10753 : }
10754 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_name_1, sizeof(uint16_t)));
10755 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, length_manufacturer_name_1, sizeof(uint16_t), CH_UTF16));
10756 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10757 : }
10758 4 : if (r->manufacturer_url) {
10759 4 : _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10760 4 : NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10761 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
10762 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
10763 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->manufacturer_url, &size_manufacturer_url_1));
10764 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->manufacturer_url, &length_manufacturer_url_1));
10765 4 : if (length_manufacturer_url_1 > size_manufacturer_url_1) {
10766 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_manufacturer_url_1, length_manufacturer_url_1);
10767 : }
10768 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_url_1, sizeof(uint16_t)));
10769 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, length_manufacturer_url_1, sizeof(uint16_t), CH_UTF16));
10770 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10771 : }
10772 4 : if (r->hardware_id) {
10773 4 : _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10774 4 : NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10775 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
10776 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
10777 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->hardware_id, &size_hardware_id_1));
10778 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->hardware_id, &length_hardware_id_1));
10779 4 : if (length_hardware_id_1 > size_hardware_id_1) {
10780 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_hardware_id_1, length_hardware_id_1);
10781 : }
10782 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_hardware_id_1, sizeof(uint16_t)));
10783 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, length_hardware_id_1, sizeof(uint16_t), CH_UTF16));
10784 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10785 : }
10786 4 : if (r->provider) {
10787 4 : _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10788 4 : NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10789 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
10790 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
10791 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->provider, &size_provider_1));
10792 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->provider, &length_provider_1));
10793 4 : if (length_provider_1 > size_provider_1) {
10794 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_provider_1, length_provider_1);
10795 : }
10796 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_provider_1, sizeof(uint16_t)));
10797 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, length_provider_1, sizeof(uint16_t), CH_UTF16));
10798 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10799 : }
10800 : }
10801 0 : return NDR_ERR_SUCCESS;
10802 : }
10803 :
10804 4 : _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
10805 : {
10806 4 : ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
10807 4 : if (r == NULL) { ndr_print_null(ndr); return; }
10808 4 : ndr->depth++;
10809 4 : ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10810 4 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
10811 4 : ndr->depth++;
10812 4 : if (r->driver_name) {
10813 4 : ndr_print_string(ndr, "driver_name", r->driver_name);
10814 : }
10815 4 : ndr->depth--;
10816 4 : ndr_print_ptr(ndr, "architecture", r->architecture);
10817 4 : ndr->depth++;
10818 4 : if (r->architecture) {
10819 4 : ndr_print_string(ndr, "architecture", r->architecture);
10820 : }
10821 4 : ndr->depth--;
10822 4 : ndr_print_ptr(ndr, "driver_path", r->driver_path);
10823 4 : ndr->depth++;
10824 4 : if (r->driver_path) {
10825 4 : ndr_print_string(ndr, "driver_path", r->driver_path);
10826 : }
10827 4 : ndr->depth--;
10828 4 : ndr_print_ptr(ndr, "data_file", r->data_file);
10829 4 : ndr->depth++;
10830 4 : if (r->data_file) {
10831 4 : ndr_print_string(ndr, "data_file", r->data_file);
10832 : }
10833 4 : ndr->depth--;
10834 4 : ndr_print_ptr(ndr, "config_file", r->config_file);
10835 4 : ndr->depth++;
10836 4 : if (r->config_file) {
10837 4 : ndr_print_string(ndr, "config_file", r->config_file);
10838 : }
10839 4 : ndr->depth--;
10840 4 : ndr_print_ptr(ndr, "help_file", r->help_file);
10841 4 : ndr->depth++;
10842 4 : if (r->help_file) {
10843 4 : ndr_print_string(ndr, "help_file", r->help_file);
10844 : }
10845 4 : ndr->depth--;
10846 4 : ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10847 4 : ndr->depth++;
10848 4 : if (r->monitor_name) {
10849 0 : ndr_print_string(ndr, "monitor_name", r->monitor_name);
10850 : }
10851 4 : ndr->depth--;
10852 4 : ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10853 4 : ndr->depth++;
10854 4 : if (r->default_datatype) {
10855 0 : ndr_print_string(ndr, "default_datatype", r->default_datatype);
10856 : }
10857 4 : ndr->depth--;
10858 4 : ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
10859 4 : ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10860 4 : ndr->depth++;
10861 4 : if (r->dependent_files) {
10862 4 : ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
10863 : }
10864 4 : ndr->depth--;
10865 4 : ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
10866 4 : ndr_print_ptr(ndr, "previous_names", r->previous_names);
10867 4 : ndr->depth++;
10868 4 : if (r->previous_names) {
10869 4 : ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
10870 : }
10871 4 : ndr->depth--;
10872 4 : ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10873 4 : ndr_print_hyper(ndr, "driver_version", r->driver_version);
10874 4 : ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10875 4 : ndr->depth++;
10876 4 : if (r->manufacturer_name) {
10877 4 : ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10878 : }
10879 4 : ndr->depth--;
10880 4 : ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10881 4 : ndr->depth++;
10882 4 : if (r->manufacturer_url) {
10883 4 : ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10884 : }
10885 4 : ndr->depth--;
10886 4 : ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10887 4 : ndr->depth++;
10888 4 : if (r->hardware_id) {
10889 4 : ndr_print_string(ndr, "hardware_id", r->hardware_id);
10890 : }
10891 4 : ndr->depth--;
10892 4 : ndr_print_ptr(ndr, "provider", r->provider);
10893 4 : ndr->depth++;
10894 4 : if (r->provider) {
10895 4 : ndr_print_string(ndr, "provider", r->provider);
10896 : }
10897 4 : ndr->depth--;
10898 4 : ndr->depth--;
10899 : }
10900 :
10901 0 : static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddDriverInfo8 *r)
10902 : {
10903 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10904 0 : if (ndr_flags & NDR_SCALARS) {
10905 0 : NDR_CHECK(ndr_push_align(ndr, 8));
10906 0 : NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10907 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
10908 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
10909 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
10910 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
10911 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
10912 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
10913 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
10914 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
10915 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2)));
10916 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
10917 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2)));
10918 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
10919 0 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
10920 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
10921 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
10922 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
10923 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
10924 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
10925 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
10926 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
10927 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->flags) - 4) / 2)));
10928 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
10929 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
10930 0 : NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->printer_driver_attributes));
10931 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->flags) - 4) / 2)));
10932 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
10933 0 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
10934 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
10935 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
10936 : }
10937 0 : if (ndr_flags & NDR_BUFFERS) {
10938 0 : if (r->driver_name) {
10939 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
10940 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10941 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
10942 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10943 : }
10944 0 : if (r->architecture) {
10945 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
10946 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10947 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
10948 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10949 : }
10950 0 : if (r->driver_path) {
10951 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
10952 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10953 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
10954 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10955 : }
10956 0 : if (r->data_file) {
10957 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
10958 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10959 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
10960 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10961 : }
10962 0 : if (r->config_file) {
10963 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
10964 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10965 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
10966 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10967 : }
10968 0 : if (r->help_file) {
10969 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
10970 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10971 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
10972 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10973 : }
10974 0 : if (r->monitor_name) {
10975 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
10976 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10977 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
10978 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10979 : }
10980 0 : if (r->default_datatype) {
10981 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
10982 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10983 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
10984 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10985 : }
10986 0 : if (r->dependent_files) {
10987 0 : NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10988 : }
10989 0 : if (r->previous_names) {
10990 0 : NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10991 : }
10992 0 : if (r->manufacturer_name) {
10993 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
10994 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10995 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
10996 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10997 : }
10998 0 : if (r->manufacturer_url) {
10999 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
11000 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11001 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
11002 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11003 : }
11004 0 : if (r->hardware_id) {
11005 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
11006 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11007 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
11008 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11009 : }
11010 0 : if (r->provider) {
11011 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
11012 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11013 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
11014 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11015 : }
11016 0 : if (r->print_processor) {
11017 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
11018 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11019 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
11020 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11021 : }
11022 0 : if (r->vendor_setup) {
11023 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
11024 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11025 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
11026 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11027 : }
11028 0 : if (r->color_profiles) {
11029 0 : NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
11030 : }
11031 0 : if (r->inf_path) {
11032 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
11033 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
11034 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
11035 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11036 : }
11037 0 : if (r->core_driver_dependencies) {
11038 0 : NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
11039 : }
11040 : }
11041 0 : return NDR_ERR_SUCCESS;
11042 : }
11043 :
11044 0 : static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddDriverInfo8 *r)
11045 : {
11046 0 : uint32_t _ptr_driver_name;
11047 0 : uint32_t size_driver_name_1 = 0;
11048 0 : uint32_t length_driver_name_1 = 0;
11049 0 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
11050 0 : uint32_t _ptr_architecture;
11051 0 : uint32_t size_architecture_1 = 0;
11052 0 : uint32_t length_architecture_1 = 0;
11053 0 : TALLOC_CTX *_mem_save_architecture_0 = NULL;
11054 0 : uint32_t _ptr_driver_path;
11055 0 : uint32_t size_driver_path_1 = 0;
11056 0 : uint32_t length_driver_path_1 = 0;
11057 0 : TALLOC_CTX *_mem_save_driver_path_0 = NULL;
11058 0 : uint32_t _ptr_data_file;
11059 0 : uint32_t size_data_file_1 = 0;
11060 0 : uint32_t length_data_file_1 = 0;
11061 0 : TALLOC_CTX *_mem_save_data_file_0 = NULL;
11062 0 : uint32_t _ptr_config_file;
11063 0 : uint32_t size_config_file_1 = 0;
11064 0 : uint32_t length_config_file_1 = 0;
11065 0 : TALLOC_CTX *_mem_save_config_file_0 = NULL;
11066 0 : uint32_t _ptr_help_file;
11067 0 : uint32_t size_help_file_1 = 0;
11068 0 : uint32_t length_help_file_1 = 0;
11069 0 : TALLOC_CTX *_mem_save_help_file_0 = NULL;
11070 0 : uint32_t _ptr_monitor_name;
11071 0 : uint32_t size_monitor_name_1 = 0;
11072 0 : uint32_t length_monitor_name_1 = 0;
11073 0 : TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
11074 0 : uint32_t _ptr_default_datatype;
11075 0 : uint32_t size_default_datatype_1 = 0;
11076 0 : uint32_t length_default_datatype_1 = 0;
11077 0 : TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
11078 0 : uint32_t _ptr_dependent_files;
11079 0 : TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
11080 0 : uint32_t _ptr_previous_names;
11081 0 : TALLOC_CTX *_mem_save_previous_names_0 = NULL;
11082 0 : uint32_t _ptr_manufacturer_name;
11083 0 : uint32_t size_manufacturer_name_1 = 0;
11084 0 : uint32_t length_manufacturer_name_1 = 0;
11085 0 : TALLOC_CTX *_mem_save_manufacturer_name_0 = NULL;
11086 0 : uint32_t _ptr_manufacturer_url;
11087 0 : uint32_t size_manufacturer_url_1 = 0;
11088 0 : uint32_t length_manufacturer_url_1 = 0;
11089 0 : TALLOC_CTX *_mem_save_manufacturer_url_0 = NULL;
11090 0 : uint32_t _ptr_hardware_id;
11091 0 : uint32_t size_hardware_id_1 = 0;
11092 0 : uint32_t length_hardware_id_1 = 0;
11093 0 : TALLOC_CTX *_mem_save_hardware_id_0 = NULL;
11094 0 : uint32_t _ptr_provider;
11095 0 : uint32_t size_provider_1 = 0;
11096 0 : uint32_t length_provider_1 = 0;
11097 0 : TALLOC_CTX *_mem_save_provider_0 = NULL;
11098 0 : uint32_t _ptr_print_processor;
11099 0 : uint32_t size_print_processor_1 = 0;
11100 0 : uint32_t length_print_processor_1 = 0;
11101 0 : TALLOC_CTX *_mem_save_print_processor_0 = NULL;
11102 0 : uint32_t _ptr_vendor_setup;
11103 0 : uint32_t size_vendor_setup_1 = 0;
11104 0 : uint32_t length_vendor_setup_1 = 0;
11105 0 : TALLOC_CTX *_mem_save_vendor_setup_0 = NULL;
11106 0 : uint32_t _ptr_color_profiles;
11107 0 : TALLOC_CTX *_mem_save_color_profiles_0 = NULL;
11108 0 : uint32_t _ptr_inf_path;
11109 0 : uint32_t size_inf_path_1 = 0;
11110 0 : uint32_t length_inf_path_1 = 0;
11111 0 : TALLOC_CTX *_mem_save_inf_path_0 = NULL;
11112 0 : uint32_t _ptr_core_driver_dependencies;
11113 0 : TALLOC_CTX *_mem_save_core_driver_dependencies_0 = NULL;
11114 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11115 0 : if (ndr_flags & NDR_SCALARS) {
11116 0 : NDR_CHECK(ndr_pull_align(ndr, 8));
11117 0 : NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11118 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11119 0 : if (_ptr_driver_name) {
11120 0 : NDR_PULL_ALLOC(ndr, r->driver_name);
11121 : } else {
11122 0 : r->driver_name = NULL;
11123 : }
11124 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11125 0 : if (_ptr_architecture) {
11126 0 : NDR_PULL_ALLOC(ndr, r->architecture);
11127 : } else {
11128 0 : r->architecture = NULL;
11129 : }
11130 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11131 0 : if (_ptr_driver_path) {
11132 0 : NDR_PULL_ALLOC(ndr, r->driver_path);
11133 : } else {
11134 0 : r->driver_path = NULL;
11135 : }
11136 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11137 0 : if (_ptr_data_file) {
11138 0 : NDR_PULL_ALLOC(ndr, r->data_file);
11139 : } else {
11140 0 : r->data_file = NULL;
11141 : }
11142 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11143 0 : if (_ptr_config_file) {
11144 0 : NDR_PULL_ALLOC(ndr, r->config_file);
11145 : } else {
11146 0 : r->config_file = NULL;
11147 : }
11148 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11149 0 : if (_ptr_help_file) {
11150 0 : NDR_PULL_ALLOC(ndr, r->help_file);
11151 : } else {
11152 0 : r->help_file = NULL;
11153 : }
11154 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11155 0 : if (_ptr_monitor_name) {
11156 0 : NDR_PULL_ALLOC(ndr, r->monitor_name);
11157 : } else {
11158 0 : r->monitor_name = NULL;
11159 : }
11160 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11161 0 : if (_ptr_default_datatype) {
11162 0 : NDR_PULL_ALLOC(ndr, r->default_datatype);
11163 : } else {
11164 0 : r->default_datatype = NULL;
11165 : }
11166 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
11167 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11168 0 : if (_ptr_dependent_files) {
11169 0 : NDR_PULL_ALLOC(ndr, r->dependent_files);
11170 : } else {
11171 0 : r->dependent_files = NULL;
11172 : }
11173 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
11174 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11175 0 : if (_ptr_previous_names) {
11176 0 : NDR_PULL_ALLOC(ndr, r->previous_names);
11177 : } else {
11178 0 : r->previous_names = NULL;
11179 : }
11180 0 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
11181 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
11182 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
11183 0 : if (_ptr_manufacturer_name) {
11184 0 : NDR_PULL_ALLOC(ndr, r->manufacturer_name);
11185 : } else {
11186 0 : r->manufacturer_name = NULL;
11187 : }
11188 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
11189 0 : if (_ptr_manufacturer_url) {
11190 0 : NDR_PULL_ALLOC(ndr, r->manufacturer_url);
11191 : } else {
11192 0 : r->manufacturer_url = NULL;
11193 : }
11194 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
11195 0 : if (_ptr_hardware_id) {
11196 0 : NDR_PULL_ALLOC(ndr, r->hardware_id);
11197 : } else {
11198 0 : r->hardware_id = NULL;
11199 : }
11200 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
11201 0 : if (_ptr_provider) {
11202 0 : NDR_PULL_ALLOC(ndr, r->provider);
11203 : } else {
11204 0 : r->provider = NULL;
11205 : }
11206 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
11207 0 : if (_ptr_print_processor) {
11208 0 : NDR_PULL_ALLOC(ndr, r->print_processor);
11209 : } else {
11210 0 : r->print_processor = NULL;
11211 : }
11212 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
11213 0 : if (_ptr_vendor_setup) {
11214 0 : NDR_PULL_ALLOC(ndr, r->vendor_setup);
11215 : } else {
11216 0 : r->vendor_setup = NULL;
11217 : }
11218 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
11219 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
11220 0 : if (_ptr_color_profiles) {
11221 0 : NDR_PULL_ALLOC(ndr, r->color_profiles);
11222 : } else {
11223 0 : r->color_profiles = NULL;
11224 : }
11225 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
11226 0 : if (_ptr_inf_path) {
11227 0 : NDR_PULL_ALLOC(ndr, r->inf_path);
11228 : } else {
11229 0 : r->inf_path = NULL;
11230 : }
11231 0 : NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->printer_driver_attributes));
11232 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
11233 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
11234 0 : if (_ptr_core_driver_dependencies) {
11235 0 : NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
11236 : } else {
11237 0 : r->core_driver_dependencies = NULL;
11238 : }
11239 0 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
11240 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
11241 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
11242 : }
11243 0 : if (ndr_flags & NDR_BUFFERS) {
11244 0 : if (r->driver_name) {
11245 0 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11246 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11247 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
11248 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
11249 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_name, &size_driver_name_1));
11250 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_name, &length_driver_name_1));
11251 0 : if (length_driver_name_1 > size_driver_name_1) {
11252 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_name_1, length_driver_name_1);
11253 : }
11254 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
11255 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
11256 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11257 : }
11258 0 : if (r->architecture) {
11259 0 : _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11260 0 : NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11261 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
11262 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
11263 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->architecture, &size_architecture_1));
11264 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->architecture, &length_architecture_1));
11265 0 : if (length_architecture_1 > size_architecture_1) {
11266 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
11267 : }
11268 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
11269 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
11270 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11271 : }
11272 0 : if (r->driver_path) {
11273 0 : _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11274 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11275 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
11276 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
11277 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->driver_path, &size_driver_path_1));
11278 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->driver_path, &length_driver_path_1));
11279 0 : if (length_driver_path_1 > size_driver_path_1) {
11280 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_path_1, length_driver_path_1);
11281 : }
11282 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
11283 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
11284 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11285 : }
11286 0 : if (r->data_file) {
11287 0 : _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11288 0 : NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11289 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
11290 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
11291 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->data_file, &size_data_file_1));
11292 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->data_file, &length_data_file_1));
11293 0 : if (length_data_file_1 > size_data_file_1) {
11294 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_file_1, length_data_file_1);
11295 : }
11296 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
11297 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
11298 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11299 : }
11300 0 : if (r->config_file) {
11301 0 : _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11302 0 : NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11303 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
11304 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
11305 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->config_file, &size_config_file_1));
11306 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->config_file, &length_config_file_1));
11307 0 : if (length_config_file_1 > size_config_file_1) {
11308 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_config_file_1, length_config_file_1);
11309 : }
11310 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
11311 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
11312 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11313 : }
11314 0 : if (r->help_file) {
11315 0 : _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11316 0 : NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11317 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
11318 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
11319 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->help_file, &size_help_file_1));
11320 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->help_file, &length_help_file_1));
11321 0 : if (length_help_file_1 > size_help_file_1) {
11322 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_help_file_1, length_help_file_1);
11323 : }
11324 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
11325 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
11326 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11327 : }
11328 0 : if (r->monitor_name) {
11329 0 : _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11330 0 : NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11331 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
11332 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
11333 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->monitor_name, &size_monitor_name_1));
11334 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->monitor_name, &length_monitor_name_1));
11335 0 : if (length_monitor_name_1 > size_monitor_name_1) {
11336 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_monitor_name_1, length_monitor_name_1);
11337 : }
11338 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
11339 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
11340 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11341 : }
11342 0 : if (r->default_datatype) {
11343 0 : _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11344 0 : NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11345 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
11346 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
11347 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->default_datatype, &size_default_datatype_1));
11348 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->default_datatype, &length_default_datatype_1));
11349 0 : if (length_default_datatype_1 > size_default_datatype_1) {
11350 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_default_datatype_1, length_default_datatype_1);
11351 : }
11352 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
11353 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
11354 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11355 : }
11356 0 : if (r->dependent_files) {
11357 0 : _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11358 0 : NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11359 0 : NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
11360 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11361 : }
11362 0 : if (r->previous_names) {
11363 0 : _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11364 0 : NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11365 0 : NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
11366 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11367 : }
11368 0 : if (r->manufacturer_name) {
11369 0 : _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11370 0 : NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
11371 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
11372 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
11373 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->manufacturer_name, &size_manufacturer_name_1));
11374 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->manufacturer_name, &length_manufacturer_name_1));
11375 0 : if (length_manufacturer_name_1 > size_manufacturer_name_1) {
11376 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_manufacturer_name_1, length_manufacturer_name_1);
11377 : }
11378 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_name_1, sizeof(uint16_t)));
11379 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, length_manufacturer_name_1, sizeof(uint16_t), CH_UTF16));
11380 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
11381 : }
11382 0 : if (r->manufacturer_url) {
11383 0 : _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
11384 0 : NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
11385 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
11386 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
11387 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->manufacturer_url, &size_manufacturer_url_1));
11388 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->manufacturer_url, &length_manufacturer_url_1));
11389 0 : if (length_manufacturer_url_1 > size_manufacturer_url_1) {
11390 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_manufacturer_url_1, length_manufacturer_url_1);
11391 : }
11392 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_url_1, sizeof(uint16_t)));
11393 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, length_manufacturer_url_1, sizeof(uint16_t), CH_UTF16));
11394 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
11395 : }
11396 0 : if (r->hardware_id) {
11397 0 : _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
11398 0 : NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
11399 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
11400 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
11401 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->hardware_id, &size_hardware_id_1));
11402 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->hardware_id, &length_hardware_id_1));
11403 0 : if (length_hardware_id_1 > size_hardware_id_1) {
11404 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_hardware_id_1, length_hardware_id_1);
11405 : }
11406 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_hardware_id_1, sizeof(uint16_t)));
11407 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, length_hardware_id_1, sizeof(uint16_t), CH_UTF16));
11408 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
11409 : }
11410 0 : if (r->provider) {
11411 0 : _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
11412 0 : NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
11413 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
11414 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
11415 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->provider, &size_provider_1));
11416 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->provider, &length_provider_1));
11417 0 : if (length_provider_1 > size_provider_1) {
11418 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_provider_1, length_provider_1);
11419 : }
11420 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_provider_1, sizeof(uint16_t)));
11421 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, length_provider_1, sizeof(uint16_t), CH_UTF16));
11422 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
11423 : }
11424 0 : if (r->print_processor) {
11425 0 : _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
11426 0 : NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
11427 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
11428 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
11429 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->print_processor, &size_print_processor_1));
11430 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->print_processor, &length_print_processor_1));
11431 0 : if (length_print_processor_1 > size_print_processor_1) {
11432 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_print_processor_1, length_print_processor_1);
11433 : }
11434 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_1, sizeof(uint16_t)));
11435 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, length_print_processor_1, sizeof(uint16_t), CH_UTF16));
11436 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
11437 : }
11438 0 : if (r->vendor_setup) {
11439 0 : _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
11440 0 : NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
11441 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
11442 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
11443 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->vendor_setup, &size_vendor_setup_1));
11444 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->vendor_setup, &length_vendor_setup_1));
11445 0 : if (length_vendor_setup_1 > size_vendor_setup_1) {
11446 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_vendor_setup_1, length_vendor_setup_1);
11447 : }
11448 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_vendor_setup_1, sizeof(uint16_t)));
11449 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, length_vendor_setup_1, sizeof(uint16_t), CH_UTF16));
11450 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
11451 : }
11452 0 : if (r->color_profiles) {
11453 0 : _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
11454 0 : NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
11455 0 : NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
11456 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
11457 : }
11458 0 : if (r->inf_path) {
11459 0 : _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11460 0 : NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
11461 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
11462 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
11463 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->inf_path, &size_inf_path_1));
11464 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->inf_path, &length_inf_path_1));
11465 0 : if (length_inf_path_1 > size_inf_path_1) {
11466 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_inf_path_1, length_inf_path_1);
11467 : }
11468 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_inf_path_1, sizeof(uint16_t)));
11469 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, length_inf_path_1, sizeof(uint16_t), CH_UTF16));
11470 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
11471 : }
11472 0 : if (r->core_driver_dependencies) {
11473 0 : _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
11474 0 : NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
11475 0 : NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
11476 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
11477 : }
11478 : }
11479 0 : return NDR_ERR_SUCCESS;
11480 : }
11481 :
11482 0 : _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
11483 : {
11484 0 : ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
11485 0 : if (r == NULL) { ndr_print_null(ndr); return; }
11486 0 : ndr->depth++;
11487 0 : ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11488 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
11489 0 : ndr->depth++;
11490 0 : if (r->driver_name) {
11491 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
11492 : }
11493 0 : ndr->depth--;
11494 0 : ndr_print_ptr(ndr, "architecture", r->architecture);
11495 0 : ndr->depth++;
11496 0 : if (r->architecture) {
11497 0 : ndr_print_string(ndr, "architecture", r->architecture);
11498 : }
11499 0 : ndr->depth--;
11500 0 : ndr_print_ptr(ndr, "driver_path", r->driver_path);
11501 0 : ndr->depth++;
11502 0 : if (r->driver_path) {
11503 0 : ndr_print_string(ndr, "driver_path", r->driver_path);
11504 : }
11505 0 : ndr->depth--;
11506 0 : ndr_print_ptr(ndr, "data_file", r->data_file);
11507 0 : ndr->depth++;
11508 0 : if (r->data_file) {
11509 0 : ndr_print_string(ndr, "data_file", r->data_file);
11510 : }
11511 0 : ndr->depth--;
11512 0 : ndr_print_ptr(ndr, "config_file", r->config_file);
11513 0 : ndr->depth++;
11514 0 : if (r->config_file) {
11515 0 : ndr_print_string(ndr, "config_file", r->config_file);
11516 : }
11517 0 : ndr->depth--;
11518 0 : ndr_print_ptr(ndr, "help_file", r->help_file);
11519 0 : ndr->depth++;
11520 0 : if (r->help_file) {
11521 0 : ndr_print_string(ndr, "help_file", r->help_file);
11522 : }
11523 0 : ndr->depth--;
11524 0 : ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11525 0 : ndr->depth++;
11526 0 : if (r->monitor_name) {
11527 0 : ndr_print_string(ndr, "monitor_name", r->monitor_name);
11528 : }
11529 0 : ndr->depth--;
11530 0 : ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11531 0 : ndr->depth++;
11532 0 : if (r->default_datatype) {
11533 0 : ndr_print_string(ndr, "default_datatype", r->default_datatype);
11534 : }
11535 0 : ndr->depth--;
11536 0 : ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
11537 0 : ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11538 0 : ndr->depth++;
11539 0 : if (r->dependent_files) {
11540 0 : ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
11541 : }
11542 0 : ndr->depth--;
11543 0 : ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
11544 0 : ndr_print_ptr(ndr, "previous_names", r->previous_names);
11545 0 : ndr->depth++;
11546 0 : if (r->previous_names) {
11547 0 : ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
11548 : }
11549 0 : ndr->depth--;
11550 0 : ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
11551 0 : ndr_print_hyper(ndr, "driver_version", r->driver_version);
11552 0 : ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
11553 0 : ndr->depth++;
11554 0 : if (r->manufacturer_name) {
11555 0 : ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
11556 : }
11557 0 : ndr->depth--;
11558 0 : ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
11559 0 : ndr->depth++;
11560 0 : if (r->manufacturer_url) {
11561 0 : ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
11562 : }
11563 0 : ndr->depth--;
11564 0 : ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
11565 0 : ndr->depth++;
11566 0 : if (r->hardware_id) {
11567 0 : ndr_print_string(ndr, "hardware_id", r->hardware_id);
11568 : }
11569 0 : ndr->depth--;
11570 0 : ndr_print_ptr(ndr, "provider", r->provider);
11571 0 : ndr->depth++;
11572 0 : if (r->provider) {
11573 0 : ndr_print_string(ndr, "provider", r->provider);
11574 : }
11575 0 : ndr->depth--;
11576 0 : ndr_print_ptr(ndr, "print_processor", r->print_processor);
11577 0 : ndr->depth++;
11578 0 : if (r->print_processor) {
11579 0 : ndr_print_string(ndr, "print_processor", r->print_processor);
11580 : }
11581 0 : ndr->depth--;
11582 0 : ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
11583 0 : ndr->depth++;
11584 0 : if (r->vendor_setup) {
11585 0 : ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
11586 : }
11587 0 : ndr->depth--;
11588 0 : ndr_print_uint32(ndr, "_ndr_size_color_profiles", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->color_profiles, ndr->flags) - 4) / 2):r->_ndr_size_color_profiles);
11589 0 : ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
11590 0 : ndr->depth++;
11591 0 : if (r->color_profiles) {
11592 0 : ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
11593 : }
11594 0 : ndr->depth--;
11595 0 : ndr_print_ptr(ndr, "inf_path", r->inf_path);
11596 0 : ndr->depth++;
11597 0 : if (r->inf_path) {
11598 0 : ndr_print_string(ndr, "inf_path", r->inf_path);
11599 : }
11600 0 : ndr->depth--;
11601 0 : ndr_print_spoolss_DriverAttributes(ndr, "printer_driver_attributes", r->printer_driver_attributes);
11602 0 : ndr_print_uint32(ndr, "_ndr_size_core_driver_dependencies", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->flags) - 4) / 2):r->_ndr_size_core_driver_dependencies);
11603 0 : ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
11604 0 : ndr->depth++;
11605 0 : if (r->core_driver_dependencies) {
11606 0 : ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
11607 : }
11608 0 : ndr->depth--;
11609 0 : ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
11610 0 : ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
11611 0 : ndr->depth--;
11612 : }
11613 :
11614 0 : static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_AddDriverInfo *r)
11615 : {
11616 0 : uint32_t level;
11617 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
11618 0 : if (ndr_flags & NDR_SCALARS) {
11619 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
11620 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
11621 0 : NDR_CHECK(ndr_push_union_align(ndr, 5));
11622 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
11623 : /* ms_union is always aligned to the largest union arm*/
11624 0 : NDR_CHECK(ndr_push_align(ndr, 5));
11625 0 : switch (level) {
11626 0 : case 1: {
11627 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
11628 0 : break; }
11629 :
11630 0 : case 2: {
11631 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
11632 0 : break; }
11633 :
11634 0 : case 3: {
11635 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
11636 0 : break; }
11637 :
11638 0 : case 4: {
11639 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
11640 0 : break; }
11641 :
11642 0 : case 6: {
11643 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
11644 0 : break; }
11645 :
11646 0 : case 8: {
11647 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
11648 0 : break; }
11649 :
11650 0 : default:
11651 0 : return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
11652 : }
11653 : }
11654 0 : if (ndr_flags & NDR_BUFFERS) {
11655 0 : if (!(ndr_flags & NDR_SCALARS)) {
11656 : /* We didn't get it above, and the token is not needed after this. */
11657 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
11658 : }
11659 0 : switch (level) {
11660 0 : case 1:
11661 0 : if (r->info1) {
11662 0 : NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11663 : }
11664 0 : break;
11665 :
11666 0 : case 2:
11667 0 : if (r->info2) {
11668 0 : NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
11669 : }
11670 0 : break;
11671 :
11672 0 : case 3:
11673 0 : if (r->info3) {
11674 0 : NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
11675 : }
11676 0 : break;
11677 :
11678 0 : case 4:
11679 0 : if (r->info4) {
11680 0 : NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
11681 : }
11682 0 : break;
11683 :
11684 0 : case 6:
11685 0 : if (r->info6) {
11686 0 : NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
11687 : }
11688 0 : break;
11689 :
11690 0 : case 8:
11691 0 : if (r->info8) {
11692 0 : NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
11693 : }
11694 0 : break;
11695 :
11696 0 : default:
11697 0 : return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
11698 : }
11699 : }
11700 0 : return NDR_ERR_SUCCESS;
11701 : }
11702 :
11703 8 : static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_AddDriverInfo *r)
11704 : {
11705 8 : uint32_t level;
11706 8 : uint32_t _level;
11707 8 : TALLOC_CTX *_mem_save_info1_0 = NULL;
11708 8 : uint32_t _ptr_info1;
11709 8 : TALLOC_CTX *_mem_save_info2_0 = NULL;
11710 8 : uint32_t _ptr_info2;
11711 8 : TALLOC_CTX *_mem_save_info3_0 = NULL;
11712 8 : uint32_t _ptr_info3;
11713 8 : TALLOC_CTX *_mem_save_info4_0 = NULL;
11714 8 : uint32_t _ptr_info4;
11715 8 : TALLOC_CTX *_mem_save_info6_0 = NULL;
11716 8 : uint32_t _ptr_info6;
11717 8 : TALLOC_CTX *_mem_save_info8_0 = NULL;
11718 8 : uint32_t _ptr_info8;
11719 8 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11720 8 : if (ndr_flags & NDR_SCALARS) {
11721 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
11722 4 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
11723 4 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
11724 4 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
11725 4 : if (_level != level) {
11726 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
11727 : }
11728 : /* ms_union is always aligned to the largest union arm*/
11729 4 : NDR_CHECK(ndr_pull_align(ndr, 5));
11730 4 : switch (level) {
11731 0 : case 1: {
11732 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
11733 0 : if (_ptr_info1) {
11734 0 : NDR_PULL_ALLOC(ndr, r->info1);
11735 : } else {
11736 0 : r->info1 = NULL;
11737 : }
11738 0 : break; }
11739 :
11740 0 : case 2: {
11741 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
11742 0 : if (_ptr_info2) {
11743 0 : NDR_PULL_ALLOC(ndr, r->info2);
11744 : } else {
11745 0 : r->info2 = NULL;
11746 : }
11747 0 : break; }
11748 :
11749 0 : case 3: {
11750 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
11751 0 : if (_ptr_info3) {
11752 0 : NDR_PULL_ALLOC(ndr, r->info3);
11753 : } else {
11754 0 : r->info3 = NULL;
11755 : }
11756 0 : break; }
11757 :
11758 0 : case 4: {
11759 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
11760 0 : if (_ptr_info4) {
11761 0 : NDR_PULL_ALLOC(ndr, r->info4);
11762 : } else {
11763 0 : r->info4 = NULL;
11764 : }
11765 0 : break; }
11766 :
11767 4 : case 6: {
11768 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
11769 4 : if (_ptr_info6) {
11770 4 : NDR_PULL_ALLOC(ndr, r->info6);
11771 : } else {
11772 0 : r->info6 = NULL;
11773 : }
11774 0 : break; }
11775 :
11776 0 : case 8: {
11777 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
11778 0 : if (_ptr_info8) {
11779 0 : NDR_PULL_ALLOC(ndr, r->info8);
11780 : } else {
11781 0 : r->info8 = NULL;
11782 : }
11783 0 : break; }
11784 :
11785 0 : default:
11786 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
11787 : }
11788 : }
11789 8 : if (ndr_flags & NDR_BUFFERS) {
11790 4 : if (!(ndr_flags & NDR_SCALARS)) {
11791 : /* We didn't get it above, and the token is not needed after this. */
11792 4 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
11793 : }
11794 4 : switch (level) {
11795 0 : case 1:
11796 0 : if (r->info1) {
11797 0 : _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
11798 0 : NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
11799 0 : NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11800 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
11801 : }
11802 0 : break;
11803 :
11804 0 : case 2:
11805 0 : if (r->info2) {
11806 0 : _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
11807 0 : NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
11808 0 : NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
11809 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
11810 : }
11811 0 : break;
11812 :
11813 0 : case 3:
11814 0 : if (r->info3) {
11815 0 : _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
11816 0 : NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
11817 0 : NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
11818 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
11819 : }
11820 0 : break;
11821 :
11822 0 : case 4:
11823 0 : if (r->info4) {
11824 0 : _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
11825 0 : NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
11826 0 : NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
11827 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
11828 : }
11829 0 : break;
11830 :
11831 4 : case 6:
11832 4 : if (r->info6) {
11833 4 : _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
11834 4 : NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
11835 4 : NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
11836 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
11837 : }
11838 0 : break;
11839 :
11840 0 : case 8:
11841 0 : if (r->info8) {
11842 0 : _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
11843 0 : NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
11844 0 : NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
11845 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
11846 : }
11847 0 : break;
11848 :
11849 0 : default:
11850 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
11851 : }
11852 : }
11853 0 : return NDR_ERR_SUCCESS;
11854 : }
11855 :
11856 4 : _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
11857 : {
11858 4 : uint32_t level;
11859 4 : level = ndr_print_steal_switch_value(ndr, r);
11860 4 : ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
11861 4 : switch (level) {
11862 0 : case 1:
11863 0 : ndr_print_ptr(ndr, "info1", r->info1);
11864 0 : ndr->depth++;
11865 0 : if (r->info1) {
11866 0 : ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
11867 : }
11868 0 : ndr->depth--;
11869 0 : break;
11870 :
11871 0 : case 2:
11872 0 : ndr_print_ptr(ndr, "info2", r->info2);
11873 0 : ndr->depth++;
11874 0 : if (r->info2) {
11875 0 : ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
11876 : }
11877 0 : ndr->depth--;
11878 0 : break;
11879 :
11880 0 : case 3:
11881 0 : ndr_print_ptr(ndr, "info3", r->info3);
11882 0 : ndr->depth++;
11883 0 : if (r->info3) {
11884 0 : ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
11885 : }
11886 0 : ndr->depth--;
11887 0 : break;
11888 :
11889 0 : case 4:
11890 0 : ndr_print_ptr(ndr, "info4", r->info4);
11891 0 : ndr->depth++;
11892 0 : if (r->info4) {
11893 0 : ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
11894 : }
11895 0 : ndr->depth--;
11896 0 : break;
11897 :
11898 4 : case 6:
11899 4 : ndr_print_ptr(ndr, "info6", r->info6);
11900 4 : ndr->depth++;
11901 4 : if (r->info6) {
11902 4 : ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
11903 : }
11904 4 : ndr->depth--;
11905 4 : break;
11906 :
11907 0 : case 8:
11908 0 : ndr_print_ptr(ndr, "info8", r->info8);
11909 0 : ndr->depth++;
11910 0 : if (r->info8) {
11911 0 : ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
11912 : }
11913 0 : ndr->depth--;
11914 0 : break;
11915 :
11916 0 : default:
11917 0 : ndr_print_bad_level(ndr, name, level);
11918 : }
11919 4 : }
11920 :
11921 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
11922 : {
11923 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
11924 0 : if (ndr_flags & NDR_SCALARS) {
11925 0 : NDR_CHECK(ndr_push_align(ndr, 5));
11926 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
11927 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
11928 0 : NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
11929 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11930 : }
11931 0 : if (ndr_flags & NDR_BUFFERS) {
11932 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
11933 0 : NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
11934 : }
11935 0 : return NDR_ERR_SUCCESS;
11936 : }
11937 :
11938 4 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddDriverInfoCtr *r)
11939 : {
11940 4 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11941 4 : if (ndr_flags & NDR_SCALARS) {
11942 4 : NDR_CHECK(ndr_pull_align(ndr, 5));
11943 4 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
11944 4 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
11945 4 : NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
11946 4 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11947 : }
11948 4 : if (ndr_flags & NDR_BUFFERS) {
11949 4 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
11950 4 : NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
11951 : }
11952 0 : return NDR_ERR_SUCCESS;
11953 : }
11954 :
11955 0 : static void ndr_print_flags_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_AddDriverInfoCtr *r)
11956 : {
11957 0 : ndr_print_spoolss_AddDriverInfoCtr(ndr, name, r);
11958 0 : }
11959 :
11960 4 : _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
11961 : {
11962 4 : ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
11963 4 : if (r == NULL) { ndr_print_null(ndr); return; }
11964 4 : ndr->depth++;
11965 4 : ndr_print_uint32(ndr, "level", r->level);
11966 4 : ndr_print_set_switch_value(ndr, &r->info, r->level);
11967 4 : ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
11968 4 : ndr->depth--;
11969 : }
11970 :
11971 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverInfo1 *r)
11972 : {
11973 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
11974 0 : if (ndr_flags & NDR_SCALARS) {
11975 0 : NDR_CHECK(ndr_push_align(ndr, 5));
11976 : {
11977 0 : libndr_flags _flags_save_string = ndr->flags;
11978 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11979 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11980 0 : ndr->flags = _flags_save_string;
11981 : }
11982 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11983 : }
11984 0 : if (ndr_flags & NDR_BUFFERS) {
11985 : {
11986 0 : libndr_flags _flags_save_string = ndr->flags;
11987 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11988 0 : if (r->driver_name) {
11989 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11990 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11991 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11992 : }
11993 0 : ndr->flags = _flags_save_string;
11994 : }
11995 : }
11996 0 : return NDR_ERR_SUCCESS;
11997 : }
11998 :
11999 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverInfo1 *r)
12000 : {
12001 0 : uint32_t _ptr_driver_name;
12002 0 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
12003 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
12004 0 : if (ndr_flags & NDR_SCALARS) {
12005 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
12006 : {
12007 0 : libndr_flags _flags_save_string = ndr->flags;
12008 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12009 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12010 0 : if (_ptr_driver_name) {
12011 0 : NDR_PULL_ALLOC(ndr, r->driver_name);
12012 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12013 : } else {
12014 0 : r->driver_name = NULL;
12015 : }
12016 0 : ndr->flags = _flags_save_string;
12017 : }
12018 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12019 : }
12020 0 : if (ndr_flags & NDR_BUFFERS) {
12021 : {
12022 0 : libndr_flags _flags_save_string = ndr->flags;
12023 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12024 0 : if (r->driver_name) {
12025 0 : uint32_t _relative_save_offset;
12026 0 : _relative_save_offset = ndr->offset;
12027 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12028 0 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12029 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12030 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12031 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12032 0 : if (ndr->offset > ndr->relative_highest_offset) {
12033 0 : ndr->relative_highest_offset = ndr->offset;
12034 : }
12035 0 : ndr->offset = _relative_save_offset;
12036 : }
12037 0 : ndr->flags = _flags_save_string;
12038 : }
12039 : }
12040 0 : return NDR_ERR_SUCCESS;
12041 : }
12042 :
12043 0 : static void ndr_print_flags_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo1 *r)
12044 : {
12045 0 : ndr_print_spoolss_DriverInfo1(ndr, name, r);
12046 0 : }
12047 :
12048 0 : _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
12049 : {
12050 0 : ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
12051 0 : if (r == NULL) { ndr_print_null(ndr); return; }
12052 0 : ndr->depth++;
12053 : {
12054 0 : libndr_flags _flags_save_string = ndr->flags;
12055 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12056 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
12057 0 : ndr->depth++;
12058 0 : if (r->driver_name) {
12059 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
12060 : }
12061 0 : ndr->depth--;
12062 0 : ndr->flags = _flags_save_string;
12063 : }
12064 0 : ndr->depth--;
12065 : }
12066 :
12067 0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, libndr_flags flags)
12068 : {
12069 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1);
12070 : }
12071 :
12072 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverInfo2 *r)
12073 : {
12074 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12075 0 : if (ndr_flags & NDR_SCALARS) {
12076 0 : NDR_CHECK(ndr_push_align(ndr, 5));
12077 0 : NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12078 : {
12079 0 : libndr_flags _flags_save_string = ndr->flags;
12080 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12081 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12082 0 : ndr->flags = _flags_save_string;
12083 : }
12084 : {
12085 0 : libndr_flags _flags_save_string = ndr->flags;
12086 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12087 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12088 0 : ndr->flags = _flags_save_string;
12089 : }
12090 : {
12091 0 : libndr_flags _flags_save_string = ndr->flags;
12092 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12093 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12094 0 : ndr->flags = _flags_save_string;
12095 : }
12096 : {
12097 0 : libndr_flags _flags_save_string = ndr->flags;
12098 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12099 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12100 0 : ndr->flags = _flags_save_string;
12101 : }
12102 : {
12103 0 : libndr_flags _flags_save_string = ndr->flags;
12104 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12105 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12106 0 : ndr->flags = _flags_save_string;
12107 : }
12108 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
12109 : }
12110 0 : if (ndr_flags & NDR_BUFFERS) {
12111 : {
12112 0 : libndr_flags _flags_save_string = ndr->flags;
12113 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12114 0 : if (r->driver_name) {
12115 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12116 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12117 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12118 : }
12119 0 : ndr->flags = _flags_save_string;
12120 : }
12121 : {
12122 0 : libndr_flags _flags_save_string = ndr->flags;
12123 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12124 0 : if (r->architecture) {
12125 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12126 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12127 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
12128 : }
12129 0 : ndr->flags = _flags_save_string;
12130 : }
12131 : {
12132 0 : libndr_flags _flags_save_string = ndr->flags;
12133 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12134 0 : if (r->driver_path) {
12135 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12136 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12137 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
12138 : }
12139 0 : ndr->flags = _flags_save_string;
12140 : }
12141 : {
12142 0 : libndr_flags _flags_save_string = ndr->flags;
12143 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12144 0 : if (r->data_file) {
12145 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12146 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12147 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
12148 : }
12149 0 : ndr->flags = _flags_save_string;
12150 : }
12151 : {
12152 0 : libndr_flags _flags_save_string = ndr->flags;
12153 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12154 0 : if (r->config_file) {
12155 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12156 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12157 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12158 : }
12159 0 : ndr->flags = _flags_save_string;
12160 : }
12161 : }
12162 0 : return NDR_ERR_SUCCESS;
12163 : }
12164 :
12165 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverInfo2 *r)
12166 : {
12167 0 : uint32_t _ptr_driver_name;
12168 0 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
12169 0 : uint32_t _ptr_architecture;
12170 0 : TALLOC_CTX *_mem_save_architecture_0 = NULL;
12171 0 : uint32_t _ptr_driver_path;
12172 0 : TALLOC_CTX *_mem_save_driver_path_0 = NULL;
12173 0 : uint32_t _ptr_data_file;
12174 0 : TALLOC_CTX *_mem_save_data_file_0 = NULL;
12175 0 : uint32_t _ptr_config_file;
12176 0 : TALLOC_CTX *_mem_save_config_file_0 = NULL;
12177 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
12178 0 : if (ndr_flags & NDR_SCALARS) {
12179 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
12180 0 : NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12181 : {
12182 0 : libndr_flags _flags_save_string = ndr->flags;
12183 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12184 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12185 0 : if (_ptr_driver_name) {
12186 0 : NDR_PULL_ALLOC(ndr, r->driver_name);
12187 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12188 : } else {
12189 0 : r->driver_name = NULL;
12190 : }
12191 0 : ndr->flags = _flags_save_string;
12192 : }
12193 : {
12194 0 : libndr_flags _flags_save_string = ndr->flags;
12195 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12196 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12197 0 : if (_ptr_architecture) {
12198 0 : NDR_PULL_ALLOC(ndr, r->architecture);
12199 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12200 : } else {
12201 0 : r->architecture = NULL;
12202 : }
12203 0 : ndr->flags = _flags_save_string;
12204 : }
12205 : {
12206 0 : libndr_flags _flags_save_string = ndr->flags;
12207 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12208 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12209 0 : if (_ptr_driver_path) {
12210 0 : NDR_PULL_ALLOC(ndr, r->driver_path);
12211 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12212 : } else {
12213 0 : r->driver_path = NULL;
12214 : }
12215 0 : ndr->flags = _flags_save_string;
12216 : }
12217 : {
12218 0 : libndr_flags _flags_save_string = ndr->flags;
12219 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12220 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12221 0 : if (_ptr_data_file) {
12222 0 : NDR_PULL_ALLOC(ndr, r->data_file);
12223 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12224 : } else {
12225 0 : r->data_file = NULL;
12226 : }
12227 0 : ndr->flags = _flags_save_string;
12228 : }
12229 : {
12230 0 : libndr_flags _flags_save_string = ndr->flags;
12231 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12232 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12233 0 : if (_ptr_config_file) {
12234 0 : NDR_PULL_ALLOC(ndr, r->config_file);
12235 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12236 : } else {
12237 0 : r->config_file = NULL;
12238 : }
12239 0 : ndr->flags = _flags_save_string;
12240 : }
12241 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12242 : }
12243 0 : if (ndr_flags & NDR_BUFFERS) {
12244 : {
12245 0 : libndr_flags _flags_save_string = ndr->flags;
12246 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12247 0 : if (r->driver_name) {
12248 0 : uint32_t _relative_save_offset;
12249 0 : _relative_save_offset = ndr->offset;
12250 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12251 0 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12252 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12253 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12254 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12255 0 : if (ndr->offset > ndr->relative_highest_offset) {
12256 0 : ndr->relative_highest_offset = ndr->offset;
12257 : }
12258 0 : ndr->offset = _relative_save_offset;
12259 : }
12260 0 : ndr->flags = _flags_save_string;
12261 : }
12262 : {
12263 0 : libndr_flags _flags_save_string = ndr->flags;
12264 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12265 0 : if (r->architecture) {
12266 0 : uint32_t _relative_save_offset;
12267 0 : _relative_save_offset = ndr->offset;
12268 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12269 0 : _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12270 0 : NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12271 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12272 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12273 0 : if (ndr->offset > ndr->relative_highest_offset) {
12274 0 : ndr->relative_highest_offset = ndr->offset;
12275 : }
12276 0 : ndr->offset = _relative_save_offset;
12277 : }
12278 0 : ndr->flags = _flags_save_string;
12279 : }
12280 : {
12281 0 : libndr_flags _flags_save_string = ndr->flags;
12282 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12283 0 : if (r->driver_path) {
12284 0 : uint32_t _relative_save_offset;
12285 0 : _relative_save_offset = ndr->offset;
12286 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12287 0 : _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12288 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12289 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12290 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12291 0 : if (ndr->offset > ndr->relative_highest_offset) {
12292 0 : ndr->relative_highest_offset = ndr->offset;
12293 : }
12294 0 : ndr->offset = _relative_save_offset;
12295 : }
12296 0 : ndr->flags = _flags_save_string;
12297 : }
12298 : {
12299 0 : libndr_flags _flags_save_string = ndr->flags;
12300 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12301 0 : if (r->data_file) {
12302 0 : uint32_t _relative_save_offset;
12303 0 : _relative_save_offset = ndr->offset;
12304 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12305 0 : _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12306 0 : NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12307 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12308 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12309 0 : if (ndr->offset > ndr->relative_highest_offset) {
12310 0 : ndr->relative_highest_offset = ndr->offset;
12311 : }
12312 0 : ndr->offset = _relative_save_offset;
12313 : }
12314 0 : ndr->flags = _flags_save_string;
12315 : }
12316 : {
12317 0 : libndr_flags _flags_save_string = ndr->flags;
12318 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12319 0 : if (r->config_file) {
12320 0 : uint32_t _relative_save_offset;
12321 0 : _relative_save_offset = ndr->offset;
12322 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12323 0 : _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12324 0 : NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12325 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12326 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12327 0 : if (ndr->offset > ndr->relative_highest_offset) {
12328 0 : ndr->relative_highest_offset = ndr->offset;
12329 : }
12330 0 : ndr->offset = _relative_save_offset;
12331 : }
12332 0 : ndr->flags = _flags_save_string;
12333 : }
12334 : }
12335 0 : return NDR_ERR_SUCCESS;
12336 : }
12337 :
12338 0 : static void ndr_print_flags_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo2 *r)
12339 : {
12340 0 : ndr_print_spoolss_DriverInfo2(ndr, name, r);
12341 0 : }
12342 :
12343 0 : _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
12344 : {
12345 0 : ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
12346 0 : if (r == NULL) { ndr_print_null(ndr); return; }
12347 0 : ndr->depth++;
12348 0 : ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12349 : {
12350 0 : libndr_flags _flags_save_string = ndr->flags;
12351 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12352 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
12353 0 : ndr->depth++;
12354 0 : if (r->driver_name) {
12355 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
12356 : }
12357 0 : ndr->depth--;
12358 0 : ndr->flags = _flags_save_string;
12359 : }
12360 : {
12361 0 : libndr_flags _flags_save_string = ndr->flags;
12362 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12363 0 : ndr_print_ptr(ndr, "architecture", r->architecture);
12364 0 : ndr->depth++;
12365 0 : if (r->architecture) {
12366 0 : ndr_print_string(ndr, "architecture", r->architecture);
12367 : }
12368 0 : ndr->depth--;
12369 0 : ndr->flags = _flags_save_string;
12370 : }
12371 : {
12372 0 : libndr_flags _flags_save_string = ndr->flags;
12373 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12374 0 : ndr_print_ptr(ndr, "driver_path", r->driver_path);
12375 0 : ndr->depth++;
12376 0 : if (r->driver_path) {
12377 0 : ndr_print_string(ndr, "driver_path", r->driver_path);
12378 : }
12379 0 : ndr->depth--;
12380 0 : ndr->flags = _flags_save_string;
12381 : }
12382 : {
12383 0 : libndr_flags _flags_save_string = ndr->flags;
12384 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12385 0 : ndr_print_ptr(ndr, "data_file", r->data_file);
12386 0 : ndr->depth++;
12387 0 : if (r->data_file) {
12388 0 : ndr_print_string(ndr, "data_file", r->data_file);
12389 : }
12390 0 : ndr->depth--;
12391 0 : ndr->flags = _flags_save_string;
12392 : }
12393 : {
12394 0 : libndr_flags _flags_save_string = ndr->flags;
12395 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12396 0 : ndr_print_ptr(ndr, "config_file", r->config_file);
12397 0 : ndr->depth++;
12398 0 : if (r->config_file) {
12399 0 : ndr_print_string(ndr, "config_file", r->config_file);
12400 : }
12401 0 : ndr->depth--;
12402 0 : ndr->flags = _flags_save_string;
12403 : }
12404 0 : ndr->depth--;
12405 : }
12406 :
12407 0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, libndr_flags flags)
12408 : {
12409 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2);
12410 : }
12411 :
12412 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverInfo3 *r)
12413 : {
12414 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12415 0 : if (ndr_flags & NDR_SCALARS) {
12416 0 : NDR_CHECK(ndr_push_align(ndr, 5));
12417 0 : NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12418 : {
12419 0 : libndr_flags _flags_save_string = ndr->flags;
12420 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12421 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12422 0 : ndr->flags = _flags_save_string;
12423 : }
12424 : {
12425 0 : libndr_flags _flags_save_string = ndr->flags;
12426 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12427 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12428 0 : ndr->flags = _flags_save_string;
12429 : }
12430 : {
12431 0 : libndr_flags _flags_save_string = ndr->flags;
12432 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12433 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12434 0 : ndr->flags = _flags_save_string;
12435 : }
12436 : {
12437 0 : libndr_flags _flags_save_string = ndr->flags;
12438 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12439 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12440 0 : ndr->flags = _flags_save_string;
12441 : }
12442 : {
12443 0 : libndr_flags _flags_save_string = ndr->flags;
12444 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12445 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12446 0 : ndr->flags = _flags_save_string;
12447 : }
12448 : {
12449 0 : libndr_flags _flags_save_string = ndr->flags;
12450 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12451 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12452 0 : ndr->flags = _flags_save_string;
12453 : }
12454 : {
12455 0 : libndr_flags _flags_save_string_array = ndr->flags;
12456 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12457 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12458 0 : ndr->flags = _flags_save_string_array;
12459 : }
12460 : {
12461 0 : libndr_flags _flags_save_string = ndr->flags;
12462 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12463 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12464 0 : ndr->flags = _flags_save_string;
12465 : }
12466 : {
12467 0 : libndr_flags _flags_save_string = ndr->flags;
12468 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12469 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12470 0 : ndr->flags = _flags_save_string;
12471 : }
12472 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
12473 : }
12474 0 : if (ndr_flags & NDR_BUFFERS) {
12475 : {
12476 0 : libndr_flags _flags_save_string = ndr->flags;
12477 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12478 0 : if (r->driver_name) {
12479 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12480 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12481 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12482 : }
12483 0 : ndr->flags = _flags_save_string;
12484 : }
12485 : {
12486 0 : libndr_flags _flags_save_string = ndr->flags;
12487 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12488 0 : if (r->architecture) {
12489 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12490 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12491 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
12492 : }
12493 0 : ndr->flags = _flags_save_string;
12494 : }
12495 : {
12496 0 : libndr_flags _flags_save_string = ndr->flags;
12497 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12498 0 : if (r->driver_path) {
12499 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12500 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12501 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
12502 : }
12503 0 : ndr->flags = _flags_save_string;
12504 : }
12505 : {
12506 0 : libndr_flags _flags_save_string = ndr->flags;
12507 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12508 0 : if (r->data_file) {
12509 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12510 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12511 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
12512 : }
12513 0 : ndr->flags = _flags_save_string;
12514 : }
12515 : {
12516 0 : libndr_flags _flags_save_string = ndr->flags;
12517 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12518 0 : if (r->config_file) {
12519 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12520 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12521 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12522 : }
12523 0 : ndr->flags = _flags_save_string;
12524 : }
12525 : {
12526 0 : libndr_flags _flags_save_string = ndr->flags;
12527 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12528 0 : if (r->help_file) {
12529 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
12530 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12531 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
12532 : }
12533 0 : ndr->flags = _flags_save_string;
12534 : }
12535 : {
12536 0 : libndr_flags _flags_save_string_array = ndr->flags;
12537 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12538 0 : if (r->dependent_files) {
12539 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
12540 0 : NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12541 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
12542 : }
12543 0 : ndr->flags = _flags_save_string_array;
12544 : }
12545 : {
12546 0 : libndr_flags _flags_save_string = ndr->flags;
12547 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12548 0 : if (r->monitor_name) {
12549 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
12550 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12551 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
12552 : }
12553 0 : ndr->flags = _flags_save_string;
12554 : }
12555 : {
12556 0 : libndr_flags _flags_save_string = ndr->flags;
12557 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12558 0 : if (r->default_datatype) {
12559 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
12560 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12561 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
12562 : }
12563 0 : ndr->flags = _flags_save_string;
12564 : }
12565 : }
12566 0 : return NDR_ERR_SUCCESS;
12567 : }
12568 :
12569 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverInfo3 *r)
12570 : {
12571 0 : uint32_t _ptr_driver_name;
12572 0 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
12573 0 : uint32_t _ptr_architecture;
12574 0 : TALLOC_CTX *_mem_save_architecture_0 = NULL;
12575 0 : uint32_t _ptr_driver_path;
12576 0 : TALLOC_CTX *_mem_save_driver_path_0 = NULL;
12577 0 : uint32_t _ptr_data_file;
12578 0 : TALLOC_CTX *_mem_save_data_file_0 = NULL;
12579 0 : uint32_t _ptr_config_file;
12580 0 : TALLOC_CTX *_mem_save_config_file_0 = NULL;
12581 0 : uint32_t _ptr_help_file;
12582 0 : TALLOC_CTX *_mem_save_help_file_0 = NULL;
12583 0 : uint32_t _ptr_dependent_files;
12584 0 : TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
12585 0 : uint32_t _ptr_monitor_name;
12586 0 : TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
12587 0 : uint32_t _ptr_default_datatype;
12588 0 : TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
12589 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
12590 0 : if (ndr_flags & NDR_SCALARS) {
12591 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
12592 0 : NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12593 : {
12594 0 : libndr_flags _flags_save_string = ndr->flags;
12595 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12596 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12597 0 : if (_ptr_driver_name) {
12598 0 : NDR_PULL_ALLOC(ndr, r->driver_name);
12599 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12600 : } else {
12601 0 : r->driver_name = NULL;
12602 : }
12603 0 : ndr->flags = _flags_save_string;
12604 : }
12605 : {
12606 0 : libndr_flags _flags_save_string = ndr->flags;
12607 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12608 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12609 0 : if (_ptr_architecture) {
12610 0 : NDR_PULL_ALLOC(ndr, r->architecture);
12611 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12612 : } else {
12613 0 : r->architecture = NULL;
12614 : }
12615 0 : ndr->flags = _flags_save_string;
12616 : }
12617 : {
12618 0 : libndr_flags _flags_save_string = ndr->flags;
12619 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12620 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12621 0 : if (_ptr_driver_path) {
12622 0 : NDR_PULL_ALLOC(ndr, r->driver_path);
12623 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12624 : } else {
12625 0 : r->driver_path = NULL;
12626 : }
12627 0 : ndr->flags = _flags_save_string;
12628 : }
12629 : {
12630 0 : libndr_flags _flags_save_string = ndr->flags;
12631 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12632 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12633 0 : if (_ptr_data_file) {
12634 0 : NDR_PULL_ALLOC(ndr, r->data_file);
12635 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12636 : } else {
12637 0 : r->data_file = NULL;
12638 : }
12639 0 : ndr->flags = _flags_save_string;
12640 : }
12641 : {
12642 0 : libndr_flags _flags_save_string = ndr->flags;
12643 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12644 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12645 0 : if (_ptr_config_file) {
12646 0 : NDR_PULL_ALLOC(ndr, r->config_file);
12647 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12648 : } else {
12649 0 : r->config_file = NULL;
12650 : }
12651 0 : ndr->flags = _flags_save_string;
12652 : }
12653 : {
12654 0 : libndr_flags _flags_save_string = ndr->flags;
12655 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12656 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12657 0 : if (_ptr_help_file) {
12658 0 : NDR_PULL_ALLOC(ndr, r->help_file);
12659 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12660 : } else {
12661 0 : r->help_file = NULL;
12662 : }
12663 0 : ndr->flags = _flags_save_string;
12664 : }
12665 : {
12666 0 : libndr_flags _flags_save_string_array = ndr->flags;
12667 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12668 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12669 0 : if (_ptr_dependent_files) {
12670 0 : NDR_PULL_ALLOC(ndr, r->dependent_files);
12671 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12672 : } else {
12673 0 : r->dependent_files = NULL;
12674 : }
12675 0 : ndr->flags = _flags_save_string_array;
12676 : }
12677 : {
12678 0 : libndr_flags _flags_save_string = ndr->flags;
12679 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12680 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12681 0 : if (_ptr_monitor_name) {
12682 0 : NDR_PULL_ALLOC(ndr, r->monitor_name);
12683 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12684 : } else {
12685 0 : r->monitor_name = NULL;
12686 : }
12687 0 : ndr->flags = _flags_save_string;
12688 : }
12689 : {
12690 0 : libndr_flags _flags_save_string = ndr->flags;
12691 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12692 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12693 0 : if (_ptr_default_datatype) {
12694 0 : NDR_PULL_ALLOC(ndr, r->default_datatype);
12695 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12696 : } else {
12697 0 : r->default_datatype = NULL;
12698 : }
12699 0 : ndr->flags = _flags_save_string;
12700 : }
12701 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12702 : }
12703 0 : if (ndr_flags & NDR_BUFFERS) {
12704 : {
12705 0 : libndr_flags _flags_save_string = ndr->flags;
12706 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12707 0 : if (r->driver_name) {
12708 0 : uint32_t _relative_save_offset;
12709 0 : _relative_save_offset = ndr->offset;
12710 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12711 0 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12712 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12713 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12714 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12715 0 : if (ndr->offset > ndr->relative_highest_offset) {
12716 0 : ndr->relative_highest_offset = ndr->offset;
12717 : }
12718 0 : ndr->offset = _relative_save_offset;
12719 : }
12720 0 : ndr->flags = _flags_save_string;
12721 : }
12722 : {
12723 0 : libndr_flags _flags_save_string = ndr->flags;
12724 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12725 0 : if (r->architecture) {
12726 0 : uint32_t _relative_save_offset;
12727 0 : _relative_save_offset = ndr->offset;
12728 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12729 0 : _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12730 0 : NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12731 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12732 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12733 0 : if (ndr->offset > ndr->relative_highest_offset) {
12734 0 : ndr->relative_highest_offset = ndr->offset;
12735 : }
12736 0 : ndr->offset = _relative_save_offset;
12737 : }
12738 0 : ndr->flags = _flags_save_string;
12739 : }
12740 : {
12741 0 : libndr_flags _flags_save_string = ndr->flags;
12742 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12743 0 : if (r->driver_path) {
12744 0 : uint32_t _relative_save_offset;
12745 0 : _relative_save_offset = ndr->offset;
12746 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12747 0 : _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12748 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12749 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12750 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12751 0 : if (ndr->offset > ndr->relative_highest_offset) {
12752 0 : ndr->relative_highest_offset = ndr->offset;
12753 : }
12754 0 : ndr->offset = _relative_save_offset;
12755 : }
12756 0 : ndr->flags = _flags_save_string;
12757 : }
12758 : {
12759 0 : libndr_flags _flags_save_string = ndr->flags;
12760 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12761 0 : if (r->data_file) {
12762 0 : uint32_t _relative_save_offset;
12763 0 : _relative_save_offset = ndr->offset;
12764 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12765 0 : _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12766 0 : NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12767 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12768 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12769 0 : if (ndr->offset > ndr->relative_highest_offset) {
12770 0 : ndr->relative_highest_offset = ndr->offset;
12771 : }
12772 0 : ndr->offset = _relative_save_offset;
12773 : }
12774 0 : ndr->flags = _flags_save_string;
12775 : }
12776 : {
12777 0 : libndr_flags _flags_save_string = ndr->flags;
12778 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12779 0 : if (r->config_file) {
12780 0 : uint32_t _relative_save_offset;
12781 0 : _relative_save_offset = ndr->offset;
12782 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12783 0 : _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12784 0 : NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12785 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12786 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12787 0 : if (ndr->offset > ndr->relative_highest_offset) {
12788 0 : ndr->relative_highest_offset = ndr->offset;
12789 : }
12790 0 : ndr->offset = _relative_save_offset;
12791 : }
12792 0 : ndr->flags = _flags_save_string;
12793 : }
12794 : {
12795 0 : libndr_flags _flags_save_string = ndr->flags;
12796 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12797 0 : if (r->help_file) {
12798 0 : uint32_t _relative_save_offset;
12799 0 : _relative_save_offset = ndr->offset;
12800 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12801 0 : _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12802 0 : NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12803 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12804 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12805 0 : if (ndr->offset > ndr->relative_highest_offset) {
12806 0 : ndr->relative_highest_offset = ndr->offset;
12807 : }
12808 0 : ndr->offset = _relative_save_offset;
12809 : }
12810 0 : ndr->flags = _flags_save_string;
12811 : }
12812 : {
12813 0 : libndr_flags _flags_save_string_array = ndr->flags;
12814 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12815 0 : if (r->dependent_files) {
12816 0 : uint32_t _relative_save_offset;
12817 0 : _relative_save_offset = ndr->offset;
12818 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12819 0 : _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12820 0 : NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12821 0 : NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12822 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12823 0 : if (ndr->offset > ndr->relative_highest_offset) {
12824 0 : ndr->relative_highest_offset = ndr->offset;
12825 : }
12826 0 : ndr->offset = _relative_save_offset;
12827 : }
12828 0 : ndr->flags = _flags_save_string_array;
12829 : }
12830 : {
12831 0 : libndr_flags _flags_save_string = ndr->flags;
12832 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12833 0 : if (r->monitor_name) {
12834 0 : uint32_t _relative_save_offset;
12835 0 : _relative_save_offset = ndr->offset;
12836 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12837 0 : _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12838 0 : NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12839 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12840 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12841 0 : if (ndr->offset > ndr->relative_highest_offset) {
12842 0 : ndr->relative_highest_offset = ndr->offset;
12843 : }
12844 0 : ndr->offset = _relative_save_offset;
12845 : }
12846 0 : ndr->flags = _flags_save_string;
12847 : }
12848 : {
12849 0 : libndr_flags _flags_save_string = ndr->flags;
12850 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12851 0 : if (r->default_datatype) {
12852 0 : uint32_t _relative_save_offset;
12853 0 : _relative_save_offset = ndr->offset;
12854 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12855 0 : _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12856 0 : NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12857 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12858 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12859 0 : if (ndr->offset > ndr->relative_highest_offset) {
12860 0 : ndr->relative_highest_offset = ndr->offset;
12861 : }
12862 0 : ndr->offset = _relative_save_offset;
12863 : }
12864 0 : ndr->flags = _flags_save_string;
12865 : }
12866 : }
12867 0 : return NDR_ERR_SUCCESS;
12868 : }
12869 :
12870 0 : static void ndr_print_flags_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo3 *r)
12871 : {
12872 0 : ndr_print_spoolss_DriverInfo3(ndr, name, r);
12873 0 : }
12874 :
12875 0 : _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
12876 : {
12877 0 : ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
12878 0 : if (r == NULL) { ndr_print_null(ndr); return; }
12879 0 : ndr->depth++;
12880 0 : ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12881 : {
12882 0 : libndr_flags _flags_save_string = ndr->flags;
12883 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12884 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
12885 0 : ndr->depth++;
12886 0 : if (r->driver_name) {
12887 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
12888 : }
12889 0 : ndr->depth--;
12890 0 : ndr->flags = _flags_save_string;
12891 : }
12892 : {
12893 0 : libndr_flags _flags_save_string = ndr->flags;
12894 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12895 0 : ndr_print_ptr(ndr, "architecture", r->architecture);
12896 0 : ndr->depth++;
12897 0 : if (r->architecture) {
12898 0 : ndr_print_string(ndr, "architecture", r->architecture);
12899 : }
12900 0 : ndr->depth--;
12901 0 : ndr->flags = _flags_save_string;
12902 : }
12903 : {
12904 0 : libndr_flags _flags_save_string = ndr->flags;
12905 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12906 0 : ndr_print_ptr(ndr, "driver_path", r->driver_path);
12907 0 : ndr->depth++;
12908 0 : if (r->driver_path) {
12909 0 : ndr_print_string(ndr, "driver_path", r->driver_path);
12910 : }
12911 0 : ndr->depth--;
12912 0 : ndr->flags = _flags_save_string;
12913 : }
12914 : {
12915 0 : libndr_flags _flags_save_string = ndr->flags;
12916 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12917 0 : ndr_print_ptr(ndr, "data_file", r->data_file);
12918 0 : ndr->depth++;
12919 0 : if (r->data_file) {
12920 0 : ndr_print_string(ndr, "data_file", r->data_file);
12921 : }
12922 0 : ndr->depth--;
12923 0 : ndr->flags = _flags_save_string;
12924 : }
12925 : {
12926 0 : libndr_flags _flags_save_string = ndr->flags;
12927 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12928 0 : ndr_print_ptr(ndr, "config_file", r->config_file);
12929 0 : ndr->depth++;
12930 0 : if (r->config_file) {
12931 0 : ndr_print_string(ndr, "config_file", r->config_file);
12932 : }
12933 0 : ndr->depth--;
12934 0 : ndr->flags = _flags_save_string;
12935 : }
12936 : {
12937 0 : libndr_flags _flags_save_string = ndr->flags;
12938 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12939 0 : ndr_print_ptr(ndr, "help_file", r->help_file);
12940 0 : ndr->depth++;
12941 0 : if (r->help_file) {
12942 0 : ndr_print_string(ndr, "help_file", r->help_file);
12943 : }
12944 0 : ndr->depth--;
12945 0 : ndr->flags = _flags_save_string;
12946 : }
12947 : {
12948 0 : libndr_flags _flags_save_string_array = ndr->flags;
12949 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12950 0 : ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12951 0 : ndr->depth++;
12952 0 : if (r->dependent_files) {
12953 0 : ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12954 : }
12955 0 : ndr->depth--;
12956 0 : ndr->flags = _flags_save_string_array;
12957 : }
12958 : {
12959 0 : libndr_flags _flags_save_string = ndr->flags;
12960 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12961 0 : ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12962 0 : ndr->depth++;
12963 0 : if (r->monitor_name) {
12964 0 : ndr_print_string(ndr, "monitor_name", r->monitor_name);
12965 : }
12966 0 : ndr->depth--;
12967 0 : ndr->flags = _flags_save_string;
12968 : }
12969 : {
12970 0 : libndr_flags _flags_save_string = ndr->flags;
12971 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12972 0 : ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12973 0 : ndr->depth++;
12974 0 : if (r->default_datatype) {
12975 0 : ndr_print_string(ndr, "default_datatype", r->default_datatype);
12976 : }
12977 0 : ndr->depth--;
12978 0 : ndr->flags = _flags_save_string;
12979 : }
12980 0 : ndr->depth--;
12981 : }
12982 :
12983 0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, libndr_flags flags)
12984 : {
12985 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3);
12986 : }
12987 :
12988 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverInfo4 *r)
12989 : {
12990 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12991 0 : if (ndr_flags & NDR_SCALARS) {
12992 0 : NDR_CHECK(ndr_push_align(ndr, 5));
12993 0 : NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12994 : {
12995 0 : libndr_flags _flags_save_string = ndr->flags;
12996 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12997 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12998 0 : ndr->flags = _flags_save_string;
12999 : }
13000 : {
13001 0 : libndr_flags _flags_save_string = ndr->flags;
13002 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13003 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
13004 0 : ndr->flags = _flags_save_string;
13005 : }
13006 : {
13007 0 : libndr_flags _flags_save_string = ndr->flags;
13008 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13009 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
13010 0 : ndr->flags = _flags_save_string;
13011 : }
13012 : {
13013 0 : libndr_flags _flags_save_string = ndr->flags;
13014 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13015 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
13016 0 : ndr->flags = _flags_save_string;
13017 : }
13018 : {
13019 0 : libndr_flags _flags_save_string = ndr->flags;
13020 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13021 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
13022 0 : ndr->flags = _flags_save_string;
13023 : }
13024 : {
13025 0 : libndr_flags _flags_save_string = ndr->flags;
13026 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13027 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
13028 0 : ndr->flags = _flags_save_string;
13029 : }
13030 : {
13031 0 : libndr_flags _flags_save_string_array = ndr->flags;
13032 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13033 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
13034 0 : ndr->flags = _flags_save_string_array;
13035 : }
13036 : {
13037 0 : libndr_flags _flags_save_string = ndr->flags;
13038 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13039 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
13040 0 : ndr->flags = _flags_save_string;
13041 : }
13042 : {
13043 0 : libndr_flags _flags_save_string = ndr->flags;
13044 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13045 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
13046 0 : ndr->flags = _flags_save_string;
13047 : }
13048 : {
13049 0 : libndr_flags _flags_save_string_array = ndr->flags;
13050 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13051 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
13052 0 : ndr->flags = _flags_save_string_array;
13053 : }
13054 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13055 : }
13056 0 : if (ndr_flags & NDR_BUFFERS) {
13057 : {
13058 0 : libndr_flags _flags_save_string = ndr->flags;
13059 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13060 0 : if (r->driver_name) {
13061 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
13062 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13063 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
13064 : }
13065 0 : ndr->flags = _flags_save_string;
13066 : }
13067 : {
13068 0 : libndr_flags _flags_save_string = ndr->flags;
13069 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13070 0 : if (r->architecture) {
13071 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
13072 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
13073 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
13074 : }
13075 0 : ndr->flags = _flags_save_string;
13076 : }
13077 : {
13078 0 : libndr_flags _flags_save_string = ndr->flags;
13079 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13080 0 : if (r->driver_path) {
13081 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
13082 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
13083 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
13084 : }
13085 0 : ndr->flags = _flags_save_string;
13086 : }
13087 : {
13088 0 : libndr_flags _flags_save_string = ndr->flags;
13089 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13090 0 : if (r->data_file) {
13091 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
13092 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
13093 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
13094 : }
13095 0 : ndr->flags = _flags_save_string;
13096 : }
13097 : {
13098 0 : libndr_flags _flags_save_string = ndr->flags;
13099 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13100 0 : if (r->config_file) {
13101 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
13102 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
13103 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
13104 : }
13105 0 : ndr->flags = _flags_save_string;
13106 : }
13107 : {
13108 0 : libndr_flags _flags_save_string = ndr->flags;
13109 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13110 0 : if (r->help_file) {
13111 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
13112 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
13113 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
13114 : }
13115 0 : ndr->flags = _flags_save_string;
13116 : }
13117 : {
13118 0 : libndr_flags _flags_save_string_array = ndr->flags;
13119 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13120 0 : if (r->dependent_files) {
13121 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
13122 0 : NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
13123 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
13124 : }
13125 0 : ndr->flags = _flags_save_string_array;
13126 : }
13127 : {
13128 0 : libndr_flags _flags_save_string = ndr->flags;
13129 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13130 0 : if (r->monitor_name) {
13131 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
13132 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13133 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
13134 : }
13135 0 : ndr->flags = _flags_save_string;
13136 : }
13137 : {
13138 0 : libndr_flags _flags_save_string = ndr->flags;
13139 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13140 0 : if (r->default_datatype) {
13141 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
13142 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
13143 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
13144 : }
13145 0 : ndr->flags = _flags_save_string;
13146 : }
13147 : {
13148 0 : libndr_flags _flags_save_string_array = ndr->flags;
13149 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13150 0 : if (r->previous_names) {
13151 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
13152 0 : NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
13153 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
13154 : }
13155 0 : ndr->flags = _flags_save_string_array;
13156 : }
13157 : }
13158 0 : return NDR_ERR_SUCCESS;
13159 : }
13160 :
13161 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverInfo4 *r)
13162 : {
13163 0 : uint32_t _ptr_driver_name;
13164 0 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
13165 0 : uint32_t _ptr_architecture;
13166 0 : TALLOC_CTX *_mem_save_architecture_0 = NULL;
13167 0 : uint32_t _ptr_driver_path;
13168 0 : TALLOC_CTX *_mem_save_driver_path_0 = NULL;
13169 0 : uint32_t _ptr_data_file;
13170 0 : TALLOC_CTX *_mem_save_data_file_0 = NULL;
13171 0 : uint32_t _ptr_config_file;
13172 0 : TALLOC_CTX *_mem_save_config_file_0 = NULL;
13173 0 : uint32_t _ptr_help_file;
13174 0 : TALLOC_CTX *_mem_save_help_file_0 = NULL;
13175 0 : uint32_t _ptr_dependent_files;
13176 0 : TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
13177 0 : uint32_t _ptr_monitor_name;
13178 0 : TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
13179 0 : uint32_t _ptr_default_datatype;
13180 0 : TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
13181 0 : uint32_t _ptr_previous_names;
13182 0 : TALLOC_CTX *_mem_save_previous_names_0 = NULL;
13183 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
13184 0 : if (ndr_flags & NDR_SCALARS) {
13185 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
13186 0 : NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13187 : {
13188 0 : libndr_flags _flags_save_string = ndr->flags;
13189 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13190 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13191 0 : if (_ptr_driver_name) {
13192 0 : NDR_PULL_ALLOC(ndr, r->driver_name);
13193 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13194 : } else {
13195 0 : r->driver_name = NULL;
13196 : }
13197 0 : ndr->flags = _flags_save_string;
13198 : }
13199 : {
13200 0 : libndr_flags _flags_save_string = ndr->flags;
13201 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13202 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13203 0 : if (_ptr_architecture) {
13204 0 : NDR_PULL_ALLOC(ndr, r->architecture);
13205 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13206 : } else {
13207 0 : r->architecture = NULL;
13208 : }
13209 0 : ndr->flags = _flags_save_string;
13210 : }
13211 : {
13212 0 : libndr_flags _flags_save_string = ndr->flags;
13213 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13214 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13215 0 : if (_ptr_driver_path) {
13216 0 : NDR_PULL_ALLOC(ndr, r->driver_path);
13217 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13218 : } else {
13219 0 : r->driver_path = NULL;
13220 : }
13221 0 : ndr->flags = _flags_save_string;
13222 : }
13223 : {
13224 0 : libndr_flags _flags_save_string = ndr->flags;
13225 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13226 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13227 0 : if (_ptr_data_file) {
13228 0 : NDR_PULL_ALLOC(ndr, r->data_file);
13229 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13230 : } else {
13231 0 : r->data_file = NULL;
13232 : }
13233 0 : ndr->flags = _flags_save_string;
13234 : }
13235 : {
13236 0 : libndr_flags _flags_save_string = ndr->flags;
13237 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13238 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13239 0 : if (_ptr_config_file) {
13240 0 : NDR_PULL_ALLOC(ndr, r->config_file);
13241 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13242 : } else {
13243 0 : r->config_file = NULL;
13244 : }
13245 0 : ndr->flags = _flags_save_string;
13246 : }
13247 : {
13248 0 : libndr_flags _flags_save_string = ndr->flags;
13249 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13250 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13251 0 : if (_ptr_help_file) {
13252 0 : NDR_PULL_ALLOC(ndr, r->help_file);
13253 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13254 : } else {
13255 0 : r->help_file = NULL;
13256 : }
13257 0 : ndr->flags = _flags_save_string;
13258 : }
13259 : {
13260 0 : libndr_flags _flags_save_string_array = ndr->flags;
13261 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13262 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13263 0 : if (_ptr_dependent_files) {
13264 0 : NDR_PULL_ALLOC(ndr, r->dependent_files);
13265 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13266 : } else {
13267 0 : r->dependent_files = NULL;
13268 : }
13269 0 : ndr->flags = _flags_save_string_array;
13270 : }
13271 : {
13272 0 : libndr_flags _flags_save_string = ndr->flags;
13273 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13274 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13275 0 : if (_ptr_monitor_name) {
13276 0 : NDR_PULL_ALLOC(ndr, r->monitor_name);
13277 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13278 : } else {
13279 0 : r->monitor_name = NULL;
13280 : }
13281 0 : ndr->flags = _flags_save_string;
13282 : }
13283 : {
13284 0 : libndr_flags _flags_save_string = ndr->flags;
13285 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13286 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13287 0 : if (_ptr_default_datatype) {
13288 0 : NDR_PULL_ALLOC(ndr, r->default_datatype);
13289 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13290 : } else {
13291 0 : r->default_datatype = NULL;
13292 : }
13293 0 : ndr->flags = _flags_save_string;
13294 : }
13295 : {
13296 0 : libndr_flags _flags_save_string_array = ndr->flags;
13297 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13298 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13299 0 : if (_ptr_previous_names) {
13300 0 : NDR_PULL_ALLOC(ndr, r->previous_names);
13301 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13302 : } else {
13303 0 : r->previous_names = NULL;
13304 : }
13305 0 : ndr->flags = _flags_save_string_array;
13306 : }
13307 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13308 : }
13309 0 : if (ndr_flags & NDR_BUFFERS) {
13310 : {
13311 0 : libndr_flags _flags_save_string = ndr->flags;
13312 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13313 0 : if (r->driver_name) {
13314 0 : uint32_t _relative_save_offset;
13315 0 : _relative_save_offset = ndr->offset;
13316 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13317 0 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13318 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13319 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13320 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13321 0 : if (ndr->offset > ndr->relative_highest_offset) {
13322 0 : ndr->relative_highest_offset = ndr->offset;
13323 : }
13324 0 : ndr->offset = _relative_save_offset;
13325 : }
13326 0 : ndr->flags = _flags_save_string;
13327 : }
13328 : {
13329 0 : libndr_flags _flags_save_string = ndr->flags;
13330 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13331 0 : if (r->architecture) {
13332 0 : uint32_t _relative_save_offset;
13333 0 : _relative_save_offset = ndr->offset;
13334 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13335 0 : _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13336 0 : NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13337 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13338 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13339 0 : if (ndr->offset > ndr->relative_highest_offset) {
13340 0 : ndr->relative_highest_offset = ndr->offset;
13341 : }
13342 0 : ndr->offset = _relative_save_offset;
13343 : }
13344 0 : ndr->flags = _flags_save_string;
13345 : }
13346 : {
13347 0 : libndr_flags _flags_save_string = ndr->flags;
13348 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13349 0 : if (r->driver_path) {
13350 0 : uint32_t _relative_save_offset;
13351 0 : _relative_save_offset = ndr->offset;
13352 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13353 0 : _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13354 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13355 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13356 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13357 0 : if (ndr->offset > ndr->relative_highest_offset) {
13358 0 : ndr->relative_highest_offset = ndr->offset;
13359 : }
13360 0 : ndr->offset = _relative_save_offset;
13361 : }
13362 0 : ndr->flags = _flags_save_string;
13363 : }
13364 : {
13365 0 : libndr_flags _flags_save_string = ndr->flags;
13366 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13367 0 : if (r->data_file) {
13368 0 : uint32_t _relative_save_offset;
13369 0 : _relative_save_offset = ndr->offset;
13370 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13371 0 : _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13372 0 : NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13373 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13374 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
13375 0 : if (ndr->offset > ndr->relative_highest_offset) {
13376 0 : ndr->relative_highest_offset = ndr->offset;
13377 : }
13378 0 : ndr->offset = _relative_save_offset;
13379 : }
13380 0 : ndr->flags = _flags_save_string;
13381 : }
13382 : {
13383 0 : libndr_flags _flags_save_string = ndr->flags;
13384 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13385 0 : if (r->config_file) {
13386 0 : uint32_t _relative_save_offset;
13387 0 : _relative_save_offset = ndr->offset;
13388 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13389 0 : _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13390 0 : NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13391 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13392 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
13393 0 : if (ndr->offset > ndr->relative_highest_offset) {
13394 0 : ndr->relative_highest_offset = ndr->offset;
13395 : }
13396 0 : ndr->offset = _relative_save_offset;
13397 : }
13398 0 : ndr->flags = _flags_save_string;
13399 : }
13400 : {
13401 0 : libndr_flags _flags_save_string = ndr->flags;
13402 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13403 0 : if (r->help_file) {
13404 0 : uint32_t _relative_save_offset;
13405 0 : _relative_save_offset = ndr->offset;
13406 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
13407 0 : _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13408 0 : NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
13409 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
13410 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
13411 0 : if (ndr->offset > ndr->relative_highest_offset) {
13412 0 : ndr->relative_highest_offset = ndr->offset;
13413 : }
13414 0 : ndr->offset = _relative_save_offset;
13415 : }
13416 0 : ndr->flags = _flags_save_string;
13417 : }
13418 : {
13419 0 : libndr_flags _flags_save_string_array = ndr->flags;
13420 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13421 0 : if (r->dependent_files) {
13422 0 : uint32_t _relative_save_offset;
13423 0 : _relative_save_offset = ndr->offset;
13424 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13425 0 : _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13426 0 : NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13427 0 : NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13428 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13429 0 : if (ndr->offset > ndr->relative_highest_offset) {
13430 0 : ndr->relative_highest_offset = ndr->offset;
13431 : }
13432 0 : ndr->offset = _relative_save_offset;
13433 : }
13434 0 : ndr->flags = _flags_save_string_array;
13435 : }
13436 : {
13437 0 : libndr_flags _flags_save_string = ndr->flags;
13438 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13439 0 : if (r->monitor_name) {
13440 0 : uint32_t _relative_save_offset;
13441 0 : _relative_save_offset = ndr->offset;
13442 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13443 0 : _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13444 0 : NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13445 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13446 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13447 0 : if (ndr->offset > ndr->relative_highest_offset) {
13448 0 : ndr->relative_highest_offset = ndr->offset;
13449 : }
13450 0 : ndr->offset = _relative_save_offset;
13451 : }
13452 0 : ndr->flags = _flags_save_string;
13453 : }
13454 : {
13455 0 : libndr_flags _flags_save_string = ndr->flags;
13456 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13457 0 : if (r->default_datatype) {
13458 0 : uint32_t _relative_save_offset;
13459 0 : _relative_save_offset = ndr->offset;
13460 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13461 0 : _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13462 0 : NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13463 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13464 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13465 0 : if (ndr->offset > ndr->relative_highest_offset) {
13466 0 : ndr->relative_highest_offset = ndr->offset;
13467 : }
13468 0 : ndr->offset = _relative_save_offset;
13469 : }
13470 0 : ndr->flags = _flags_save_string;
13471 : }
13472 : {
13473 0 : libndr_flags _flags_save_string_array = ndr->flags;
13474 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13475 0 : if (r->previous_names) {
13476 0 : uint32_t _relative_save_offset;
13477 0 : _relative_save_offset = ndr->offset;
13478 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13479 0 : _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13480 0 : NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13481 0 : NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13482 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13483 0 : if (ndr->offset > ndr->relative_highest_offset) {
13484 0 : ndr->relative_highest_offset = ndr->offset;
13485 : }
13486 0 : ndr->offset = _relative_save_offset;
13487 : }
13488 0 : ndr->flags = _flags_save_string_array;
13489 : }
13490 : }
13491 0 : return NDR_ERR_SUCCESS;
13492 : }
13493 :
13494 0 : static void ndr_print_flags_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo4 *r)
13495 : {
13496 0 : ndr_print_spoolss_DriverInfo4(ndr, name, r);
13497 0 : }
13498 :
13499 0 : _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
13500 : {
13501 0 : ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
13502 0 : if (r == NULL) { ndr_print_null(ndr); return; }
13503 0 : ndr->depth++;
13504 0 : ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13505 : {
13506 0 : libndr_flags _flags_save_string = ndr->flags;
13507 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13508 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
13509 0 : ndr->depth++;
13510 0 : if (r->driver_name) {
13511 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
13512 : }
13513 0 : ndr->depth--;
13514 0 : ndr->flags = _flags_save_string;
13515 : }
13516 : {
13517 0 : libndr_flags _flags_save_string = ndr->flags;
13518 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13519 0 : ndr_print_ptr(ndr, "architecture", r->architecture);
13520 0 : ndr->depth++;
13521 0 : if (r->architecture) {
13522 0 : ndr_print_string(ndr, "architecture", r->architecture);
13523 : }
13524 0 : ndr->depth--;
13525 0 : ndr->flags = _flags_save_string;
13526 : }
13527 : {
13528 0 : libndr_flags _flags_save_string = ndr->flags;
13529 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13530 0 : ndr_print_ptr(ndr, "driver_path", r->driver_path);
13531 0 : ndr->depth++;
13532 0 : if (r->driver_path) {
13533 0 : ndr_print_string(ndr, "driver_path", r->driver_path);
13534 : }
13535 0 : ndr->depth--;
13536 0 : ndr->flags = _flags_save_string;
13537 : }
13538 : {
13539 0 : libndr_flags _flags_save_string = ndr->flags;
13540 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13541 0 : ndr_print_ptr(ndr, "data_file", r->data_file);
13542 0 : ndr->depth++;
13543 0 : if (r->data_file) {
13544 0 : ndr_print_string(ndr, "data_file", r->data_file);
13545 : }
13546 0 : ndr->depth--;
13547 0 : ndr->flags = _flags_save_string;
13548 : }
13549 : {
13550 0 : libndr_flags _flags_save_string = ndr->flags;
13551 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13552 0 : ndr_print_ptr(ndr, "config_file", r->config_file);
13553 0 : ndr->depth++;
13554 0 : if (r->config_file) {
13555 0 : ndr_print_string(ndr, "config_file", r->config_file);
13556 : }
13557 0 : ndr->depth--;
13558 0 : ndr->flags = _flags_save_string;
13559 : }
13560 : {
13561 0 : libndr_flags _flags_save_string = ndr->flags;
13562 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13563 0 : ndr_print_ptr(ndr, "help_file", r->help_file);
13564 0 : ndr->depth++;
13565 0 : if (r->help_file) {
13566 0 : ndr_print_string(ndr, "help_file", r->help_file);
13567 : }
13568 0 : ndr->depth--;
13569 0 : ndr->flags = _flags_save_string;
13570 : }
13571 : {
13572 0 : libndr_flags _flags_save_string_array = ndr->flags;
13573 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13574 0 : ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13575 0 : ndr->depth++;
13576 0 : if (r->dependent_files) {
13577 0 : ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13578 : }
13579 0 : ndr->depth--;
13580 0 : ndr->flags = _flags_save_string_array;
13581 : }
13582 : {
13583 0 : libndr_flags _flags_save_string = ndr->flags;
13584 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13585 0 : ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13586 0 : ndr->depth++;
13587 0 : if (r->monitor_name) {
13588 0 : ndr_print_string(ndr, "monitor_name", r->monitor_name);
13589 : }
13590 0 : ndr->depth--;
13591 0 : ndr->flags = _flags_save_string;
13592 : }
13593 : {
13594 0 : libndr_flags _flags_save_string = ndr->flags;
13595 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13596 0 : ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13597 0 : ndr->depth++;
13598 0 : if (r->default_datatype) {
13599 0 : ndr_print_string(ndr, "default_datatype", r->default_datatype);
13600 : }
13601 0 : ndr->depth--;
13602 0 : ndr->flags = _flags_save_string;
13603 : }
13604 : {
13605 0 : libndr_flags _flags_save_string_array = ndr->flags;
13606 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13607 0 : ndr_print_ptr(ndr, "previous_names", r->previous_names);
13608 0 : ndr->depth++;
13609 0 : if (r->previous_names) {
13610 0 : ndr_print_string_array(ndr, "previous_names", r->previous_names);
13611 : }
13612 0 : ndr->depth--;
13613 0 : ndr->flags = _flags_save_string_array;
13614 : }
13615 0 : ndr->depth--;
13616 : }
13617 :
13618 0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, libndr_flags flags)
13619 : {
13620 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4);
13621 : }
13622 :
13623 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverInfo5 *r)
13624 : {
13625 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
13626 0 : if (ndr_flags & NDR_SCALARS) {
13627 0 : NDR_CHECK(ndr_push_align(ndr, 5));
13628 0 : NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13629 : {
13630 0 : libndr_flags _flags_save_string = ndr->flags;
13631 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13632 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13633 0 : ndr->flags = _flags_save_string;
13634 : }
13635 : {
13636 0 : libndr_flags _flags_save_string = ndr->flags;
13637 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13638 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
13639 0 : ndr->flags = _flags_save_string;
13640 : }
13641 : {
13642 0 : libndr_flags _flags_save_string = ndr->flags;
13643 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13644 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
13645 0 : ndr->flags = _flags_save_string;
13646 : }
13647 : {
13648 0 : libndr_flags _flags_save_string = ndr->flags;
13649 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13650 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
13651 0 : ndr->flags = _flags_save_string;
13652 : }
13653 : {
13654 0 : libndr_flags _flags_save_string = ndr->flags;
13655 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13656 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
13657 0 : ndr->flags = _flags_save_string;
13658 : }
13659 0 : NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
13660 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
13661 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
13662 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13663 : }
13664 0 : if (ndr_flags & NDR_BUFFERS) {
13665 : {
13666 0 : libndr_flags _flags_save_string = ndr->flags;
13667 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13668 0 : if (r->driver_name) {
13669 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
13670 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13671 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
13672 : }
13673 0 : ndr->flags = _flags_save_string;
13674 : }
13675 : {
13676 0 : libndr_flags _flags_save_string = ndr->flags;
13677 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13678 0 : if (r->architecture) {
13679 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
13680 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
13681 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
13682 : }
13683 0 : ndr->flags = _flags_save_string;
13684 : }
13685 : {
13686 0 : libndr_flags _flags_save_string = ndr->flags;
13687 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13688 0 : if (r->driver_path) {
13689 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
13690 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
13691 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
13692 : }
13693 0 : ndr->flags = _flags_save_string;
13694 : }
13695 : {
13696 0 : libndr_flags _flags_save_string = ndr->flags;
13697 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13698 0 : if (r->data_file) {
13699 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
13700 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
13701 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
13702 : }
13703 0 : ndr->flags = _flags_save_string;
13704 : }
13705 : {
13706 0 : libndr_flags _flags_save_string = ndr->flags;
13707 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13708 0 : if (r->config_file) {
13709 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
13710 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
13711 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
13712 : }
13713 0 : ndr->flags = _flags_save_string;
13714 : }
13715 : }
13716 0 : return NDR_ERR_SUCCESS;
13717 : }
13718 :
13719 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverInfo5 *r)
13720 : {
13721 0 : uint32_t _ptr_driver_name;
13722 0 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
13723 0 : uint32_t _ptr_architecture;
13724 0 : TALLOC_CTX *_mem_save_architecture_0 = NULL;
13725 0 : uint32_t _ptr_driver_path;
13726 0 : TALLOC_CTX *_mem_save_driver_path_0 = NULL;
13727 0 : uint32_t _ptr_data_file;
13728 0 : TALLOC_CTX *_mem_save_data_file_0 = NULL;
13729 0 : uint32_t _ptr_config_file;
13730 0 : TALLOC_CTX *_mem_save_config_file_0 = NULL;
13731 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
13732 0 : if (ndr_flags & NDR_SCALARS) {
13733 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
13734 0 : NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13735 : {
13736 0 : libndr_flags _flags_save_string = ndr->flags;
13737 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13738 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13739 0 : if (_ptr_driver_name) {
13740 0 : NDR_PULL_ALLOC(ndr, r->driver_name);
13741 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13742 : } else {
13743 0 : r->driver_name = NULL;
13744 : }
13745 0 : ndr->flags = _flags_save_string;
13746 : }
13747 : {
13748 0 : libndr_flags _flags_save_string = ndr->flags;
13749 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13750 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13751 0 : if (_ptr_architecture) {
13752 0 : NDR_PULL_ALLOC(ndr, r->architecture);
13753 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13754 : } else {
13755 0 : r->architecture = NULL;
13756 : }
13757 0 : ndr->flags = _flags_save_string;
13758 : }
13759 : {
13760 0 : libndr_flags _flags_save_string = ndr->flags;
13761 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13762 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13763 0 : if (_ptr_driver_path) {
13764 0 : NDR_PULL_ALLOC(ndr, r->driver_path);
13765 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13766 : } else {
13767 0 : r->driver_path = NULL;
13768 : }
13769 0 : ndr->flags = _flags_save_string;
13770 : }
13771 : {
13772 0 : libndr_flags _flags_save_string = ndr->flags;
13773 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13774 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13775 0 : if (_ptr_data_file) {
13776 0 : NDR_PULL_ALLOC(ndr, r->data_file);
13777 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13778 : } else {
13779 0 : r->data_file = NULL;
13780 : }
13781 0 : ndr->flags = _flags_save_string;
13782 : }
13783 : {
13784 0 : libndr_flags _flags_save_string = ndr->flags;
13785 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13786 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13787 0 : if (_ptr_config_file) {
13788 0 : NDR_PULL_ALLOC(ndr, r->config_file);
13789 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13790 : } else {
13791 0 : r->config_file = NULL;
13792 : }
13793 0 : ndr->flags = _flags_save_string;
13794 : }
13795 0 : NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
13796 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
13797 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
13798 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13799 : }
13800 0 : if (ndr_flags & NDR_BUFFERS) {
13801 : {
13802 0 : libndr_flags _flags_save_string = ndr->flags;
13803 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13804 0 : if (r->driver_name) {
13805 0 : uint32_t _relative_save_offset;
13806 0 : _relative_save_offset = ndr->offset;
13807 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13808 0 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13809 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13810 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13811 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13812 0 : if (ndr->offset > ndr->relative_highest_offset) {
13813 0 : ndr->relative_highest_offset = ndr->offset;
13814 : }
13815 0 : ndr->offset = _relative_save_offset;
13816 : }
13817 0 : ndr->flags = _flags_save_string;
13818 : }
13819 : {
13820 0 : libndr_flags _flags_save_string = ndr->flags;
13821 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13822 0 : if (r->architecture) {
13823 0 : uint32_t _relative_save_offset;
13824 0 : _relative_save_offset = ndr->offset;
13825 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13826 0 : _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13827 0 : NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13828 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13829 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13830 0 : if (ndr->offset > ndr->relative_highest_offset) {
13831 0 : ndr->relative_highest_offset = ndr->offset;
13832 : }
13833 0 : ndr->offset = _relative_save_offset;
13834 : }
13835 0 : ndr->flags = _flags_save_string;
13836 : }
13837 : {
13838 0 : libndr_flags _flags_save_string = ndr->flags;
13839 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13840 0 : if (r->driver_path) {
13841 0 : uint32_t _relative_save_offset;
13842 0 : _relative_save_offset = ndr->offset;
13843 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13844 0 : _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13845 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13846 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13847 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13848 0 : if (ndr->offset > ndr->relative_highest_offset) {
13849 0 : ndr->relative_highest_offset = ndr->offset;
13850 : }
13851 0 : ndr->offset = _relative_save_offset;
13852 : }
13853 0 : ndr->flags = _flags_save_string;
13854 : }
13855 : {
13856 0 : libndr_flags _flags_save_string = ndr->flags;
13857 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13858 0 : if (r->data_file) {
13859 0 : uint32_t _relative_save_offset;
13860 0 : _relative_save_offset = ndr->offset;
13861 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13862 0 : _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13863 0 : NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13864 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13865 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
13866 0 : if (ndr->offset > ndr->relative_highest_offset) {
13867 0 : ndr->relative_highest_offset = ndr->offset;
13868 : }
13869 0 : ndr->offset = _relative_save_offset;
13870 : }
13871 0 : ndr->flags = _flags_save_string;
13872 : }
13873 : {
13874 0 : libndr_flags _flags_save_string = ndr->flags;
13875 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13876 0 : if (r->config_file) {
13877 0 : uint32_t _relative_save_offset;
13878 0 : _relative_save_offset = ndr->offset;
13879 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13880 0 : _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13881 0 : NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13882 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13883 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
13884 0 : if (ndr->offset > ndr->relative_highest_offset) {
13885 0 : ndr->relative_highest_offset = ndr->offset;
13886 : }
13887 0 : ndr->offset = _relative_save_offset;
13888 : }
13889 0 : ndr->flags = _flags_save_string;
13890 : }
13891 : }
13892 0 : return NDR_ERR_SUCCESS;
13893 : }
13894 :
13895 0 : static void ndr_print_flags_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo5 *r)
13896 : {
13897 0 : ndr_print_spoolss_DriverInfo5(ndr, name, r);
13898 0 : }
13899 :
13900 0 : _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
13901 : {
13902 0 : ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
13903 0 : if (r == NULL) { ndr_print_null(ndr); return; }
13904 0 : ndr->depth++;
13905 0 : ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13906 : {
13907 0 : libndr_flags _flags_save_string = ndr->flags;
13908 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13909 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
13910 0 : ndr->depth++;
13911 0 : if (r->driver_name) {
13912 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
13913 : }
13914 0 : ndr->depth--;
13915 0 : ndr->flags = _flags_save_string;
13916 : }
13917 : {
13918 0 : libndr_flags _flags_save_string = ndr->flags;
13919 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13920 0 : ndr_print_ptr(ndr, "architecture", r->architecture);
13921 0 : ndr->depth++;
13922 0 : if (r->architecture) {
13923 0 : ndr_print_string(ndr, "architecture", r->architecture);
13924 : }
13925 0 : ndr->depth--;
13926 0 : ndr->flags = _flags_save_string;
13927 : }
13928 : {
13929 0 : libndr_flags _flags_save_string = ndr->flags;
13930 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13931 0 : ndr_print_ptr(ndr, "driver_path", r->driver_path);
13932 0 : ndr->depth++;
13933 0 : if (r->driver_path) {
13934 0 : ndr_print_string(ndr, "driver_path", r->driver_path);
13935 : }
13936 0 : ndr->depth--;
13937 0 : ndr->flags = _flags_save_string;
13938 : }
13939 : {
13940 0 : libndr_flags _flags_save_string = ndr->flags;
13941 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13942 0 : ndr_print_ptr(ndr, "data_file", r->data_file);
13943 0 : ndr->depth++;
13944 0 : if (r->data_file) {
13945 0 : ndr_print_string(ndr, "data_file", r->data_file);
13946 : }
13947 0 : ndr->depth--;
13948 0 : ndr->flags = _flags_save_string;
13949 : }
13950 : {
13951 0 : libndr_flags _flags_save_string = ndr->flags;
13952 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13953 0 : ndr_print_ptr(ndr, "config_file", r->config_file);
13954 0 : ndr->depth++;
13955 0 : if (r->config_file) {
13956 0 : ndr_print_string(ndr, "config_file", r->config_file);
13957 : }
13958 0 : ndr->depth--;
13959 0 : ndr->flags = _flags_save_string;
13960 : }
13961 0 : ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
13962 0 : ndr_print_uint32(ndr, "config_version", r->config_version);
13963 0 : ndr_print_uint32(ndr, "driver_version", r->driver_version);
13964 0 : ndr->depth--;
13965 : }
13966 :
13967 0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, libndr_flags flags)
13968 : {
13969 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5);
13970 : }
13971 :
13972 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverInfo6 *r)
13973 : {
13974 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
13975 0 : if (ndr_flags & NDR_SCALARS) {
13976 0 : NDR_CHECK(ndr_push_align(ndr, 8));
13977 0 : NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13978 : {
13979 0 : libndr_flags _flags_save_string = ndr->flags;
13980 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13981 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13982 0 : ndr->flags = _flags_save_string;
13983 : }
13984 : {
13985 0 : libndr_flags _flags_save_string = ndr->flags;
13986 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13987 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
13988 0 : ndr->flags = _flags_save_string;
13989 : }
13990 : {
13991 0 : libndr_flags _flags_save_string = ndr->flags;
13992 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13993 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
13994 0 : ndr->flags = _flags_save_string;
13995 : }
13996 : {
13997 0 : libndr_flags _flags_save_string = ndr->flags;
13998 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13999 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
14000 0 : ndr->flags = _flags_save_string;
14001 : }
14002 : {
14003 0 : libndr_flags _flags_save_string = ndr->flags;
14004 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14005 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
14006 0 : ndr->flags = _flags_save_string;
14007 : }
14008 : {
14009 0 : libndr_flags _flags_save_string = ndr->flags;
14010 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14011 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
14012 0 : ndr->flags = _flags_save_string;
14013 : }
14014 : {
14015 0 : libndr_flags _flags_save_string_array = ndr->flags;
14016 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14017 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
14018 0 : ndr->flags = _flags_save_string_array;
14019 : }
14020 : {
14021 0 : libndr_flags _flags_save_string = ndr->flags;
14022 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14023 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
14024 0 : ndr->flags = _flags_save_string;
14025 : }
14026 : {
14027 0 : libndr_flags _flags_save_string = ndr->flags;
14028 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14029 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
14030 0 : ndr->flags = _flags_save_string;
14031 : }
14032 : {
14033 0 : libndr_flags _flags_save_string_array = ndr->flags;
14034 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14035 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
14036 0 : ndr->flags = _flags_save_string_array;
14037 : }
14038 0 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
14039 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
14040 : {
14041 0 : libndr_flags _flags_save_string = ndr->flags;
14042 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14043 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
14044 0 : ndr->flags = _flags_save_string;
14045 : }
14046 : {
14047 0 : libndr_flags _flags_save_string = ndr->flags;
14048 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14049 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
14050 0 : ndr->flags = _flags_save_string;
14051 : }
14052 : {
14053 0 : libndr_flags _flags_save_string = ndr->flags;
14054 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14055 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
14056 0 : ndr->flags = _flags_save_string;
14057 : }
14058 : {
14059 0 : libndr_flags _flags_save_string = ndr->flags;
14060 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14061 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
14062 0 : ndr->flags = _flags_save_string;
14063 : }
14064 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
14065 : }
14066 0 : if (ndr_flags & NDR_BUFFERS) {
14067 : {
14068 0 : libndr_flags _flags_save_string = ndr->flags;
14069 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14070 0 : if (r->driver_name) {
14071 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
14072 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
14073 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
14074 : }
14075 0 : ndr->flags = _flags_save_string;
14076 : }
14077 : {
14078 0 : libndr_flags _flags_save_string = ndr->flags;
14079 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14080 0 : if (r->architecture) {
14081 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
14082 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
14083 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
14084 : }
14085 0 : ndr->flags = _flags_save_string;
14086 : }
14087 : {
14088 0 : libndr_flags _flags_save_string = ndr->flags;
14089 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14090 0 : if (r->driver_path) {
14091 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
14092 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
14093 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
14094 : }
14095 0 : ndr->flags = _flags_save_string;
14096 : }
14097 : {
14098 0 : libndr_flags _flags_save_string = ndr->flags;
14099 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14100 0 : if (r->data_file) {
14101 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
14102 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
14103 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
14104 : }
14105 0 : ndr->flags = _flags_save_string;
14106 : }
14107 : {
14108 0 : libndr_flags _flags_save_string = ndr->flags;
14109 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14110 0 : if (r->config_file) {
14111 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
14112 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
14113 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
14114 : }
14115 0 : ndr->flags = _flags_save_string;
14116 : }
14117 : {
14118 0 : libndr_flags _flags_save_string = ndr->flags;
14119 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14120 0 : if (r->help_file) {
14121 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
14122 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
14123 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
14124 : }
14125 0 : ndr->flags = _flags_save_string;
14126 : }
14127 : {
14128 0 : libndr_flags _flags_save_string_array = ndr->flags;
14129 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14130 0 : if (r->dependent_files) {
14131 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
14132 0 : NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
14133 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
14134 : }
14135 0 : ndr->flags = _flags_save_string_array;
14136 : }
14137 : {
14138 0 : libndr_flags _flags_save_string = ndr->flags;
14139 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14140 0 : if (r->monitor_name) {
14141 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
14142 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
14143 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
14144 : }
14145 0 : ndr->flags = _flags_save_string;
14146 : }
14147 : {
14148 0 : libndr_flags _flags_save_string = ndr->flags;
14149 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14150 0 : if (r->default_datatype) {
14151 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
14152 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
14153 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
14154 : }
14155 0 : ndr->flags = _flags_save_string;
14156 : }
14157 : {
14158 0 : libndr_flags _flags_save_string_array = ndr->flags;
14159 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14160 0 : if (r->previous_names) {
14161 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
14162 0 : NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
14163 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
14164 : }
14165 0 : ndr->flags = _flags_save_string_array;
14166 : }
14167 : {
14168 0 : libndr_flags _flags_save_string = ndr->flags;
14169 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14170 0 : if (r->manufacturer_name) {
14171 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
14172 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
14173 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
14174 : }
14175 0 : ndr->flags = _flags_save_string;
14176 : }
14177 : {
14178 0 : libndr_flags _flags_save_string = ndr->flags;
14179 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14180 0 : if (r->manufacturer_url) {
14181 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
14182 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
14183 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
14184 : }
14185 0 : ndr->flags = _flags_save_string;
14186 : }
14187 : {
14188 0 : libndr_flags _flags_save_string = ndr->flags;
14189 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14190 0 : if (r->hardware_id) {
14191 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
14192 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
14193 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
14194 : }
14195 0 : ndr->flags = _flags_save_string;
14196 : }
14197 : {
14198 0 : libndr_flags _flags_save_string = ndr->flags;
14199 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14200 0 : if (r->provider) {
14201 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
14202 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
14203 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
14204 : }
14205 0 : ndr->flags = _flags_save_string;
14206 : }
14207 : }
14208 0 : return NDR_ERR_SUCCESS;
14209 : }
14210 :
14211 4 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverInfo6 *r)
14212 : {
14213 4 : uint32_t _ptr_driver_name;
14214 4 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
14215 4 : uint32_t _ptr_architecture;
14216 4 : TALLOC_CTX *_mem_save_architecture_0 = NULL;
14217 4 : uint32_t _ptr_driver_path;
14218 4 : TALLOC_CTX *_mem_save_driver_path_0 = NULL;
14219 4 : uint32_t _ptr_data_file;
14220 4 : TALLOC_CTX *_mem_save_data_file_0 = NULL;
14221 4 : uint32_t _ptr_config_file;
14222 4 : TALLOC_CTX *_mem_save_config_file_0 = NULL;
14223 4 : uint32_t _ptr_help_file;
14224 4 : TALLOC_CTX *_mem_save_help_file_0 = NULL;
14225 4 : uint32_t _ptr_dependent_files;
14226 4 : TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
14227 4 : uint32_t _ptr_monitor_name;
14228 4 : TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
14229 4 : uint32_t _ptr_default_datatype;
14230 4 : TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
14231 4 : uint32_t _ptr_previous_names;
14232 4 : TALLOC_CTX *_mem_save_previous_names_0 = NULL;
14233 4 : uint32_t _ptr_manufacturer_name;
14234 4 : TALLOC_CTX *_mem_save_manufacturer_name_0 = NULL;
14235 4 : uint32_t _ptr_manufacturer_url;
14236 4 : TALLOC_CTX *_mem_save_manufacturer_url_0 = NULL;
14237 4 : uint32_t _ptr_hardware_id;
14238 4 : TALLOC_CTX *_mem_save_hardware_id_0 = NULL;
14239 4 : uint32_t _ptr_provider;
14240 4 : TALLOC_CTX *_mem_save_provider_0 = NULL;
14241 4 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
14242 4 : if (ndr_flags & NDR_SCALARS) {
14243 2 : NDR_CHECK(ndr_pull_align(ndr, 8));
14244 2 : NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
14245 : {
14246 2 : libndr_flags _flags_save_string = ndr->flags;
14247 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14248 2 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
14249 2 : if (_ptr_driver_name) {
14250 2 : NDR_PULL_ALLOC(ndr, r->driver_name);
14251 2 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
14252 : } else {
14253 0 : r->driver_name = NULL;
14254 : }
14255 2 : ndr->flags = _flags_save_string;
14256 : }
14257 : {
14258 2 : libndr_flags _flags_save_string = ndr->flags;
14259 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14260 2 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
14261 2 : if (_ptr_architecture) {
14262 2 : NDR_PULL_ALLOC(ndr, r->architecture);
14263 2 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
14264 : } else {
14265 0 : r->architecture = NULL;
14266 : }
14267 2 : ndr->flags = _flags_save_string;
14268 : }
14269 : {
14270 2 : libndr_flags _flags_save_string = ndr->flags;
14271 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14272 2 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
14273 2 : if (_ptr_driver_path) {
14274 2 : NDR_PULL_ALLOC(ndr, r->driver_path);
14275 2 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
14276 : } else {
14277 0 : r->driver_path = NULL;
14278 : }
14279 2 : ndr->flags = _flags_save_string;
14280 : }
14281 : {
14282 2 : libndr_flags _flags_save_string = ndr->flags;
14283 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14284 2 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
14285 2 : if (_ptr_data_file) {
14286 2 : NDR_PULL_ALLOC(ndr, r->data_file);
14287 2 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
14288 : } else {
14289 0 : r->data_file = NULL;
14290 : }
14291 2 : ndr->flags = _flags_save_string;
14292 : }
14293 : {
14294 2 : libndr_flags _flags_save_string = ndr->flags;
14295 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14296 2 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
14297 2 : if (_ptr_config_file) {
14298 2 : NDR_PULL_ALLOC(ndr, r->config_file);
14299 2 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
14300 : } else {
14301 0 : r->config_file = NULL;
14302 : }
14303 2 : ndr->flags = _flags_save_string;
14304 : }
14305 : {
14306 2 : libndr_flags _flags_save_string = ndr->flags;
14307 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14308 2 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
14309 2 : if (_ptr_help_file) {
14310 2 : NDR_PULL_ALLOC(ndr, r->help_file);
14311 2 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
14312 : } else {
14313 0 : r->help_file = NULL;
14314 : }
14315 2 : ndr->flags = _flags_save_string;
14316 : }
14317 : {
14318 2 : libndr_flags _flags_save_string_array = ndr->flags;
14319 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14320 2 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
14321 2 : if (_ptr_dependent_files) {
14322 2 : NDR_PULL_ALLOC(ndr, r->dependent_files);
14323 2 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
14324 : } else {
14325 0 : r->dependent_files = NULL;
14326 : }
14327 2 : ndr->flags = _flags_save_string_array;
14328 : }
14329 : {
14330 2 : libndr_flags _flags_save_string = ndr->flags;
14331 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14332 2 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
14333 2 : if (_ptr_monitor_name) {
14334 0 : NDR_PULL_ALLOC(ndr, r->monitor_name);
14335 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
14336 : } else {
14337 2 : r->monitor_name = NULL;
14338 : }
14339 2 : ndr->flags = _flags_save_string;
14340 : }
14341 : {
14342 2 : libndr_flags _flags_save_string = ndr->flags;
14343 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14344 2 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
14345 2 : if (_ptr_default_datatype) {
14346 0 : NDR_PULL_ALLOC(ndr, r->default_datatype);
14347 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
14348 : } else {
14349 2 : r->default_datatype = NULL;
14350 : }
14351 2 : ndr->flags = _flags_save_string;
14352 : }
14353 : {
14354 2 : libndr_flags _flags_save_string_array = ndr->flags;
14355 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14356 2 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
14357 2 : if (_ptr_previous_names) {
14358 0 : NDR_PULL_ALLOC(ndr, r->previous_names);
14359 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
14360 : } else {
14361 2 : r->previous_names = NULL;
14362 : }
14363 2 : ndr->flags = _flags_save_string_array;
14364 : }
14365 2 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
14366 2 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
14367 : {
14368 2 : libndr_flags _flags_save_string = ndr->flags;
14369 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14370 2 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
14371 2 : if (_ptr_manufacturer_name) {
14372 2 : NDR_PULL_ALLOC(ndr, r->manufacturer_name);
14373 2 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
14374 : } else {
14375 0 : r->manufacturer_name = NULL;
14376 : }
14377 2 : ndr->flags = _flags_save_string;
14378 : }
14379 : {
14380 2 : libndr_flags _flags_save_string = ndr->flags;
14381 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14382 2 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
14383 2 : if (_ptr_manufacturer_url) {
14384 2 : NDR_PULL_ALLOC(ndr, r->manufacturer_url);
14385 2 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
14386 : } else {
14387 0 : r->manufacturer_url = NULL;
14388 : }
14389 2 : ndr->flags = _flags_save_string;
14390 : }
14391 : {
14392 2 : libndr_flags _flags_save_string = ndr->flags;
14393 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14394 2 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
14395 2 : if (_ptr_hardware_id) {
14396 2 : NDR_PULL_ALLOC(ndr, r->hardware_id);
14397 2 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
14398 : } else {
14399 0 : r->hardware_id = NULL;
14400 : }
14401 2 : ndr->flags = _flags_save_string;
14402 : }
14403 : {
14404 2 : libndr_flags _flags_save_string = ndr->flags;
14405 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14406 2 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
14407 2 : if (_ptr_provider) {
14408 2 : NDR_PULL_ALLOC(ndr, r->provider);
14409 2 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
14410 : } else {
14411 0 : r->provider = NULL;
14412 : }
14413 2 : ndr->flags = _flags_save_string;
14414 : }
14415 2 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
14416 : }
14417 4 : if (ndr_flags & NDR_BUFFERS) {
14418 : {
14419 2 : libndr_flags _flags_save_string = ndr->flags;
14420 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14421 2 : if (r->driver_name) {
14422 2 : uint32_t _relative_save_offset;
14423 2 : _relative_save_offset = ndr->offset;
14424 2 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
14425 2 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14426 2 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
14427 2 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
14428 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
14429 2 : if (ndr->offset > ndr->relative_highest_offset) {
14430 2 : ndr->relative_highest_offset = ndr->offset;
14431 : }
14432 2 : ndr->offset = _relative_save_offset;
14433 : }
14434 2 : ndr->flags = _flags_save_string;
14435 : }
14436 : {
14437 2 : libndr_flags _flags_save_string = ndr->flags;
14438 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14439 2 : if (r->architecture) {
14440 2 : uint32_t _relative_save_offset;
14441 2 : _relative_save_offset = ndr->offset;
14442 2 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
14443 2 : _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
14444 2 : NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
14445 2 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
14446 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
14447 2 : if (ndr->offset > ndr->relative_highest_offset) {
14448 0 : ndr->relative_highest_offset = ndr->offset;
14449 : }
14450 2 : ndr->offset = _relative_save_offset;
14451 : }
14452 2 : ndr->flags = _flags_save_string;
14453 : }
14454 : {
14455 2 : libndr_flags _flags_save_string = ndr->flags;
14456 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14457 2 : if (r->driver_path) {
14458 2 : uint32_t _relative_save_offset;
14459 2 : _relative_save_offset = ndr->offset;
14460 2 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
14461 2 : _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
14462 2 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
14463 2 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
14464 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
14465 2 : if (ndr->offset > ndr->relative_highest_offset) {
14466 0 : ndr->relative_highest_offset = ndr->offset;
14467 : }
14468 2 : ndr->offset = _relative_save_offset;
14469 : }
14470 2 : ndr->flags = _flags_save_string;
14471 : }
14472 : {
14473 2 : libndr_flags _flags_save_string = ndr->flags;
14474 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14475 2 : if (r->data_file) {
14476 2 : uint32_t _relative_save_offset;
14477 2 : _relative_save_offset = ndr->offset;
14478 2 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
14479 2 : _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14480 2 : NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
14481 2 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
14482 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
14483 2 : if (ndr->offset > ndr->relative_highest_offset) {
14484 0 : ndr->relative_highest_offset = ndr->offset;
14485 : }
14486 2 : ndr->offset = _relative_save_offset;
14487 : }
14488 2 : ndr->flags = _flags_save_string;
14489 : }
14490 : {
14491 2 : libndr_flags _flags_save_string = ndr->flags;
14492 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14493 2 : if (r->config_file) {
14494 2 : uint32_t _relative_save_offset;
14495 2 : _relative_save_offset = ndr->offset;
14496 2 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
14497 2 : _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14498 2 : NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
14499 2 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
14500 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
14501 2 : if (ndr->offset > ndr->relative_highest_offset) {
14502 0 : ndr->relative_highest_offset = ndr->offset;
14503 : }
14504 2 : ndr->offset = _relative_save_offset;
14505 : }
14506 2 : ndr->flags = _flags_save_string;
14507 : }
14508 : {
14509 2 : libndr_flags _flags_save_string = ndr->flags;
14510 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14511 2 : if (r->help_file) {
14512 2 : uint32_t _relative_save_offset;
14513 2 : _relative_save_offset = ndr->offset;
14514 2 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
14515 2 : _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14516 2 : NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
14517 2 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
14518 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
14519 2 : if (ndr->offset > ndr->relative_highest_offset) {
14520 0 : ndr->relative_highest_offset = ndr->offset;
14521 : }
14522 2 : ndr->offset = _relative_save_offset;
14523 : }
14524 2 : ndr->flags = _flags_save_string;
14525 : }
14526 : {
14527 2 : libndr_flags _flags_save_string_array = ndr->flags;
14528 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14529 2 : if (r->dependent_files) {
14530 2 : uint32_t _relative_save_offset;
14531 2 : _relative_save_offset = ndr->offset;
14532 2 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
14533 2 : _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
14534 2 : NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
14535 2 : NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
14536 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
14537 2 : if (ndr->offset > ndr->relative_highest_offset) {
14538 0 : ndr->relative_highest_offset = ndr->offset;
14539 : }
14540 2 : ndr->offset = _relative_save_offset;
14541 : }
14542 2 : ndr->flags = _flags_save_string_array;
14543 : }
14544 : {
14545 2 : libndr_flags _flags_save_string = ndr->flags;
14546 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14547 2 : if (r->monitor_name) {
14548 0 : uint32_t _relative_save_offset;
14549 0 : _relative_save_offset = ndr->offset;
14550 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
14551 0 : _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14552 0 : NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
14553 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
14554 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
14555 0 : if (ndr->offset > ndr->relative_highest_offset) {
14556 0 : ndr->relative_highest_offset = ndr->offset;
14557 : }
14558 0 : ndr->offset = _relative_save_offset;
14559 : }
14560 2 : ndr->flags = _flags_save_string;
14561 : }
14562 : {
14563 2 : libndr_flags _flags_save_string = ndr->flags;
14564 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14565 2 : if (r->default_datatype) {
14566 0 : uint32_t _relative_save_offset;
14567 0 : _relative_save_offset = ndr->offset;
14568 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
14569 0 : _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14570 0 : NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
14571 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
14572 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
14573 0 : if (ndr->offset > ndr->relative_highest_offset) {
14574 0 : ndr->relative_highest_offset = ndr->offset;
14575 : }
14576 0 : ndr->offset = _relative_save_offset;
14577 : }
14578 2 : ndr->flags = _flags_save_string;
14579 : }
14580 : {
14581 2 : libndr_flags _flags_save_string_array = ndr->flags;
14582 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14583 2 : if (r->previous_names) {
14584 0 : uint32_t _relative_save_offset;
14585 0 : _relative_save_offset = ndr->offset;
14586 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
14587 0 : _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
14588 0 : NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
14589 0 : NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
14590 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
14591 0 : if (ndr->offset > ndr->relative_highest_offset) {
14592 0 : ndr->relative_highest_offset = ndr->offset;
14593 : }
14594 0 : ndr->offset = _relative_save_offset;
14595 : }
14596 2 : ndr->flags = _flags_save_string_array;
14597 : }
14598 : {
14599 2 : libndr_flags _flags_save_string = ndr->flags;
14600 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14601 2 : if (r->manufacturer_name) {
14602 2 : uint32_t _relative_save_offset;
14603 2 : _relative_save_offset = ndr->offset;
14604 2 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
14605 2 : _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14606 2 : NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
14607 2 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
14608 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
14609 2 : if (ndr->offset > ndr->relative_highest_offset) {
14610 0 : ndr->relative_highest_offset = ndr->offset;
14611 : }
14612 2 : ndr->offset = _relative_save_offset;
14613 : }
14614 2 : ndr->flags = _flags_save_string;
14615 : }
14616 : {
14617 2 : libndr_flags _flags_save_string = ndr->flags;
14618 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14619 2 : if (r->manufacturer_url) {
14620 2 : uint32_t _relative_save_offset;
14621 2 : _relative_save_offset = ndr->offset;
14622 2 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
14623 2 : _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
14624 2 : NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
14625 2 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
14626 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
14627 2 : if (ndr->offset > ndr->relative_highest_offset) {
14628 0 : ndr->relative_highest_offset = ndr->offset;
14629 : }
14630 2 : ndr->offset = _relative_save_offset;
14631 : }
14632 2 : ndr->flags = _flags_save_string;
14633 : }
14634 : {
14635 2 : libndr_flags _flags_save_string = ndr->flags;
14636 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14637 2 : if (r->hardware_id) {
14638 2 : uint32_t _relative_save_offset;
14639 2 : _relative_save_offset = ndr->offset;
14640 2 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
14641 2 : _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
14642 2 : NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
14643 2 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
14644 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
14645 2 : if (ndr->offset > ndr->relative_highest_offset) {
14646 0 : ndr->relative_highest_offset = ndr->offset;
14647 : }
14648 2 : ndr->offset = _relative_save_offset;
14649 : }
14650 2 : ndr->flags = _flags_save_string;
14651 : }
14652 : {
14653 2 : libndr_flags _flags_save_string = ndr->flags;
14654 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14655 2 : if (r->provider) {
14656 2 : uint32_t _relative_save_offset;
14657 2 : _relative_save_offset = ndr->offset;
14658 2 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
14659 2 : _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
14660 2 : NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
14661 2 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
14662 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
14663 2 : if (ndr->offset > ndr->relative_highest_offset) {
14664 0 : ndr->relative_highest_offset = ndr->offset;
14665 : }
14666 2 : ndr->offset = _relative_save_offset;
14667 : }
14668 2 : ndr->flags = _flags_save_string;
14669 : }
14670 : }
14671 0 : return NDR_ERR_SUCCESS;
14672 : }
14673 :
14674 0 : static void ndr_print_flags_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo6 *r)
14675 : {
14676 0 : ndr_print_spoolss_DriverInfo6(ndr, name, r);
14677 0 : }
14678 :
14679 2 : _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
14680 : {
14681 2 : ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
14682 2 : if (r == NULL) { ndr_print_null(ndr); return; }
14683 2 : ndr->depth++;
14684 2 : ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14685 : {
14686 2 : libndr_flags _flags_save_string = ndr->flags;
14687 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14688 2 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
14689 2 : ndr->depth++;
14690 2 : if (r->driver_name) {
14691 2 : ndr_print_string(ndr, "driver_name", r->driver_name);
14692 : }
14693 2 : ndr->depth--;
14694 2 : ndr->flags = _flags_save_string;
14695 : }
14696 : {
14697 2 : libndr_flags _flags_save_string = ndr->flags;
14698 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14699 2 : ndr_print_ptr(ndr, "architecture", r->architecture);
14700 2 : ndr->depth++;
14701 2 : if (r->architecture) {
14702 2 : ndr_print_string(ndr, "architecture", r->architecture);
14703 : }
14704 2 : ndr->depth--;
14705 2 : ndr->flags = _flags_save_string;
14706 : }
14707 : {
14708 2 : libndr_flags _flags_save_string = ndr->flags;
14709 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14710 2 : ndr_print_ptr(ndr, "driver_path", r->driver_path);
14711 2 : ndr->depth++;
14712 2 : if (r->driver_path) {
14713 2 : ndr_print_string(ndr, "driver_path", r->driver_path);
14714 : }
14715 2 : ndr->depth--;
14716 2 : ndr->flags = _flags_save_string;
14717 : }
14718 : {
14719 2 : libndr_flags _flags_save_string = ndr->flags;
14720 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14721 2 : ndr_print_ptr(ndr, "data_file", r->data_file);
14722 2 : ndr->depth++;
14723 2 : if (r->data_file) {
14724 2 : ndr_print_string(ndr, "data_file", r->data_file);
14725 : }
14726 2 : ndr->depth--;
14727 2 : ndr->flags = _flags_save_string;
14728 : }
14729 : {
14730 2 : libndr_flags _flags_save_string = ndr->flags;
14731 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14732 2 : ndr_print_ptr(ndr, "config_file", r->config_file);
14733 2 : ndr->depth++;
14734 2 : if (r->config_file) {
14735 2 : ndr_print_string(ndr, "config_file", r->config_file);
14736 : }
14737 2 : ndr->depth--;
14738 2 : ndr->flags = _flags_save_string;
14739 : }
14740 : {
14741 2 : libndr_flags _flags_save_string = ndr->flags;
14742 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14743 2 : ndr_print_ptr(ndr, "help_file", r->help_file);
14744 2 : ndr->depth++;
14745 2 : if (r->help_file) {
14746 2 : ndr_print_string(ndr, "help_file", r->help_file);
14747 : }
14748 2 : ndr->depth--;
14749 2 : ndr->flags = _flags_save_string;
14750 : }
14751 : {
14752 2 : libndr_flags _flags_save_string_array = ndr->flags;
14753 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14754 2 : ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
14755 2 : ndr->depth++;
14756 2 : if (r->dependent_files) {
14757 2 : ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
14758 : }
14759 2 : ndr->depth--;
14760 2 : ndr->flags = _flags_save_string_array;
14761 : }
14762 : {
14763 2 : libndr_flags _flags_save_string = ndr->flags;
14764 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14765 2 : ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14766 2 : ndr->depth++;
14767 2 : if (r->monitor_name) {
14768 0 : ndr_print_string(ndr, "monitor_name", r->monitor_name);
14769 : }
14770 2 : ndr->depth--;
14771 2 : ndr->flags = _flags_save_string;
14772 : }
14773 : {
14774 2 : libndr_flags _flags_save_string = ndr->flags;
14775 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14776 2 : ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14777 2 : ndr->depth++;
14778 2 : if (r->default_datatype) {
14779 0 : ndr_print_string(ndr, "default_datatype", r->default_datatype);
14780 : }
14781 2 : ndr->depth--;
14782 2 : ndr->flags = _flags_save_string;
14783 : }
14784 : {
14785 2 : libndr_flags _flags_save_string_array = ndr->flags;
14786 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14787 2 : ndr_print_ptr(ndr, "previous_names", r->previous_names);
14788 2 : ndr->depth++;
14789 2 : if (r->previous_names) {
14790 0 : ndr_print_string_array(ndr, "previous_names", r->previous_names);
14791 : }
14792 2 : ndr->depth--;
14793 2 : ndr->flags = _flags_save_string_array;
14794 : }
14795 2 : ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14796 2 : ndr_print_hyper(ndr, "driver_version", r->driver_version);
14797 : {
14798 2 : libndr_flags _flags_save_string = ndr->flags;
14799 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14800 2 : ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14801 2 : ndr->depth++;
14802 2 : if (r->manufacturer_name) {
14803 2 : ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14804 : }
14805 2 : ndr->depth--;
14806 2 : ndr->flags = _flags_save_string;
14807 : }
14808 : {
14809 2 : libndr_flags _flags_save_string = ndr->flags;
14810 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14811 2 : ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14812 2 : ndr->depth++;
14813 2 : if (r->manufacturer_url) {
14814 2 : ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14815 : }
14816 2 : ndr->depth--;
14817 2 : ndr->flags = _flags_save_string;
14818 : }
14819 : {
14820 2 : libndr_flags _flags_save_string = ndr->flags;
14821 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14822 2 : ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14823 2 : ndr->depth++;
14824 2 : if (r->hardware_id) {
14825 2 : ndr_print_string(ndr, "hardware_id", r->hardware_id);
14826 : }
14827 2 : ndr->depth--;
14828 2 : ndr->flags = _flags_save_string;
14829 : }
14830 : {
14831 2 : libndr_flags _flags_save_string = ndr->flags;
14832 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14833 2 : ndr_print_ptr(ndr, "provider", r->provider);
14834 2 : ndr->depth++;
14835 2 : if (r->provider) {
14836 2 : ndr_print_string(ndr, "provider", r->provider);
14837 : }
14838 2 : ndr->depth--;
14839 2 : ndr->flags = _flags_save_string;
14840 : }
14841 2 : ndr->depth--;
14842 : }
14843 :
14844 0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, libndr_flags flags)
14845 : {
14846 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6);
14847 : }
14848 :
14849 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo7(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverInfo7 *r)
14850 : {
14851 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
14852 0 : if (ndr_flags & NDR_SCALARS) {
14853 0 : NDR_CHECK(ndr_push_align(ndr, 5));
14854 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
14855 0 : NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
14856 : {
14857 0 : libndr_flags _flags_save_string = ndr->flags;
14858 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14859 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
14860 0 : ndr->flags = _flags_save_string;
14861 : }
14862 : {
14863 0 : libndr_flags _flags_save_string = ndr->flags;
14864 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14865 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_name));
14866 0 : ndr->flags = _flags_save_string;
14867 : }
14868 : {
14869 0 : libndr_flags _flags_save_string = ndr->flags;
14870 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14871 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->install_source_root));
14872 0 : ndr->flags = _flags_save_string;
14873 : }
14874 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14875 : }
14876 0 : if (ndr_flags & NDR_BUFFERS) {
14877 : {
14878 0 : libndr_flags _flags_save_string = ndr->flags;
14879 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14880 0 : if (r->driver_name) {
14881 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
14882 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
14883 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
14884 : }
14885 0 : ndr->flags = _flags_save_string;
14886 : }
14887 : {
14888 0 : libndr_flags _flags_save_string = ndr->flags;
14889 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14890 0 : if (r->inf_name) {
14891 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_name));
14892 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_name));
14893 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_name));
14894 : }
14895 0 : ndr->flags = _flags_save_string;
14896 : }
14897 : {
14898 0 : libndr_flags _flags_save_string = ndr->flags;
14899 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14900 0 : if (r->install_source_root) {
14901 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->install_source_root));
14902 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->install_source_root));
14903 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->install_source_root));
14904 : }
14905 0 : ndr->flags = _flags_save_string;
14906 : }
14907 : }
14908 0 : return NDR_ERR_SUCCESS;
14909 : }
14910 :
14911 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo7(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverInfo7 *r)
14912 : {
14913 0 : uint32_t _ptr_driver_name;
14914 0 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
14915 0 : uint32_t _ptr_inf_name;
14916 0 : TALLOC_CTX *_mem_save_inf_name_0 = NULL;
14917 0 : uint32_t _ptr_install_source_root;
14918 0 : TALLOC_CTX *_mem_save_install_source_root_0 = NULL;
14919 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
14920 0 : if (ndr_flags & NDR_SCALARS) {
14921 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
14922 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14923 0 : NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
14924 : {
14925 0 : libndr_flags _flags_save_string = ndr->flags;
14926 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14927 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
14928 0 : if (_ptr_driver_name) {
14929 0 : NDR_PULL_ALLOC(ndr, r->driver_name);
14930 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
14931 : } else {
14932 0 : r->driver_name = NULL;
14933 : }
14934 0 : ndr->flags = _flags_save_string;
14935 : }
14936 : {
14937 0 : libndr_flags _flags_save_string = ndr->flags;
14938 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14939 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_name));
14940 0 : if (_ptr_inf_name) {
14941 0 : NDR_PULL_ALLOC(ndr, r->inf_name);
14942 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_name, _ptr_inf_name));
14943 : } else {
14944 0 : r->inf_name = NULL;
14945 : }
14946 0 : ndr->flags = _flags_save_string;
14947 : }
14948 : {
14949 0 : libndr_flags _flags_save_string = ndr->flags;
14950 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14951 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_install_source_root));
14952 0 : if (_ptr_install_source_root) {
14953 0 : NDR_PULL_ALLOC(ndr, r->install_source_root);
14954 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->install_source_root, _ptr_install_source_root));
14955 : } else {
14956 0 : r->install_source_root = NULL;
14957 : }
14958 0 : ndr->flags = _flags_save_string;
14959 : }
14960 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14961 : }
14962 0 : if (ndr_flags & NDR_BUFFERS) {
14963 : {
14964 0 : libndr_flags _flags_save_string = ndr->flags;
14965 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14966 0 : if (r->driver_name) {
14967 0 : uint32_t _relative_save_offset;
14968 0 : _relative_save_offset = ndr->offset;
14969 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
14970 0 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14971 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
14972 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
14973 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
14974 0 : if (ndr->offset > ndr->relative_highest_offset) {
14975 0 : ndr->relative_highest_offset = ndr->offset;
14976 : }
14977 0 : ndr->offset = _relative_save_offset;
14978 : }
14979 0 : ndr->flags = _flags_save_string;
14980 : }
14981 : {
14982 0 : libndr_flags _flags_save_string = ndr->flags;
14983 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14984 0 : if (r->inf_name) {
14985 0 : uint32_t _relative_save_offset;
14986 0 : _relative_save_offset = ndr->offset;
14987 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_name));
14988 0 : _mem_save_inf_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14989 0 : NDR_PULL_SET_MEM_CTX(ndr, r->inf_name, 0);
14990 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_name));
14991 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_name_0, 0);
14992 0 : if (ndr->offset > ndr->relative_highest_offset) {
14993 0 : ndr->relative_highest_offset = ndr->offset;
14994 : }
14995 0 : ndr->offset = _relative_save_offset;
14996 : }
14997 0 : ndr->flags = _flags_save_string;
14998 : }
14999 : {
15000 0 : libndr_flags _flags_save_string = ndr->flags;
15001 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15002 0 : if (r->install_source_root) {
15003 0 : uint32_t _relative_save_offset;
15004 0 : _relative_save_offset = ndr->offset;
15005 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->install_source_root));
15006 0 : _mem_save_install_source_root_0 = NDR_PULL_GET_MEM_CTX(ndr);
15007 0 : NDR_PULL_SET_MEM_CTX(ndr, r->install_source_root, 0);
15008 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->install_source_root));
15009 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_install_source_root_0, 0);
15010 0 : if (ndr->offset > ndr->relative_highest_offset) {
15011 0 : ndr->relative_highest_offset = ndr->offset;
15012 : }
15013 0 : ndr->offset = _relative_save_offset;
15014 : }
15015 0 : ndr->flags = _flags_save_string;
15016 : }
15017 : }
15018 0 : return NDR_ERR_SUCCESS;
15019 : }
15020 :
15021 0 : static void ndr_print_flags_spoolss_DriverInfo7(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo7 *r)
15022 : {
15023 0 : ndr_print_spoolss_DriverInfo7(ndr, name, r);
15024 0 : }
15025 :
15026 0 : _PUBLIC_ void ndr_print_spoolss_DriverInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo7 *r)
15027 : {
15028 0 : ndr_print_struct(ndr, name, "spoolss_DriverInfo7");
15029 0 : if (r == NULL) { ndr_print_null(ndr); return; }
15030 0 : ndr->depth++;
15031 0 : ndr_print_uint32(ndr, "size", r->size);
15032 0 : ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
15033 : {
15034 0 : libndr_flags _flags_save_string = ndr->flags;
15035 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15036 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
15037 0 : ndr->depth++;
15038 0 : if (r->driver_name) {
15039 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
15040 : }
15041 0 : ndr->depth--;
15042 0 : ndr->flags = _flags_save_string;
15043 : }
15044 : {
15045 0 : libndr_flags _flags_save_string = ndr->flags;
15046 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15047 0 : ndr_print_ptr(ndr, "inf_name", r->inf_name);
15048 0 : ndr->depth++;
15049 0 : if (r->inf_name) {
15050 0 : ndr_print_string(ndr, "inf_name", r->inf_name);
15051 : }
15052 0 : ndr->depth--;
15053 0 : ndr->flags = _flags_save_string;
15054 : }
15055 : {
15056 0 : libndr_flags _flags_save_string = ndr->flags;
15057 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15058 0 : ndr_print_ptr(ndr, "install_source_root", r->install_source_root);
15059 0 : ndr->depth++;
15060 0 : if (r->install_source_root) {
15061 0 : ndr_print_string(ndr, "install_source_root", r->install_source_root);
15062 : }
15063 0 : ndr->depth--;
15064 0 : ndr->flags = _flags_save_string;
15065 : }
15066 0 : ndr->depth--;
15067 : }
15068 :
15069 0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo7(const struct spoolss_DriverInfo7 *r, libndr_flags flags)
15070 : {
15071 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo7);
15072 : }
15073 :
15074 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverInfo8 *r)
15075 : {
15076 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
15077 0 : if (ndr_flags & NDR_SCALARS) {
15078 0 : NDR_CHECK(ndr_push_align(ndr, 8));
15079 0 : NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
15080 : {
15081 0 : libndr_flags _flags_save_string = ndr->flags;
15082 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15083 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
15084 0 : ndr->flags = _flags_save_string;
15085 : }
15086 : {
15087 0 : libndr_flags _flags_save_string = ndr->flags;
15088 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15089 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
15090 0 : ndr->flags = _flags_save_string;
15091 : }
15092 : {
15093 0 : libndr_flags _flags_save_string = ndr->flags;
15094 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15095 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
15096 0 : ndr->flags = _flags_save_string;
15097 : }
15098 : {
15099 0 : libndr_flags _flags_save_string = ndr->flags;
15100 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15101 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
15102 0 : ndr->flags = _flags_save_string;
15103 : }
15104 : {
15105 0 : libndr_flags _flags_save_string = ndr->flags;
15106 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15107 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
15108 0 : ndr->flags = _flags_save_string;
15109 : }
15110 : {
15111 0 : libndr_flags _flags_save_string = ndr->flags;
15112 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15113 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
15114 0 : ndr->flags = _flags_save_string;
15115 : }
15116 : {
15117 0 : libndr_flags _flags_save_string_array = ndr->flags;
15118 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15119 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
15120 0 : ndr->flags = _flags_save_string_array;
15121 : }
15122 : {
15123 0 : libndr_flags _flags_save_string = ndr->flags;
15124 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15125 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
15126 0 : ndr->flags = _flags_save_string;
15127 : }
15128 : {
15129 0 : libndr_flags _flags_save_string = ndr->flags;
15130 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15131 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
15132 0 : ndr->flags = _flags_save_string;
15133 : }
15134 : {
15135 0 : libndr_flags _flags_save_string_array = ndr->flags;
15136 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15137 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
15138 0 : ndr->flags = _flags_save_string_array;
15139 : }
15140 0 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
15141 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
15142 : {
15143 0 : libndr_flags _flags_save_string = ndr->flags;
15144 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15145 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
15146 0 : ndr->flags = _flags_save_string;
15147 : }
15148 : {
15149 0 : libndr_flags _flags_save_string = ndr->flags;
15150 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15151 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
15152 0 : ndr->flags = _flags_save_string;
15153 : }
15154 : {
15155 0 : libndr_flags _flags_save_string = ndr->flags;
15156 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15157 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
15158 0 : ndr->flags = _flags_save_string;
15159 : }
15160 : {
15161 0 : libndr_flags _flags_save_string = ndr->flags;
15162 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15163 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
15164 0 : ndr->flags = _flags_save_string;
15165 : }
15166 : {
15167 0 : libndr_flags _flags_save_string = ndr->flags;
15168 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15169 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
15170 0 : ndr->flags = _flags_save_string;
15171 : }
15172 : {
15173 0 : libndr_flags _flags_save_string = ndr->flags;
15174 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15175 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
15176 0 : ndr->flags = _flags_save_string;
15177 : }
15178 : {
15179 0 : libndr_flags _flags_save_string_array = ndr->flags;
15180 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15181 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
15182 0 : ndr->flags = _flags_save_string_array;
15183 : }
15184 : {
15185 0 : libndr_flags _flags_save_string = ndr->flags;
15186 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15187 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
15188 0 : ndr->flags = _flags_save_string;
15189 : }
15190 0 : NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->printer_driver_attributes));
15191 : {
15192 0 : libndr_flags _flags_save_string_array = ndr->flags;
15193 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15194 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
15195 0 : ndr->flags = _flags_save_string_array;
15196 : }
15197 0 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
15198 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
15199 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
15200 : }
15201 0 : if (ndr_flags & NDR_BUFFERS) {
15202 : {
15203 0 : libndr_flags _flags_save_string = ndr->flags;
15204 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15205 0 : if (r->driver_name) {
15206 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
15207 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
15208 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
15209 : }
15210 0 : ndr->flags = _flags_save_string;
15211 : }
15212 : {
15213 0 : libndr_flags _flags_save_string = ndr->flags;
15214 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15215 0 : if (r->architecture) {
15216 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
15217 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
15218 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
15219 : }
15220 0 : ndr->flags = _flags_save_string;
15221 : }
15222 : {
15223 0 : libndr_flags _flags_save_string = ndr->flags;
15224 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15225 0 : if (r->driver_path) {
15226 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
15227 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
15228 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
15229 : }
15230 0 : ndr->flags = _flags_save_string;
15231 : }
15232 : {
15233 0 : libndr_flags _flags_save_string = ndr->flags;
15234 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15235 0 : if (r->data_file) {
15236 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
15237 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
15238 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
15239 : }
15240 0 : ndr->flags = _flags_save_string;
15241 : }
15242 : {
15243 0 : libndr_flags _flags_save_string = ndr->flags;
15244 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15245 0 : if (r->config_file) {
15246 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
15247 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
15248 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
15249 : }
15250 0 : ndr->flags = _flags_save_string;
15251 : }
15252 : {
15253 0 : libndr_flags _flags_save_string = ndr->flags;
15254 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15255 0 : if (r->help_file) {
15256 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
15257 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
15258 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
15259 : }
15260 0 : ndr->flags = _flags_save_string;
15261 : }
15262 : {
15263 0 : libndr_flags _flags_save_string_array = ndr->flags;
15264 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15265 0 : if (r->dependent_files) {
15266 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
15267 0 : NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
15268 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
15269 : }
15270 0 : ndr->flags = _flags_save_string_array;
15271 : }
15272 : {
15273 0 : libndr_flags _flags_save_string = ndr->flags;
15274 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15275 0 : if (r->monitor_name) {
15276 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
15277 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
15278 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
15279 : }
15280 0 : ndr->flags = _flags_save_string;
15281 : }
15282 : {
15283 0 : libndr_flags _flags_save_string = ndr->flags;
15284 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15285 0 : if (r->default_datatype) {
15286 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
15287 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
15288 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
15289 : }
15290 0 : ndr->flags = _flags_save_string;
15291 : }
15292 : {
15293 0 : libndr_flags _flags_save_string_array = ndr->flags;
15294 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15295 0 : if (r->previous_names) {
15296 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
15297 0 : NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
15298 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
15299 : }
15300 0 : ndr->flags = _flags_save_string_array;
15301 : }
15302 : {
15303 0 : libndr_flags _flags_save_string = ndr->flags;
15304 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15305 0 : if (r->manufacturer_name) {
15306 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
15307 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
15308 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
15309 : }
15310 0 : ndr->flags = _flags_save_string;
15311 : }
15312 : {
15313 0 : libndr_flags _flags_save_string = ndr->flags;
15314 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15315 0 : if (r->manufacturer_url) {
15316 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
15317 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
15318 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
15319 : }
15320 0 : ndr->flags = _flags_save_string;
15321 : }
15322 : {
15323 0 : libndr_flags _flags_save_string = ndr->flags;
15324 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15325 0 : if (r->hardware_id) {
15326 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
15327 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
15328 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
15329 : }
15330 0 : ndr->flags = _flags_save_string;
15331 : }
15332 : {
15333 0 : libndr_flags _flags_save_string = ndr->flags;
15334 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15335 0 : if (r->provider) {
15336 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
15337 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
15338 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
15339 : }
15340 0 : ndr->flags = _flags_save_string;
15341 : }
15342 : {
15343 0 : libndr_flags _flags_save_string = ndr->flags;
15344 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15345 0 : if (r->print_processor) {
15346 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
15347 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
15348 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
15349 : }
15350 0 : ndr->flags = _flags_save_string;
15351 : }
15352 : {
15353 0 : libndr_flags _flags_save_string = ndr->flags;
15354 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15355 0 : if (r->vendor_setup) {
15356 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->vendor_setup));
15357 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
15358 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->vendor_setup));
15359 : }
15360 0 : ndr->flags = _flags_save_string;
15361 : }
15362 : {
15363 0 : libndr_flags _flags_save_string_array = ndr->flags;
15364 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15365 0 : if (r->color_profiles) {
15366 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->color_profiles));
15367 0 : NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
15368 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->color_profiles));
15369 : }
15370 0 : ndr->flags = _flags_save_string_array;
15371 : }
15372 : {
15373 0 : libndr_flags _flags_save_string = ndr->flags;
15374 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15375 0 : if (r->inf_path) {
15376 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_path));
15377 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
15378 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_path));
15379 : }
15380 0 : ndr->flags = _flags_save_string;
15381 : }
15382 : {
15383 0 : libndr_flags _flags_save_string_array = ndr->flags;
15384 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15385 0 : if (r->core_driver_dependencies) {
15386 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->core_driver_dependencies));
15387 0 : NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
15388 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->core_driver_dependencies));
15389 : }
15390 0 : ndr->flags = _flags_save_string_array;
15391 : }
15392 : }
15393 0 : return NDR_ERR_SUCCESS;
15394 : }
15395 :
15396 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverInfo8 *r)
15397 : {
15398 0 : uint32_t _ptr_driver_name;
15399 0 : TALLOC_CTX *_mem_save_driver_name_0 = NULL;
15400 0 : uint32_t _ptr_architecture;
15401 0 : TALLOC_CTX *_mem_save_architecture_0 = NULL;
15402 0 : uint32_t _ptr_driver_path;
15403 0 : TALLOC_CTX *_mem_save_driver_path_0 = NULL;
15404 0 : uint32_t _ptr_data_file;
15405 0 : TALLOC_CTX *_mem_save_data_file_0 = NULL;
15406 0 : uint32_t _ptr_config_file;
15407 0 : TALLOC_CTX *_mem_save_config_file_0 = NULL;
15408 0 : uint32_t _ptr_help_file;
15409 0 : TALLOC_CTX *_mem_save_help_file_0 = NULL;
15410 0 : uint32_t _ptr_dependent_files;
15411 0 : TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
15412 0 : uint32_t _ptr_monitor_name;
15413 0 : TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
15414 0 : uint32_t _ptr_default_datatype;
15415 0 : TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
15416 0 : uint32_t _ptr_previous_names;
15417 0 : TALLOC_CTX *_mem_save_previous_names_0 = NULL;
15418 0 : uint32_t _ptr_manufacturer_name;
15419 0 : TALLOC_CTX *_mem_save_manufacturer_name_0 = NULL;
15420 0 : uint32_t _ptr_manufacturer_url;
15421 0 : TALLOC_CTX *_mem_save_manufacturer_url_0 = NULL;
15422 0 : uint32_t _ptr_hardware_id;
15423 0 : TALLOC_CTX *_mem_save_hardware_id_0 = NULL;
15424 0 : uint32_t _ptr_provider;
15425 0 : TALLOC_CTX *_mem_save_provider_0 = NULL;
15426 0 : uint32_t _ptr_print_processor;
15427 0 : TALLOC_CTX *_mem_save_print_processor_0 = NULL;
15428 0 : uint32_t _ptr_vendor_setup;
15429 0 : TALLOC_CTX *_mem_save_vendor_setup_0 = NULL;
15430 0 : uint32_t _ptr_color_profiles;
15431 0 : TALLOC_CTX *_mem_save_color_profiles_0 = NULL;
15432 0 : uint32_t _ptr_inf_path;
15433 0 : TALLOC_CTX *_mem_save_inf_path_0 = NULL;
15434 0 : uint32_t _ptr_core_driver_dependencies;
15435 0 : TALLOC_CTX *_mem_save_core_driver_dependencies_0 = NULL;
15436 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
15437 0 : if (ndr_flags & NDR_SCALARS) {
15438 0 : NDR_CHECK(ndr_pull_align(ndr, 8));
15439 0 : NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
15440 : {
15441 0 : libndr_flags _flags_save_string = ndr->flags;
15442 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15443 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
15444 0 : if (_ptr_driver_name) {
15445 0 : NDR_PULL_ALLOC(ndr, r->driver_name);
15446 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
15447 : } else {
15448 0 : r->driver_name = NULL;
15449 : }
15450 0 : ndr->flags = _flags_save_string;
15451 : }
15452 : {
15453 0 : libndr_flags _flags_save_string = ndr->flags;
15454 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15455 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
15456 0 : if (_ptr_architecture) {
15457 0 : NDR_PULL_ALLOC(ndr, r->architecture);
15458 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
15459 : } else {
15460 0 : r->architecture = NULL;
15461 : }
15462 0 : ndr->flags = _flags_save_string;
15463 : }
15464 : {
15465 0 : libndr_flags _flags_save_string = ndr->flags;
15466 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15467 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
15468 0 : if (_ptr_driver_path) {
15469 0 : NDR_PULL_ALLOC(ndr, r->driver_path);
15470 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
15471 : } else {
15472 0 : r->driver_path = NULL;
15473 : }
15474 0 : ndr->flags = _flags_save_string;
15475 : }
15476 : {
15477 0 : libndr_flags _flags_save_string = ndr->flags;
15478 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15479 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
15480 0 : if (_ptr_data_file) {
15481 0 : NDR_PULL_ALLOC(ndr, r->data_file);
15482 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
15483 : } else {
15484 0 : r->data_file = NULL;
15485 : }
15486 0 : ndr->flags = _flags_save_string;
15487 : }
15488 : {
15489 0 : libndr_flags _flags_save_string = ndr->flags;
15490 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15491 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
15492 0 : if (_ptr_config_file) {
15493 0 : NDR_PULL_ALLOC(ndr, r->config_file);
15494 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
15495 : } else {
15496 0 : r->config_file = NULL;
15497 : }
15498 0 : ndr->flags = _flags_save_string;
15499 : }
15500 : {
15501 0 : libndr_flags _flags_save_string = ndr->flags;
15502 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15503 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
15504 0 : if (_ptr_help_file) {
15505 0 : NDR_PULL_ALLOC(ndr, r->help_file);
15506 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
15507 : } else {
15508 0 : r->help_file = NULL;
15509 : }
15510 0 : ndr->flags = _flags_save_string;
15511 : }
15512 : {
15513 0 : libndr_flags _flags_save_string_array = ndr->flags;
15514 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15515 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
15516 0 : if (_ptr_dependent_files) {
15517 0 : NDR_PULL_ALLOC(ndr, r->dependent_files);
15518 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
15519 : } else {
15520 0 : r->dependent_files = NULL;
15521 : }
15522 0 : ndr->flags = _flags_save_string_array;
15523 : }
15524 : {
15525 0 : libndr_flags _flags_save_string = ndr->flags;
15526 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15527 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
15528 0 : if (_ptr_monitor_name) {
15529 0 : NDR_PULL_ALLOC(ndr, r->monitor_name);
15530 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
15531 : } else {
15532 0 : r->monitor_name = NULL;
15533 : }
15534 0 : ndr->flags = _flags_save_string;
15535 : }
15536 : {
15537 0 : libndr_flags _flags_save_string = ndr->flags;
15538 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15539 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
15540 0 : if (_ptr_default_datatype) {
15541 0 : NDR_PULL_ALLOC(ndr, r->default_datatype);
15542 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
15543 : } else {
15544 0 : r->default_datatype = NULL;
15545 : }
15546 0 : ndr->flags = _flags_save_string;
15547 : }
15548 : {
15549 0 : libndr_flags _flags_save_string_array = ndr->flags;
15550 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15551 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
15552 0 : if (_ptr_previous_names) {
15553 0 : NDR_PULL_ALLOC(ndr, r->previous_names);
15554 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
15555 : } else {
15556 0 : r->previous_names = NULL;
15557 : }
15558 0 : ndr->flags = _flags_save_string_array;
15559 : }
15560 0 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
15561 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
15562 : {
15563 0 : libndr_flags _flags_save_string = ndr->flags;
15564 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15565 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
15566 0 : if (_ptr_manufacturer_name) {
15567 0 : NDR_PULL_ALLOC(ndr, r->manufacturer_name);
15568 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
15569 : } else {
15570 0 : r->manufacturer_name = NULL;
15571 : }
15572 0 : ndr->flags = _flags_save_string;
15573 : }
15574 : {
15575 0 : libndr_flags _flags_save_string = ndr->flags;
15576 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15577 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
15578 0 : if (_ptr_manufacturer_url) {
15579 0 : NDR_PULL_ALLOC(ndr, r->manufacturer_url);
15580 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
15581 : } else {
15582 0 : r->manufacturer_url = NULL;
15583 : }
15584 0 : ndr->flags = _flags_save_string;
15585 : }
15586 : {
15587 0 : libndr_flags _flags_save_string = ndr->flags;
15588 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15589 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
15590 0 : if (_ptr_hardware_id) {
15591 0 : NDR_PULL_ALLOC(ndr, r->hardware_id);
15592 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
15593 : } else {
15594 0 : r->hardware_id = NULL;
15595 : }
15596 0 : ndr->flags = _flags_save_string;
15597 : }
15598 : {
15599 0 : libndr_flags _flags_save_string = ndr->flags;
15600 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15601 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
15602 0 : if (_ptr_provider) {
15603 0 : NDR_PULL_ALLOC(ndr, r->provider);
15604 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
15605 : } else {
15606 0 : r->provider = NULL;
15607 : }
15608 0 : ndr->flags = _flags_save_string;
15609 : }
15610 : {
15611 0 : libndr_flags _flags_save_string = ndr->flags;
15612 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15613 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
15614 0 : if (_ptr_print_processor) {
15615 0 : NDR_PULL_ALLOC(ndr, r->print_processor);
15616 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
15617 : } else {
15618 0 : r->print_processor = NULL;
15619 : }
15620 0 : ndr->flags = _flags_save_string;
15621 : }
15622 : {
15623 0 : libndr_flags _flags_save_string = ndr->flags;
15624 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15625 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
15626 0 : if (_ptr_vendor_setup) {
15627 0 : NDR_PULL_ALLOC(ndr, r->vendor_setup);
15628 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
15629 : } else {
15630 0 : r->vendor_setup = NULL;
15631 : }
15632 0 : ndr->flags = _flags_save_string;
15633 : }
15634 : {
15635 0 : libndr_flags _flags_save_string_array = ndr->flags;
15636 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15637 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
15638 0 : if (_ptr_color_profiles) {
15639 0 : NDR_PULL_ALLOC(ndr, r->color_profiles);
15640 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
15641 : } else {
15642 0 : r->color_profiles = NULL;
15643 : }
15644 0 : ndr->flags = _flags_save_string_array;
15645 : }
15646 : {
15647 0 : libndr_flags _flags_save_string = ndr->flags;
15648 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15649 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
15650 0 : if (_ptr_inf_path) {
15651 0 : NDR_PULL_ALLOC(ndr, r->inf_path);
15652 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
15653 : } else {
15654 0 : r->inf_path = NULL;
15655 : }
15656 0 : ndr->flags = _flags_save_string;
15657 : }
15658 0 : NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->printer_driver_attributes));
15659 : {
15660 0 : libndr_flags _flags_save_string_array = ndr->flags;
15661 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15662 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
15663 0 : if (_ptr_core_driver_dependencies) {
15664 0 : NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
15665 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
15666 : } else {
15667 0 : r->core_driver_dependencies = NULL;
15668 : }
15669 0 : ndr->flags = _flags_save_string_array;
15670 : }
15671 0 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
15672 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
15673 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
15674 : }
15675 0 : if (ndr_flags & NDR_BUFFERS) {
15676 : {
15677 0 : libndr_flags _flags_save_string = ndr->flags;
15678 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15679 0 : if (r->driver_name) {
15680 0 : uint32_t _relative_save_offset;
15681 0 : _relative_save_offset = ndr->offset;
15682 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
15683 0 : _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15684 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
15685 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
15686 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
15687 0 : if (ndr->offset > ndr->relative_highest_offset) {
15688 0 : ndr->relative_highest_offset = ndr->offset;
15689 : }
15690 0 : ndr->offset = _relative_save_offset;
15691 : }
15692 0 : ndr->flags = _flags_save_string;
15693 : }
15694 : {
15695 0 : libndr_flags _flags_save_string = ndr->flags;
15696 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15697 0 : if (r->architecture) {
15698 0 : uint32_t _relative_save_offset;
15699 0 : _relative_save_offset = ndr->offset;
15700 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
15701 0 : _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
15702 0 : NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
15703 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
15704 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
15705 0 : if (ndr->offset > ndr->relative_highest_offset) {
15706 0 : ndr->relative_highest_offset = ndr->offset;
15707 : }
15708 0 : ndr->offset = _relative_save_offset;
15709 : }
15710 0 : ndr->flags = _flags_save_string;
15711 : }
15712 : {
15713 0 : libndr_flags _flags_save_string = ndr->flags;
15714 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15715 0 : if (r->driver_path) {
15716 0 : uint32_t _relative_save_offset;
15717 0 : _relative_save_offset = ndr->offset;
15718 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
15719 0 : _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
15720 0 : NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
15721 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
15722 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
15723 0 : if (ndr->offset > ndr->relative_highest_offset) {
15724 0 : ndr->relative_highest_offset = ndr->offset;
15725 : }
15726 0 : ndr->offset = _relative_save_offset;
15727 : }
15728 0 : ndr->flags = _flags_save_string;
15729 : }
15730 : {
15731 0 : libndr_flags _flags_save_string = ndr->flags;
15732 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15733 0 : if (r->data_file) {
15734 0 : uint32_t _relative_save_offset;
15735 0 : _relative_save_offset = ndr->offset;
15736 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
15737 0 : _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15738 0 : NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
15739 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
15740 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
15741 0 : if (ndr->offset > ndr->relative_highest_offset) {
15742 0 : ndr->relative_highest_offset = ndr->offset;
15743 : }
15744 0 : ndr->offset = _relative_save_offset;
15745 : }
15746 0 : ndr->flags = _flags_save_string;
15747 : }
15748 : {
15749 0 : libndr_flags _flags_save_string = ndr->flags;
15750 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15751 0 : if (r->config_file) {
15752 0 : uint32_t _relative_save_offset;
15753 0 : _relative_save_offset = ndr->offset;
15754 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
15755 0 : _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15756 0 : NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
15757 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
15758 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
15759 0 : if (ndr->offset > ndr->relative_highest_offset) {
15760 0 : ndr->relative_highest_offset = ndr->offset;
15761 : }
15762 0 : ndr->offset = _relative_save_offset;
15763 : }
15764 0 : ndr->flags = _flags_save_string;
15765 : }
15766 : {
15767 0 : libndr_flags _flags_save_string = ndr->flags;
15768 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15769 0 : if (r->help_file) {
15770 0 : uint32_t _relative_save_offset;
15771 0 : _relative_save_offset = ndr->offset;
15772 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
15773 0 : _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15774 0 : NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
15775 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
15776 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
15777 0 : if (ndr->offset > ndr->relative_highest_offset) {
15778 0 : ndr->relative_highest_offset = ndr->offset;
15779 : }
15780 0 : ndr->offset = _relative_save_offset;
15781 : }
15782 0 : ndr->flags = _flags_save_string;
15783 : }
15784 : {
15785 0 : libndr_flags _flags_save_string_array = ndr->flags;
15786 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15787 0 : if (r->dependent_files) {
15788 0 : uint32_t _relative_save_offset;
15789 0 : _relative_save_offset = ndr->offset;
15790 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
15791 0 : _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
15792 0 : NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
15793 0 : NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
15794 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
15795 0 : if (ndr->offset > ndr->relative_highest_offset) {
15796 0 : ndr->relative_highest_offset = ndr->offset;
15797 : }
15798 0 : ndr->offset = _relative_save_offset;
15799 : }
15800 0 : ndr->flags = _flags_save_string_array;
15801 : }
15802 : {
15803 0 : libndr_flags _flags_save_string = ndr->flags;
15804 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15805 0 : if (r->monitor_name) {
15806 0 : uint32_t _relative_save_offset;
15807 0 : _relative_save_offset = ndr->offset;
15808 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
15809 0 : _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15810 0 : NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
15811 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
15812 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
15813 0 : if (ndr->offset > ndr->relative_highest_offset) {
15814 0 : ndr->relative_highest_offset = ndr->offset;
15815 : }
15816 0 : ndr->offset = _relative_save_offset;
15817 : }
15818 0 : ndr->flags = _flags_save_string;
15819 : }
15820 : {
15821 0 : libndr_flags _flags_save_string = ndr->flags;
15822 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15823 0 : if (r->default_datatype) {
15824 0 : uint32_t _relative_save_offset;
15825 0 : _relative_save_offset = ndr->offset;
15826 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
15827 0 : _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
15828 0 : NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
15829 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
15830 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
15831 0 : if (ndr->offset > ndr->relative_highest_offset) {
15832 0 : ndr->relative_highest_offset = ndr->offset;
15833 : }
15834 0 : ndr->offset = _relative_save_offset;
15835 : }
15836 0 : ndr->flags = _flags_save_string;
15837 : }
15838 : {
15839 0 : libndr_flags _flags_save_string_array = ndr->flags;
15840 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15841 0 : if (r->previous_names) {
15842 0 : uint32_t _relative_save_offset;
15843 0 : _relative_save_offset = ndr->offset;
15844 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
15845 0 : _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
15846 0 : NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
15847 0 : NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
15848 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
15849 0 : if (ndr->offset > ndr->relative_highest_offset) {
15850 0 : ndr->relative_highest_offset = ndr->offset;
15851 : }
15852 0 : ndr->offset = _relative_save_offset;
15853 : }
15854 0 : ndr->flags = _flags_save_string_array;
15855 : }
15856 : {
15857 0 : libndr_flags _flags_save_string = ndr->flags;
15858 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15859 0 : if (r->manufacturer_name) {
15860 0 : uint32_t _relative_save_offset;
15861 0 : _relative_save_offset = ndr->offset;
15862 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
15863 0 : _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15864 0 : NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
15865 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
15866 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
15867 0 : if (ndr->offset > ndr->relative_highest_offset) {
15868 0 : ndr->relative_highest_offset = ndr->offset;
15869 : }
15870 0 : ndr->offset = _relative_save_offset;
15871 : }
15872 0 : ndr->flags = _flags_save_string;
15873 : }
15874 : {
15875 0 : libndr_flags _flags_save_string = ndr->flags;
15876 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15877 0 : if (r->manufacturer_url) {
15878 0 : uint32_t _relative_save_offset;
15879 0 : _relative_save_offset = ndr->offset;
15880 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
15881 0 : _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
15882 0 : NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
15883 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
15884 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
15885 0 : if (ndr->offset > ndr->relative_highest_offset) {
15886 0 : ndr->relative_highest_offset = ndr->offset;
15887 : }
15888 0 : ndr->offset = _relative_save_offset;
15889 : }
15890 0 : ndr->flags = _flags_save_string;
15891 : }
15892 : {
15893 0 : libndr_flags _flags_save_string = ndr->flags;
15894 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15895 0 : if (r->hardware_id) {
15896 0 : uint32_t _relative_save_offset;
15897 0 : _relative_save_offset = ndr->offset;
15898 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
15899 0 : _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
15900 0 : NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
15901 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
15902 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
15903 0 : if (ndr->offset > ndr->relative_highest_offset) {
15904 0 : ndr->relative_highest_offset = ndr->offset;
15905 : }
15906 0 : ndr->offset = _relative_save_offset;
15907 : }
15908 0 : ndr->flags = _flags_save_string;
15909 : }
15910 : {
15911 0 : libndr_flags _flags_save_string = ndr->flags;
15912 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15913 0 : if (r->provider) {
15914 0 : uint32_t _relative_save_offset;
15915 0 : _relative_save_offset = ndr->offset;
15916 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
15917 0 : _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
15918 0 : NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
15919 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
15920 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
15921 0 : if (ndr->offset > ndr->relative_highest_offset) {
15922 0 : ndr->relative_highest_offset = ndr->offset;
15923 : }
15924 0 : ndr->offset = _relative_save_offset;
15925 : }
15926 0 : ndr->flags = _flags_save_string;
15927 : }
15928 : {
15929 0 : libndr_flags _flags_save_string = ndr->flags;
15930 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15931 0 : if (r->print_processor) {
15932 0 : uint32_t _relative_save_offset;
15933 0 : _relative_save_offset = ndr->offset;
15934 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
15935 0 : _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
15936 0 : NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
15937 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
15938 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
15939 0 : if (ndr->offset > ndr->relative_highest_offset) {
15940 0 : ndr->relative_highest_offset = ndr->offset;
15941 : }
15942 0 : ndr->offset = _relative_save_offset;
15943 : }
15944 0 : ndr->flags = _flags_save_string;
15945 : }
15946 : {
15947 0 : libndr_flags _flags_save_string = ndr->flags;
15948 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15949 0 : if (r->vendor_setup) {
15950 0 : uint32_t _relative_save_offset;
15951 0 : _relative_save_offset = ndr->offset;
15952 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
15953 0 : _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
15954 0 : NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
15955 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
15956 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
15957 0 : if (ndr->offset > ndr->relative_highest_offset) {
15958 0 : ndr->relative_highest_offset = ndr->offset;
15959 : }
15960 0 : ndr->offset = _relative_save_offset;
15961 : }
15962 0 : ndr->flags = _flags_save_string;
15963 : }
15964 : {
15965 0 : libndr_flags _flags_save_string_array = ndr->flags;
15966 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15967 0 : if (r->color_profiles) {
15968 0 : uint32_t _relative_save_offset;
15969 0 : _relative_save_offset = ndr->offset;
15970 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
15971 0 : _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
15972 0 : NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
15973 0 : NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
15974 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
15975 0 : if (ndr->offset > ndr->relative_highest_offset) {
15976 0 : ndr->relative_highest_offset = ndr->offset;
15977 : }
15978 0 : ndr->offset = _relative_save_offset;
15979 : }
15980 0 : ndr->flags = _flags_save_string_array;
15981 : }
15982 : {
15983 0 : libndr_flags _flags_save_string = ndr->flags;
15984 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15985 0 : if (r->inf_path) {
15986 0 : uint32_t _relative_save_offset;
15987 0 : _relative_save_offset = ndr->offset;
15988 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
15989 0 : _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
15990 0 : NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
15991 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
15992 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
15993 0 : if (ndr->offset > ndr->relative_highest_offset) {
15994 0 : ndr->relative_highest_offset = ndr->offset;
15995 : }
15996 0 : ndr->offset = _relative_save_offset;
15997 : }
15998 0 : ndr->flags = _flags_save_string;
15999 : }
16000 : {
16001 0 : libndr_flags _flags_save_string_array = ndr->flags;
16002 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16003 0 : if (r->core_driver_dependencies) {
16004 0 : uint32_t _relative_save_offset;
16005 0 : _relative_save_offset = ndr->offset;
16006 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
16007 0 : _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
16008 0 : NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
16009 0 : NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
16010 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
16011 0 : if (ndr->offset > ndr->relative_highest_offset) {
16012 0 : ndr->relative_highest_offset = ndr->offset;
16013 : }
16014 0 : ndr->offset = _relative_save_offset;
16015 : }
16016 0 : ndr->flags = _flags_save_string_array;
16017 : }
16018 : }
16019 0 : return NDR_ERR_SUCCESS;
16020 : }
16021 :
16022 0 : static void ndr_print_flags_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo8 *r)
16023 : {
16024 0 : ndr_print_spoolss_DriverInfo8(ndr, name, r);
16025 0 : }
16026 :
16027 0 : _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
16028 : {
16029 0 : ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
16030 0 : if (r == NULL) { ndr_print_null(ndr); return; }
16031 0 : ndr->depth++;
16032 0 : ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
16033 : {
16034 0 : libndr_flags _flags_save_string = ndr->flags;
16035 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16036 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
16037 0 : ndr->depth++;
16038 0 : if (r->driver_name) {
16039 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
16040 : }
16041 0 : ndr->depth--;
16042 0 : ndr->flags = _flags_save_string;
16043 : }
16044 : {
16045 0 : libndr_flags _flags_save_string = ndr->flags;
16046 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16047 0 : ndr_print_ptr(ndr, "architecture", r->architecture);
16048 0 : ndr->depth++;
16049 0 : if (r->architecture) {
16050 0 : ndr_print_string(ndr, "architecture", r->architecture);
16051 : }
16052 0 : ndr->depth--;
16053 0 : ndr->flags = _flags_save_string;
16054 : }
16055 : {
16056 0 : libndr_flags _flags_save_string = ndr->flags;
16057 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16058 0 : ndr_print_ptr(ndr, "driver_path", r->driver_path);
16059 0 : ndr->depth++;
16060 0 : if (r->driver_path) {
16061 0 : ndr_print_string(ndr, "driver_path", r->driver_path);
16062 : }
16063 0 : ndr->depth--;
16064 0 : ndr->flags = _flags_save_string;
16065 : }
16066 : {
16067 0 : libndr_flags _flags_save_string = ndr->flags;
16068 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16069 0 : ndr_print_ptr(ndr, "data_file", r->data_file);
16070 0 : ndr->depth++;
16071 0 : if (r->data_file) {
16072 0 : ndr_print_string(ndr, "data_file", r->data_file);
16073 : }
16074 0 : ndr->depth--;
16075 0 : ndr->flags = _flags_save_string;
16076 : }
16077 : {
16078 0 : libndr_flags _flags_save_string = ndr->flags;
16079 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16080 0 : ndr_print_ptr(ndr, "config_file", r->config_file);
16081 0 : ndr->depth++;
16082 0 : if (r->config_file) {
16083 0 : ndr_print_string(ndr, "config_file", r->config_file);
16084 : }
16085 0 : ndr->depth--;
16086 0 : ndr->flags = _flags_save_string;
16087 : }
16088 : {
16089 0 : libndr_flags _flags_save_string = ndr->flags;
16090 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16091 0 : ndr_print_ptr(ndr, "help_file", r->help_file);
16092 0 : ndr->depth++;
16093 0 : if (r->help_file) {
16094 0 : ndr_print_string(ndr, "help_file", r->help_file);
16095 : }
16096 0 : ndr->depth--;
16097 0 : ndr->flags = _flags_save_string;
16098 : }
16099 : {
16100 0 : libndr_flags _flags_save_string_array = ndr->flags;
16101 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16102 0 : ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
16103 0 : ndr->depth++;
16104 0 : if (r->dependent_files) {
16105 0 : ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
16106 : }
16107 0 : ndr->depth--;
16108 0 : ndr->flags = _flags_save_string_array;
16109 : }
16110 : {
16111 0 : libndr_flags _flags_save_string = ndr->flags;
16112 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16113 0 : ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16114 0 : ndr->depth++;
16115 0 : if (r->monitor_name) {
16116 0 : ndr_print_string(ndr, "monitor_name", r->monitor_name);
16117 : }
16118 0 : ndr->depth--;
16119 0 : ndr->flags = _flags_save_string;
16120 : }
16121 : {
16122 0 : libndr_flags _flags_save_string = ndr->flags;
16123 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16124 0 : ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
16125 0 : ndr->depth++;
16126 0 : if (r->default_datatype) {
16127 0 : ndr_print_string(ndr, "default_datatype", r->default_datatype);
16128 : }
16129 0 : ndr->depth--;
16130 0 : ndr->flags = _flags_save_string;
16131 : }
16132 : {
16133 0 : libndr_flags _flags_save_string_array = ndr->flags;
16134 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16135 0 : ndr_print_ptr(ndr, "previous_names", r->previous_names);
16136 0 : ndr->depth++;
16137 0 : if (r->previous_names) {
16138 0 : ndr_print_string_array(ndr, "previous_names", r->previous_names);
16139 : }
16140 0 : ndr->depth--;
16141 0 : ndr->flags = _flags_save_string_array;
16142 : }
16143 0 : ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
16144 0 : ndr_print_hyper(ndr, "driver_version", r->driver_version);
16145 : {
16146 0 : libndr_flags _flags_save_string = ndr->flags;
16147 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16148 0 : ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
16149 0 : ndr->depth++;
16150 0 : if (r->manufacturer_name) {
16151 0 : ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
16152 : }
16153 0 : ndr->depth--;
16154 0 : ndr->flags = _flags_save_string;
16155 : }
16156 : {
16157 0 : libndr_flags _flags_save_string = ndr->flags;
16158 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16159 0 : ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
16160 0 : ndr->depth++;
16161 0 : if (r->manufacturer_url) {
16162 0 : ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
16163 : }
16164 0 : ndr->depth--;
16165 0 : ndr->flags = _flags_save_string;
16166 : }
16167 : {
16168 0 : libndr_flags _flags_save_string = ndr->flags;
16169 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16170 0 : ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
16171 0 : ndr->depth++;
16172 0 : if (r->hardware_id) {
16173 0 : ndr_print_string(ndr, "hardware_id", r->hardware_id);
16174 : }
16175 0 : ndr->depth--;
16176 0 : ndr->flags = _flags_save_string;
16177 : }
16178 : {
16179 0 : libndr_flags _flags_save_string = ndr->flags;
16180 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16181 0 : ndr_print_ptr(ndr, "provider", r->provider);
16182 0 : ndr->depth++;
16183 0 : if (r->provider) {
16184 0 : ndr_print_string(ndr, "provider", r->provider);
16185 : }
16186 0 : ndr->depth--;
16187 0 : ndr->flags = _flags_save_string;
16188 : }
16189 : {
16190 0 : libndr_flags _flags_save_string = ndr->flags;
16191 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16192 0 : ndr_print_ptr(ndr, "print_processor", r->print_processor);
16193 0 : ndr->depth++;
16194 0 : if (r->print_processor) {
16195 0 : ndr_print_string(ndr, "print_processor", r->print_processor);
16196 : }
16197 0 : ndr->depth--;
16198 0 : ndr->flags = _flags_save_string;
16199 : }
16200 : {
16201 0 : libndr_flags _flags_save_string = ndr->flags;
16202 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16203 0 : ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
16204 0 : ndr->depth++;
16205 0 : if (r->vendor_setup) {
16206 0 : ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
16207 : }
16208 0 : ndr->depth--;
16209 0 : ndr->flags = _flags_save_string;
16210 : }
16211 : {
16212 0 : libndr_flags _flags_save_string_array = ndr->flags;
16213 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16214 0 : ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
16215 0 : ndr->depth++;
16216 0 : if (r->color_profiles) {
16217 0 : ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
16218 : }
16219 0 : ndr->depth--;
16220 0 : ndr->flags = _flags_save_string_array;
16221 : }
16222 : {
16223 0 : libndr_flags _flags_save_string = ndr->flags;
16224 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16225 0 : ndr_print_ptr(ndr, "inf_path", r->inf_path);
16226 0 : ndr->depth++;
16227 0 : if (r->inf_path) {
16228 0 : ndr_print_string(ndr, "inf_path", r->inf_path);
16229 : }
16230 0 : ndr->depth--;
16231 0 : ndr->flags = _flags_save_string;
16232 : }
16233 0 : ndr_print_spoolss_DriverAttributes(ndr, "printer_driver_attributes", r->printer_driver_attributes);
16234 : {
16235 0 : libndr_flags _flags_save_string_array = ndr->flags;
16236 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16237 0 : ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
16238 0 : ndr->depth++;
16239 0 : if (r->core_driver_dependencies) {
16240 0 : ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
16241 : }
16242 0 : ndr->depth--;
16243 0 : ndr->flags = _flags_save_string_array;
16244 : }
16245 0 : ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
16246 0 : ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
16247 0 : ndr->depth--;
16248 : }
16249 :
16250 0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, libndr_flags flags)
16251 : {
16252 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8);
16253 : }
16254 :
16255 0 : static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_DriverFileType r)
16256 : {
16257 0 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
16258 0 : return NDR_ERR_SUCCESS;
16259 : }
16260 :
16261 0 : static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_DriverFileType *r)
16262 : {
16263 0 : uint32_t v;
16264 0 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
16265 0 : *r = v;
16266 0 : return NDR_ERR_SUCCESS;
16267 : }
16268 :
16269 0 : _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
16270 : {
16271 0 : const char *val = NULL;
16272 :
16273 0 : switch (r) {
16274 0 : case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
16275 0 : case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
16276 0 : case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
16277 0 : case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
16278 0 : case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
16279 : }
16280 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
16281 0 : }
16282 :
16283 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverFileInfo *r)
16284 : {
16285 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
16286 0 : if (ndr_flags & NDR_SCALARS) {
16287 0 : NDR_CHECK(ndr_push_align(ndr, 5));
16288 : {
16289 0 : libndr_flags _flags_save_string = ndr->flags;
16290 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16291 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
16292 0 : ndr->flags = _flags_save_string;
16293 : }
16294 0 : NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
16295 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
16296 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16297 : }
16298 0 : if (ndr_flags & NDR_BUFFERS) {
16299 : {
16300 0 : libndr_flags _flags_save_string = ndr->flags;
16301 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16302 0 : if (r->file_name) {
16303 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->file_name));
16304 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
16305 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->file_name));
16306 : }
16307 0 : ndr->flags = _flags_save_string;
16308 : }
16309 : }
16310 0 : return NDR_ERR_SUCCESS;
16311 : }
16312 :
16313 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverFileInfo *r)
16314 : {
16315 0 : uint32_t _ptr_file_name;
16316 0 : TALLOC_CTX *_mem_save_file_name_0 = NULL;
16317 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
16318 0 : if (ndr_flags & NDR_SCALARS) {
16319 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
16320 : {
16321 0 : libndr_flags _flags_save_string = ndr->flags;
16322 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16323 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
16324 0 : if (_ptr_file_name) {
16325 0 : NDR_PULL_ALLOC(ndr, r->file_name);
16326 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
16327 : } else {
16328 0 : r->file_name = NULL;
16329 : }
16330 0 : ndr->flags = _flags_save_string;
16331 : }
16332 0 : NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
16333 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
16334 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16335 : }
16336 0 : if (ndr_flags & NDR_BUFFERS) {
16337 : {
16338 0 : libndr_flags _flags_save_string = ndr->flags;
16339 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16340 0 : if (r->file_name) {
16341 0 : uint32_t _relative_save_offset;
16342 0 : _relative_save_offset = ndr->offset;
16343 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
16344 0 : _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16345 0 : NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
16346 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
16347 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
16348 0 : if (ndr->offset > ndr->relative_highest_offset) {
16349 0 : ndr->relative_highest_offset = ndr->offset;
16350 : }
16351 0 : ndr->offset = _relative_save_offset;
16352 : }
16353 0 : ndr->flags = _flags_save_string;
16354 : }
16355 : }
16356 0 : return NDR_ERR_SUCCESS;
16357 : }
16358 :
16359 0 : static void ndr_print_flags_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverFileInfo *r)
16360 : {
16361 0 : ndr_print_spoolss_DriverFileInfo(ndr, name, r);
16362 0 : }
16363 :
16364 0 : _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
16365 : {
16366 0 : ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
16367 0 : if (r == NULL) { ndr_print_null(ndr); return; }
16368 0 : ndr->depth++;
16369 : {
16370 0 : libndr_flags _flags_save_string = ndr->flags;
16371 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16372 0 : ndr_print_ptr(ndr, "file_name", r->file_name);
16373 0 : ndr->depth++;
16374 0 : if (r->file_name) {
16375 0 : ndr_print_string(ndr, "file_name", r->file_name);
16376 : }
16377 0 : ndr->depth--;
16378 0 : ndr->flags = _flags_save_string;
16379 : }
16380 0 : ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
16381 0 : ndr_print_uint32(ndr, "file_version", r->file_version);
16382 0 : ndr->depth--;
16383 : }
16384 :
16385 0 : static void ndr_print_flags_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverInfo101 *r)
16386 : {
16387 0 : ndr_print_spoolss_DriverInfo101(ndr, name, r);
16388 0 : }
16389 :
16390 0 : _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
16391 : {
16392 0 : uint32_t cntr_file_info_1;
16393 0 : ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
16394 0 : if (r == NULL) { ndr_print_null(ndr); return; }
16395 0 : ndr->depth++;
16396 0 : ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
16397 : {
16398 0 : libndr_flags _flags_save_string = ndr->flags;
16399 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16400 0 : ndr_print_ptr(ndr, "driver_name", r->driver_name);
16401 0 : ndr->depth++;
16402 0 : if (r->driver_name) {
16403 0 : ndr_print_string(ndr, "driver_name", r->driver_name);
16404 : }
16405 0 : ndr->depth--;
16406 0 : ndr->flags = _flags_save_string;
16407 : }
16408 : {
16409 0 : libndr_flags _flags_save_string = ndr->flags;
16410 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16411 0 : ndr_print_ptr(ndr, "architecture", r->architecture);
16412 0 : ndr->depth++;
16413 0 : if (r->architecture) {
16414 0 : ndr_print_string(ndr, "architecture", r->architecture);
16415 : }
16416 0 : ndr->depth--;
16417 0 : ndr->flags = _flags_save_string;
16418 : }
16419 : {
16420 0 : libndr_flags _flags_save_spoolss_DriverFileInfo = ndr->flags;
16421 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
16422 0 : ndr_print_ptr(ndr, "file_info", r->file_info);
16423 0 : ndr->depth++;
16424 0 : if (r->file_info) {
16425 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "file_info", (uint32_t)(r->file_count));
16426 0 : ndr->depth++;
16427 0 : for (cntr_file_info_1 = 0; cntr_file_info_1 < (r->file_count); cntr_file_info_1++) {
16428 0 : ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
16429 : }
16430 0 : ndr->depth--;
16431 : }
16432 0 : ndr->depth--;
16433 0 : ndr->flags = _flags_save_spoolss_DriverFileInfo;
16434 : }
16435 0 : ndr_print_uint32(ndr, "file_count", r->file_count);
16436 : {
16437 0 : libndr_flags _flags_save_string = ndr->flags;
16438 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16439 0 : ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16440 0 : ndr->depth++;
16441 0 : if (r->monitor_name) {
16442 0 : ndr_print_string(ndr, "monitor_name", r->monitor_name);
16443 : }
16444 0 : ndr->depth--;
16445 0 : ndr->flags = _flags_save_string;
16446 : }
16447 : {
16448 0 : libndr_flags _flags_save_string = ndr->flags;
16449 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16450 0 : ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
16451 0 : ndr->depth++;
16452 0 : if (r->default_datatype) {
16453 0 : ndr_print_string(ndr, "default_datatype", r->default_datatype);
16454 : }
16455 0 : ndr->depth--;
16456 0 : ndr->flags = _flags_save_string;
16457 : }
16458 : {
16459 0 : libndr_flags _flags_save_string_array = ndr->flags;
16460 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16461 0 : ndr_print_ptr(ndr, "previous_names", r->previous_names);
16462 0 : ndr->depth++;
16463 0 : if (r->previous_names) {
16464 0 : ndr_print_string_array(ndr, "previous_names", r->previous_names);
16465 : }
16466 0 : ndr->depth--;
16467 0 : ndr->flags = _flags_save_string_array;
16468 : }
16469 0 : ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
16470 0 : ndr_print_hyper(ndr, "driver_version", r->driver_version);
16471 : {
16472 0 : libndr_flags _flags_save_string = ndr->flags;
16473 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16474 0 : ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
16475 0 : ndr->depth++;
16476 0 : if (r->manufacturer_name) {
16477 0 : ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
16478 : }
16479 0 : ndr->depth--;
16480 0 : ndr->flags = _flags_save_string;
16481 : }
16482 : {
16483 0 : libndr_flags _flags_save_string = ndr->flags;
16484 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16485 0 : ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
16486 0 : ndr->depth++;
16487 0 : if (r->manufacturer_url) {
16488 0 : ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
16489 : }
16490 0 : ndr->depth--;
16491 0 : ndr->flags = _flags_save_string;
16492 : }
16493 : {
16494 0 : libndr_flags _flags_save_string = ndr->flags;
16495 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16496 0 : ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
16497 0 : ndr->depth++;
16498 0 : if (r->hardware_id) {
16499 0 : ndr_print_string(ndr, "hardware_id", r->hardware_id);
16500 : }
16501 0 : ndr->depth--;
16502 0 : ndr->flags = _flags_save_string;
16503 : }
16504 : {
16505 0 : libndr_flags _flags_save_string = ndr->flags;
16506 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16507 0 : ndr_print_ptr(ndr, "provider", r->provider);
16508 0 : ndr->depth++;
16509 0 : if (r->provider) {
16510 0 : ndr_print_string(ndr, "provider", r->provider);
16511 : }
16512 0 : ndr->depth--;
16513 0 : ndr->flags = _flags_save_string;
16514 : }
16515 0 : ndr->depth--;
16516 : }
16517 :
16518 0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, libndr_flags flags)
16519 : {
16520 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101);
16521 : }
16522 :
16523 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_DriverInfo *r)
16524 : {
16525 0 : uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16526 0 : uint32_t level;
16527 : {
16528 0 : libndr_flags _flags_save_UNION = ndr->flags;
16529 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16530 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
16531 0 : if (ndr_flags & NDR_SCALARS) {
16532 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
16533 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
16534 0 : NDR_CHECK(ndr_push_union_align(ndr, 8));
16535 0 : switch (level) {
16536 0 : case 1: {
16537 0 : NDR_CHECK(ndr_push_align(ndr, 5));
16538 0 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16539 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
16540 0 : break; }
16541 :
16542 0 : case 2: {
16543 0 : NDR_CHECK(ndr_push_align(ndr, 5));
16544 0 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16545 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
16546 0 : break; }
16547 :
16548 0 : case 3: {
16549 0 : NDR_CHECK(ndr_push_align(ndr, 5));
16550 0 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16551 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
16552 0 : break; }
16553 :
16554 0 : case 4: {
16555 0 : NDR_CHECK(ndr_push_align(ndr, 5));
16556 0 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16557 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
16558 0 : break; }
16559 :
16560 0 : case 5: {
16561 0 : NDR_CHECK(ndr_push_align(ndr, 5));
16562 0 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16563 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
16564 0 : break; }
16565 :
16566 0 : case 6: {
16567 0 : NDR_CHECK(ndr_push_align(ndr, 8));
16568 0 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16569 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
16570 0 : break; }
16571 :
16572 0 : case 7: {
16573 0 : NDR_CHECK(ndr_push_align(ndr, 5));
16574 0 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16575 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
16576 0 : break; }
16577 :
16578 0 : case 8: {
16579 0 : NDR_CHECK(ndr_push_align(ndr, 8));
16580 0 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16581 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
16582 0 : break; }
16583 :
16584 0 : case 101: {
16585 0 : NDR_CHECK(ndr_push_align(ndr, 8));
16586 0 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16587 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
16588 0 : break; }
16589 :
16590 0 : default: {
16591 0 : break; }
16592 :
16593 : }
16594 : }
16595 0 : if (ndr_flags & NDR_BUFFERS) {
16596 0 : if (!(ndr_flags & NDR_SCALARS)) {
16597 : /* We didn't get it above, and the token is not needed after this. */
16598 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
16599 : }
16600 0 : NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16601 0 : switch (level) {
16602 0 : case 1:
16603 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
16604 0 : break;
16605 :
16606 0 : case 2:
16607 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
16608 0 : break;
16609 :
16610 0 : case 3:
16611 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
16612 0 : break;
16613 :
16614 0 : case 4:
16615 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
16616 0 : break;
16617 :
16618 0 : case 5:
16619 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
16620 0 : break;
16621 :
16622 0 : case 6:
16623 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
16624 0 : break;
16625 :
16626 0 : case 7:
16627 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
16628 0 : break;
16629 :
16630 0 : case 8:
16631 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
16632 0 : break;
16633 :
16634 0 : case 101:
16635 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
16636 0 : break;
16637 :
16638 0 : default:
16639 0 : break;
16640 :
16641 : }
16642 : }
16643 0 : ndr->flags = _flags_save_UNION;
16644 : }
16645 0 : ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16646 0 : return NDR_ERR_SUCCESS;
16647 : }
16648 :
16649 2 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_DriverInfo *r)
16650 : {
16651 2 : uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16652 2 : uint32_t level;
16653 : {
16654 2 : libndr_flags _flags_save_UNION = ndr->flags;
16655 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16656 2 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
16657 2 : if (ndr_flags & NDR_SCALARS) {
16658 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
16659 2 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
16660 2 : NDR_CHECK(ndr_pull_union_align(ndr, 8));
16661 2 : switch (level) {
16662 0 : case 1: {
16663 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
16664 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16665 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
16666 0 : break; }
16667 :
16668 0 : case 2: {
16669 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
16670 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16671 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
16672 0 : break; }
16673 :
16674 0 : case 3: {
16675 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
16676 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16677 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
16678 0 : break; }
16679 :
16680 0 : case 4: {
16681 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
16682 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16683 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
16684 0 : break; }
16685 :
16686 0 : case 5: {
16687 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
16688 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16689 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
16690 0 : break; }
16691 :
16692 2 : case 6: {
16693 2 : NDR_CHECK(ndr_pull_align(ndr, 8));
16694 2 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16695 2 : NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
16696 0 : break; }
16697 :
16698 0 : case 7: {
16699 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
16700 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16701 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
16702 0 : break; }
16703 :
16704 0 : case 8: {
16705 0 : NDR_CHECK(ndr_pull_align(ndr, 8));
16706 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16707 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
16708 0 : break; }
16709 :
16710 0 : case 101: {
16711 0 : NDR_CHECK(ndr_pull_align(ndr, 8));
16712 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16713 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
16714 0 : break; }
16715 :
16716 0 : default: {
16717 0 : break; }
16718 :
16719 : }
16720 : }
16721 2 : if (ndr_flags & NDR_BUFFERS) {
16722 2 : if (!(ndr_flags & NDR_SCALARS)) {
16723 : /* We didn't get it above, and the token is not needed after this. */
16724 0 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
16725 : }
16726 2 : switch (level) {
16727 0 : case 1:
16728 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16729 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
16730 0 : break;
16731 :
16732 0 : case 2:
16733 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16734 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
16735 0 : break;
16736 :
16737 0 : case 3:
16738 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16739 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
16740 0 : break;
16741 :
16742 0 : case 4:
16743 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16744 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
16745 0 : break;
16746 :
16747 0 : case 5:
16748 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16749 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
16750 0 : break;
16751 :
16752 2 : case 6:
16753 2 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16754 2 : NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
16755 0 : break;
16756 :
16757 0 : case 7:
16758 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16759 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
16760 0 : break;
16761 :
16762 0 : case 8:
16763 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16764 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
16765 0 : break;
16766 :
16767 0 : case 101:
16768 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16769 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
16770 0 : break;
16771 :
16772 0 : default:
16773 0 : break;
16774 :
16775 : }
16776 : }
16777 2 : ndr->flags = _flags_save_UNION;
16778 : }
16779 2 : ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16780 2 : return NDR_ERR_SUCCESS;
16781 : }
16782 :
16783 2 : _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
16784 : {
16785 2 : uint32_t level;
16786 : {
16787 2 : libndr_flags _flags_save_UNION = ndr->flags;
16788 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16789 2 : level = ndr_print_steal_switch_value(ndr, r);
16790 2 : ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
16791 2 : switch (level) {
16792 0 : case 1:
16793 0 : ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
16794 0 : break;
16795 :
16796 0 : case 2:
16797 0 : ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
16798 0 : break;
16799 :
16800 0 : case 3:
16801 0 : ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
16802 0 : break;
16803 :
16804 0 : case 4:
16805 0 : ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
16806 0 : break;
16807 :
16808 0 : case 5:
16809 0 : ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
16810 0 : break;
16811 :
16812 2 : case 6:
16813 2 : ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
16814 2 : break;
16815 :
16816 0 : case 7:
16817 0 : ndr_print_spoolss_DriverInfo7(ndr, "info7", &r->info7);
16818 0 : break;
16819 :
16820 0 : case 8:
16821 0 : ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
16822 0 : break;
16823 :
16824 0 : case 101:
16825 0 : ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
16826 0 : break;
16827 :
16828 0 : default:
16829 0 : break;
16830 :
16831 : }
16832 2 : ndr->flags = _flags_save_UNION;
16833 : }
16834 2 : }
16835 :
16836 0 : _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, libndr_flags flags)
16837 : {
16838 0 : flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
16839 0 : return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo);
16840 : }
16841 :
16842 252 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
16843 : {
16844 252 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
16845 252 : if (ndr_flags & NDR_SCALARS) {
16846 252 : NDR_CHECK(ndr_push_align(ndr, 4));
16847 : {
16848 252 : libndr_flags _flags_save_string = ndr->flags;
16849 252 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16850 252 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
16851 252 : ndr->flags = _flags_save_string;
16852 : }
16853 252 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16854 : }
16855 252 : if (ndr_flags & NDR_BUFFERS) {
16856 0 : }
16857 252 : return NDR_ERR_SUCCESS;
16858 : }
16859 :
16860 86 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
16861 : {
16862 86 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
16863 86 : if (ndr_flags & NDR_SCALARS) {
16864 86 : NDR_CHECK(ndr_pull_align(ndr, 4));
16865 : {
16866 86 : libndr_flags _flags_save_string = ndr->flags;
16867 86 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16868 86 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
16869 86 : ndr->flags = _flags_save_string;
16870 : }
16871 86 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16872 : }
16873 86 : if (ndr_flags & NDR_BUFFERS) {
16874 2 : }
16875 86 : return NDR_ERR_SUCCESS;
16876 : }
16877 :
16878 0 : static void ndr_print_flags_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DriverDirectoryInfo1 *r)
16879 : {
16880 0 : ndr_print_spoolss_DriverDirectoryInfo1(ndr, name, r);
16881 0 : }
16882 :
16883 2 : _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
16884 : {
16885 2 : ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
16886 2 : if (r == NULL) { ndr_print_null(ndr); return; }
16887 2 : ndr->depth++;
16888 : {
16889 2 : libndr_flags _flags_save_string = ndr->flags;
16890 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16891 2 : ndr_print_string(ndr, "directory_name", r->directory_name);
16892 2 : ndr->flags = _flags_save_string;
16893 : }
16894 2 : ndr->depth--;
16895 : }
16896 :
16897 0 : _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, libndr_flags flags)
16898 : {
16899 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1);
16900 : }
16901 :
16902 252 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_DriverDirectoryInfo *r)
16903 : {
16904 252 : uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16905 0 : uint32_t level;
16906 : {
16907 252 : libndr_flags _flags_save_UNION = ndr->flags;
16908 252 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16909 252 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
16910 252 : if (ndr_flags & NDR_SCALARS) {
16911 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
16912 252 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
16913 252 : NDR_CHECK(ndr_push_union_align(ndr, 4));
16914 252 : switch (level) {
16915 228 : case 1: {
16916 228 : NDR_CHECK(ndr_push_align(ndr, 4));
16917 228 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16918 228 : NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
16919 228 : break; }
16920 :
16921 24 : default: {
16922 24 : NDR_CHECK(ndr_push_align(ndr, 4));
16923 24 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16924 24 : NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
16925 24 : break; }
16926 :
16927 : }
16928 : }
16929 252 : ndr->flags = _flags_save_UNION;
16930 : }
16931 252 : ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16932 252 : return NDR_ERR_SUCCESS;
16933 : }
16934 :
16935 86 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_DriverDirectoryInfo *r)
16936 : {
16937 86 : uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16938 2 : uint32_t level;
16939 : {
16940 86 : libndr_flags _flags_save_UNION = ndr->flags;
16941 86 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16942 86 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
16943 86 : if (ndr_flags & NDR_SCALARS) {
16944 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
16945 86 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
16946 86 : NDR_CHECK(ndr_pull_union_align(ndr, 4));
16947 86 : switch (level) {
16948 78 : case 1: {
16949 78 : NDR_CHECK(ndr_pull_align(ndr, 4));
16950 78 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16951 78 : NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
16952 76 : break; }
16953 :
16954 8 : default: {
16955 8 : NDR_CHECK(ndr_pull_align(ndr, 4));
16956 8 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16957 8 : NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
16958 8 : break; }
16959 :
16960 : }
16961 : }
16962 86 : ndr->flags = _flags_save_UNION;
16963 : }
16964 86 : ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16965 86 : return NDR_ERR_SUCCESS;
16966 : }
16967 :
16968 2 : _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
16969 : {
16970 2 : uint32_t level;
16971 : {
16972 2 : libndr_flags _flags_save_UNION = ndr->flags;
16973 2 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16974 2 : level = ndr_print_steal_switch_value(ndr, r);
16975 2 : ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
16976 2 : switch (level) {
16977 2 : case 1:
16978 2 : ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
16979 2 : break;
16980 :
16981 0 : default:
16982 0 : ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
16983 0 : break;
16984 :
16985 : }
16986 2 : ndr->flags = _flags_save_UNION;
16987 : }
16988 2 : }
16989 :
16990 168 : _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, libndr_flags flags)
16991 : {
16992 168 : flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
16993 168 : return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo);
16994 : }
16995 :
16996 72 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
16997 : {
16998 72 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
16999 72 : if (ndr_flags & NDR_SCALARS) {
17000 36 : NDR_CHECK(ndr_push_align(ndr, 5));
17001 : {
17002 36 : libndr_flags _flags_save_string = ndr->flags;
17003 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17004 36 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
17005 36 : ndr->flags = _flags_save_string;
17006 : }
17007 36 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17008 : }
17009 72 : if (ndr_flags & NDR_BUFFERS) {
17010 : {
17011 36 : libndr_flags _flags_save_string = ndr->flags;
17012 36 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17013 36 : if (r->print_processor_name) {
17014 36 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor_name));
17015 36 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
17016 36 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor_name));
17017 : }
17018 36 : ndr->flags = _flags_save_string;
17019 : }
17020 : }
17021 72 : return NDR_ERR_SUCCESS;
17022 : }
17023 :
17024 24 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
17025 : {
17026 0 : uint32_t _ptr_print_processor_name;
17027 24 : TALLOC_CTX *_mem_save_print_processor_name_0 = NULL;
17028 24 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17029 24 : if (ndr_flags & NDR_SCALARS) {
17030 12 : NDR_CHECK(ndr_pull_align(ndr, 5));
17031 : {
17032 12 : libndr_flags _flags_save_string = ndr->flags;
17033 12 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17034 12 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
17035 12 : if (_ptr_print_processor_name) {
17036 12 : NDR_PULL_ALLOC(ndr, r->print_processor_name);
17037 12 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
17038 : } else {
17039 0 : r->print_processor_name = NULL;
17040 : }
17041 12 : ndr->flags = _flags_save_string;
17042 : }
17043 12 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17044 : }
17045 24 : if (ndr_flags & NDR_BUFFERS) {
17046 : {
17047 12 : libndr_flags _flags_save_string = ndr->flags;
17048 12 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17049 12 : if (r->print_processor_name) {
17050 0 : uint32_t _relative_save_offset;
17051 12 : _relative_save_offset = ndr->offset;
17052 12 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
17053 12 : _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17054 12 : NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
17055 12 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
17056 12 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
17057 12 : if (ndr->offset > ndr->relative_highest_offset) {
17058 12 : ndr->relative_highest_offset = ndr->offset;
17059 : }
17060 12 : ndr->offset = _relative_save_offset;
17061 : }
17062 12 : ndr->flags = _flags_save_string;
17063 : }
17064 : }
17065 24 : return NDR_ERR_SUCCESS;
17066 : }
17067 :
17068 0 : static void ndr_print_flags_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrintProcessorInfo1 *r)
17069 : {
17070 0 : ndr_print_spoolss_PrintProcessorInfo1(ndr, name, r);
17071 0 : }
17072 :
17073 0 : _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
17074 : {
17075 0 : ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
17076 0 : if (r == NULL) { ndr_print_null(ndr); return; }
17077 0 : ndr->depth++;
17078 : {
17079 0 : libndr_flags _flags_save_string = ndr->flags;
17080 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17081 0 : ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
17082 0 : ndr->depth++;
17083 0 : if (r->print_processor_name) {
17084 0 : ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
17085 : }
17086 0 : ndr->depth--;
17087 0 : ndr->flags = _flags_save_string;
17088 : }
17089 0 : ndr->depth--;
17090 : }
17091 :
17092 0 : _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, libndr_flags flags)
17093 : {
17094 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1);
17095 : }
17096 :
17097 72 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_PrintProcessorInfo *r)
17098 : {
17099 72 : uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17100 0 : uint32_t level;
17101 : {
17102 72 : libndr_flags _flags_save_UNION = ndr->flags;
17103 72 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17104 72 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17105 72 : if (ndr_flags & NDR_SCALARS) {
17106 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
17107 36 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
17108 36 : NDR_CHECK(ndr_push_union_align(ndr, 5));
17109 36 : switch (level) {
17110 36 : case 1: {
17111 36 : NDR_CHECK(ndr_push_align(ndr, 5));
17112 36 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17113 36 : NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
17114 36 : break; }
17115 :
17116 0 : default: {
17117 0 : break; }
17118 :
17119 : }
17120 : }
17121 72 : if (ndr_flags & NDR_BUFFERS) {
17122 36 : if (!(ndr_flags & NDR_SCALARS)) {
17123 : /* We didn't get it above, and the token is not needed after this. */
17124 36 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
17125 : }
17126 36 : NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17127 36 : switch (level) {
17128 36 : case 1:
17129 36 : NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
17130 36 : break;
17131 :
17132 0 : default:
17133 0 : break;
17134 :
17135 : }
17136 : }
17137 72 : ndr->flags = _flags_save_UNION;
17138 : }
17139 72 : ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17140 72 : return NDR_ERR_SUCCESS;
17141 : }
17142 :
17143 24 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_PrintProcessorInfo *r)
17144 : {
17145 24 : uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17146 0 : uint32_t level;
17147 : {
17148 24 : libndr_flags _flags_save_UNION = ndr->flags;
17149 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17150 24 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17151 24 : if (ndr_flags & NDR_SCALARS) {
17152 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
17153 12 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
17154 12 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
17155 12 : switch (level) {
17156 12 : case 1: {
17157 12 : NDR_CHECK(ndr_pull_align(ndr, 5));
17158 12 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17159 12 : NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
17160 12 : break; }
17161 :
17162 0 : default: {
17163 0 : break; }
17164 :
17165 : }
17166 : }
17167 24 : if (ndr_flags & NDR_BUFFERS) {
17168 12 : if (!(ndr_flags & NDR_SCALARS)) {
17169 : /* We didn't get it above, and the token is not needed after this. */
17170 12 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
17171 : }
17172 12 : switch (level) {
17173 12 : case 1:
17174 12 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17175 12 : NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
17176 12 : break;
17177 :
17178 0 : default:
17179 0 : break;
17180 :
17181 : }
17182 : }
17183 24 : ndr->flags = _flags_save_UNION;
17184 : }
17185 24 : ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17186 24 : return NDR_ERR_SUCCESS;
17187 : }
17188 :
17189 0 : _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
17190 : {
17191 0 : uint32_t level;
17192 : {
17193 0 : libndr_flags _flags_save_UNION = ndr->flags;
17194 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17195 0 : level = ndr_print_steal_switch_value(ndr, r);
17196 0 : ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
17197 0 : switch (level) {
17198 0 : case 1:
17199 0 : ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
17200 0 : break;
17201 :
17202 0 : default:
17203 0 : break;
17204 :
17205 : }
17206 0 : ndr->flags = _flags_save_UNION;
17207 : }
17208 0 : }
17209 :
17210 60 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
17211 : {
17212 60 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17213 60 : if (ndr_flags & NDR_SCALARS) {
17214 60 : NDR_CHECK(ndr_push_align(ndr, 4));
17215 : {
17216 60 : libndr_flags _flags_save_string = ndr->flags;
17217 60 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17218 60 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
17219 60 : ndr->flags = _flags_save_string;
17220 : }
17221 60 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
17222 : }
17223 60 : if (ndr_flags & NDR_BUFFERS) {
17224 0 : }
17225 60 : return NDR_ERR_SUCCESS;
17226 : }
17227 :
17228 20 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
17229 : {
17230 20 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17231 20 : if (ndr_flags & NDR_SCALARS) {
17232 20 : NDR_CHECK(ndr_pull_align(ndr, 4));
17233 : {
17234 20 : libndr_flags _flags_save_string = ndr->flags;
17235 20 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17236 20 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
17237 20 : ndr->flags = _flags_save_string;
17238 : }
17239 20 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
17240 : }
17241 20 : if (ndr_flags & NDR_BUFFERS) {
17242 0 : }
17243 20 : return NDR_ERR_SUCCESS;
17244 : }
17245 :
17246 0 : static void ndr_print_flags_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
17247 : {
17248 0 : ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, name, r);
17249 0 : }
17250 :
17251 0 : _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
17252 : {
17253 0 : ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
17254 0 : if (r == NULL) { ndr_print_null(ndr); return; }
17255 0 : ndr->depth++;
17256 : {
17257 0 : libndr_flags _flags_save_string = ndr->flags;
17258 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17259 0 : ndr_print_string(ndr, "directory_name", r->directory_name);
17260 0 : ndr->flags = _flags_save_string;
17261 : }
17262 0 : ndr->depth--;
17263 : }
17264 :
17265 0 : _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, libndr_flags flags)
17266 : {
17267 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1);
17268 : }
17269 :
17270 60 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
17271 : {
17272 60 : uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17273 0 : uint32_t level;
17274 : {
17275 60 : libndr_flags _flags_save_UNION = ndr->flags;
17276 60 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17277 60 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17278 60 : if (ndr_flags & NDR_SCALARS) {
17279 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
17280 60 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
17281 60 : NDR_CHECK(ndr_push_union_align(ndr, 4));
17282 60 : switch (level) {
17283 36 : case 1: {
17284 36 : NDR_CHECK(ndr_push_align(ndr, 4));
17285 36 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17286 36 : NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
17287 36 : break; }
17288 :
17289 24 : default: {
17290 24 : NDR_CHECK(ndr_push_align(ndr, 4));
17291 24 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17292 24 : NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
17293 24 : break; }
17294 :
17295 : }
17296 : }
17297 60 : ndr->flags = _flags_save_UNION;
17298 : }
17299 60 : ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17300 60 : return NDR_ERR_SUCCESS;
17301 : }
17302 :
17303 20 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
17304 : {
17305 20 : uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17306 0 : uint32_t level;
17307 : {
17308 20 : libndr_flags _flags_save_UNION = ndr->flags;
17309 20 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17310 20 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17311 20 : if (ndr_flags & NDR_SCALARS) {
17312 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
17313 20 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
17314 20 : NDR_CHECK(ndr_pull_union_align(ndr, 4));
17315 20 : switch (level) {
17316 12 : case 1: {
17317 12 : NDR_CHECK(ndr_pull_align(ndr, 4));
17318 12 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17319 12 : NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
17320 12 : break; }
17321 :
17322 8 : default: {
17323 8 : NDR_CHECK(ndr_pull_align(ndr, 4));
17324 8 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17325 8 : NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
17326 8 : break; }
17327 :
17328 : }
17329 : }
17330 20 : ndr->flags = _flags_save_UNION;
17331 : }
17332 20 : ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17333 20 : return NDR_ERR_SUCCESS;
17334 : }
17335 :
17336 0 : _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
17337 : {
17338 0 : uint32_t level;
17339 : {
17340 0 : libndr_flags _flags_save_UNION = ndr->flags;
17341 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17342 0 : level = ndr_print_steal_switch_value(ndr, r);
17343 0 : ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
17344 0 : switch (level) {
17345 0 : case 1:
17346 0 : ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
17347 0 : break;
17348 :
17349 0 : default:
17350 0 : ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
17351 0 : break;
17352 :
17353 : }
17354 0 : ndr->flags = _flags_save_UNION;
17355 : }
17356 0 : }
17357 :
17358 40 : _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, libndr_flags flags)
17359 : {
17360 40 : flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
17361 40 : return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo);
17362 : }
17363 :
17364 668 : static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DocumentInfo1 *r)
17365 : {
17366 668 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17367 668 : if (ndr_flags & NDR_SCALARS) {
17368 668 : NDR_CHECK(ndr_push_align(ndr, 5));
17369 668 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
17370 668 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
17371 668 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
17372 668 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17373 : }
17374 668 : if (ndr_flags & NDR_BUFFERS) {
17375 668 : if (r->document_name) {
17376 668 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
17377 668 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17378 668 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
17379 668 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17380 : }
17381 668 : if (r->output_file) {
17382 28 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
17383 28 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17384 28 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
17385 28 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17386 : }
17387 668 : if (r->datatype) {
17388 668 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
17389 668 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17390 668 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
17391 668 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17392 : }
17393 : }
17394 668 : return NDR_ERR_SUCCESS;
17395 : }
17396 :
17397 668 : static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DocumentInfo1 *r)
17398 : {
17399 0 : uint32_t _ptr_document_name;
17400 668 : uint32_t size_document_name_1 = 0;
17401 668 : uint32_t length_document_name_1 = 0;
17402 668 : TALLOC_CTX *_mem_save_document_name_0 = NULL;
17403 0 : uint32_t _ptr_output_file;
17404 668 : uint32_t size_output_file_1 = 0;
17405 668 : uint32_t length_output_file_1 = 0;
17406 668 : TALLOC_CTX *_mem_save_output_file_0 = NULL;
17407 0 : uint32_t _ptr_datatype;
17408 668 : uint32_t size_datatype_1 = 0;
17409 668 : uint32_t length_datatype_1 = 0;
17410 668 : TALLOC_CTX *_mem_save_datatype_0 = NULL;
17411 668 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17412 668 : if (ndr_flags & NDR_SCALARS) {
17413 668 : NDR_CHECK(ndr_pull_align(ndr, 5));
17414 668 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
17415 668 : if (_ptr_document_name) {
17416 668 : NDR_PULL_ALLOC(ndr, r->document_name);
17417 : } else {
17418 0 : r->document_name = NULL;
17419 : }
17420 668 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
17421 668 : if (_ptr_output_file) {
17422 28 : NDR_PULL_ALLOC(ndr, r->output_file);
17423 : } else {
17424 640 : r->output_file = NULL;
17425 : }
17426 668 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
17427 668 : if (_ptr_datatype) {
17428 668 : NDR_PULL_ALLOC(ndr, r->datatype);
17429 : } else {
17430 0 : r->datatype = NULL;
17431 : }
17432 668 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17433 : }
17434 668 : if (ndr_flags & NDR_BUFFERS) {
17435 668 : if (r->document_name) {
17436 668 : _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17437 668 : NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
17438 668 : NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
17439 668 : NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
17440 668 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->document_name, &size_document_name_1));
17441 668 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->document_name, &length_document_name_1));
17442 668 : if (length_document_name_1 > size_document_name_1) {
17443 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_document_name_1, length_document_name_1);
17444 : }
17445 668 : NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
17446 668 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
17447 668 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
17448 : }
17449 668 : if (r->output_file) {
17450 28 : _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
17451 28 : NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
17452 28 : NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
17453 28 : NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
17454 28 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->output_file, &size_output_file_1));
17455 28 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->output_file, &length_output_file_1));
17456 28 : if (length_output_file_1 > size_output_file_1) {
17457 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_output_file_1, length_output_file_1);
17458 : }
17459 28 : NDR_CHECK(ndr_check_string_terminator(ndr, length_output_file_1, sizeof(uint16_t)));
17460 28 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, length_output_file_1, sizeof(uint16_t), CH_UTF16));
17461 28 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
17462 : }
17463 668 : if (r->datatype) {
17464 668 : _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
17465 668 : NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
17466 668 : NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
17467 668 : NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
17468 668 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->datatype, &size_datatype_1));
17469 668 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->datatype, &length_datatype_1));
17470 668 : if (length_datatype_1 > size_datatype_1) {
17471 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_datatype_1, length_datatype_1);
17472 : }
17473 668 : NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
17474 668 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
17475 668 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
17476 : }
17477 : }
17478 668 : return NDR_ERR_SUCCESS;
17479 : }
17480 :
17481 0 : _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
17482 : {
17483 0 : ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
17484 0 : if (r == NULL) { ndr_print_null(ndr); return; }
17485 0 : ndr->depth++;
17486 0 : ndr_print_ptr(ndr, "document_name", r->document_name);
17487 0 : ndr->depth++;
17488 0 : if (r->document_name) {
17489 0 : ndr_print_string(ndr, "document_name", r->document_name);
17490 : }
17491 0 : ndr->depth--;
17492 0 : ndr_print_ptr(ndr, "output_file", r->output_file);
17493 0 : ndr->depth++;
17494 0 : if (r->output_file) {
17495 0 : ndr_print_string(ndr, "output_file", r->output_file);
17496 : }
17497 0 : ndr->depth--;
17498 0 : ndr_print_ptr(ndr, "datatype", r->datatype);
17499 0 : ndr->depth++;
17500 0 : if (r->datatype) {
17501 0 : ndr_print_string(ndr, "datatype", r->datatype);
17502 : }
17503 0 : ndr->depth--;
17504 0 : ndr->depth--;
17505 : }
17506 :
17507 1336 : static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_DocumentInfo *r)
17508 : {
17509 0 : uint32_t level;
17510 1336 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17511 1336 : if (ndr_flags & NDR_SCALARS) {
17512 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
17513 668 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
17514 668 : NDR_CHECK(ndr_push_union_align(ndr, 5));
17515 668 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17516 : /* ms_union is always aligned to the largest union arm*/
17517 668 : NDR_CHECK(ndr_push_align(ndr, 5));
17518 668 : switch (level) {
17519 668 : case 1: {
17520 668 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
17521 668 : break; }
17522 :
17523 0 : case 2: {
17524 0 : break; }
17525 :
17526 0 : case 3: {
17527 0 : break; }
17528 :
17529 0 : default: {
17530 0 : break; }
17531 :
17532 : }
17533 : }
17534 1336 : if (ndr_flags & NDR_BUFFERS) {
17535 668 : if (!(ndr_flags & NDR_SCALARS)) {
17536 : /* We didn't get it above, and the token is not needed after this. */
17537 668 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
17538 : }
17539 668 : switch (level) {
17540 668 : case 1:
17541 668 : if (r->info1) {
17542 668 : NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
17543 : }
17544 668 : break;
17545 :
17546 0 : case 2:
17547 0 : break;
17548 :
17549 0 : case 3:
17550 0 : break;
17551 :
17552 0 : default:
17553 0 : break;
17554 :
17555 : }
17556 : }
17557 1336 : return NDR_ERR_SUCCESS;
17558 : }
17559 :
17560 1336 : static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_DocumentInfo *r)
17561 : {
17562 0 : uint32_t level;
17563 0 : uint32_t _level;
17564 1336 : TALLOC_CTX *_mem_save_info1_0 = NULL;
17565 0 : uint32_t _ptr_info1;
17566 1336 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17567 1336 : if (ndr_flags & NDR_SCALARS) {
17568 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
17569 668 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
17570 668 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
17571 668 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17572 668 : if (_level != level) {
17573 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
17574 : }
17575 : /* ms_union is always aligned to the largest union arm*/
17576 668 : NDR_CHECK(ndr_pull_align(ndr, 5));
17577 668 : switch (level) {
17578 668 : case 1: {
17579 668 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
17580 668 : if (_ptr_info1) {
17581 668 : NDR_PULL_ALLOC(ndr, r->info1);
17582 : } else {
17583 0 : r->info1 = NULL;
17584 : }
17585 668 : break; }
17586 :
17587 0 : case 2: {
17588 0 : break; }
17589 :
17590 0 : case 3: {
17591 0 : break; }
17592 :
17593 0 : default: {
17594 0 : break; }
17595 :
17596 : }
17597 : }
17598 1336 : if (ndr_flags & NDR_BUFFERS) {
17599 668 : if (!(ndr_flags & NDR_SCALARS)) {
17600 : /* We didn't get it above, and the token is not needed after this. */
17601 668 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
17602 : }
17603 668 : switch (level) {
17604 668 : case 1:
17605 668 : if (r->info1) {
17606 668 : _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
17607 668 : NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
17608 668 : NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
17609 668 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
17610 : }
17611 668 : break;
17612 :
17613 0 : case 2:
17614 0 : break;
17615 :
17616 0 : case 3:
17617 0 : break;
17618 :
17619 0 : default:
17620 0 : break;
17621 :
17622 : }
17623 : }
17624 1336 : return NDR_ERR_SUCCESS;
17625 : }
17626 :
17627 0 : _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
17628 : {
17629 0 : uint32_t level;
17630 0 : level = ndr_print_steal_switch_value(ndr, r);
17631 0 : ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
17632 0 : switch (level) {
17633 0 : case 1:
17634 0 : ndr_print_ptr(ndr, "info1", r->info1);
17635 0 : ndr->depth++;
17636 0 : if (r->info1) {
17637 0 : ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
17638 : }
17639 0 : ndr->depth--;
17640 0 : break;
17641 :
17642 0 : case 2:
17643 0 : break;
17644 :
17645 0 : case 3:
17646 0 : break;
17647 :
17648 0 : default:
17649 0 : break;
17650 :
17651 : }
17652 0 : }
17653 :
17654 668 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DocumentInfoCtr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_DocumentInfoCtr *r)
17655 : {
17656 668 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17657 668 : if (ndr_flags & NDR_SCALARS) {
17658 668 : NDR_CHECK(ndr_push_align(ndr, 5));
17659 668 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
17660 668 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
17661 668 : NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS, &r->info));
17662 668 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17663 : }
17664 668 : if (ndr_flags & NDR_BUFFERS) {
17665 668 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
17666 668 : NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_BUFFERS, &r->info));
17667 : }
17668 668 : return NDR_ERR_SUCCESS;
17669 : }
17670 :
17671 668 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DocumentInfoCtr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_DocumentInfoCtr *r)
17672 : {
17673 668 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17674 668 : if (ndr_flags & NDR_SCALARS) {
17675 668 : NDR_CHECK(ndr_pull_align(ndr, 5));
17676 668 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
17677 668 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
17678 668 : NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS, &r->info));
17679 668 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17680 : }
17681 668 : if (ndr_flags & NDR_BUFFERS) {
17682 668 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
17683 668 : NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_BUFFERS, &r->info));
17684 : }
17685 668 : return NDR_ERR_SUCCESS;
17686 : }
17687 :
17688 0 : static void ndr_print_flags_spoolss_DocumentInfoCtr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_DocumentInfoCtr *r)
17689 : {
17690 0 : ndr_print_spoolss_DocumentInfoCtr(ndr, name, r);
17691 0 : }
17692 :
17693 0 : _PUBLIC_ void ndr_print_spoolss_DocumentInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfoCtr *r)
17694 : {
17695 0 : ndr_print_struct(ndr, name, "spoolss_DocumentInfoCtr");
17696 0 : if (r == NULL) { ndr_print_null(ndr); return; }
17697 0 : ndr->depth++;
17698 0 : ndr_print_uint32(ndr, "level", r->level);
17699 0 : ndr_print_set_switch_value(ndr, &r->info, r->level);
17700 0 : ndr_print_spoolss_DocumentInfo(ndr, "info", &r->info);
17701 0 : ndr->depth--;
17702 : }
17703 :
17704 80 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_OSVersion *r)
17705 : {
17706 80 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17707 80 : if (ndr_flags & NDR_SCALARS) {
17708 80 : NDR_CHECK(ndr_push_align(ndr, 4));
17709 80 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->flags)));
17710 80 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
17711 80 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
17712 80 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17713 80 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17714 : {
17715 80 : libndr_flags _flags_save_string = ndr->flags;
17716 80 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17717 : {
17718 0 : struct ndr_push *_ndr_extra_string;
17719 80 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
17720 80 : NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
17721 80 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
17722 : }
17723 80 : ndr->flags = _flags_save_string;
17724 : }
17725 80 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
17726 : }
17727 80 : if (ndr_flags & NDR_BUFFERS) {
17728 0 : }
17729 80 : return NDR_ERR_SUCCESS;
17730 : }
17731 :
17732 8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_OSVersion *r)
17733 : {
17734 8 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17735 8 : if (ndr_flags & NDR_SCALARS) {
17736 8 : NDR_CHECK(ndr_pull_align(ndr, 4));
17737 8 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
17738 8 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
17739 8 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
17740 8 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17741 8 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
17742 : {
17743 8 : libndr_flags _flags_save_string = ndr->flags;
17744 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17745 : {
17746 0 : struct ndr_pull *_ndr_extra_string;
17747 8 : ssize_t sub_size = 256;
17748 8 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, sub_size));
17749 8 : NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
17750 8 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, sub_size));
17751 : }
17752 8 : ndr->flags = _flags_save_string;
17753 : }
17754 8 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
17755 : }
17756 8 : if (ndr_flags & NDR_BUFFERS) {
17757 0 : }
17758 8 : return NDR_ERR_SUCCESS;
17759 : }
17760 :
17761 0 : static void ndr_print_flags_spoolss_OSVersion(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_OSVersion *r)
17762 : {
17763 0 : ndr_print_spoolss_OSVersion(ndr, name, r);
17764 0 : }
17765 :
17766 0 : _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
17767 : {
17768 0 : ndr_print_struct(ndr, name, "spoolss_OSVersion");
17769 0 : if (r == NULL) { ndr_print_null(ndr); return; }
17770 0 : ndr->depth++;
17771 0 : ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_OSVersion(r, ndr->flags):r->_ndr_size);
17772 0 : ndr_print_uint32(ndr, "major", r->major);
17773 0 : ndr_print_uint32(ndr, "minor", r->minor);
17774 0 : ndr_print_uint32(ndr, "build", r->build);
17775 0 : ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
17776 : {
17777 0 : libndr_flags _flags_save_string = ndr->flags;
17778 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17779 0 : ndr_print_string(ndr, "extra_string", r->extra_string);
17780 0 : ndr->flags = _flags_save_string;
17781 : }
17782 0 : ndr->depth--;
17783 : }
17784 :
17785 80 : _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, libndr_flags flags)
17786 : {
17787 80 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion);
17788 : }
17789 :
17790 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_OSVersionEx *r)
17791 : {
17792 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17793 0 : if (ndr_flags & NDR_SCALARS) {
17794 0 : NDR_CHECK(ndr_push_align(ndr, 4));
17795 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->flags)));
17796 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
17797 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
17798 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17799 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17800 : {
17801 0 : libndr_flags _flags_save_string = ndr->flags;
17802 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17803 : {
17804 0 : struct ndr_push *_ndr_extra_string;
17805 0 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
17806 0 : NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
17807 0 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
17808 : }
17809 0 : ndr->flags = _flags_save_string;
17810 : }
17811 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
17812 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
17813 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
17814 0 : NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
17815 0 : NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
17816 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
17817 : }
17818 0 : if (ndr_flags & NDR_BUFFERS) {
17819 0 : }
17820 0 : return NDR_ERR_SUCCESS;
17821 : }
17822 :
17823 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_OSVersionEx *r)
17824 : {
17825 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17826 0 : if (ndr_flags & NDR_SCALARS) {
17827 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
17828 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
17829 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
17830 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
17831 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17832 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
17833 : {
17834 0 : libndr_flags _flags_save_string = ndr->flags;
17835 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17836 : {
17837 0 : struct ndr_pull *_ndr_extra_string;
17838 0 : ssize_t sub_size = 256;
17839 0 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, sub_size));
17840 0 : NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
17841 0 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, sub_size));
17842 : }
17843 0 : ndr->flags = _flags_save_string;
17844 : }
17845 0 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
17846 0 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
17847 0 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
17848 0 : NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
17849 0 : NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
17850 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
17851 : }
17852 0 : if (ndr_flags & NDR_BUFFERS) {
17853 0 : }
17854 0 : return NDR_ERR_SUCCESS;
17855 : }
17856 :
17857 0 : static void ndr_print_flags_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_OSVersionEx *r)
17858 : {
17859 0 : ndr_print_spoolss_OSVersionEx(ndr, name, r);
17860 0 : }
17861 :
17862 0 : _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
17863 : {
17864 0 : ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
17865 0 : if (r == NULL) { ndr_print_null(ndr); return; }
17866 0 : ndr->depth++;
17867 0 : ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_OSVersionEx(r, ndr->flags):r->_ndr_size);
17868 0 : ndr_print_uint32(ndr, "major", r->major);
17869 0 : ndr_print_uint32(ndr, "minor", r->minor);
17870 0 : ndr_print_uint32(ndr, "build", r->build);
17871 0 : ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
17872 : {
17873 0 : libndr_flags _flags_save_string = ndr->flags;
17874 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17875 0 : ndr_print_string(ndr, "extra_string", r->extra_string);
17876 0 : ndr->flags = _flags_save_string;
17877 : }
17878 0 : ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
17879 0 : ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
17880 0 : ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
17881 0 : ndr_print_uint8(ndr, "product_type", r->product_type);
17882 0 : ndr_print_uint8(ndr, "reserved", r->reserved);
17883 0 : ndr->depth--;
17884 : }
17885 :
17886 0 : _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, libndr_flags flags)
17887 : {
17888 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx);
17889 : }
17890 :
17891 400 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_PrinterData *r)
17892 : {
17893 0 : uint32_t level;
17894 400 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17895 400 : if (ndr_flags & NDR_SCALARS) {
17896 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
17897 400 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
17898 400 : NDR_CHECK(ndr_push_union_align(ndr, 4));
17899 400 : switch (level) {
17900 0 : case REG_NONE: {
17901 0 : break; }
17902 :
17903 208 : case REG_SZ: {
17904 : {
17905 208 : libndr_flags _flags_save_string = ndr->flags;
17906 208 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17907 208 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
17908 208 : ndr->flags = _flags_save_string;
17909 : }
17910 208 : break; }
17911 :
17912 40 : case REG_BINARY: {
17913 : {
17914 40 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
17915 40 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
17916 40 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
17917 40 : ndr->flags = _flags_save_DATA_BLOB;
17918 : }
17919 40 : break; }
17920 :
17921 152 : case REG_DWORD: {
17922 152 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
17923 152 : break; }
17924 :
17925 0 : case REG_MULTI_SZ: {
17926 : {
17927 0 : libndr_flags _flags_save_string_array = ndr->flags;
17928 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17929 0 : NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
17930 0 : ndr->flags = _flags_save_string_array;
17931 : }
17932 0 : break; }
17933 :
17934 0 : default: {
17935 : {
17936 0 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
17937 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
17938 0 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
17939 0 : ndr->flags = _flags_save_DATA_BLOB;
17940 : }
17941 0 : break; }
17942 :
17943 : }
17944 : }
17945 400 : return NDR_ERR_SUCCESS;
17946 : }
17947 :
17948 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_PrinterData *r)
17949 : {
17950 0 : uint32_t level;
17951 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17952 0 : if (ndr_flags & NDR_SCALARS) {
17953 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
17954 0 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
17955 0 : NDR_CHECK(ndr_pull_union_align(ndr, 4));
17956 0 : switch (level) {
17957 0 : case REG_NONE: {
17958 0 : break; }
17959 :
17960 0 : case REG_SZ: {
17961 : {
17962 0 : libndr_flags _flags_save_string = ndr->flags;
17963 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17964 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
17965 0 : ndr->flags = _flags_save_string;
17966 : }
17967 0 : break; }
17968 :
17969 0 : case REG_BINARY: {
17970 : {
17971 0 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
17972 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
17973 0 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
17974 0 : ndr->flags = _flags_save_DATA_BLOB;
17975 : }
17976 0 : break; }
17977 :
17978 0 : case REG_DWORD: {
17979 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
17980 0 : break; }
17981 :
17982 0 : case REG_MULTI_SZ: {
17983 : {
17984 0 : libndr_flags _flags_save_string_array = ndr->flags;
17985 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17986 0 : NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
17987 0 : ndr->flags = _flags_save_string_array;
17988 : }
17989 0 : break; }
17990 :
17991 0 : default: {
17992 : {
17993 0 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
17994 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
17995 0 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
17996 0 : ndr->flags = _flags_save_DATA_BLOB;
17997 : }
17998 0 : break; }
17999 :
18000 : }
18001 : }
18002 0 : return NDR_ERR_SUCCESS;
18003 : }
18004 :
18005 0 : _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
18006 : {
18007 0 : uint32_t level;
18008 0 : level = ndr_print_steal_switch_value(ndr, r);
18009 0 : ndr_print_union(ndr, name, level, "spoolss_PrinterData");
18010 0 : switch (level) {
18011 0 : case REG_NONE:
18012 0 : break;
18013 :
18014 0 : case REG_SZ:
18015 : {
18016 0 : libndr_flags _flags_save_string = ndr->flags;
18017 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18018 0 : ndr_print_string(ndr, "string", r->string);
18019 0 : ndr->flags = _flags_save_string;
18020 : }
18021 0 : break;
18022 :
18023 0 : case REG_BINARY:
18024 : {
18025 0 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
18026 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
18027 0 : ndr_print_DATA_BLOB(ndr, "binary", r->binary);
18028 0 : ndr->flags = _flags_save_DATA_BLOB;
18029 : }
18030 0 : break;
18031 :
18032 0 : case REG_DWORD:
18033 0 : ndr_print_uint32(ndr, "value", r->value);
18034 0 : break;
18035 :
18036 0 : case REG_MULTI_SZ:
18037 : {
18038 0 : libndr_flags _flags_save_string_array = ndr->flags;
18039 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18040 0 : ndr_print_string_array(ndr, "string_array", r->string_array);
18041 0 : ndr->flags = _flags_save_string_array;
18042 : }
18043 0 : break;
18044 :
18045 0 : default:
18046 : {
18047 0 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
18048 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
18049 0 : ndr_print_DATA_BLOB(ndr, "data", r->data);
18050 0 : ndr->flags = _flags_save_DATA_BLOB;
18051 : }
18052 0 : break;
18053 :
18054 : }
18055 0 : }
18056 :
18057 103376 : static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_FormFlags r)
18058 : {
18059 103376 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
18060 103376 : return NDR_ERR_SUCCESS;
18061 : }
18062 :
18063 34896 : static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_FormFlags *r)
18064 : {
18065 0 : uint32_t v;
18066 34896 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
18067 34896 : *r = v;
18068 34896 : return NDR_ERR_SUCCESS;
18069 : }
18070 :
18071 0 : _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
18072 : {
18073 0 : const char *val = NULL;
18074 :
18075 0 : switch (r) {
18076 0 : case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
18077 0 : case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
18078 0 : case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
18079 : }
18080 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
18081 0 : }
18082 :
18083 103376 : static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_FormSize *r)
18084 : {
18085 103376 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
18086 103376 : if (ndr_flags & NDR_SCALARS) {
18087 103376 : NDR_CHECK(ndr_push_align(ndr, 4));
18088 103376 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
18089 103376 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
18090 103376 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
18091 : }
18092 103376 : if (ndr_flags & NDR_BUFFERS) {
18093 0 : }
18094 103376 : return NDR_ERR_SUCCESS;
18095 : }
18096 :
18097 34896 : static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_FormSize *r)
18098 : {
18099 34896 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
18100 34896 : if (ndr_flags & NDR_SCALARS) {
18101 34896 : NDR_CHECK(ndr_pull_align(ndr, 4));
18102 34896 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
18103 34896 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
18104 34896 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
18105 : }
18106 34896 : if (ndr_flags & NDR_BUFFERS) {
18107 0 : }
18108 34896 : return NDR_ERR_SUCCESS;
18109 : }
18110 :
18111 0 : _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
18112 : {
18113 0 : ndr_print_struct(ndr, name, "spoolss_FormSize");
18114 0 : if (r == NULL) { ndr_print_null(ndr); return; }
18115 0 : ndr->depth++;
18116 0 : ndr_print_uint32(ndr, "width", r->width);
18117 0 : ndr_print_uint32(ndr, "height", r->height);
18118 0 : ndr->depth--;
18119 : }
18120 :
18121 103376 : static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_FormArea *r)
18122 : {
18123 103376 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
18124 103376 : if (ndr_flags & NDR_SCALARS) {
18125 103376 : NDR_CHECK(ndr_push_align(ndr, 4));
18126 103376 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
18127 103376 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
18128 103376 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
18129 103376 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
18130 103376 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
18131 : }
18132 103376 : if (ndr_flags & NDR_BUFFERS) {
18133 0 : }
18134 103376 : return NDR_ERR_SUCCESS;
18135 : }
18136 :
18137 34896 : static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_FormArea *r)
18138 : {
18139 34896 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
18140 34896 : if (ndr_flags & NDR_SCALARS) {
18141 34896 : NDR_CHECK(ndr_pull_align(ndr, 4));
18142 34896 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
18143 34896 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
18144 34896 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
18145 34896 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
18146 34896 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
18147 : }
18148 34896 : if (ndr_flags & NDR_BUFFERS) {
18149 0 : }
18150 34896 : return NDR_ERR_SUCCESS;
18151 : }
18152 :
18153 0 : _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
18154 : {
18155 0 : ndr_print_struct(ndr, name, "spoolss_FormArea");
18156 0 : if (r == NULL) { ndr_print_null(ndr); return; }
18157 0 : ndr->depth++;
18158 0 : ndr_print_uint32(ndr, "left", r->left);
18159 0 : ndr_print_uint32(ndr, "top", r->top);
18160 0 : ndr_print_uint32(ndr, "right", r->right);
18161 0 : ndr_print_uint32(ndr, "bottom", r->bottom);
18162 0 : ndr->depth--;
18163 : }
18164 :
18165 205440 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_FormInfo1 *r)
18166 : {
18167 205440 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
18168 205440 : if (ndr_flags & NDR_SCALARS) {
18169 102720 : NDR_CHECK(ndr_push_align(ndr, 5));
18170 102720 : NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
18171 : {
18172 102720 : libndr_flags _flags_save_string = ndr->flags;
18173 102720 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18174 102720 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
18175 102720 : ndr->flags = _flags_save_string;
18176 : }
18177 102720 : NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
18178 102720 : NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
18179 102720 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18180 : }
18181 205440 : if (ndr_flags & NDR_BUFFERS) {
18182 : {
18183 102720 : libndr_flags _flags_save_string = ndr->flags;
18184 102720 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18185 102720 : if (r->form_name) {
18186 102720 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
18187 102720 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
18188 102720 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
18189 : }
18190 102720 : ndr->flags = _flags_save_string;
18191 : }
18192 : }
18193 205440 : return NDR_ERR_SUCCESS;
18194 : }
18195 :
18196 68480 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_FormInfo1 *r)
18197 : {
18198 0 : uint32_t _ptr_form_name;
18199 68480 : TALLOC_CTX *_mem_save_form_name_0 = NULL;
18200 68480 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
18201 68480 : if (ndr_flags & NDR_SCALARS) {
18202 34240 : NDR_CHECK(ndr_pull_align(ndr, 5));
18203 34240 : NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
18204 : {
18205 34240 : libndr_flags _flags_save_string = ndr->flags;
18206 34240 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18207 34240 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
18208 34240 : if (_ptr_form_name) {
18209 34240 : NDR_PULL_ALLOC(ndr, r->form_name);
18210 34240 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
18211 : } else {
18212 0 : r->form_name = NULL;
18213 : }
18214 34240 : ndr->flags = _flags_save_string;
18215 : }
18216 34240 : NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
18217 34240 : NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
18218 34240 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18219 : }
18220 68480 : if (ndr_flags & NDR_BUFFERS) {
18221 : {
18222 34240 : libndr_flags _flags_save_string = ndr->flags;
18223 34240 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18224 34240 : if (r->form_name) {
18225 0 : uint32_t _relative_save_offset;
18226 34240 : _relative_save_offset = ndr->offset;
18227 34240 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
18228 34240 : _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18229 34240 : NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
18230 34240 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
18231 34240 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
18232 34240 : if (ndr->offset > ndr->relative_highest_offset) {
18233 2788 : ndr->relative_highest_offset = ndr->offset;
18234 : }
18235 34240 : ndr->offset = _relative_save_offset;
18236 : }
18237 34240 : ndr->flags = _flags_save_string;
18238 : }
18239 : }
18240 68480 : return NDR_ERR_SUCCESS;
18241 : }
18242 :
18243 0 : static void ndr_print_flags_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_FormInfo1 *r)
18244 : {
18245 0 : ndr_print_spoolss_FormInfo1(ndr, name, r);
18246 0 : }
18247 :
18248 0 : _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
18249 : {
18250 0 : ndr_print_struct(ndr, name, "spoolss_FormInfo1");
18251 0 : if (r == NULL) { ndr_print_null(ndr); return; }
18252 0 : ndr->depth++;
18253 0 : ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
18254 : {
18255 0 : libndr_flags _flags_save_string = ndr->flags;
18256 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18257 0 : ndr_print_ptr(ndr, "form_name", r->form_name);
18258 0 : ndr->depth++;
18259 0 : if (r->form_name) {
18260 0 : ndr_print_string(ndr, "form_name", r->form_name);
18261 : }
18262 0 : ndr->depth--;
18263 0 : ndr->flags = _flags_save_string;
18264 : }
18265 0 : ndr_print_spoolss_FormSize(ndr, "size", &r->size);
18266 0 : ndr_print_spoolss_FormArea(ndr, "area", &r->area);
18267 0 : ndr->depth--;
18268 : }
18269 :
18270 0 : _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, libndr_flags flags)
18271 : {
18272 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1);
18273 : }
18274 :
18275 0 : static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
18276 : {
18277 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18278 0 : return NDR_ERR_SUCCESS;
18279 : }
18280 :
18281 0 : static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
18282 : {
18283 0 : uint32_t v;
18284 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18285 0 : *r = v;
18286 0 : return NDR_ERR_SUCCESS;
18287 : }
18288 :
18289 0 : _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
18290 : {
18291 0 : ndr_print_uint32(ndr, name, r);
18292 0 : ndr->depth++;
18293 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
18294 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
18295 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
18296 0 : ndr->depth--;
18297 0 : }
18298 :
18299 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_FormInfo2 *r)
18300 : {
18301 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
18302 0 : if (ndr_flags & NDR_SCALARS) {
18303 0 : NDR_CHECK(ndr_push_align(ndr, 5));
18304 0 : NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
18305 : {
18306 0 : libndr_flags _flags_save_string = ndr->flags;
18307 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18308 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
18309 0 : ndr->flags = _flags_save_string;
18310 : }
18311 0 : NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
18312 0 : NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
18313 : {
18314 0 : libndr_flags _flags_save_string = ndr->flags;
18315 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
18316 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
18317 0 : ndr->flags = _flags_save_string;
18318 : }
18319 0 : NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
18320 : {
18321 0 : libndr_flags _flags_save_string = ndr->flags;
18322 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18323 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
18324 0 : ndr->flags = _flags_save_string;
18325 : }
18326 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
18327 : {
18328 0 : libndr_flags _flags_save_string = ndr->flags;
18329 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18330 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
18331 0 : ndr->flags = _flags_save_string;
18332 : }
18333 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lang_id));
18334 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unused));
18335 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18336 : }
18337 0 : if (ndr_flags & NDR_BUFFERS) {
18338 : {
18339 0 : libndr_flags _flags_save_string = ndr->flags;
18340 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18341 0 : if (r->form_name) {
18342 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
18343 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
18344 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
18345 : }
18346 0 : ndr->flags = _flags_save_string;
18347 : }
18348 : {
18349 0 : libndr_flags _flags_save_string = ndr->flags;
18350 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
18351 0 : if (r->keyword) {
18352 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->keyword));
18353 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
18354 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->keyword));
18355 : }
18356 0 : ndr->flags = _flags_save_string;
18357 : }
18358 : {
18359 0 : libndr_flags _flags_save_string = ndr->flags;
18360 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18361 0 : if (r->mui_dll) {
18362 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->mui_dll));
18363 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
18364 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->mui_dll));
18365 : }
18366 0 : ndr->flags = _flags_save_string;
18367 : }
18368 : {
18369 0 : libndr_flags _flags_save_string = ndr->flags;
18370 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18371 0 : if (r->display_name) {
18372 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->display_name));
18373 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
18374 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->display_name));
18375 : }
18376 0 : ndr->flags = _flags_save_string;
18377 : }
18378 : }
18379 0 : return NDR_ERR_SUCCESS;
18380 : }
18381 :
18382 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_FormInfo2 *r)
18383 : {
18384 0 : uint32_t _ptr_form_name;
18385 0 : TALLOC_CTX *_mem_save_form_name_0 = NULL;
18386 0 : uint32_t _ptr_keyword;
18387 0 : TALLOC_CTX *_mem_save_keyword_0 = NULL;
18388 0 : uint32_t _ptr_mui_dll;
18389 0 : TALLOC_CTX *_mem_save_mui_dll_0 = NULL;
18390 0 : uint32_t _ptr_display_name;
18391 0 : TALLOC_CTX *_mem_save_display_name_0 = NULL;
18392 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
18393 0 : if (ndr_flags & NDR_SCALARS) {
18394 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
18395 0 : NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
18396 : {
18397 0 : libndr_flags _flags_save_string = ndr->flags;
18398 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18399 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
18400 0 : if (_ptr_form_name) {
18401 0 : NDR_PULL_ALLOC(ndr, r->form_name);
18402 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
18403 : } else {
18404 0 : r->form_name = NULL;
18405 : }
18406 0 : ndr->flags = _flags_save_string;
18407 : }
18408 0 : NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
18409 0 : NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
18410 : {
18411 0 : libndr_flags _flags_save_string = ndr->flags;
18412 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
18413 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
18414 0 : if (_ptr_keyword) {
18415 0 : NDR_PULL_ALLOC(ndr, r->keyword);
18416 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
18417 : } else {
18418 0 : r->keyword = NULL;
18419 : }
18420 0 : ndr->flags = _flags_save_string;
18421 : }
18422 0 : NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
18423 : {
18424 0 : libndr_flags _flags_save_string = ndr->flags;
18425 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18426 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
18427 0 : if (_ptr_mui_dll) {
18428 0 : NDR_PULL_ALLOC(ndr, r->mui_dll);
18429 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
18430 : } else {
18431 0 : r->mui_dll = NULL;
18432 : }
18433 0 : ndr->flags = _flags_save_string;
18434 : }
18435 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
18436 : {
18437 0 : libndr_flags _flags_save_string = ndr->flags;
18438 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18439 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
18440 0 : if (_ptr_display_name) {
18441 0 : NDR_PULL_ALLOC(ndr, r->display_name);
18442 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
18443 : } else {
18444 0 : r->display_name = NULL;
18445 : }
18446 0 : ndr->flags = _flags_save_string;
18447 : }
18448 0 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lang_id));
18449 0 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unused));
18450 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18451 : }
18452 0 : if (ndr_flags & NDR_BUFFERS) {
18453 : {
18454 0 : libndr_flags _flags_save_string = ndr->flags;
18455 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18456 0 : if (r->form_name) {
18457 0 : uint32_t _relative_save_offset;
18458 0 : _relative_save_offset = ndr->offset;
18459 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
18460 0 : _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18461 0 : NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
18462 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
18463 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
18464 0 : if (ndr->offset > ndr->relative_highest_offset) {
18465 0 : ndr->relative_highest_offset = ndr->offset;
18466 : }
18467 0 : ndr->offset = _relative_save_offset;
18468 : }
18469 0 : ndr->flags = _flags_save_string;
18470 : }
18471 : {
18472 0 : libndr_flags _flags_save_string = ndr->flags;
18473 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
18474 0 : if (r->keyword) {
18475 0 : uint32_t _relative_save_offset;
18476 0 : _relative_save_offset = ndr->offset;
18477 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
18478 0 : _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
18479 0 : NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
18480 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
18481 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
18482 0 : if (ndr->offset > ndr->relative_highest_offset) {
18483 0 : ndr->relative_highest_offset = ndr->offset;
18484 : }
18485 0 : ndr->offset = _relative_save_offset;
18486 : }
18487 0 : ndr->flags = _flags_save_string;
18488 : }
18489 : {
18490 0 : libndr_flags _flags_save_string = ndr->flags;
18491 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18492 0 : if (r->mui_dll) {
18493 0 : uint32_t _relative_save_offset;
18494 0 : _relative_save_offset = ndr->offset;
18495 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
18496 0 : _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
18497 0 : NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
18498 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
18499 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
18500 0 : if (ndr->offset > ndr->relative_highest_offset) {
18501 0 : ndr->relative_highest_offset = ndr->offset;
18502 : }
18503 0 : ndr->offset = _relative_save_offset;
18504 : }
18505 0 : ndr->flags = _flags_save_string;
18506 : }
18507 : {
18508 0 : libndr_flags _flags_save_string = ndr->flags;
18509 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18510 0 : if (r->display_name) {
18511 0 : uint32_t _relative_save_offset;
18512 0 : _relative_save_offset = ndr->offset;
18513 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
18514 0 : _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18515 0 : NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
18516 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
18517 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
18518 0 : if (ndr->offset > ndr->relative_highest_offset) {
18519 0 : ndr->relative_highest_offset = ndr->offset;
18520 : }
18521 0 : ndr->offset = _relative_save_offset;
18522 : }
18523 0 : ndr->flags = _flags_save_string;
18524 : }
18525 : }
18526 0 : return NDR_ERR_SUCCESS;
18527 : }
18528 :
18529 0 : static void ndr_print_flags_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_FormInfo2 *r)
18530 : {
18531 0 : ndr_print_spoolss_FormInfo2(ndr, name, r);
18532 0 : }
18533 :
18534 0 : _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
18535 : {
18536 0 : ndr_print_struct(ndr, name, "spoolss_FormInfo2");
18537 0 : if (r == NULL) { ndr_print_null(ndr); return; }
18538 0 : ndr->depth++;
18539 0 : ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
18540 : {
18541 0 : libndr_flags _flags_save_string = ndr->flags;
18542 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18543 0 : ndr_print_ptr(ndr, "form_name", r->form_name);
18544 0 : ndr->depth++;
18545 0 : if (r->form_name) {
18546 0 : ndr_print_string(ndr, "form_name", r->form_name);
18547 : }
18548 0 : ndr->depth--;
18549 0 : ndr->flags = _flags_save_string;
18550 : }
18551 0 : ndr_print_spoolss_FormSize(ndr, "size", &r->size);
18552 0 : ndr_print_spoolss_FormArea(ndr, "area", &r->area);
18553 : {
18554 0 : libndr_flags _flags_save_string = ndr->flags;
18555 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
18556 0 : ndr_print_ptr(ndr, "keyword", r->keyword);
18557 0 : ndr->depth++;
18558 0 : if (r->keyword) {
18559 0 : ndr_print_string(ndr, "keyword", r->keyword);
18560 : }
18561 0 : ndr->depth--;
18562 0 : ndr->flags = _flags_save_string;
18563 : }
18564 0 : ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
18565 : {
18566 0 : libndr_flags _flags_save_string = ndr->flags;
18567 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18568 0 : ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
18569 0 : ndr->depth++;
18570 0 : if (r->mui_dll) {
18571 0 : ndr_print_string(ndr, "mui_dll", r->mui_dll);
18572 : }
18573 0 : ndr->depth--;
18574 0 : ndr->flags = _flags_save_string;
18575 : }
18576 0 : ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
18577 : {
18578 0 : libndr_flags _flags_save_string = ndr->flags;
18579 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18580 0 : ndr_print_ptr(ndr, "display_name", r->display_name);
18581 0 : ndr->depth++;
18582 0 : if (r->display_name) {
18583 0 : ndr_print_string(ndr, "display_name", r->display_name);
18584 : }
18585 0 : ndr->depth--;
18586 0 : ndr->flags = _flags_save_string;
18587 : }
18588 0 : ndr_print_uint16(ndr, "lang_id", r->lang_id);
18589 0 : ndr_print_uint16(ndr, "unused", r->unused);
18590 0 : ndr->depth--;
18591 : }
18592 :
18593 0 : _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, libndr_flags flags)
18594 : {
18595 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2);
18596 : }
18597 :
18598 197880 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_FormInfo *r)
18599 : {
18600 197880 : uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18601 0 : uint32_t level;
18602 : {
18603 197880 : libndr_flags _flags_save_UNION = ndr->flags;
18604 197880 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18605 197880 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
18606 197880 : if (ndr_flags & NDR_SCALARS) {
18607 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
18608 102720 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
18609 102720 : NDR_CHECK(ndr_push_union_align(ndr, 5));
18610 102720 : switch (level) {
18611 102720 : case 1: {
18612 102720 : NDR_CHECK(ndr_push_align(ndr, 5));
18613 102720 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18614 102720 : NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
18615 102720 : break; }
18616 :
18617 0 : case 2: {
18618 0 : NDR_CHECK(ndr_push_align(ndr, 5));
18619 0 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18620 0 : NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
18621 0 : break; }
18622 :
18623 0 : default: {
18624 0 : break; }
18625 :
18626 : }
18627 : }
18628 197880 : if (ndr_flags & NDR_BUFFERS) {
18629 102720 : if (!(ndr_flags & NDR_SCALARS)) {
18630 : /* We didn't get it above, and the token is not needed after this. */
18631 95160 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
18632 : }
18633 102720 : NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18634 102720 : switch (level) {
18635 102720 : case 1:
18636 102720 : NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
18637 102720 : break;
18638 :
18639 0 : case 2:
18640 0 : NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
18641 0 : break;
18642 :
18643 0 : default:
18644 0 : break;
18645 :
18646 : }
18647 : }
18648 197880 : ndr->flags = _flags_save_UNION;
18649 : }
18650 197880 : ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18651 197880 : return NDR_ERR_SUCCESS;
18652 : }
18653 :
18654 66472 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_FormInfo *r)
18655 : {
18656 66472 : uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18657 512 : uint32_t level;
18658 : {
18659 66472 : libndr_flags _flags_save_UNION = ndr->flags;
18660 66472 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18661 66472 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
18662 66472 : if (ndr_flags & NDR_SCALARS) {
18663 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
18664 34496 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
18665 34496 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
18666 34496 : switch (level) {
18667 34240 : case 1: {
18668 34240 : NDR_CHECK(ndr_pull_align(ndr, 5));
18669 34240 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18670 34240 : NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
18671 34240 : break; }
18672 :
18673 0 : case 2: {
18674 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
18675 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18676 0 : NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
18677 0 : break; }
18678 :
18679 0 : default: {
18680 0 : break; }
18681 :
18682 : }
18683 : }
18684 66472 : if (ndr_flags & NDR_BUFFERS) {
18685 34496 : if (!(ndr_flags & NDR_SCALARS)) {
18686 : /* We didn't get it above, and the token is not needed after this. */
18687 31976 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
18688 : }
18689 34496 : switch (level) {
18690 34240 : case 1:
18691 34240 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18692 34240 : NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
18693 34240 : break;
18694 :
18695 0 : case 2:
18696 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18697 0 : NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
18698 0 : break;
18699 :
18700 0 : default:
18701 0 : break;
18702 :
18703 : }
18704 : }
18705 66472 : ndr->flags = _flags_save_UNION;
18706 : }
18707 66472 : ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18708 66472 : return NDR_ERR_SUCCESS;
18709 : }
18710 :
18711 256 : _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
18712 : {
18713 256 : uint32_t level;
18714 : {
18715 256 : libndr_flags _flags_save_UNION = ndr->flags;
18716 256 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18717 256 : level = ndr_print_steal_switch_value(ndr, r);
18718 256 : ndr_print_union(ndr, name, level, "spoolss_FormInfo");
18719 256 : switch (level) {
18720 0 : case 1:
18721 0 : ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
18722 0 : break;
18723 :
18724 0 : case 2:
18725 0 : ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
18726 0 : break;
18727 :
18728 0 : default:
18729 0 : break;
18730 :
18731 : }
18732 256 : ndr->flags = _flags_save_UNION;
18733 : }
18734 256 : }
18735 :
18736 5040 : _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, libndr_flags flags)
18737 : {
18738 5040 : flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
18739 5040 : return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo);
18740 : }
18741 :
18742 656 : static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddFormInfo1 *r)
18743 : {
18744 656 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
18745 656 : if (ndr_flags & NDR_SCALARS) {
18746 656 : NDR_CHECK(ndr_push_align(ndr, 5));
18747 656 : NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
18748 656 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
18749 656 : NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
18750 656 : NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
18751 656 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18752 : }
18753 656 : if (ndr_flags & NDR_BUFFERS) {
18754 656 : if (r->form_name) {
18755 656 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
18756 656 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18757 656 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
18758 656 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18759 : }
18760 : }
18761 656 : return NDR_ERR_SUCCESS;
18762 : }
18763 :
18764 656 : static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddFormInfo1 *r)
18765 : {
18766 0 : uint32_t _ptr_form_name;
18767 656 : uint32_t size_form_name_1 = 0;
18768 656 : uint32_t length_form_name_1 = 0;
18769 656 : TALLOC_CTX *_mem_save_form_name_0 = NULL;
18770 656 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
18771 656 : if (ndr_flags & NDR_SCALARS) {
18772 656 : NDR_CHECK(ndr_pull_align(ndr, 5));
18773 656 : NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
18774 656 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
18775 656 : if (_ptr_form_name) {
18776 656 : NDR_PULL_ALLOC(ndr, r->form_name);
18777 : } else {
18778 0 : r->form_name = NULL;
18779 : }
18780 656 : NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
18781 656 : NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
18782 656 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18783 : }
18784 656 : if (ndr_flags & NDR_BUFFERS) {
18785 656 : if (r->form_name) {
18786 656 : _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18787 656 : NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
18788 656 : NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
18789 656 : NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
18790 656 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->form_name, &size_form_name_1));
18791 656 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->form_name, &length_form_name_1));
18792 656 : if (length_form_name_1 > size_form_name_1) {
18793 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_form_name_1, length_form_name_1);
18794 : }
18795 656 : NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_1, sizeof(uint16_t)));
18796 656 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, length_form_name_1, sizeof(uint16_t), CH_UTF16));
18797 656 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
18798 : }
18799 : }
18800 656 : return NDR_ERR_SUCCESS;
18801 : }
18802 :
18803 0 : _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
18804 : {
18805 0 : ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
18806 0 : if (r == NULL) { ndr_print_null(ndr); return; }
18807 0 : ndr->depth++;
18808 0 : ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
18809 0 : ndr_print_ptr(ndr, "form_name", r->form_name);
18810 0 : ndr->depth++;
18811 0 : if (r->form_name) {
18812 0 : ndr_print_string(ndr, "form_name", r->form_name);
18813 : }
18814 0 : ndr->depth--;
18815 0 : ndr_print_spoolss_FormSize(ndr, "size", &r->size);
18816 0 : ndr_print_spoolss_FormArea(ndr, "area", &r->area);
18817 0 : ndr->depth--;
18818 : }
18819 :
18820 0 : static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddFormInfo2 *r)
18821 : {
18822 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
18823 0 : if (ndr_flags & NDR_SCALARS) {
18824 0 : NDR_CHECK(ndr_push_align(ndr, 5));
18825 0 : NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
18826 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
18827 0 : NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
18828 0 : NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
18829 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
18830 0 : NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
18831 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
18832 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
18833 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
18834 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
18835 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18836 : }
18837 0 : if (ndr_flags & NDR_BUFFERS) {
18838 0 : if (r->form_name) {
18839 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
18840 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18841 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
18842 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18843 : }
18844 0 : if (r->keyword) {
18845 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
18846 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18847 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
18848 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
18849 : }
18850 0 : if (r->mui_dll) {
18851 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
18852 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18853 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
18854 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18855 : }
18856 0 : if (r->display_name) {
18857 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
18858 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
18859 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
18860 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18861 : }
18862 : }
18863 0 : return NDR_ERR_SUCCESS;
18864 : }
18865 :
18866 0 : static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddFormInfo2 *r)
18867 : {
18868 0 : uint32_t _ptr_form_name;
18869 0 : uint32_t size_form_name_1 = 0;
18870 0 : uint32_t length_form_name_1 = 0;
18871 0 : TALLOC_CTX *_mem_save_form_name_0 = NULL;
18872 0 : uint32_t _ptr_keyword;
18873 0 : uint32_t size_keyword_1 = 0;
18874 0 : uint32_t length_keyword_1 = 0;
18875 0 : TALLOC_CTX *_mem_save_keyword_0 = NULL;
18876 0 : uint32_t _ptr_mui_dll;
18877 0 : uint32_t size_mui_dll_1 = 0;
18878 0 : uint32_t length_mui_dll_1 = 0;
18879 0 : TALLOC_CTX *_mem_save_mui_dll_0 = NULL;
18880 0 : uint32_t _ptr_display_name;
18881 0 : uint32_t size_display_name_1 = 0;
18882 0 : uint32_t length_display_name_1 = 0;
18883 0 : TALLOC_CTX *_mem_save_display_name_0 = NULL;
18884 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
18885 0 : if (ndr_flags & NDR_SCALARS) {
18886 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
18887 0 : NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
18888 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
18889 0 : if (_ptr_form_name) {
18890 0 : NDR_PULL_ALLOC(ndr, r->form_name);
18891 : } else {
18892 0 : r->form_name = NULL;
18893 : }
18894 0 : NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
18895 0 : NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
18896 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
18897 0 : if (_ptr_keyword) {
18898 0 : NDR_PULL_ALLOC(ndr, r->keyword);
18899 : } else {
18900 0 : r->keyword = NULL;
18901 : }
18902 0 : NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
18903 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
18904 0 : if (_ptr_mui_dll) {
18905 0 : NDR_PULL_ALLOC(ndr, r->mui_dll);
18906 : } else {
18907 0 : r->mui_dll = NULL;
18908 : }
18909 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
18910 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
18911 0 : if (_ptr_display_name) {
18912 0 : NDR_PULL_ALLOC(ndr, r->display_name);
18913 : } else {
18914 0 : r->display_name = NULL;
18915 : }
18916 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
18917 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18918 : }
18919 0 : if (ndr_flags & NDR_BUFFERS) {
18920 0 : if (r->form_name) {
18921 0 : _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18922 0 : NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
18923 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
18924 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
18925 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->form_name, &size_form_name_1));
18926 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->form_name, &length_form_name_1));
18927 0 : if (length_form_name_1 > size_form_name_1) {
18928 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_form_name_1, length_form_name_1);
18929 : }
18930 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_1, sizeof(uint16_t)));
18931 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, length_form_name_1, sizeof(uint16_t), CH_UTF16));
18932 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
18933 : }
18934 0 : if (r->keyword) {
18935 0 : _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
18936 0 : NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
18937 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
18938 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
18939 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->keyword, &size_keyword_1));
18940 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->keyword, &length_keyword_1));
18941 0 : if (length_keyword_1 > size_keyword_1) {
18942 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_keyword_1, length_keyword_1);
18943 : }
18944 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_keyword_1, sizeof(uint8_t)));
18945 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, length_keyword_1, sizeof(uint8_t), CH_DOS));
18946 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
18947 : }
18948 0 : if (r->mui_dll) {
18949 0 : _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
18950 0 : NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
18951 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
18952 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
18953 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->mui_dll, &size_mui_dll_1));
18954 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->mui_dll, &length_mui_dll_1));
18955 0 : if (length_mui_dll_1 > size_mui_dll_1) {
18956 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_mui_dll_1, length_mui_dll_1);
18957 : }
18958 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_mui_dll_1, sizeof(uint16_t)));
18959 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, length_mui_dll_1, sizeof(uint16_t), CH_UTF16));
18960 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
18961 : }
18962 0 : if (r->display_name) {
18963 0 : _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18964 0 : NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
18965 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
18966 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
18967 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->display_name, &size_display_name_1));
18968 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->display_name, &length_display_name_1));
18969 0 : if (length_display_name_1 > size_display_name_1) {
18970 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_display_name_1, length_display_name_1);
18971 : }
18972 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_display_name_1, sizeof(uint16_t)));
18973 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, length_display_name_1, sizeof(uint16_t), CH_UTF16));
18974 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
18975 : }
18976 : }
18977 0 : return NDR_ERR_SUCCESS;
18978 : }
18979 :
18980 0 : _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
18981 : {
18982 0 : ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
18983 0 : if (r == NULL) { ndr_print_null(ndr); return; }
18984 0 : ndr->depth++;
18985 0 : ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
18986 0 : ndr_print_ptr(ndr, "form_name", r->form_name);
18987 0 : ndr->depth++;
18988 0 : if (r->form_name) {
18989 0 : ndr_print_string(ndr, "form_name", r->form_name);
18990 : }
18991 0 : ndr->depth--;
18992 0 : ndr_print_spoolss_FormSize(ndr, "size", &r->size);
18993 0 : ndr_print_spoolss_FormArea(ndr, "area", &r->area);
18994 0 : ndr_print_ptr(ndr, "keyword", r->keyword);
18995 0 : ndr->depth++;
18996 0 : if (r->keyword) {
18997 0 : ndr_print_string(ndr, "keyword", r->keyword);
18998 : }
18999 0 : ndr->depth--;
19000 0 : ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
19001 0 : ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
19002 0 : ndr->depth++;
19003 0 : if (r->mui_dll) {
19004 0 : ndr_print_string(ndr, "mui_dll", r->mui_dll);
19005 : }
19006 0 : ndr->depth--;
19007 0 : ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
19008 0 : ndr_print_ptr(ndr, "display_name", r->display_name);
19009 0 : ndr->depth++;
19010 0 : if (r->display_name) {
19011 0 : ndr_print_string(ndr, "display_name", r->display_name);
19012 : }
19013 0 : ndr->depth--;
19014 0 : ndr_print_uint32(ndr, "lang_id", r->lang_id);
19015 0 : ndr->depth--;
19016 : }
19017 :
19018 1312 : static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_AddFormInfo *r)
19019 : {
19020 0 : uint32_t level;
19021 1312 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19022 1312 : if (ndr_flags & NDR_SCALARS) {
19023 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
19024 656 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
19025 656 : NDR_CHECK(ndr_push_union_align(ndr, 5));
19026 656 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19027 : /* ms_union is always aligned to the largest union arm*/
19028 656 : NDR_CHECK(ndr_push_align(ndr, 5));
19029 656 : switch (level) {
19030 656 : case 1: {
19031 656 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
19032 656 : break; }
19033 :
19034 0 : case 2: {
19035 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
19036 0 : break; }
19037 :
19038 0 : default:
19039 0 : return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
19040 : }
19041 : }
19042 1312 : if (ndr_flags & NDR_BUFFERS) {
19043 656 : if (!(ndr_flags & NDR_SCALARS)) {
19044 : /* We didn't get it above, and the token is not needed after this. */
19045 656 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
19046 : }
19047 656 : switch (level) {
19048 656 : case 1:
19049 656 : if (r->info1) {
19050 656 : NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
19051 : }
19052 656 : break;
19053 :
19054 0 : case 2:
19055 0 : if (r->info2) {
19056 0 : NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
19057 : }
19058 0 : break;
19059 :
19060 0 : default:
19061 0 : return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
19062 : }
19063 : }
19064 1312 : return NDR_ERR_SUCCESS;
19065 : }
19066 :
19067 1312 : static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_AddFormInfo *r)
19068 : {
19069 0 : uint32_t level;
19070 0 : uint32_t _level;
19071 1312 : TALLOC_CTX *_mem_save_info1_0 = NULL;
19072 0 : uint32_t _ptr_info1;
19073 1312 : TALLOC_CTX *_mem_save_info2_0 = NULL;
19074 0 : uint32_t _ptr_info2;
19075 1312 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19076 1312 : if (ndr_flags & NDR_SCALARS) {
19077 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
19078 656 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
19079 656 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
19080 656 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19081 656 : if (_level != level) {
19082 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
19083 : }
19084 : /* ms_union is always aligned to the largest union arm*/
19085 656 : NDR_CHECK(ndr_pull_align(ndr, 5));
19086 656 : switch (level) {
19087 656 : case 1: {
19088 656 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
19089 656 : if (_ptr_info1) {
19090 656 : NDR_PULL_ALLOC(ndr, r->info1);
19091 : } else {
19092 0 : r->info1 = NULL;
19093 : }
19094 656 : break; }
19095 :
19096 0 : case 2: {
19097 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
19098 0 : if (_ptr_info2) {
19099 0 : NDR_PULL_ALLOC(ndr, r->info2);
19100 : } else {
19101 0 : r->info2 = NULL;
19102 : }
19103 0 : break; }
19104 :
19105 0 : default:
19106 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
19107 : }
19108 : }
19109 1312 : if (ndr_flags & NDR_BUFFERS) {
19110 656 : if (!(ndr_flags & NDR_SCALARS)) {
19111 : /* We didn't get it above, and the token is not needed after this. */
19112 656 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
19113 : }
19114 656 : switch (level) {
19115 656 : case 1:
19116 656 : if (r->info1) {
19117 656 : _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
19118 656 : NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
19119 656 : NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
19120 656 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
19121 : }
19122 656 : break;
19123 :
19124 0 : case 2:
19125 0 : if (r->info2) {
19126 0 : _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
19127 0 : NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
19128 0 : NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
19129 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
19130 : }
19131 0 : break;
19132 :
19133 0 : default:
19134 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
19135 : }
19136 : }
19137 1312 : return NDR_ERR_SUCCESS;
19138 : }
19139 :
19140 0 : _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
19141 : {
19142 0 : uint32_t level;
19143 0 : level = ndr_print_steal_switch_value(ndr, r);
19144 0 : ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
19145 0 : switch (level) {
19146 0 : case 1:
19147 0 : ndr_print_ptr(ndr, "info1", r->info1);
19148 0 : ndr->depth++;
19149 0 : if (r->info1) {
19150 0 : ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
19151 : }
19152 0 : ndr->depth--;
19153 0 : break;
19154 :
19155 0 : case 2:
19156 0 : ndr_print_ptr(ndr, "info2", r->info2);
19157 0 : ndr->depth++;
19158 0 : if (r->info2) {
19159 0 : ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
19160 : }
19161 0 : ndr->depth--;
19162 0 : break;
19163 :
19164 0 : default:
19165 0 : ndr_print_bad_level(ndr, name, level);
19166 : }
19167 0 : }
19168 :
19169 656 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddFormInfoCtr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_AddFormInfoCtr *r)
19170 : {
19171 656 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19172 656 : if (ndr_flags & NDR_SCALARS) {
19173 656 : NDR_CHECK(ndr_push_align(ndr, 5));
19174 656 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
19175 656 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
19176 656 : NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS, &r->info));
19177 656 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19178 : }
19179 656 : if (ndr_flags & NDR_BUFFERS) {
19180 656 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
19181 656 : NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_BUFFERS, &r->info));
19182 : }
19183 656 : return NDR_ERR_SUCCESS;
19184 : }
19185 :
19186 656 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddFormInfoCtr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_AddFormInfoCtr *r)
19187 : {
19188 656 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19189 656 : if (ndr_flags & NDR_SCALARS) {
19190 656 : NDR_CHECK(ndr_pull_align(ndr, 5));
19191 656 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
19192 656 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
19193 656 : NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS, &r->info));
19194 656 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19195 : }
19196 656 : if (ndr_flags & NDR_BUFFERS) {
19197 656 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
19198 656 : NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_BUFFERS, &r->info));
19199 : }
19200 656 : return NDR_ERR_SUCCESS;
19201 : }
19202 :
19203 0 : static void ndr_print_flags_spoolss_AddFormInfoCtr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_AddFormInfoCtr *r)
19204 : {
19205 0 : ndr_print_spoolss_AddFormInfoCtr(ndr, name, r);
19206 0 : }
19207 :
19208 0 : _PUBLIC_ void ndr_print_spoolss_AddFormInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfoCtr *r)
19209 : {
19210 0 : ndr_print_struct(ndr, name, "spoolss_AddFormInfoCtr");
19211 0 : if (r == NULL) { ndr_print_null(ndr); return; }
19212 0 : ndr->depth++;
19213 0 : ndr_print_uint32(ndr, "level", r->level);
19214 0 : ndr_print_set_switch_value(ndr, &r->info, r->level);
19215 0 : ndr_print_spoolss_AddFormInfo(ndr, "info", &r->info);
19216 0 : ndr->depth--;
19217 : }
19218 :
19219 24 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PortInfo1 *r)
19220 : {
19221 24 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19222 24 : if (ndr_flags & NDR_SCALARS) {
19223 12 : NDR_CHECK(ndr_push_align(ndr, 5));
19224 : {
19225 12 : libndr_flags _flags_save_string = ndr->flags;
19226 12 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19227 12 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
19228 12 : ndr->flags = _flags_save_string;
19229 : }
19230 12 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19231 : }
19232 24 : if (ndr_flags & NDR_BUFFERS) {
19233 : {
19234 12 : libndr_flags _flags_save_string = ndr->flags;
19235 12 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19236 12 : if (r->port_name) {
19237 12 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
19238 12 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
19239 12 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
19240 : }
19241 12 : ndr->flags = _flags_save_string;
19242 : }
19243 : }
19244 24 : return NDR_ERR_SUCCESS;
19245 : }
19246 :
19247 8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PortInfo1 *r)
19248 : {
19249 0 : uint32_t _ptr_port_name;
19250 8 : TALLOC_CTX *_mem_save_port_name_0 = NULL;
19251 8 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19252 8 : if (ndr_flags & NDR_SCALARS) {
19253 4 : NDR_CHECK(ndr_pull_align(ndr, 5));
19254 : {
19255 4 : libndr_flags _flags_save_string = ndr->flags;
19256 4 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19257 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
19258 4 : if (_ptr_port_name) {
19259 4 : NDR_PULL_ALLOC(ndr, r->port_name);
19260 4 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
19261 : } else {
19262 0 : r->port_name = NULL;
19263 : }
19264 4 : ndr->flags = _flags_save_string;
19265 : }
19266 4 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19267 : }
19268 8 : if (ndr_flags & NDR_BUFFERS) {
19269 : {
19270 4 : libndr_flags _flags_save_string = ndr->flags;
19271 4 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19272 4 : if (r->port_name) {
19273 0 : uint32_t _relative_save_offset;
19274 4 : _relative_save_offset = ndr->offset;
19275 4 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
19276 4 : _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19277 4 : NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
19278 4 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
19279 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
19280 4 : if (ndr->offset > ndr->relative_highest_offset) {
19281 4 : ndr->relative_highest_offset = ndr->offset;
19282 : }
19283 4 : ndr->offset = _relative_save_offset;
19284 : }
19285 4 : ndr->flags = _flags_save_string;
19286 : }
19287 : }
19288 8 : return NDR_ERR_SUCCESS;
19289 : }
19290 :
19291 0 : static void ndr_print_flags_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PortInfo1 *r)
19292 : {
19293 0 : ndr_print_spoolss_PortInfo1(ndr, name, r);
19294 0 : }
19295 :
19296 0 : _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
19297 : {
19298 0 : ndr_print_struct(ndr, name, "spoolss_PortInfo1");
19299 0 : if (r == NULL) { ndr_print_null(ndr); return; }
19300 0 : ndr->depth++;
19301 : {
19302 0 : libndr_flags _flags_save_string = ndr->flags;
19303 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19304 0 : ndr_print_ptr(ndr, "port_name", r->port_name);
19305 0 : ndr->depth++;
19306 0 : if (r->port_name) {
19307 0 : ndr_print_string(ndr, "port_name", r->port_name);
19308 : }
19309 0 : ndr->depth--;
19310 0 : ndr->flags = _flags_save_string;
19311 : }
19312 0 : ndr->depth--;
19313 : }
19314 :
19315 0 : _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, libndr_flags flags)
19316 : {
19317 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1);
19318 : }
19319 :
19320 24 : static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
19321 : {
19322 24 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19323 24 : return NDR_ERR_SUCCESS;
19324 : }
19325 :
19326 8 : static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
19327 : {
19328 0 : uint32_t v;
19329 8 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19330 8 : *r = v;
19331 8 : return NDR_ERR_SUCCESS;
19332 : }
19333 :
19334 0 : _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
19335 : {
19336 0 : ndr_print_uint32(ndr, name, r);
19337 0 : ndr->depth++;
19338 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
19339 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
19340 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
19341 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
19342 0 : ndr->depth--;
19343 0 : }
19344 :
19345 48 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PortInfo2 *r)
19346 : {
19347 48 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19348 48 : if (ndr_flags & NDR_SCALARS) {
19349 24 : NDR_CHECK(ndr_push_align(ndr, 5));
19350 : {
19351 24 : libndr_flags _flags_save_string = ndr->flags;
19352 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19353 24 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
19354 24 : ndr->flags = _flags_save_string;
19355 : }
19356 : {
19357 24 : libndr_flags _flags_save_string = ndr->flags;
19358 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19359 24 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
19360 24 : ndr->flags = _flags_save_string;
19361 : }
19362 : {
19363 24 : libndr_flags _flags_save_string = ndr->flags;
19364 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19365 24 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
19366 24 : ndr->flags = _flags_save_string;
19367 : }
19368 24 : NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
19369 24 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19370 24 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19371 : }
19372 48 : if (ndr_flags & NDR_BUFFERS) {
19373 : {
19374 24 : libndr_flags _flags_save_string = ndr->flags;
19375 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19376 24 : if (r->port_name) {
19377 24 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
19378 24 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
19379 24 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
19380 : }
19381 24 : ndr->flags = _flags_save_string;
19382 : }
19383 : {
19384 24 : libndr_flags _flags_save_string = ndr->flags;
19385 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19386 24 : if (r->monitor_name) {
19387 24 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
19388 24 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
19389 24 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
19390 : }
19391 24 : ndr->flags = _flags_save_string;
19392 : }
19393 : {
19394 24 : libndr_flags _flags_save_string = ndr->flags;
19395 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19396 24 : if (r->description) {
19397 24 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
19398 24 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
19399 24 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
19400 : }
19401 24 : ndr->flags = _flags_save_string;
19402 : }
19403 : }
19404 48 : return NDR_ERR_SUCCESS;
19405 : }
19406 :
19407 16 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PortInfo2 *r)
19408 : {
19409 0 : uint32_t _ptr_port_name;
19410 16 : TALLOC_CTX *_mem_save_port_name_0 = NULL;
19411 0 : uint32_t _ptr_monitor_name;
19412 16 : TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
19413 0 : uint32_t _ptr_description;
19414 16 : TALLOC_CTX *_mem_save_description_0 = NULL;
19415 16 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19416 16 : if (ndr_flags & NDR_SCALARS) {
19417 8 : NDR_CHECK(ndr_pull_align(ndr, 5));
19418 : {
19419 8 : libndr_flags _flags_save_string = ndr->flags;
19420 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19421 8 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
19422 8 : if (_ptr_port_name) {
19423 8 : NDR_PULL_ALLOC(ndr, r->port_name);
19424 8 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
19425 : } else {
19426 0 : r->port_name = NULL;
19427 : }
19428 8 : ndr->flags = _flags_save_string;
19429 : }
19430 : {
19431 8 : libndr_flags _flags_save_string = ndr->flags;
19432 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19433 8 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
19434 8 : if (_ptr_monitor_name) {
19435 8 : NDR_PULL_ALLOC(ndr, r->monitor_name);
19436 8 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
19437 : } else {
19438 0 : r->monitor_name = NULL;
19439 : }
19440 8 : ndr->flags = _flags_save_string;
19441 : }
19442 : {
19443 8 : libndr_flags _flags_save_string = ndr->flags;
19444 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19445 8 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
19446 8 : if (_ptr_description) {
19447 8 : NDR_PULL_ALLOC(ndr, r->description);
19448 8 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
19449 : } else {
19450 0 : r->description = NULL;
19451 : }
19452 8 : ndr->flags = _flags_save_string;
19453 : }
19454 8 : NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
19455 8 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19456 8 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19457 : }
19458 16 : if (ndr_flags & NDR_BUFFERS) {
19459 : {
19460 8 : libndr_flags _flags_save_string = ndr->flags;
19461 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19462 8 : if (r->port_name) {
19463 0 : uint32_t _relative_save_offset;
19464 8 : _relative_save_offset = ndr->offset;
19465 8 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
19466 8 : _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19467 8 : NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
19468 8 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
19469 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
19470 8 : if (ndr->offset > ndr->relative_highest_offset) {
19471 8 : ndr->relative_highest_offset = ndr->offset;
19472 : }
19473 8 : ndr->offset = _relative_save_offset;
19474 : }
19475 8 : ndr->flags = _flags_save_string;
19476 : }
19477 : {
19478 8 : libndr_flags _flags_save_string = ndr->flags;
19479 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19480 8 : if (r->monitor_name) {
19481 0 : uint32_t _relative_save_offset;
19482 8 : _relative_save_offset = ndr->offset;
19483 8 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
19484 8 : _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19485 8 : NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
19486 8 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
19487 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
19488 8 : if (ndr->offset > ndr->relative_highest_offset) {
19489 0 : ndr->relative_highest_offset = ndr->offset;
19490 : }
19491 8 : ndr->offset = _relative_save_offset;
19492 : }
19493 8 : ndr->flags = _flags_save_string;
19494 : }
19495 : {
19496 8 : libndr_flags _flags_save_string = ndr->flags;
19497 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19498 8 : if (r->description) {
19499 0 : uint32_t _relative_save_offset;
19500 8 : _relative_save_offset = ndr->offset;
19501 8 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
19502 8 : _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
19503 8 : NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
19504 8 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
19505 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
19506 8 : if (ndr->offset > ndr->relative_highest_offset) {
19507 0 : ndr->relative_highest_offset = ndr->offset;
19508 : }
19509 8 : ndr->offset = _relative_save_offset;
19510 : }
19511 8 : ndr->flags = _flags_save_string;
19512 : }
19513 : }
19514 16 : return NDR_ERR_SUCCESS;
19515 : }
19516 :
19517 0 : static void ndr_print_flags_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PortInfo2 *r)
19518 : {
19519 0 : ndr_print_spoolss_PortInfo2(ndr, name, r);
19520 0 : }
19521 :
19522 0 : _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
19523 : {
19524 0 : ndr_print_struct(ndr, name, "spoolss_PortInfo2");
19525 0 : if (r == NULL) { ndr_print_null(ndr); return; }
19526 0 : ndr->depth++;
19527 : {
19528 0 : libndr_flags _flags_save_string = ndr->flags;
19529 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19530 0 : ndr_print_ptr(ndr, "port_name", r->port_name);
19531 0 : ndr->depth++;
19532 0 : if (r->port_name) {
19533 0 : ndr_print_string(ndr, "port_name", r->port_name);
19534 : }
19535 0 : ndr->depth--;
19536 0 : ndr->flags = _flags_save_string;
19537 : }
19538 : {
19539 0 : libndr_flags _flags_save_string = ndr->flags;
19540 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19541 0 : ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
19542 0 : ndr->depth++;
19543 0 : if (r->monitor_name) {
19544 0 : ndr_print_string(ndr, "monitor_name", r->monitor_name);
19545 : }
19546 0 : ndr->depth--;
19547 0 : ndr->flags = _flags_save_string;
19548 : }
19549 : {
19550 0 : libndr_flags _flags_save_string = ndr->flags;
19551 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19552 0 : ndr_print_ptr(ndr, "description", r->description);
19553 0 : ndr->depth++;
19554 0 : if (r->description) {
19555 0 : ndr_print_string(ndr, "description", r->description);
19556 : }
19557 0 : ndr->depth--;
19558 0 : ndr->flags = _flags_save_string;
19559 : }
19560 0 : ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
19561 0 : ndr_print_uint32(ndr, "reserved", r->reserved);
19562 0 : ndr->depth--;
19563 : }
19564 :
19565 0 : _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, libndr_flags flags)
19566 : {
19567 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2);
19568 : }
19569 :
19570 0 : static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_PortStatus r)
19571 : {
19572 0 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
19573 0 : return NDR_ERR_SUCCESS;
19574 : }
19575 :
19576 0 : static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_PortStatus *r)
19577 : {
19578 0 : uint32_t v;
19579 0 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
19580 0 : *r = v;
19581 0 : return NDR_ERR_SUCCESS;
19582 : }
19583 :
19584 0 : _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
19585 : {
19586 0 : const char *val = NULL;
19587 :
19588 0 : switch (r) {
19589 0 : case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
19590 0 : case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
19591 0 : case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
19592 0 : case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
19593 0 : case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
19594 0 : case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
19595 0 : case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
19596 0 : case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
19597 0 : case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
19598 0 : case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
19599 0 : case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
19600 0 : case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
19601 0 : case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
19602 : }
19603 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
19604 0 : }
19605 :
19606 0 : static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_PortSeverity r)
19607 : {
19608 0 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
19609 0 : return NDR_ERR_SUCCESS;
19610 : }
19611 :
19612 0 : static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_PortSeverity *r)
19613 : {
19614 0 : uint32_t v;
19615 0 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
19616 0 : *r = v;
19617 0 : return NDR_ERR_SUCCESS;
19618 : }
19619 :
19620 0 : _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
19621 : {
19622 0 : const char *val = NULL;
19623 :
19624 0 : switch (r) {
19625 0 : case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
19626 0 : case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
19627 0 : case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
19628 : }
19629 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
19630 0 : }
19631 :
19632 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PortInfo3 *r)
19633 : {
19634 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19635 0 : if (ndr_flags & NDR_SCALARS) {
19636 0 : NDR_CHECK(ndr_push_align(ndr, 5));
19637 0 : NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
19638 : {
19639 0 : libndr_flags _flags_save_string = ndr->flags;
19640 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19641 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
19642 0 : ndr->flags = _flags_save_string;
19643 : }
19644 0 : NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
19645 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19646 : }
19647 0 : if (ndr_flags & NDR_BUFFERS) {
19648 : {
19649 0 : libndr_flags _flags_save_string = ndr->flags;
19650 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19651 0 : if (r->status_string) {
19652 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->status_string));
19653 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
19654 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->status_string));
19655 : }
19656 0 : ndr->flags = _flags_save_string;
19657 : }
19658 : }
19659 0 : return NDR_ERR_SUCCESS;
19660 : }
19661 :
19662 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PortInfo3 *r)
19663 : {
19664 0 : uint32_t _ptr_status_string;
19665 0 : TALLOC_CTX *_mem_save_status_string_0 = NULL;
19666 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19667 0 : if (ndr_flags & NDR_SCALARS) {
19668 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
19669 0 : NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
19670 : {
19671 0 : libndr_flags _flags_save_string = ndr->flags;
19672 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19673 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
19674 0 : if (_ptr_status_string) {
19675 0 : NDR_PULL_ALLOC(ndr, r->status_string);
19676 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
19677 : } else {
19678 0 : r->status_string = NULL;
19679 : }
19680 0 : ndr->flags = _flags_save_string;
19681 : }
19682 0 : NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
19683 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19684 : }
19685 0 : if (ndr_flags & NDR_BUFFERS) {
19686 : {
19687 0 : libndr_flags _flags_save_string = ndr->flags;
19688 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19689 0 : if (r->status_string) {
19690 0 : uint32_t _relative_save_offset;
19691 0 : _relative_save_offset = ndr->offset;
19692 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
19693 0 : _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
19694 0 : NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
19695 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
19696 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
19697 0 : if (ndr->offset > ndr->relative_highest_offset) {
19698 0 : ndr->relative_highest_offset = ndr->offset;
19699 : }
19700 0 : ndr->offset = _relative_save_offset;
19701 : }
19702 0 : ndr->flags = _flags_save_string;
19703 : }
19704 : }
19705 0 : return NDR_ERR_SUCCESS;
19706 : }
19707 :
19708 0 : static void ndr_print_flags_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PortInfo3 *r)
19709 : {
19710 0 : ndr_print_spoolss_PortInfo3(ndr, name, r);
19711 0 : }
19712 :
19713 0 : _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
19714 : {
19715 0 : ndr_print_struct(ndr, name, "spoolss_PortInfo3");
19716 0 : if (r == NULL) { ndr_print_null(ndr); return; }
19717 0 : ndr->depth++;
19718 0 : ndr_print_spoolss_PortStatus(ndr, "status", r->status);
19719 : {
19720 0 : libndr_flags _flags_save_string = ndr->flags;
19721 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19722 0 : ndr_print_ptr(ndr, "status_string", r->status_string);
19723 0 : ndr->depth++;
19724 0 : if (r->status_string) {
19725 0 : ndr_print_string(ndr, "status_string", r->status_string);
19726 : }
19727 0 : ndr->depth--;
19728 0 : ndr->flags = _flags_save_string;
19729 : }
19730 0 : ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
19731 0 : ndr->depth--;
19732 : }
19733 :
19734 0 : _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, libndr_flags flags)
19735 : {
19736 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3);
19737 : }
19738 :
19739 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PortInfoFF *r)
19740 : {
19741 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19742 0 : if (ndr_flags & NDR_SCALARS) {
19743 0 : NDR_CHECK(ndr_push_align(ndr, 5));
19744 : {
19745 0 : libndr_flags _flags_save_string = ndr->flags;
19746 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19747 0 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
19748 0 : ndr->flags = _flags_save_string;
19749 : }
19750 0 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
19751 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19752 : }
19753 0 : if (ndr_flags & NDR_BUFFERS) {
19754 : {
19755 0 : libndr_flags _flags_save_string = ndr->flags;
19756 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19757 0 : if (r->port_name) {
19758 0 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
19759 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
19760 0 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
19761 : }
19762 0 : ndr->flags = _flags_save_string;
19763 : }
19764 : }
19765 0 : return NDR_ERR_SUCCESS;
19766 : }
19767 :
19768 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PortInfoFF *r)
19769 : {
19770 0 : uint32_t _ptr_port_name;
19771 0 : TALLOC_CTX *_mem_save_port_name_0 = NULL;
19772 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19773 0 : if (ndr_flags & NDR_SCALARS) {
19774 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
19775 : {
19776 0 : libndr_flags _flags_save_string = ndr->flags;
19777 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19778 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
19779 0 : if (_ptr_port_name) {
19780 0 : NDR_PULL_ALLOC(ndr, r->port_name);
19781 0 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
19782 : } else {
19783 0 : r->port_name = NULL;
19784 : }
19785 0 : ndr->flags = _flags_save_string;
19786 : }
19787 0 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
19788 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19789 : }
19790 0 : if (ndr_flags & NDR_BUFFERS) {
19791 : {
19792 0 : libndr_flags _flags_save_string = ndr->flags;
19793 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19794 0 : if (r->port_name) {
19795 0 : uint32_t _relative_save_offset;
19796 0 : _relative_save_offset = ndr->offset;
19797 0 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
19798 0 : _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19799 0 : NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
19800 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
19801 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
19802 0 : if (ndr->offset > ndr->relative_highest_offset) {
19803 0 : ndr->relative_highest_offset = ndr->offset;
19804 : }
19805 0 : ndr->offset = _relative_save_offset;
19806 : }
19807 0 : ndr->flags = _flags_save_string;
19808 : }
19809 : }
19810 0 : return NDR_ERR_SUCCESS;
19811 : }
19812 :
19813 0 : static void ndr_print_flags_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PortInfoFF *r)
19814 : {
19815 0 : ndr_print_spoolss_PortInfoFF(ndr, name, r);
19816 0 : }
19817 :
19818 0 : _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
19819 : {
19820 0 : ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
19821 0 : if (r == NULL) { ndr_print_null(ndr); return; }
19822 0 : ndr->depth++;
19823 : {
19824 0 : libndr_flags _flags_save_string = ndr->flags;
19825 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19826 0 : ndr_print_ptr(ndr, "port_name", r->port_name);
19827 0 : ndr->depth++;
19828 0 : if (r->port_name) {
19829 0 : ndr_print_string(ndr, "port_name", r->port_name);
19830 : }
19831 0 : ndr->depth--;
19832 0 : ndr->flags = _flags_save_string;
19833 : }
19834 0 : ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
19835 0 : ndr->depth--;
19836 : }
19837 :
19838 0 : _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, libndr_flags flags)
19839 : {
19840 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF);
19841 : }
19842 :
19843 72 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_PortInfo *r)
19844 : {
19845 72 : uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
19846 0 : uint32_t level;
19847 : {
19848 72 : libndr_flags _flags_save_UNION = ndr->flags;
19849 72 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
19850 72 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19851 72 : if (ndr_flags & NDR_SCALARS) {
19852 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
19853 36 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
19854 36 : NDR_CHECK(ndr_push_union_align(ndr, 5));
19855 36 : switch (level) {
19856 12 : case 1: {
19857 12 : NDR_CHECK(ndr_push_align(ndr, 5));
19858 12 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19859 12 : NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
19860 12 : break; }
19861 :
19862 24 : case 2: {
19863 24 : NDR_CHECK(ndr_push_align(ndr, 5));
19864 24 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19865 24 : NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
19866 24 : break; }
19867 :
19868 0 : case 3: {
19869 0 : NDR_CHECK(ndr_push_align(ndr, 5));
19870 0 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19871 0 : NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
19872 0 : break; }
19873 :
19874 0 : case 0xff: {
19875 0 : NDR_CHECK(ndr_push_align(ndr, 5));
19876 0 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19877 0 : NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
19878 0 : break; }
19879 :
19880 0 : default: {
19881 0 : break; }
19882 :
19883 : }
19884 : }
19885 72 : if (ndr_flags & NDR_BUFFERS) {
19886 36 : if (!(ndr_flags & NDR_SCALARS)) {
19887 : /* We didn't get it above, and the token is not needed after this. */
19888 36 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
19889 : }
19890 36 : NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
19891 36 : switch (level) {
19892 12 : case 1:
19893 12 : NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
19894 12 : break;
19895 :
19896 24 : case 2:
19897 24 : NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
19898 24 : break;
19899 :
19900 0 : case 3:
19901 0 : NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
19902 0 : break;
19903 :
19904 0 : case 0xff:
19905 0 : NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
19906 0 : break;
19907 :
19908 0 : default:
19909 0 : break;
19910 :
19911 : }
19912 : }
19913 72 : ndr->flags = _flags_save_UNION;
19914 : }
19915 72 : ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
19916 72 : return NDR_ERR_SUCCESS;
19917 : }
19918 :
19919 24 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_PortInfo *r)
19920 : {
19921 24 : uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
19922 0 : uint32_t level;
19923 : {
19924 24 : libndr_flags _flags_save_UNION = ndr->flags;
19925 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
19926 24 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19927 24 : if (ndr_flags & NDR_SCALARS) {
19928 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
19929 12 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
19930 12 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
19931 12 : switch (level) {
19932 4 : case 1: {
19933 4 : NDR_CHECK(ndr_pull_align(ndr, 5));
19934 4 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19935 4 : NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
19936 4 : break; }
19937 :
19938 8 : case 2: {
19939 8 : NDR_CHECK(ndr_pull_align(ndr, 5));
19940 8 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19941 8 : NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
19942 8 : break; }
19943 :
19944 0 : case 3: {
19945 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
19946 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19947 0 : NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
19948 0 : break; }
19949 :
19950 0 : case 0xff: {
19951 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
19952 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19953 0 : NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
19954 0 : break; }
19955 :
19956 0 : default: {
19957 0 : break; }
19958 :
19959 : }
19960 : }
19961 24 : if (ndr_flags & NDR_BUFFERS) {
19962 12 : if (!(ndr_flags & NDR_SCALARS)) {
19963 : /* We didn't get it above, and the token is not needed after this. */
19964 12 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
19965 : }
19966 12 : switch (level) {
19967 4 : case 1:
19968 4 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19969 4 : NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
19970 4 : break;
19971 :
19972 8 : case 2:
19973 8 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19974 8 : NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
19975 8 : break;
19976 :
19977 0 : case 3:
19978 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19979 0 : NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
19980 0 : break;
19981 :
19982 0 : case 0xff:
19983 0 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19984 0 : NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
19985 0 : break;
19986 :
19987 0 : default:
19988 0 : break;
19989 :
19990 : }
19991 : }
19992 24 : ndr->flags = _flags_save_UNION;
19993 : }
19994 24 : ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
19995 24 : return NDR_ERR_SUCCESS;
19996 : }
19997 :
19998 0 : _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
19999 : {
20000 0 : uint32_t level;
20001 : {
20002 0 : libndr_flags _flags_save_UNION = ndr->flags;
20003 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
20004 0 : level = ndr_print_steal_switch_value(ndr, r);
20005 0 : ndr_print_union(ndr, name, level, "spoolss_PortInfo");
20006 0 : switch (level) {
20007 0 : case 1:
20008 0 : ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
20009 0 : break;
20010 :
20011 0 : case 2:
20012 0 : ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
20013 0 : break;
20014 :
20015 0 : case 3:
20016 0 : ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
20017 0 : break;
20018 :
20019 0 : case 0xff:
20020 0 : ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
20021 0 : break;
20022 :
20023 0 : default:
20024 0 : break;
20025 :
20026 : }
20027 0 : ndr->flags = _flags_save_UNION;
20028 : }
20029 0 : }
20030 :
20031 48 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_MonitorInfo1 *r)
20032 : {
20033 48 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20034 48 : if (ndr_flags & NDR_SCALARS) {
20035 24 : NDR_CHECK(ndr_push_align(ndr, 5));
20036 : {
20037 24 : libndr_flags _flags_save_string = ndr->flags;
20038 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20039 24 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
20040 24 : ndr->flags = _flags_save_string;
20041 : }
20042 24 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20043 : }
20044 48 : if (ndr_flags & NDR_BUFFERS) {
20045 : {
20046 24 : libndr_flags _flags_save_string = ndr->flags;
20047 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20048 24 : if (r->monitor_name) {
20049 24 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
20050 24 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
20051 24 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
20052 : }
20053 24 : ndr->flags = _flags_save_string;
20054 : }
20055 : }
20056 48 : return NDR_ERR_SUCCESS;
20057 : }
20058 :
20059 16 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_MonitorInfo1 *r)
20060 : {
20061 0 : uint32_t _ptr_monitor_name;
20062 16 : TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
20063 16 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20064 16 : if (ndr_flags & NDR_SCALARS) {
20065 8 : NDR_CHECK(ndr_pull_align(ndr, 5));
20066 : {
20067 8 : libndr_flags _flags_save_string = ndr->flags;
20068 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20069 8 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
20070 8 : if (_ptr_monitor_name) {
20071 8 : NDR_PULL_ALLOC(ndr, r->monitor_name);
20072 8 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
20073 : } else {
20074 0 : r->monitor_name = NULL;
20075 : }
20076 8 : ndr->flags = _flags_save_string;
20077 : }
20078 8 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20079 : }
20080 16 : if (ndr_flags & NDR_BUFFERS) {
20081 : {
20082 8 : libndr_flags _flags_save_string = ndr->flags;
20083 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20084 8 : if (r->monitor_name) {
20085 0 : uint32_t _relative_save_offset;
20086 8 : _relative_save_offset = ndr->offset;
20087 8 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
20088 8 : _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
20089 8 : NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
20090 8 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
20091 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
20092 8 : if (ndr->offset > ndr->relative_highest_offset) {
20093 4 : ndr->relative_highest_offset = ndr->offset;
20094 : }
20095 8 : ndr->offset = _relative_save_offset;
20096 : }
20097 8 : ndr->flags = _flags_save_string;
20098 : }
20099 : }
20100 16 : return NDR_ERR_SUCCESS;
20101 : }
20102 :
20103 0 : static void ndr_print_flags_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_MonitorInfo1 *r)
20104 : {
20105 0 : ndr_print_spoolss_MonitorInfo1(ndr, name, r);
20106 0 : }
20107 :
20108 0 : _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
20109 : {
20110 0 : ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
20111 0 : if (r == NULL) { ndr_print_null(ndr); return; }
20112 0 : ndr->depth++;
20113 : {
20114 0 : libndr_flags _flags_save_string = ndr->flags;
20115 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20116 0 : ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
20117 0 : ndr->depth++;
20118 0 : if (r->monitor_name) {
20119 0 : ndr_print_string(ndr, "monitor_name", r->monitor_name);
20120 : }
20121 0 : ndr->depth--;
20122 0 : ndr->flags = _flags_save_string;
20123 : }
20124 0 : ndr->depth--;
20125 : }
20126 :
20127 0 : _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, libndr_flags flags)
20128 : {
20129 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1);
20130 : }
20131 :
20132 48 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_MonitorInfo2 *r)
20133 : {
20134 48 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20135 48 : if (ndr_flags & NDR_SCALARS) {
20136 24 : NDR_CHECK(ndr_push_align(ndr, 5));
20137 : {
20138 24 : libndr_flags _flags_save_string = ndr->flags;
20139 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20140 24 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
20141 24 : ndr->flags = _flags_save_string;
20142 : }
20143 : {
20144 24 : libndr_flags _flags_save_string = ndr->flags;
20145 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20146 24 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
20147 24 : ndr->flags = _flags_save_string;
20148 : }
20149 : {
20150 24 : libndr_flags _flags_save_string = ndr->flags;
20151 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20152 24 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
20153 24 : ndr->flags = _flags_save_string;
20154 : }
20155 24 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20156 : }
20157 48 : if (ndr_flags & NDR_BUFFERS) {
20158 : {
20159 24 : libndr_flags _flags_save_string = ndr->flags;
20160 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20161 24 : if (r->monitor_name) {
20162 24 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
20163 24 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
20164 24 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
20165 : }
20166 24 : ndr->flags = _flags_save_string;
20167 : }
20168 : {
20169 24 : libndr_flags _flags_save_string = ndr->flags;
20170 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20171 24 : if (r->environment) {
20172 24 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->environment));
20173 24 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
20174 24 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->environment));
20175 : }
20176 24 : ndr->flags = _flags_save_string;
20177 : }
20178 : {
20179 24 : libndr_flags _flags_save_string = ndr->flags;
20180 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20181 24 : if (r->dll_name) {
20182 24 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dll_name));
20183 24 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
20184 24 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dll_name));
20185 : }
20186 24 : ndr->flags = _flags_save_string;
20187 : }
20188 : }
20189 48 : return NDR_ERR_SUCCESS;
20190 : }
20191 :
20192 16 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_MonitorInfo2 *r)
20193 : {
20194 0 : uint32_t _ptr_monitor_name;
20195 16 : TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
20196 0 : uint32_t _ptr_environment;
20197 16 : TALLOC_CTX *_mem_save_environment_0 = NULL;
20198 0 : uint32_t _ptr_dll_name;
20199 16 : TALLOC_CTX *_mem_save_dll_name_0 = NULL;
20200 16 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20201 16 : if (ndr_flags & NDR_SCALARS) {
20202 8 : NDR_CHECK(ndr_pull_align(ndr, 5));
20203 : {
20204 8 : libndr_flags _flags_save_string = ndr->flags;
20205 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20206 8 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
20207 8 : if (_ptr_monitor_name) {
20208 8 : NDR_PULL_ALLOC(ndr, r->monitor_name);
20209 8 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
20210 : } else {
20211 0 : r->monitor_name = NULL;
20212 : }
20213 8 : ndr->flags = _flags_save_string;
20214 : }
20215 : {
20216 8 : libndr_flags _flags_save_string = ndr->flags;
20217 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20218 8 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20219 8 : if (_ptr_environment) {
20220 8 : NDR_PULL_ALLOC(ndr, r->environment);
20221 8 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
20222 : } else {
20223 0 : r->environment = NULL;
20224 : }
20225 8 : ndr->flags = _flags_save_string;
20226 : }
20227 : {
20228 8 : libndr_flags _flags_save_string = ndr->flags;
20229 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20230 8 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
20231 8 : if (_ptr_dll_name) {
20232 8 : NDR_PULL_ALLOC(ndr, r->dll_name);
20233 8 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
20234 : } else {
20235 0 : r->dll_name = NULL;
20236 : }
20237 8 : ndr->flags = _flags_save_string;
20238 : }
20239 8 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20240 : }
20241 16 : if (ndr_flags & NDR_BUFFERS) {
20242 : {
20243 8 : libndr_flags _flags_save_string = ndr->flags;
20244 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20245 8 : if (r->monitor_name) {
20246 0 : uint32_t _relative_save_offset;
20247 8 : _relative_save_offset = ndr->offset;
20248 8 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
20249 8 : _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
20250 8 : NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
20251 8 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
20252 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
20253 8 : if (ndr->offset > ndr->relative_highest_offset) {
20254 4 : ndr->relative_highest_offset = ndr->offset;
20255 : }
20256 8 : ndr->offset = _relative_save_offset;
20257 : }
20258 8 : ndr->flags = _flags_save_string;
20259 : }
20260 : {
20261 8 : libndr_flags _flags_save_string = ndr->flags;
20262 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20263 8 : if (r->environment) {
20264 0 : uint32_t _relative_save_offset;
20265 8 : _relative_save_offset = ndr->offset;
20266 8 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
20267 8 : _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20268 8 : NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
20269 8 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
20270 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20271 8 : if (ndr->offset > ndr->relative_highest_offset) {
20272 0 : ndr->relative_highest_offset = ndr->offset;
20273 : }
20274 8 : ndr->offset = _relative_save_offset;
20275 : }
20276 8 : ndr->flags = _flags_save_string;
20277 : }
20278 : {
20279 8 : libndr_flags _flags_save_string = ndr->flags;
20280 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20281 8 : if (r->dll_name) {
20282 0 : uint32_t _relative_save_offset;
20283 8 : _relative_save_offset = ndr->offset;
20284 8 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
20285 8 : _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
20286 8 : NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
20287 8 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
20288 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
20289 8 : if (ndr->offset > ndr->relative_highest_offset) {
20290 0 : ndr->relative_highest_offset = ndr->offset;
20291 : }
20292 8 : ndr->offset = _relative_save_offset;
20293 : }
20294 8 : ndr->flags = _flags_save_string;
20295 : }
20296 : }
20297 16 : return NDR_ERR_SUCCESS;
20298 : }
20299 :
20300 0 : static void ndr_print_flags_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_MonitorInfo2 *r)
20301 : {
20302 0 : ndr_print_spoolss_MonitorInfo2(ndr, name, r);
20303 0 : }
20304 :
20305 0 : _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
20306 : {
20307 0 : ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
20308 0 : if (r == NULL) { ndr_print_null(ndr); return; }
20309 0 : ndr->depth++;
20310 : {
20311 0 : libndr_flags _flags_save_string = ndr->flags;
20312 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20313 0 : ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
20314 0 : ndr->depth++;
20315 0 : if (r->monitor_name) {
20316 0 : ndr_print_string(ndr, "monitor_name", r->monitor_name);
20317 : }
20318 0 : ndr->depth--;
20319 0 : ndr->flags = _flags_save_string;
20320 : }
20321 : {
20322 0 : libndr_flags _flags_save_string = ndr->flags;
20323 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20324 0 : ndr_print_ptr(ndr, "environment", r->environment);
20325 0 : ndr->depth++;
20326 0 : if (r->environment) {
20327 0 : ndr_print_string(ndr, "environment", r->environment);
20328 : }
20329 0 : ndr->depth--;
20330 0 : ndr->flags = _flags_save_string;
20331 : }
20332 : {
20333 0 : libndr_flags _flags_save_string = ndr->flags;
20334 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20335 0 : ndr_print_ptr(ndr, "dll_name", r->dll_name);
20336 0 : ndr->depth++;
20337 0 : if (r->dll_name) {
20338 0 : ndr_print_string(ndr, "dll_name", r->dll_name);
20339 : }
20340 0 : ndr->depth--;
20341 0 : ndr->flags = _flags_save_string;
20342 : }
20343 0 : ndr->depth--;
20344 : }
20345 :
20346 0 : _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, libndr_flags flags)
20347 : {
20348 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2);
20349 : }
20350 :
20351 96 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_MonitorInfo *r)
20352 : {
20353 96 : uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
20354 0 : uint32_t level;
20355 : {
20356 96 : libndr_flags _flags_save_UNION = ndr->flags;
20357 96 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
20358 96 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20359 96 : if (ndr_flags & NDR_SCALARS) {
20360 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
20361 48 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
20362 48 : NDR_CHECK(ndr_push_union_align(ndr, 5));
20363 48 : switch (level) {
20364 24 : case 1: {
20365 24 : NDR_CHECK(ndr_push_align(ndr, 5));
20366 24 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
20367 24 : NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
20368 24 : break; }
20369 :
20370 24 : case 2: {
20371 24 : NDR_CHECK(ndr_push_align(ndr, 5));
20372 24 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
20373 24 : NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
20374 24 : break; }
20375 :
20376 0 : default: {
20377 0 : break; }
20378 :
20379 : }
20380 : }
20381 96 : if (ndr_flags & NDR_BUFFERS) {
20382 48 : if (!(ndr_flags & NDR_SCALARS)) {
20383 : /* We didn't get it above, and the token is not needed after this. */
20384 48 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
20385 : }
20386 48 : NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
20387 48 : switch (level) {
20388 24 : case 1:
20389 24 : NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
20390 24 : break;
20391 :
20392 24 : case 2:
20393 24 : NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
20394 24 : break;
20395 :
20396 0 : default:
20397 0 : break;
20398 :
20399 : }
20400 : }
20401 96 : ndr->flags = _flags_save_UNION;
20402 : }
20403 96 : ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
20404 96 : return NDR_ERR_SUCCESS;
20405 : }
20406 :
20407 32 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_MonitorInfo *r)
20408 : {
20409 32 : uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
20410 0 : uint32_t level;
20411 : {
20412 32 : libndr_flags _flags_save_UNION = ndr->flags;
20413 32 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
20414 32 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20415 32 : if (ndr_flags & NDR_SCALARS) {
20416 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
20417 16 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
20418 16 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
20419 16 : switch (level) {
20420 8 : case 1: {
20421 8 : NDR_CHECK(ndr_pull_align(ndr, 5));
20422 8 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
20423 8 : NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
20424 8 : break; }
20425 :
20426 8 : case 2: {
20427 8 : NDR_CHECK(ndr_pull_align(ndr, 5));
20428 8 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
20429 8 : NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
20430 8 : break; }
20431 :
20432 0 : default: {
20433 0 : break; }
20434 :
20435 : }
20436 : }
20437 32 : if (ndr_flags & NDR_BUFFERS) {
20438 16 : if (!(ndr_flags & NDR_SCALARS)) {
20439 : /* We didn't get it above, and the token is not needed after this. */
20440 16 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
20441 : }
20442 16 : switch (level) {
20443 8 : case 1:
20444 8 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
20445 8 : NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
20446 8 : break;
20447 :
20448 8 : case 2:
20449 8 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
20450 8 : NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
20451 8 : break;
20452 :
20453 0 : default:
20454 0 : break;
20455 :
20456 : }
20457 : }
20458 32 : ndr->flags = _flags_save_UNION;
20459 : }
20460 32 : ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
20461 32 : return NDR_ERR_SUCCESS;
20462 : }
20463 :
20464 0 : _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
20465 : {
20466 0 : uint32_t level;
20467 : {
20468 0 : libndr_flags _flags_save_UNION = ndr->flags;
20469 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
20470 0 : level = ndr_print_steal_switch_value(ndr, r);
20471 0 : ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
20472 0 : switch (level) {
20473 0 : case 1:
20474 0 : ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
20475 0 : break;
20476 :
20477 0 : case 2:
20478 0 : ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
20479 0 : break;
20480 :
20481 0 : default:
20482 0 : break;
20483 :
20484 : }
20485 0 : ndr->flags = _flags_save_UNION;
20486 : }
20487 0 : }
20488 :
20489 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPortInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPortInfo1 *r)
20490 : {
20491 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20492 0 : if (ndr_flags & NDR_SCALARS) {
20493 0 : NDR_CHECK(ndr_push_align(ndr, 5));
20494 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->port_name));
20495 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20496 : }
20497 0 : if (ndr_flags & NDR_BUFFERS) {
20498 0 : if (r->port_name) {
20499 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
20500 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20501 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
20502 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->port_name, ndr_charset_length(r->port_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20503 : }
20504 : }
20505 0 : return NDR_ERR_SUCCESS;
20506 : }
20507 :
20508 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPortInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPortInfo1 *r)
20509 : {
20510 0 : uint32_t _ptr_port_name;
20511 0 : uint32_t size_port_name_1 = 0;
20512 0 : uint32_t length_port_name_1 = 0;
20513 0 : TALLOC_CTX *_mem_save_port_name_0 = NULL;
20514 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20515 0 : if (ndr_flags & NDR_SCALARS) {
20516 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
20517 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
20518 0 : if (_ptr_port_name) {
20519 0 : NDR_PULL_ALLOC(ndr, r->port_name);
20520 : } else {
20521 0 : r->port_name = NULL;
20522 : }
20523 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20524 : }
20525 0 : if (ndr_flags & NDR_BUFFERS) {
20526 0 : if (r->port_name) {
20527 0 : _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
20528 0 : NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
20529 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->port_name));
20530 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->port_name));
20531 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->port_name, &size_port_name_1));
20532 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->port_name, &length_port_name_1));
20533 0 : if (length_port_name_1 > size_port_name_1) {
20534 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_port_name_1, length_port_name_1);
20535 : }
20536 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_port_name_1, sizeof(uint16_t)));
20537 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->port_name, length_port_name_1, sizeof(uint16_t), CH_UTF16));
20538 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
20539 : }
20540 : }
20541 0 : return NDR_ERR_SUCCESS;
20542 : }
20543 :
20544 0 : static void ndr_print_flags_spoolss_SetPortInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_SetPortInfo1 *r)
20545 : {
20546 0 : ndr_print_spoolss_SetPortInfo1(ndr, name, r);
20547 0 : }
20548 :
20549 0 : _PUBLIC_ void ndr_print_spoolss_SetPortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPortInfo1 *r)
20550 : {
20551 0 : ndr_print_struct(ndr, name, "spoolss_SetPortInfo1");
20552 0 : if (r == NULL) { ndr_print_null(ndr); return; }
20553 0 : ndr->depth++;
20554 0 : ndr_print_ptr(ndr, "port_name", r->port_name);
20555 0 : ndr->depth++;
20556 0 : if (r->port_name) {
20557 0 : ndr_print_string(ndr, "port_name", r->port_name);
20558 : }
20559 0 : ndr->depth--;
20560 0 : ndr->depth--;
20561 : }
20562 :
20563 0 : _PUBLIC_ size_t ndr_size_spoolss_SetPortInfo1(const struct spoolss_SetPortInfo1 *r, libndr_flags flags)
20564 : {
20565 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_SetPortInfo1);
20566 : }
20567 :
20568 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPortInfo2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPortInfo2 *r)
20569 : {
20570 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20571 0 : if (ndr_flags & NDR_SCALARS) {
20572 0 : NDR_CHECK(ndr_push_align(ndr, 5));
20573 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->port_name));
20574 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
20575 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
20576 0 : NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
20577 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
20578 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20579 : }
20580 0 : if (ndr_flags & NDR_BUFFERS) {
20581 0 : if (r->port_name) {
20582 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
20583 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20584 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
20585 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->port_name, ndr_charset_length(r->port_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20586 : }
20587 0 : if (r->monitor_name) {
20588 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
20589 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20590 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
20591 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20592 : }
20593 0 : if (r->description) {
20594 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
20595 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20596 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
20597 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20598 : }
20599 : }
20600 0 : return NDR_ERR_SUCCESS;
20601 : }
20602 :
20603 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPortInfo2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPortInfo2 *r)
20604 : {
20605 0 : uint32_t _ptr_port_name;
20606 0 : uint32_t size_port_name_1 = 0;
20607 0 : uint32_t length_port_name_1 = 0;
20608 0 : TALLOC_CTX *_mem_save_port_name_0 = NULL;
20609 0 : uint32_t _ptr_monitor_name;
20610 0 : uint32_t size_monitor_name_1 = 0;
20611 0 : uint32_t length_monitor_name_1 = 0;
20612 0 : TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
20613 0 : uint32_t _ptr_description;
20614 0 : uint32_t size_description_1 = 0;
20615 0 : uint32_t length_description_1 = 0;
20616 0 : TALLOC_CTX *_mem_save_description_0 = NULL;
20617 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20618 0 : if (ndr_flags & NDR_SCALARS) {
20619 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
20620 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
20621 0 : if (_ptr_port_name) {
20622 0 : NDR_PULL_ALLOC(ndr, r->port_name);
20623 : } else {
20624 0 : r->port_name = NULL;
20625 : }
20626 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
20627 0 : if (_ptr_monitor_name) {
20628 0 : NDR_PULL_ALLOC(ndr, r->monitor_name);
20629 : } else {
20630 0 : r->monitor_name = NULL;
20631 : }
20632 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
20633 0 : if (_ptr_description) {
20634 0 : NDR_PULL_ALLOC(ndr, r->description);
20635 : } else {
20636 0 : r->description = NULL;
20637 : }
20638 0 : NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
20639 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
20640 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20641 : }
20642 0 : if (ndr_flags & NDR_BUFFERS) {
20643 0 : if (r->port_name) {
20644 0 : _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
20645 0 : NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
20646 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->port_name));
20647 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->port_name));
20648 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->port_name, &size_port_name_1));
20649 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->port_name, &length_port_name_1));
20650 0 : if (length_port_name_1 > size_port_name_1) {
20651 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_port_name_1, length_port_name_1);
20652 : }
20653 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_port_name_1, sizeof(uint16_t)));
20654 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->port_name, length_port_name_1, sizeof(uint16_t), CH_UTF16));
20655 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
20656 : }
20657 0 : if (r->monitor_name) {
20658 0 : _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
20659 0 : NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
20660 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
20661 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
20662 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->monitor_name, &size_monitor_name_1));
20663 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->monitor_name, &length_monitor_name_1));
20664 0 : if (length_monitor_name_1 > size_monitor_name_1) {
20665 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_monitor_name_1, length_monitor_name_1);
20666 : }
20667 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
20668 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
20669 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
20670 : }
20671 0 : if (r->description) {
20672 0 : _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
20673 0 : NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
20674 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
20675 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
20676 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->description, &size_description_1));
20677 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->description, &length_description_1));
20678 0 : if (length_description_1 > size_description_1) {
20679 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_description_1, length_description_1);
20680 : }
20681 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_description_1, sizeof(uint16_t)));
20682 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, length_description_1, sizeof(uint16_t), CH_UTF16));
20683 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
20684 : }
20685 : }
20686 0 : return NDR_ERR_SUCCESS;
20687 : }
20688 :
20689 0 : static void ndr_print_flags_spoolss_SetPortInfo2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_SetPortInfo2 *r)
20690 : {
20691 0 : ndr_print_spoolss_SetPortInfo2(ndr, name, r);
20692 0 : }
20693 :
20694 0 : _PUBLIC_ void ndr_print_spoolss_SetPortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPortInfo2 *r)
20695 : {
20696 0 : ndr_print_struct(ndr, name, "spoolss_SetPortInfo2");
20697 0 : if (r == NULL) { ndr_print_null(ndr); return; }
20698 0 : ndr->depth++;
20699 0 : ndr_print_ptr(ndr, "port_name", r->port_name);
20700 0 : ndr->depth++;
20701 0 : if (r->port_name) {
20702 0 : ndr_print_string(ndr, "port_name", r->port_name);
20703 : }
20704 0 : ndr->depth--;
20705 0 : ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
20706 0 : ndr->depth++;
20707 0 : if (r->monitor_name) {
20708 0 : ndr_print_string(ndr, "monitor_name", r->monitor_name);
20709 : }
20710 0 : ndr->depth--;
20711 0 : ndr_print_ptr(ndr, "description", r->description);
20712 0 : ndr->depth++;
20713 0 : if (r->description) {
20714 0 : ndr_print_string(ndr, "description", r->description);
20715 : }
20716 0 : ndr->depth--;
20717 0 : ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
20718 0 : ndr_print_uint32(ndr, "reserved", r->reserved);
20719 0 : ndr->depth--;
20720 : }
20721 :
20722 0 : _PUBLIC_ size_t ndr_size_spoolss_SetPortInfo2(const struct spoolss_SetPortInfo2 *r, libndr_flags flags)
20723 : {
20724 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_SetPortInfo2);
20725 : }
20726 :
20727 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPortInfo3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPortInfo3 *r)
20728 : {
20729 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20730 0 : if (ndr_flags & NDR_SCALARS) {
20731 0 : NDR_CHECK(ndr_push_align(ndr, 5));
20732 0 : NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
20733 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->status_string));
20734 0 : NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
20735 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20736 : }
20737 0 : if (ndr_flags & NDR_BUFFERS) {
20738 0 : if (r->status_string) {
20739 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->status_string, CH_UTF16)));
20740 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20741 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->status_string, CH_UTF16)));
20742 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->status_string, ndr_charset_length(r->status_string, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20743 : }
20744 : }
20745 0 : return NDR_ERR_SUCCESS;
20746 : }
20747 :
20748 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPortInfo3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPortInfo3 *r)
20749 : {
20750 0 : uint32_t _ptr_status_string;
20751 0 : uint32_t size_status_string_1 = 0;
20752 0 : uint32_t length_status_string_1 = 0;
20753 0 : TALLOC_CTX *_mem_save_status_string_0 = NULL;
20754 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20755 0 : if (ndr_flags & NDR_SCALARS) {
20756 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
20757 0 : NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
20758 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
20759 0 : if (_ptr_status_string) {
20760 0 : NDR_PULL_ALLOC(ndr, r->status_string);
20761 : } else {
20762 0 : r->status_string = NULL;
20763 : }
20764 0 : NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
20765 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20766 : }
20767 0 : if (ndr_flags & NDR_BUFFERS) {
20768 0 : if (r->status_string) {
20769 0 : _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
20770 0 : NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
20771 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->status_string));
20772 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->status_string));
20773 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->status_string, &size_status_string_1));
20774 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->status_string, &length_status_string_1));
20775 0 : if (length_status_string_1 > size_status_string_1) {
20776 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_status_string_1, length_status_string_1);
20777 : }
20778 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_status_string_1, sizeof(uint16_t)));
20779 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->status_string, length_status_string_1, sizeof(uint16_t), CH_UTF16));
20780 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
20781 : }
20782 : }
20783 0 : return NDR_ERR_SUCCESS;
20784 : }
20785 :
20786 0 : static void ndr_print_flags_spoolss_SetPortInfo3(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_SetPortInfo3 *r)
20787 : {
20788 0 : ndr_print_spoolss_SetPortInfo3(ndr, name, r);
20789 0 : }
20790 :
20791 0 : _PUBLIC_ void ndr_print_spoolss_SetPortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPortInfo3 *r)
20792 : {
20793 0 : ndr_print_struct(ndr, name, "spoolss_SetPortInfo3");
20794 0 : if (r == NULL) { ndr_print_null(ndr); return; }
20795 0 : ndr->depth++;
20796 0 : ndr_print_spoolss_PortStatus(ndr, "status", r->status);
20797 0 : ndr_print_ptr(ndr, "status_string", r->status_string);
20798 0 : ndr->depth++;
20799 0 : if (r->status_string) {
20800 0 : ndr_print_string(ndr, "status_string", r->status_string);
20801 : }
20802 0 : ndr->depth--;
20803 0 : ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
20804 0 : ndr->depth--;
20805 : }
20806 :
20807 0 : _PUBLIC_ size_t ndr_size_spoolss_SetPortInfo3(const struct spoolss_SetPortInfo3 *r, libndr_flags flags)
20808 : {
20809 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_SetPortInfo3);
20810 : }
20811 :
20812 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPortInfoFF(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPortInfoFF *r)
20813 : {
20814 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20815 0 : if (ndr_flags & NDR_SCALARS) {
20816 0 : NDR_CHECK(ndr_push_align(ndr, 5));
20817 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->port_name));
20818 0 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
20819 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20820 : }
20821 0 : if (ndr_flags & NDR_BUFFERS) {
20822 0 : if (r->port_name) {
20823 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
20824 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20825 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
20826 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->port_name, ndr_charset_length(r->port_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20827 : }
20828 : }
20829 0 : return NDR_ERR_SUCCESS;
20830 : }
20831 :
20832 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPortInfoFF(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPortInfoFF *r)
20833 : {
20834 0 : uint32_t _ptr_port_name;
20835 0 : uint32_t size_port_name_1 = 0;
20836 0 : uint32_t length_port_name_1 = 0;
20837 0 : TALLOC_CTX *_mem_save_port_name_0 = NULL;
20838 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20839 0 : if (ndr_flags & NDR_SCALARS) {
20840 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
20841 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
20842 0 : if (_ptr_port_name) {
20843 0 : NDR_PULL_ALLOC(ndr, r->port_name);
20844 : } else {
20845 0 : r->port_name = NULL;
20846 : }
20847 0 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
20848 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20849 : }
20850 0 : if (ndr_flags & NDR_BUFFERS) {
20851 0 : if (r->port_name) {
20852 0 : _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
20853 0 : NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
20854 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->port_name));
20855 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->port_name));
20856 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->port_name, &size_port_name_1));
20857 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->port_name, &length_port_name_1));
20858 0 : if (length_port_name_1 > size_port_name_1) {
20859 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_port_name_1, length_port_name_1);
20860 : }
20861 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_port_name_1, sizeof(uint16_t)));
20862 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->port_name, length_port_name_1, sizeof(uint16_t), CH_UTF16));
20863 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
20864 : }
20865 : }
20866 0 : return NDR_ERR_SUCCESS;
20867 : }
20868 :
20869 0 : static void ndr_print_flags_spoolss_SetPortInfoFF(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_SetPortInfoFF *r)
20870 : {
20871 0 : ndr_print_spoolss_SetPortInfoFF(ndr, name, r);
20872 0 : }
20873 :
20874 0 : _PUBLIC_ void ndr_print_spoolss_SetPortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_SetPortInfoFF *r)
20875 : {
20876 0 : ndr_print_struct(ndr, name, "spoolss_SetPortInfoFF");
20877 0 : if (r == NULL) { ndr_print_null(ndr); return; }
20878 0 : ndr->depth++;
20879 0 : ndr_print_ptr(ndr, "port_name", r->port_name);
20880 0 : ndr->depth++;
20881 0 : if (r->port_name) {
20882 0 : ndr_print_string(ndr, "port_name", r->port_name);
20883 : }
20884 0 : ndr->depth--;
20885 0 : ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
20886 0 : ndr->depth--;
20887 : }
20888 :
20889 0 : _PUBLIC_ size_t ndr_size_spoolss_SetPortInfoFF(const struct spoolss_SetPortInfoFF *r, libndr_flags flags)
20890 : {
20891 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_SetPortInfoFF);
20892 : }
20893 :
20894 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPortInfoContainer(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_SetPortInfoContainer *r)
20895 : {
20896 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20897 0 : if (ndr_flags & NDR_SCALARS) {
20898 0 : NDR_CHECK(ndr_push_align(ndr, 5));
20899 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
20900 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
20901 0 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
20902 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20903 : }
20904 0 : if (ndr_flags & NDR_BUFFERS) {
20905 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
20906 0 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
20907 : }
20908 0 : return NDR_ERR_SUCCESS;
20909 : }
20910 :
20911 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPortInfoContainer(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_SetPortInfoContainer *r)
20912 : {
20913 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20914 0 : if (ndr_flags & NDR_SCALARS) {
20915 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
20916 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
20917 0 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
20918 0 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
20919 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20920 : }
20921 0 : if (ndr_flags & NDR_BUFFERS) {
20922 0 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
20923 0 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
20924 : }
20925 0 : return NDR_ERR_SUCCESS;
20926 : }
20927 :
20928 0 : static void ndr_print_flags_spoolss_SetPortInfoContainer(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_SetPortInfoContainer *r)
20929 : {
20930 0 : ndr_print_spoolss_SetPortInfoContainer(ndr, name, r);
20931 0 : }
20932 :
20933 0 : _PUBLIC_ void ndr_print_spoolss_SetPortInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_SetPortInfoContainer *r)
20934 : {
20935 0 : ndr_print_struct(ndr, name, "spoolss_SetPortInfoContainer");
20936 0 : if (r == NULL) { ndr_print_null(ndr); return; }
20937 0 : ndr->depth++;
20938 0 : ndr_print_uint32(ndr, "level", r->level);
20939 0 : ndr_print_set_switch_value(ndr, &r->info, r->level);
20940 0 : ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
20941 0 : ndr->depth--;
20942 : }
20943 :
20944 0 : static enum ndr_err_code ndr_push_UNIVERSAL_FONT_ID(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct UNIVERSAL_FONT_ID *r)
20945 : {
20946 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20947 0 : if (ndr_flags & NDR_SCALARS) {
20948 0 : NDR_CHECK(ndr_push_align(ndr, 4));
20949 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Checksum));
20950 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Index));
20951 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20952 : }
20953 0 : if (ndr_flags & NDR_BUFFERS) {
20954 0 : }
20955 0 : return NDR_ERR_SUCCESS;
20956 : }
20957 :
20958 0 : static enum ndr_err_code ndr_pull_UNIVERSAL_FONT_ID(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct UNIVERSAL_FONT_ID *r)
20959 : {
20960 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20961 0 : if (ndr_flags & NDR_SCALARS) {
20962 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
20963 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Checksum));
20964 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Index));
20965 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20966 : }
20967 0 : if (ndr_flags & NDR_BUFFERS) {
20968 0 : }
20969 0 : return NDR_ERR_SUCCESS;
20970 : }
20971 :
20972 0 : _PUBLIC_ void ndr_print_UNIVERSAL_FONT_ID(struct ndr_print *ndr, const char *name, const struct UNIVERSAL_FONT_ID *r)
20973 : {
20974 0 : ndr_print_struct(ndr, name, "UNIVERSAL_FONT_ID");
20975 0 : if (r == NULL) { ndr_print_null(ndr); return; }
20976 0 : ndr->depth++;
20977 0 : ndr_print_uint32(ndr, "Checksum", r->Checksum);
20978 0 : ndr_print_uint32(ndr, "Index", r->Index);
20979 0 : ndr->depth--;
20980 : }
20981 :
20982 0 : _PUBLIC_ enum ndr_err_code ndr_push_UNIVERSAL_FONT_ID_ctr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct UNIVERSAL_FONT_ID_ctr *r)
20983 : {
20984 0 : uint32_t cntr_fonts_0;
20985 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20986 0 : if (ndr_flags & NDR_SCALARS) {
20987 0 : NDR_CHECK(ndr_push_align(ndr, 4));
20988 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
20989 0 : for (cntr_fonts_0 = 0; cntr_fonts_0 < (r->count); cntr_fonts_0++) {
20990 0 : NDR_CHECK(ndr_push_UNIVERSAL_FONT_ID(ndr, NDR_SCALARS, &r->fonts[cntr_fonts_0]));
20991 : }
20992 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20993 : }
20994 0 : if (ndr_flags & NDR_BUFFERS) {
20995 0 : }
20996 0 : return NDR_ERR_SUCCESS;
20997 : }
20998 :
20999 0 : _PUBLIC_ enum ndr_err_code ndr_pull_UNIVERSAL_FONT_ID_ctr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct UNIVERSAL_FONT_ID_ctr *r)
21000 : {
21001 0 : uint32_t size_fonts_0 = 0;
21002 0 : uint32_t cntr_fonts_0;
21003 0 : TALLOC_CTX *_mem_save_fonts_0 = NULL;
21004 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21005 0 : if (ndr_flags & NDR_SCALARS) {
21006 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
21007 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
21008 0 : size_fonts_0 = r->count;
21009 0 : NDR_PULL_ALLOC_N(ndr, r->fonts, size_fonts_0);
21010 0 : _mem_save_fonts_0 = NDR_PULL_GET_MEM_CTX(ndr);
21011 0 : NDR_PULL_SET_MEM_CTX(ndr, r->fonts, 0);
21012 0 : for (cntr_fonts_0 = 0; cntr_fonts_0 < (size_fonts_0); cntr_fonts_0++) {
21013 0 : NDR_CHECK(ndr_pull_UNIVERSAL_FONT_ID(ndr, NDR_SCALARS, &r->fonts[cntr_fonts_0]));
21014 : }
21015 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fonts_0, 0);
21016 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
21017 : }
21018 0 : if (ndr_flags & NDR_BUFFERS) {
21019 0 : }
21020 0 : return NDR_ERR_SUCCESS;
21021 : }
21022 :
21023 0 : static void ndr_print_flags_UNIVERSAL_FONT_ID_ctr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct UNIVERSAL_FONT_ID_ctr *r)
21024 : {
21025 0 : ndr_print_UNIVERSAL_FONT_ID_ctr(ndr, name, r);
21026 0 : }
21027 :
21028 0 : _PUBLIC_ void ndr_print_UNIVERSAL_FONT_ID_ctr(struct ndr_print *ndr, const char *name, const struct UNIVERSAL_FONT_ID_ctr *r)
21029 : {
21030 0 : uint32_t cntr_fonts_0;
21031 0 : ndr_print_struct(ndr, name, "UNIVERSAL_FONT_ID_ctr");
21032 0 : if (r == NULL) { ndr_print_null(ndr); return; }
21033 0 : ndr->depth++;
21034 0 : ndr_print_uint32(ndr, "count", r->count);
21035 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "fonts", (uint32_t)(r->count));
21036 0 : ndr->depth++;
21037 0 : for (cntr_fonts_0 = 0; cntr_fonts_0 < (r->count); cntr_fonts_0++) {
21038 0 : ndr_print_UNIVERSAL_FONT_ID(ndr, "fonts", &r->fonts[cntr_fonts_0]);
21039 : }
21040 0 : ndr->depth--;
21041 0 : ndr->depth--;
21042 : }
21043 :
21044 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorContainer(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_MonitorContainer *r)
21045 : {
21046 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21047 0 : if (ndr_flags & NDR_SCALARS) {
21048 0 : NDR_CHECK(ndr_push_align(ndr, 5));
21049 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
21050 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
21051 0 : NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->info));
21052 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
21053 : }
21054 0 : if (ndr_flags & NDR_BUFFERS) {
21055 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
21056 0 : NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->info));
21057 : }
21058 0 : return NDR_ERR_SUCCESS;
21059 : }
21060 :
21061 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorContainer(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_MonitorContainer *r)
21062 : {
21063 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21064 0 : if (ndr_flags & NDR_SCALARS) {
21065 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
21066 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
21067 0 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
21068 0 : NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->info));
21069 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
21070 : }
21071 0 : if (ndr_flags & NDR_BUFFERS) {
21072 0 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
21073 0 : NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->info));
21074 : }
21075 0 : return NDR_ERR_SUCCESS;
21076 : }
21077 :
21078 0 : static void ndr_print_flags_spoolss_MonitorContainer(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_MonitorContainer *r)
21079 : {
21080 0 : ndr_print_spoolss_MonitorContainer(ndr, name, r);
21081 0 : }
21082 :
21083 0 : _PUBLIC_ void ndr_print_spoolss_MonitorContainer(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorContainer *r)
21084 : {
21085 0 : ndr_print_struct(ndr, name, "spoolss_MonitorContainer");
21086 0 : if (r == NULL) { ndr_print_null(ndr); return; }
21087 0 : ndr->depth++;
21088 0 : ndr_print_uint32(ndr, "level", r->level);
21089 0 : ndr_print_set_switch_value(ndr, &r->info, r->level);
21090 0 : ndr_print_spoolss_MonitorInfo(ndr, "info", &r->info);
21091 0 : ndr->depth--;
21092 : }
21093 :
21094 48 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
21095 : {
21096 48 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21097 48 : if (ndr_flags & NDR_SCALARS) {
21098 24 : NDR_CHECK(ndr_push_align(ndr, 5));
21099 : {
21100 24 : libndr_flags _flags_save_string = ndr->flags;
21101 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
21102 24 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
21103 24 : ndr->flags = _flags_save_string;
21104 : }
21105 24 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
21106 : }
21107 48 : if (ndr_flags & NDR_BUFFERS) {
21108 : {
21109 24 : libndr_flags _flags_save_string = ndr->flags;
21110 24 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
21111 24 : if (r->name_array) {
21112 24 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name_array));
21113 24 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
21114 24 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name_array));
21115 : }
21116 24 : ndr->flags = _flags_save_string;
21117 : }
21118 : }
21119 48 : return NDR_ERR_SUCCESS;
21120 : }
21121 :
21122 16 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
21123 : {
21124 0 : uint32_t _ptr_name_array;
21125 16 : TALLOC_CTX *_mem_save_name_array_0 = NULL;
21126 16 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21127 16 : if (ndr_flags & NDR_SCALARS) {
21128 8 : NDR_CHECK(ndr_pull_align(ndr, 5));
21129 : {
21130 8 : libndr_flags _flags_save_string = ndr->flags;
21131 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
21132 8 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
21133 8 : if (_ptr_name_array) {
21134 8 : NDR_PULL_ALLOC(ndr, r->name_array);
21135 8 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
21136 : } else {
21137 0 : r->name_array = NULL;
21138 : }
21139 8 : ndr->flags = _flags_save_string;
21140 : }
21141 8 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
21142 : }
21143 16 : if (ndr_flags & NDR_BUFFERS) {
21144 : {
21145 8 : libndr_flags _flags_save_string = ndr->flags;
21146 8 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
21147 8 : if (r->name_array) {
21148 0 : uint32_t _relative_save_offset;
21149 8 : _relative_save_offset = ndr->offset;
21150 8 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
21151 8 : _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
21152 8 : NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
21153 8 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
21154 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
21155 8 : if (ndr->offset > ndr->relative_highest_offset) {
21156 8 : ndr->relative_highest_offset = ndr->offset;
21157 : }
21158 8 : ndr->offset = _relative_save_offset;
21159 : }
21160 8 : ndr->flags = _flags_save_string;
21161 : }
21162 : }
21163 16 : return NDR_ERR_SUCCESS;
21164 : }
21165 :
21166 0 : static void ndr_print_flags_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrintProcDataTypesInfo1 *r)
21167 : {
21168 0 : ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, name, r);
21169 0 : }
21170 :
21171 0 : _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
21172 : {
21173 0 : ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
21174 0 : if (r == NULL) { ndr_print_null(ndr); return; }
21175 0 : ndr->depth++;
21176 : {
21177 0 : libndr_flags _flags_save_string = ndr->flags;
21178 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
21179 0 : ndr_print_ptr(ndr, "name_array", r->name_array);
21180 0 : ndr->depth++;
21181 0 : if (r->name_array) {
21182 0 : ndr_print_string(ndr, "name_array", r->name_array);
21183 : }
21184 0 : ndr->depth--;
21185 0 : ndr->flags = _flags_save_string;
21186 : }
21187 0 : ndr->depth--;
21188 : }
21189 :
21190 0 : _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, libndr_flags flags)
21191 : {
21192 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1);
21193 : }
21194 :
21195 48 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
21196 : {
21197 48 : uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
21198 0 : uint32_t level;
21199 : {
21200 48 : libndr_flags _flags_save_UNION = ndr->flags;
21201 48 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
21202 48 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21203 48 : if (ndr_flags & NDR_SCALARS) {
21204 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
21205 24 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
21206 24 : NDR_CHECK(ndr_push_union_align(ndr, 5));
21207 24 : switch (level) {
21208 24 : case 1: {
21209 24 : NDR_CHECK(ndr_push_align(ndr, 5));
21210 24 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
21211 24 : NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
21212 24 : break; }
21213 :
21214 0 : default: {
21215 0 : break; }
21216 :
21217 : }
21218 : }
21219 48 : if (ndr_flags & NDR_BUFFERS) {
21220 24 : if (!(ndr_flags & NDR_SCALARS)) {
21221 : /* We didn't get it above, and the token is not needed after this. */
21222 24 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
21223 : }
21224 24 : NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
21225 24 : switch (level) {
21226 24 : case 1:
21227 24 : NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
21228 24 : break;
21229 :
21230 0 : default:
21231 0 : break;
21232 :
21233 : }
21234 : }
21235 48 : ndr->flags = _flags_save_UNION;
21236 : }
21237 48 : ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
21238 48 : return NDR_ERR_SUCCESS;
21239 : }
21240 :
21241 16 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
21242 : {
21243 16 : uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
21244 0 : uint32_t level;
21245 : {
21246 16 : libndr_flags _flags_save_UNION = ndr->flags;
21247 16 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
21248 16 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21249 16 : if (ndr_flags & NDR_SCALARS) {
21250 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
21251 8 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
21252 8 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
21253 8 : switch (level) {
21254 8 : case 1: {
21255 8 : NDR_CHECK(ndr_pull_align(ndr, 5));
21256 8 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
21257 8 : NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
21258 8 : break; }
21259 :
21260 0 : default: {
21261 0 : break; }
21262 :
21263 : }
21264 : }
21265 16 : if (ndr_flags & NDR_BUFFERS) {
21266 8 : if (!(ndr_flags & NDR_SCALARS)) {
21267 : /* We didn't get it above, and the token is not needed after this. */
21268 8 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
21269 : }
21270 8 : switch (level) {
21271 8 : case 1:
21272 8 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
21273 8 : NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
21274 8 : break;
21275 :
21276 0 : default:
21277 0 : break;
21278 :
21279 : }
21280 : }
21281 16 : ndr->flags = _flags_save_UNION;
21282 : }
21283 16 : ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
21284 16 : return NDR_ERR_SUCCESS;
21285 : }
21286 :
21287 0 : _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
21288 : {
21289 0 : uint32_t level;
21290 : {
21291 0 : libndr_flags _flags_save_UNION = ndr->flags;
21292 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
21293 0 : level = ndr_print_steal_switch_value(ndr, r);
21294 0 : ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
21295 0 : switch (level) {
21296 0 : case 1:
21297 0 : ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
21298 0 : break;
21299 :
21300 0 : default:
21301 0 : break;
21302 :
21303 : }
21304 0 : ndr->flags = _flags_save_UNION;
21305 : }
21306 0 : }
21307 :
21308 2 : static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
21309 : {
21310 2 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
21311 2 : return NDR_ERR_SUCCESS;
21312 : }
21313 :
21314 4 : static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
21315 : {
21316 2 : uint32_t v;
21317 4 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
21318 4 : *r = v;
21319 4 : return NDR_ERR_SUCCESS;
21320 : }
21321 :
21322 2 : _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
21323 : {
21324 2 : ndr_print_uint32(ndr, name, r);
21325 2 : ndr->depth++;
21326 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
21327 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
21328 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
21329 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
21330 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
21331 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
21332 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
21333 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
21334 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
21335 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
21336 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
21337 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
21338 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
21339 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
21340 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
21341 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
21342 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
21343 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
21344 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
21345 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
21346 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
21347 2 : ndr->depth--;
21348 2 : }
21349 :
21350 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortVarContainer(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PortVarContainer *r)
21351 : {
21352 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21353 0 : if (ndr_flags & NDR_SCALARS) {
21354 0 : NDR_CHECK(ndr_push_align(ndr, 5));
21355 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->monitor_data_size));
21356 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_data));
21357 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
21358 : }
21359 0 : if (ndr_flags & NDR_BUFFERS) {
21360 0 : if (r->monitor_data) {
21361 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->monitor_data_size));
21362 0 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->monitor_data, r->monitor_data_size));
21363 : }
21364 : }
21365 0 : return NDR_ERR_SUCCESS;
21366 : }
21367 :
21368 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortVarContainer(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PortVarContainer *r)
21369 : {
21370 0 : uint32_t _ptr_monitor_data;
21371 0 : uint32_t size_monitor_data_1 = 0;
21372 0 : TALLOC_CTX *_mem_save_monitor_data_0 = NULL;
21373 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21374 0 : if (ndr_flags & NDR_SCALARS) {
21375 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
21376 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->monitor_data_size));
21377 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_data));
21378 0 : if (_ptr_monitor_data) {
21379 0 : NDR_PULL_ALLOC(ndr, r->monitor_data);
21380 : } else {
21381 0 : r->monitor_data = NULL;
21382 : }
21383 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
21384 : }
21385 0 : if (ndr_flags & NDR_BUFFERS) {
21386 0 : if (r->monitor_data) {
21387 0 : _mem_save_monitor_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
21388 0 : NDR_PULL_SET_MEM_CTX(ndr, r->monitor_data, 0);
21389 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_data));
21390 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->monitor_data, &size_monitor_data_1));
21391 0 : NDR_PULL_ALLOC_N(ndr, r->monitor_data, size_monitor_data_1);
21392 0 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->monitor_data, size_monitor_data_1));
21393 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_data_0, 0);
21394 : }
21395 0 : if (r->monitor_data) {
21396 0 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->monitor_data, r->monitor_data_size));
21397 : }
21398 : }
21399 0 : return NDR_ERR_SUCCESS;
21400 : }
21401 :
21402 0 : static void ndr_print_flags_spoolss_PortVarContainer(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PortVarContainer *r)
21403 : {
21404 0 : ndr_print_spoolss_PortVarContainer(ndr, name, r);
21405 0 : }
21406 :
21407 0 : _PUBLIC_ void ndr_print_spoolss_PortVarContainer(struct ndr_print *ndr, const char *name, const struct spoolss_PortVarContainer *r)
21408 : {
21409 0 : ndr_print_struct(ndr, name, "spoolss_PortVarContainer");
21410 0 : if (r == NULL) { ndr_print_null(ndr); return; }
21411 0 : ndr->depth++;
21412 0 : ndr_print_uint32(ndr, "monitor_data_size", r->monitor_data_size);
21413 0 : ndr_print_ptr(ndr, "monitor_data", r->monitor_data);
21414 0 : ndr->depth++;
21415 0 : if (r->monitor_data) {
21416 0 : ndr_print_array_uint8(ndr, "monitor_data", r->monitor_data, r->monitor_data_size);
21417 : }
21418 0 : ndr->depth--;
21419 0 : ndr->depth--;
21420 : }
21421 :
21422 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_JobNotifyField r)
21423 : {
21424 0 : NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
21425 0 : return NDR_ERR_SUCCESS;
21426 : }
21427 :
21428 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_JobNotifyField *r)
21429 : {
21430 0 : uint16_t v;
21431 0 : NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
21432 0 : *r = v;
21433 0 : return NDR_ERR_SUCCESS;
21434 : }
21435 :
21436 76 : _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
21437 : {
21438 76 : const char *val = NULL;
21439 :
21440 76 : switch (r) {
21441 2 : case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
21442 2 : case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
21443 6 : case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
21444 6 : case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
21445 2 : case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
21446 0 : case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
21447 0 : case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
21448 0 : case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
21449 2 : case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
21450 0 : case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
21451 6 : case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
21452 6 : case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
21453 0 : case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
21454 6 : case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
21455 0 : case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
21456 6 : case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
21457 6 : case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
21458 0 : case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
21459 0 : case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
21460 2 : case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
21461 6 : case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
21462 6 : case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
21463 6 : case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
21464 6 : case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
21465 : }
21466 76 : ndr_print_enum(ndr, name, "ENUM", val, r);
21467 76 : }
21468 :
21469 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_PrintNotifyField r)
21470 : {
21471 0 : NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
21472 0 : return NDR_ERR_SUCCESS;
21473 : }
21474 :
21475 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_PrintNotifyField *r)
21476 : {
21477 0 : uint16_t v;
21478 0 : NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
21479 0 : *r = v;
21480 0 : return NDR_ERR_SUCCESS;
21481 : }
21482 :
21483 46 : _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
21484 : {
21485 46 : const char *val = NULL;
21486 :
21487 46 : switch (r) {
21488 4 : case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
21489 6 : case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
21490 2 : case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
21491 4 : case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
21492 4 : case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
21493 4 : case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
21494 4 : case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
21495 0 : case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
21496 0 : case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
21497 0 : case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
21498 0 : case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
21499 0 : case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
21500 2 : case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
21501 6 : case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
21502 0 : case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
21503 0 : case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
21504 0 : case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
21505 0 : case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
21506 6 : case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
21507 0 : case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
21508 4 : case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
21509 0 : case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
21510 0 : case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
21511 0 : case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
21512 0 : case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
21513 0 : case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
21514 0 : case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
21515 0 : case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
21516 : }
21517 46 : ndr_print_enum(ndr, name, "ENUM", val, r);
21518 46 : }
21519 :
21520 8 : static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_NotifyType r)
21521 : {
21522 8 : NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
21523 8 : return NDR_ERR_SUCCESS;
21524 : }
21525 :
21526 66 : static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_NotifyType *r)
21527 : {
21528 58 : uint16_t v;
21529 66 : NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
21530 66 : *r = v;
21531 66 : return NDR_ERR_SUCCESS;
21532 : }
21533 :
21534 58 : _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
21535 : {
21536 58 : const char *val = NULL;
21537 :
21538 58 : switch (r) {
21539 12 : case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
21540 46 : case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
21541 : }
21542 58 : ndr_print_enum(ndr, name, "ENUM", val, r);
21543 58 : }
21544 :
21545 8 : static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_Field *r)
21546 : {
21547 0 : uint32_t level;
21548 8 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21549 8 : if (ndr_flags & NDR_SCALARS) {
21550 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
21551 8 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
21552 8 : NDR_CHECK(ndr_push_union_align(ndr, 2));
21553 8 : switch (level) {
21554 4 : case PRINTER_NOTIFY_TYPE: {
21555 4 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
21556 4 : break; }
21557 :
21558 4 : case JOB_NOTIFY_TYPE: {
21559 4 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
21560 4 : break; }
21561 :
21562 0 : default: {
21563 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
21564 0 : break; }
21565 :
21566 : }
21567 : }
21568 8 : return NDR_ERR_SUCCESS;
21569 : }
21570 :
21571 130 : static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_Field *r)
21572 : {
21573 122 : uint32_t level;
21574 130 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21575 130 : if (ndr_flags & NDR_SCALARS) {
21576 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
21577 130 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
21578 130 : NDR_CHECK(ndr_pull_union_align(ndr, 2));
21579 130 : switch (level) {
21580 50 : case PRINTER_NOTIFY_TYPE: {
21581 50 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
21582 4 : break; }
21583 :
21584 80 : case JOB_NOTIFY_TYPE: {
21585 80 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
21586 4 : break; }
21587 :
21588 0 : default: {
21589 0 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
21590 0 : break; }
21591 :
21592 : }
21593 : }
21594 8 : return NDR_ERR_SUCCESS;
21595 : }
21596 :
21597 16 : static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_NotifyOptionType *r)
21598 : {
21599 0 : uint32_t cntr_fields_1;
21600 16 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21601 16 : if (ndr_flags & NDR_SCALARS) {
21602 8 : NDR_CHECK(ndr_push_align(ndr, 5));
21603 8 : NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
21604 8 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
21605 8 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
21606 8 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
21607 8 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
21608 8 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
21609 8 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
21610 : }
21611 16 : if (ndr_flags & NDR_BUFFERS) {
21612 8 : if (r->fields) {
21613 8 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
21614 16 : for (cntr_fields_1 = 0; cntr_fields_1 < (r->count); cntr_fields_1++) {
21615 8 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
21616 8 : NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
21617 : }
21618 : }
21619 : }
21620 16 : return NDR_ERR_SUCCESS;
21621 : }
21622 :
21623 28 : static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_NotifyOptionType *r)
21624 : {
21625 12 : uint32_t _ptr_fields;
21626 28 : uint32_t size_fields_1 = 0;
21627 12 : uint32_t cntr_fields_1;
21628 28 : TALLOC_CTX *_mem_save_fields_0 = NULL;
21629 28 : TALLOC_CTX *_mem_save_fields_1 = NULL;
21630 28 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21631 28 : if (ndr_flags & NDR_SCALARS) {
21632 14 : NDR_CHECK(ndr_pull_align(ndr, 5));
21633 20 : NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
21634 14 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
21635 14 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
21636 14 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
21637 14 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
21638 14 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
21639 14 : if (_ptr_fields) {
21640 14 : NDR_PULL_ALLOC(ndr, r->fields);
21641 : } else {
21642 0 : r->fields = NULL;
21643 : }
21644 14 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
21645 : }
21646 28 : if (ndr_flags & NDR_BUFFERS) {
21647 14 : if (r->fields) {
21648 14 : _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
21649 14 : NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
21650 14 : NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
21651 14 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->fields, &size_fields_1));
21652 14 : NDR_PULL_ALLOC_N(ndr, r->fields, size_fields_1);
21653 14 : _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
21654 14 : NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
21655 92 : for (cntr_fields_1 = 0; cntr_fields_1 < (size_fields_1); cntr_fields_1++) {
21656 78 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
21657 78 : NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
21658 : }
21659 14 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
21660 14 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
21661 : }
21662 14 : if (r->fields) {
21663 14 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->fields, r->count));
21664 : }
21665 : }
21666 16 : return NDR_ERR_SUCCESS;
21667 : }
21668 :
21669 6 : _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
21670 : {
21671 6 : uint32_t cntr_fields_1;
21672 6 : ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
21673 6 : if (r == NULL) { ndr_print_null(ndr); return; }
21674 6 : ndr->depth++;
21675 6 : ndr_print_spoolss_NotifyType(ndr, "type", r->type);
21676 6 : ndr_print_uint16(ndr, "u1", r->u1);
21677 6 : ndr_print_uint32(ndr, "u2", r->u2);
21678 6 : ndr_print_uint32(ndr, "u3", r->u3);
21679 6 : ndr_print_uint32(ndr, "count", r->count);
21680 6 : ndr_print_ptr(ndr, "fields", r->fields);
21681 6 : ndr->depth++;
21682 6 : if (r->fields) {
21683 6 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "fields", (uint32_t)(r->count));
21684 6 : ndr->depth++;
21685 76 : for (cntr_fields_1 = 0; cntr_fields_1 < (r->count); cntr_fields_1++) {
21686 70 : ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
21687 70 : ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
21688 : }
21689 6 : ndr->depth--;
21690 : }
21691 6 : ndr->depth--;
21692 6 : ndr->depth--;
21693 : }
21694 :
21695 4 : static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
21696 : {
21697 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
21698 4 : return NDR_ERR_SUCCESS;
21699 : }
21700 :
21701 10 : static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
21702 : {
21703 6 : uint32_t v;
21704 10 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
21705 10 : *r = v;
21706 10 : return NDR_ERR_SUCCESS;
21707 : }
21708 :
21709 6 : _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
21710 : {
21711 6 : ndr_print_uint32(ndr, name, r);
21712 6 : ndr->depth++;
21713 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
21714 6 : ndr->depth--;
21715 6 : }
21716 :
21717 4 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_NotifyOption *r)
21718 : {
21719 0 : uint32_t cntr_types_1;
21720 4 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21721 4 : if (ndr_flags & NDR_SCALARS) {
21722 4 : NDR_CHECK(ndr_push_align(ndr, 5));
21723 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
21724 4 : NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
21725 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
21726 4 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
21727 4 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
21728 : }
21729 4 : if (ndr_flags & NDR_BUFFERS) {
21730 4 : if (r->types) {
21731 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
21732 12 : for (cntr_types_1 = 0; cntr_types_1 < (r->count); cntr_types_1++) {
21733 8 : NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
21734 : }
21735 12 : for (cntr_types_1 = 0; cntr_types_1 < (r->count); cntr_types_1++) {
21736 8 : NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
21737 : }
21738 : }
21739 : }
21740 4 : return NDR_ERR_SUCCESS;
21741 : }
21742 :
21743 10 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_NotifyOption *r)
21744 : {
21745 6 : uint32_t _ptr_types;
21746 10 : uint32_t size_types_1 = 0;
21747 6 : uint32_t cntr_types_1;
21748 10 : TALLOC_CTX *_mem_save_types_0 = NULL;
21749 10 : TALLOC_CTX *_mem_save_types_1 = NULL;
21750 10 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21751 10 : if (ndr_flags & NDR_SCALARS) {
21752 10 : NDR_CHECK(ndr_pull_align(ndr, 5));
21753 10 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
21754 16 : NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
21755 10 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
21756 10 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
21757 10 : if (_ptr_types) {
21758 8 : NDR_PULL_ALLOC(ndr, r->types);
21759 : } else {
21760 2 : r->types = NULL;
21761 : }
21762 10 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
21763 : }
21764 10 : if (ndr_flags & NDR_BUFFERS) {
21765 10 : if (r->types) {
21766 8 : _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
21767 8 : NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
21768 8 : NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
21769 8 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->types, &size_types_1));
21770 8 : NDR_PULL_ALLOC_N(ndr, r->types, size_types_1);
21771 8 : _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
21772 8 : NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
21773 22 : for (cntr_types_1 = 0; cntr_types_1 < (size_types_1); cntr_types_1++) {
21774 14 : NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
21775 : }
21776 22 : for (cntr_types_1 = 0; cntr_types_1 < (size_types_1); cntr_types_1++) {
21777 14 : NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
21778 : }
21779 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
21780 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
21781 : }
21782 10 : if (r->types) {
21783 8 : NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
21784 : }
21785 24 : for (cntr_types_1 = 0; cntr_types_1 < (size_types_1); cntr_types_1++) {
21786 6 : }
21787 : }
21788 4 : return NDR_ERR_SUCCESS;
21789 : }
21790 :
21791 0 : static void ndr_print_flags_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_NotifyOption *r)
21792 : {
21793 0 : ndr_print_spoolss_NotifyOption(ndr, name, r);
21794 0 : }
21795 :
21796 6 : _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
21797 : {
21798 6 : uint32_t cntr_types_1;
21799 6 : ndr_print_struct(ndr, name, "spoolss_NotifyOption");
21800 6 : if (r == NULL) { ndr_print_null(ndr); return; }
21801 6 : ndr->depth++;
21802 6 : ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
21803 6 : ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
21804 6 : ndr_print_uint32(ndr, "count", r->count);
21805 6 : ndr_print_ptr(ndr, "types", r->types);
21806 6 : ndr->depth++;
21807 6 : if (r->types) {
21808 4 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "types", (uint32_t)(r->count));
21809 4 : ndr->depth++;
21810 10 : for (cntr_types_1 = 0; cntr_types_1 < (r->count); cntr_types_1++) {
21811 6 : ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
21812 : }
21813 4 : ndr->depth--;
21814 : }
21815 6 : ndr->depth--;
21816 6 : ndr->depth--;
21817 : }
21818 :
21819 0 : static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_NotifyString *r)
21820 : {
21821 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21822 0 : if (ndr_flags & NDR_SCALARS) {
21823 0 : NDR_CHECK(ndr_push_align(ndr, 5));
21824 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
21825 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
21826 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
21827 : }
21828 0 : if (ndr_flags & NDR_BUFFERS) {
21829 0 : if (r->string) {
21830 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
21831 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
21832 : }
21833 : }
21834 0 : return NDR_ERR_SUCCESS;
21835 : }
21836 :
21837 40 : static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_NotifyString *r)
21838 : {
21839 40 : uint32_t _ptr_string;
21840 40 : uint32_t size_string_1 = 0;
21841 40 : TALLOC_CTX *_mem_save_string_0 = NULL;
21842 40 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21843 40 : if (ndr_flags & NDR_SCALARS) {
21844 20 : NDR_CHECK(ndr_pull_align(ndr, 5));
21845 20 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
21846 20 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
21847 20 : if (_ptr_string) {
21848 20 : NDR_PULL_ALLOC(ndr, r->string);
21849 : } else {
21850 0 : r->string = NULL;
21851 : }
21852 20 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
21853 : }
21854 40 : if (ndr_flags & NDR_BUFFERS) {
21855 20 : if (r->string) {
21856 20 : _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
21857 20 : NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
21858 20 : NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
21859 20 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->string, &size_string_1));
21860 20 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, size_string_1, sizeof(uint16_t), CH_UTF16));
21861 20 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
21862 : }
21863 20 : if (r->string) {
21864 20 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->string, r->size / 2));
21865 : }
21866 : }
21867 0 : return NDR_ERR_SUCCESS;
21868 : }
21869 :
21870 20 : _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
21871 : {
21872 20 : ndr_print_struct(ndr, name, "spoolss_NotifyString");
21873 20 : if (r == NULL) { ndr_print_null(ndr); return; }
21874 20 : ndr->depth++;
21875 20 : ndr_print_uint32(ndr, "size", r->size);
21876 20 : ndr_print_ptr(ndr, "string", r->string);
21877 20 : ndr->depth++;
21878 20 : if (r->string) {
21879 20 : ndr_print_string(ndr, "string", r->string);
21880 : }
21881 20 : ndr->depth--;
21882 20 : ndr->depth--;
21883 : }
21884 :
21885 0 : static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_NotifyTable r)
21886 : {
21887 0 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
21888 0 : return NDR_ERR_SUCCESS;
21889 : }
21890 :
21891 52 : static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_NotifyTable *r)
21892 : {
21893 52 : uint32_t v;
21894 52 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
21895 52 : *r = v;
21896 52 : return NDR_ERR_SUCCESS;
21897 : }
21898 :
21899 52 : _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
21900 : {
21901 52 : const char *val = NULL;
21902 :
21903 52 : switch (r) {
21904 28 : case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
21905 20 : case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
21906 0 : case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
21907 4 : case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
21908 0 : case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
21909 : }
21910 52 : ndr_print_enum(ndr, name, "ENUM", val, r);
21911 52 : }
21912 :
21913 0 : static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_NotifyData *r)
21914 : {
21915 0 : uint32_t level;
21916 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21917 0 : if (ndr_flags & NDR_SCALARS) {
21918 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
21919 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
21920 0 : NDR_CHECK(ndr_push_union_align(ndr, 5));
21921 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
21922 : /* ms_union is always aligned to the largest union arm*/
21923 0 : NDR_CHECK(ndr_push_align(ndr, 5));
21924 0 : switch (level) {
21925 0 : case 1: {
21926 : uint32_t cntr_integer_0;
21927 0 : for (cntr_integer_0 = 0; cntr_integer_0 < (2); cntr_integer_0++) {
21928 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
21929 : }
21930 0 : break; }
21931 :
21932 0 : case 2: {
21933 0 : NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
21934 0 : break; }
21935 :
21936 0 : case 3: {
21937 0 : NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
21938 0 : break; }
21939 :
21940 0 : case 4: {
21941 0 : NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
21942 0 : break; }
21943 :
21944 0 : case 5: {
21945 0 : NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
21946 0 : break; }
21947 :
21948 0 : default:
21949 0 : return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
21950 : }
21951 : }
21952 0 : if (ndr_flags & NDR_BUFFERS) {
21953 0 : if (!(ndr_flags & NDR_SCALARS)) {
21954 : /* We didn't get it above, and the token is not needed after this. */
21955 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
21956 : }
21957 0 : switch (level) {
21958 0 : case 1:
21959 0 : break;
21960 :
21961 0 : case 2:
21962 0 : NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
21963 0 : break;
21964 :
21965 0 : case 3:
21966 0 : NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
21967 0 : break;
21968 :
21969 0 : case 4:
21970 0 : NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
21971 0 : break;
21972 :
21973 0 : case 5:
21974 0 : NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
21975 0 : break;
21976 :
21977 0 : default:
21978 0 : return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
21979 : }
21980 : }
21981 0 : return NDR_ERR_SUCCESS;
21982 : }
21983 :
21984 104 : static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_NotifyData *r)
21985 : {
21986 104 : uint32_t level;
21987 104 : uint32_t _level;
21988 104 : uint32_t size_integer_0 = 0;
21989 104 : uint32_t cntr_integer_0;
21990 104 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21991 104 : if (ndr_flags & NDR_SCALARS) {
21992 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
21993 52 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
21994 52 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
21995 52 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
21996 52 : if (_level != level) {
21997 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
21998 : }
21999 : /* ms_union is always aligned to the largest union arm*/
22000 52 : NDR_CHECK(ndr_pull_align(ndr, 5));
22001 52 : switch (level) {
22002 0 : case 1: {
22003 84 : size_integer_0 = 2;
22004 84 : for (cntr_integer_0 = 0; cntr_integer_0 < (size_integer_0); cntr_integer_0++) {
22005 56 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
22006 : }
22007 0 : break; }
22008 :
22009 20 : case 2: {
22010 20 : NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
22011 0 : break; }
22012 :
22013 0 : case 3: {
22014 0 : NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
22015 0 : break; }
22016 :
22017 4 : case 4: {
22018 4 : NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
22019 0 : break; }
22020 :
22021 0 : case 5: {
22022 0 : NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
22023 0 : break; }
22024 :
22025 0 : default:
22026 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
22027 : }
22028 : }
22029 104 : if (ndr_flags & NDR_BUFFERS) {
22030 52 : if (!(ndr_flags & NDR_SCALARS)) {
22031 : /* We didn't get it above, and the token is not needed after this. */
22032 52 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
22033 : }
22034 52 : switch (level) {
22035 0 : case 1:
22036 0 : break;
22037 :
22038 20 : case 2:
22039 20 : NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
22040 0 : break;
22041 :
22042 0 : case 3:
22043 0 : NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
22044 0 : break;
22045 :
22046 4 : case 4:
22047 4 : NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
22048 0 : break;
22049 :
22050 0 : case 5:
22051 0 : NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
22052 0 : break;
22053 :
22054 0 : default:
22055 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
22056 : }
22057 : }
22058 0 : return NDR_ERR_SUCCESS;
22059 : }
22060 :
22061 52 : _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
22062 : {
22063 52 : uint32_t level;
22064 52 : uint32_t cntr_integer_0;
22065 52 : level = ndr_print_steal_switch_value(ndr, r);
22066 52 : ndr_print_union(ndr, name, level, "spoolss_NotifyData");
22067 52 : switch (level) {
22068 28 : case 1:
22069 28 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "integer", (uint32_t)(2));
22070 28 : ndr->depth++;
22071 84 : for (cntr_integer_0 = 0; cntr_integer_0 < (2); cntr_integer_0++) {
22072 56 : ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
22073 : }
22074 28 : ndr->depth--;
22075 28 : break;
22076 :
22077 20 : case 2:
22078 20 : ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
22079 20 : break;
22080 :
22081 0 : case 3:
22082 0 : ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
22083 0 : break;
22084 :
22085 4 : case 4:
22086 4 : ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
22087 4 : break;
22088 :
22089 0 : case 5:
22090 0 : ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
22091 0 : break;
22092 :
22093 0 : default:
22094 0 : ndr_print_bad_level(ndr, name, level);
22095 : }
22096 52 : }
22097 :
22098 0 : static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_Notify *r)
22099 : {
22100 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22101 0 : if (ndr_flags & NDR_SCALARS) {
22102 0 : NDR_CHECK(ndr_push_align(ndr, 5));
22103 0 : NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
22104 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
22105 0 : NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
22106 0 : NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
22107 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
22108 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
22109 0 : NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
22110 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
22111 : }
22112 0 : if (ndr_flags & NDR_BUFFERS) {
22113 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
22114 0 : NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
22115 : }
22116 0 : return NDR_ERR_SUCCESS;
22117 : }
22118 :
22119 104 : static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_Notify *r)
22120 : {
22121 104 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22122 104 : if (ndr_flags & NDR_SCALARS) {
22123 52 : NDR_CHECK(ndr_pull_align(ndr, 5));
22124 104 : NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
22125 52 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
22126 52 : NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
22127 104 : NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
22128 52 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
22129 52 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
22130 52 : NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
22131 52 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
22132 : }
22133 104 : if (ndr_flags & NDR_BUFFERS) {
22134 52 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
22135 52 : NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
22136 : }
22137 0 : return NDR_ERR_SUCCESS;
22138 : }
22139 :
22140 52 : _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
22141 : {
22142 52 : ndr_print_struct(ndr, name, "spoolss_Notify");
22143 52 : if (r == NULL) { ndr_print_null(ndr); return; }
22144 52 : ndr->depth++;
22145 52 : ndr_print_spoolss_NotifyType(ndr, "type", r->type);
22146 52 : ndr_print_set_switch_value(ndr, &r->field, r->type);
22147 52 : ndr_print_spoolss_Field(ndr, "field", &r->field);
22148 52 : ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
22149 52 : ndr_print_uint32(ndr, "job_id", r->job_id);
22150 52 : ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
22151 52 : ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
22152 52 : ndr->depth--;
22153 : }
22154 :
22155 4 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_NotifyInfo *r)
22156 : {
22157 0 : uint32_t cntr_notifies_0;
22158 4 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22159 4 : if (ndr_flags & NDR_SCALARS) {
22160 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
22161 4 : NDR_CHECK(ndr_push_align(ndr, 5));
22162 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
22163 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
22164 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
22165 4 : for (cntr_notifies_0 = 0; cntr_notifies_0 < (r->count); cntr_notifies_0++) {
22166 0 : NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
22167 : }
22168 4 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
22169 : }
22170 4 : if (ndr_flags & NDR_BUFFERS) {
22171 4 : for (cntr_notifies_0 = 0; cntr_notifies_0 < (r->count); cntr_notifies_0++) {
22172 0 : NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
22173 : }
22174 : }
22175 4 : return NDR_ERR_SUCCESS;
22176 : }
22177 :
22178 6 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_NotifyInfo *r)
22179 : {
22180 6 : uint32_t size_notifies_0 = 0;
22181 2 : uint32_t cntr_notifies_0;
22182 6 : TALLOC_CTX *_mem_save_notifies_0 = NULL;
22183 6 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22184 6 : if (ndr_flags & NDR_SCALARS) {
22185 6 : NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
22186 6 : NDR_CHECK(ndr_pull_align(ndr, 5));
22187 6 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
22188 6 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
22189 6 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
22190 6 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->notifies, &size_notifies_0));
22191 6 : NDR_PULL_ALLOC_N(ndr, r->notifies, size_notifies_0);
22192 6 : _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
22193 6 : NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
22194 58 : for (cntr_notifies_0 = 0; cntr_notifies_0 < (size_notifies_0); cntr_notifies_0++) {
22195 52 : NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
22196 : }
22197 6 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
22198 6 : if (r->notifies) {
22199 6 : NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
22200 : }
22201 6 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
22202 : }
22203 6 : if (ndr_flags & NDR_BUFFERS) {
22204 6 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->notifies, &size_notifies_0));
22205 6 : _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
22206 6 : NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
22207 58 : for (cntr_notifies_0 = 0; cntr_notifies_0 < (size_notifies_0); cntr_notifies_0++) {
22208 52 : NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
22209 : }
22210 6 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
22211 6 : for (cntr_notifies_0 = 0; cntr_notifies_0 < (size_notifies_0); cntr_notifies_0++) {
22212 : }
22213 : }
22214 4 : return NDR_ERR_SUCCESS;
22215 : }
22216 :
22217 0 : static void ndr_print_flags_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_NotifyInfo *r)
22218 : {
22219 0 : ndr_print_spoolss_NotifyInfo(ndr, name, r);
22220 0 : }
22221 :
22222 2 : _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
22223 : {
22224 2 : uint32_t cntr_notifies_0;
22225 2 : ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
22226 2 : if (r == NULL) { ndr_print_null(ndr); return; }
22227 2 : ndr->depth++;
22228 2 : ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
22229 2 : ndr_print_uint32(ndr, "flags", r->flags);
22230 2 : ndr_print_uint32(ndr, "count", r->count);
22231 2 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "notifies", (uint32_t)(r->count));
22232 2 : ndr->depth++;
22233 54 : for (cntr_notifies_0 = 0; cntr_notifies_0 < (r->count); cntr_notifies_0++) {
22234 52 : ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
22235 : }
22236 2 : ndr->depth--;
22237 2 : ndr->depth--;
22238 : }
22239 :
22240 0 : static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_ReplyPrinterInfo *r)
22241 : {
22242 0 : uint32_t level;
22243 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22244 0 : if (ndr_flags & NDR_SCALARS) {
22245 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
22246 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
22247 0 : NDR_CHECK(ndr_push_union_align(ndr, 5));
22248 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
22249 : /* ms_union is always aligned to the largest union arm*/
22250 0 : NDR_CHECK(ndr_push_align(ndr, 5));
22251 0 : switch (level) {
22252 0 : case 0: {
22253 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
22254 0 : break; }
22255 :
22256 0 : default:
22257 0 : return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
22258 : }
22259 : }
22260 0 : if (ndr_flags & NDR_BUFFERS) {
22261 0 : if (!(ndr_flags & NDR_SCALARS)) {
22262 : /* We didn't get it above, and the token is not needed after this. */
22263 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
22264 : }
22265 0 : switch (level) {
22266 0 : case 0:
22267 0 : if (r->info0) {
22268 0 : NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
22269 : }
22270 0 : break;
22271 :
22272 0 : default:
22273 0 : return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
22274 : }
22275 : }
22276 0 : return NDR_ERR_SUCCESS;
22277 : }
22278 :
22279 0 : static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_ReplyPrinterInfo *r)
22280 : {
22281 0 : uint32_t level;
22282 0 : uint32_t _level;
22283 0 : TALLOC_CTX *_mem_save_info0_0 = NULL;
22284 0 : uint32_t _ptr_info0;
22285 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22286 0 : if (ndr_flags & NDR_SCALARS) {
22287 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
22288 0 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
22289 0 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
22290 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
22291 0 : if (_level != level) {
22292 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
22293 : }
22294 : /* ms_union is always aligned to the largest union arm*/
22295 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
22296 0 : switch (level) {
22297 0 : case 0: {
22298 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
22299 0 : if (_ptr_info0) {
22300 0 : NDR_PULL_ALLOC(ndr, r->info0);
22301 : } else {
22302 0 : r->info0 = NULL;
22303 : }
22304 0 : break; }
22305 :
22306 0 : default:
22307 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
22308 : }
22309 : }
22310 0 : if (ndr_flags & NDR_BUFFERS) {
22311 0 : if (!(ndr_flags & NDR_SCALARS)) {
22312 : /* We didn't get it above, and the token is not needed after this. */
22313 0 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
22314 : }
22315 0 : switch (level) {
22316 0 : case 0:
22317 0 : if (r->info0) {
22318 0 : _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
22319 0 : NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
22320 0 : NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
22321 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
22322 : }
22323 0 : break;
22324 :
22325 0 : default:
22326 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
22327 : }
22328 : }
22329 0 : return NDR_ERR_SUCCESS;
22330 : }
22331 :
22332 0 : _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
22333 : {
22334 0 : uint32_t level;
22335 0 : level = ndr_print_steal_switch_value(ndr, r);
22336 0 : ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
22337 0 : switch (level) {
22338 0 : case 0:
22339 0 : ndr_print_ptr(ndr, "info0", r->info0);
22340 0 : ndr->depth++;
22341 0 : if (r->info0) {
22342 0 : ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
22343 : }
22344 0 : ndr->depth--;
22345 0 : break;
22346 :
22347 0 : default:
22348 0 : ndr_print_bad_level(ndr, name, level);
22349 : }
22350 0 : }
22351 :
22352 0 : static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
22353 : {
22354 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
22355 0 : return NDR_ERR_SUCCESS;
22356 : }
22357 :
22358 0 : static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
22359 : {
22360 0 : uint32_t v;
22361 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
22362 0 : *r = v;
22363 0 : return NDR_ERR_SUCCESS;
22364 : }
22365 :
22366 0 : _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
22367 : {
22368 0 : ndr_print_uint32(ndr, name, r);
22369 0 : ndr->depth++;
22370 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
22371 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
22372 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
22373 0 : ndr->depth--;
22374 0 : }
22375 :
22376 766 : static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_UserLevel1 *r)
22377 : {
22378 766 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22379 766 : if (ndr_flags & NDR_SCALARS) {
22380 766 : NDR_CHECK(ndr_push_align(ndr, 5));
22381 766 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
22382 766 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
22383 766 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
22384 766 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
22385 766 : NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
22386 766 : NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
22387 766 : NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
22388 766 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
22389 : }
22390 766 : if (ndr_flags & NDR_BUFFERS) {
22391 766 : if (r->client) {
22392 754 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
22393 754 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22394 754 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
22395 754 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22396 : }
22397 766 : if (r->user) {
22398 754 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
22399 754 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22400 754 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
22401 754 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22402 : }
22403 : }
22404 766 : return NDR_ERR_SUCCESS;
22405 : }
22406 :
22407 778 : static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_UserLevel1 *r)
22408 : {
22409 12 : uint32_t _ptr_client;
22410 778 : uint32_t size_client_1 = 0;
22411 778 : uint32_t length_client_1 = 0;
22412 778 : TALLOC_CTX *_mem_save_client_0 = NULL;
22413 12 : uint32_t _ptr_user;
22414 778 : uint32_t size_user_1 = 0;
22415 778 : uint32_t length_user_1 = 0;
22416 778 : TALLOC_CTX *_mem_save_user_0 = NULL;
22417 778 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22418 778 : if (ndr_flags & NDR_SCALARS) {
22419 778 : NDR_CHECK(ndr_pull_align(ndr, 5));
22420 778 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
22421 778 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
22422 778 : if (_ptr_client) {
22423 766 : NDR_PULL_ALLOC(ndr, r->client);
22424 : } else {
22425 12 : r->client = NULL;
22426 : }
22427 778 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
22428 778 : if (_ptr_user) {
22429 766 : NDR_PULL_ALLOC(ndr, r->user);
22430 : } else {
22431 12 : r->user = NULL;
22432 : }
22433 778 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
22434 790 : NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
22435 790 : NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
22436 790 : NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
22437 778 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
22438 : }
22439 778 : if (ndr_flags & NDR_BUFFERS) {
22440 778 : if (r->client) {
22441 766 : _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
22442 766 : NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
22443 766 : NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
22444 766 : NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
22445 766 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->client, &size_client_1));
22446 766 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->client, &length_client_1));
22447 766 : if (length_client_1 > size_client_1) {
22448 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_client_1, length_client_1);
22449 : }
22450 766 : NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t)));
22451 766 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, length_client_1, sizeof(uint16_t), CH_UTF16));
22452 766 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
22453 : }
22454 778 : if (r->user) {
22455 766 : _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
22456 766 : NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
22457 766 : NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
22458 766 : NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
22459 766 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->user, &size_user_1));
22460 766 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->user, &length_user_1));
22461 766 : if (length_user_1 > size_user_1) {
22462 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_user_1, length_user_1);
22463 : }
22464 766 : NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t)));
22465 766 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16));
22466 766 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
22467 : }
22468 : }
22469 766 : return NDR_ERR_SUCCESS;
22470 : }
22471 :
22472 12 : _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
22473 : {
22474 12 : ndr_print_struct(ndr, name, "spoolss_UserLevel1");
22475 12 : if (r == NULL) { ndr_print_null(ndr); return; }
22476 12 : ndr->depth++;
22477 12 : ndr_print_uint32(ndr, "size", r->size);
22478 12 : ndr_print_ptr(ndr, "client", r->client);
22479 12 : ndr->depth++;
22480 12 : if (r->client) {
22481 12 : ndr_print_string(ndr, "client", r->client);
22482 : }
22483 12 : ndr->depth--;
22484 12 : ndr_print_ptr(ndr, "user", r->user);
22485 12 : ndr->depth++;
22486 12 : if (r->user) {
22487 12 : ndr_print_string(ndr, "user", r->user);
22488 : }
22489 12 : ndr->depth--;
22490 12 : ndr_print_uint32(ndr, "build", r->build);
22491 12 : ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
22492 12 : ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
22493 12 : ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
22494 12 : ndr->depth--;
22495 : }
22496 :
22497 0 : static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_UserLevel2 *r)
22498 : {
22499 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22500 0 : if (ndr_flags & NDR_SCALARS) {
22501 0 : NDR_CHECK(ndr_push_align(ndr, 4));
22502 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
22503 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
22504 : }
22505 0 : if (ndr_flags & NDR_BUFFERS) {
22506 0 : }
22507 0 : return NDR_ERR_SUCCESS;
22508 : }
22509 :
22510 0 : static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_UserLevel2 *r)
22511 : {
22512 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22513 0 : if (ndr_flags & NDR_SCALARS) {
22514 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
22515 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
22516 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
22517 : }
22518 0 : if (ndr_flags & NDR_BUFFERS) {
22519 0 : }
22520 0 : return NDR_ERR_SUCCESS;
22521 : }
22522 :
22523 0 : _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
22524 : {
22525 0 : ndr_print_struct(ndr, name, "spoolss_UserLevel2");
22526 0 : if (r == NULL) { ndr_print_null(ndr); return; }
22527 0 : ndr->depth++;
22528 0 : ndr_print_uint32(ndr, "not_used", r->not_used);
22529 0 : ndr->depth--;
22530 : }
22531 :
22532 0 : static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_UserLevel3 *r)
22533 : {
22534 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22535 0 : if (ndr_flags & NDR_SCALARS) {
22536 0 : NDR_CHECK(ndr_push_align(ndr, 5));
22537 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
22538 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
22539 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
22540 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
22541 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
22542 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
22543 0 : NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
22544 0 : NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
22545 0 : NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
22546 0 : NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
22547 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
22548 : }
22549 0 : if (ndr_flags & NDR_BUFFERS) {
22550 0 : if (r->client) {
22551 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
22552 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22553 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
22554 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22555 : }
22556 0 : if (r->user) {
22557 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
22558 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22559 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
22560 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22561 : }
22562 : }
22563 0 : return NDR_ERR_SUCCESS;
22564 : }
22565 :
22566 0 : static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_UserLevel3 *r)
22567 : {
22568 0 : uint32_t _ptr_client;
22569 0 : uint32_t size_client_1 = 0;
22570 0 : uint32_t length_client_1 = 0;
22571 0 : TALLOC_CTX *_mem_save_client_0 = NULL;
22572 0 : uint32_t _ptr_user;
22573 0 : uint32_t size_user_1 = 0;
22574 0 : uint32_t length_user_1 = 0;
22575 0 : TALLOC_CTX *_mem_save_user_0 = NULL;
22576 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22577 0 : if (ndr_flags & NDR_SCALARS) {
22578 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
22579 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
22580 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
22581 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
22582 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
22583 0 : if (_ptr_client) {
22584 0 : NDR_PULL_ALLOC(ndr, r->client);
22585 : } else {
22586 0 : r->client = NULL;
22587 : }
22588 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
22589 0 : if (_ptr_user) {
22590 0 : NDR_PULL_ALLOC(ndr, r->user);
22591 : } else {
22592 0 : r->user = NULL;
22593 : }
22594 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
22595 0 : NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
22596 0 : NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
22597 0 : NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
22598 0 : NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
22599 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
22600 : }
22601 0 : if (ndr_flags & NDR_BUFFERS) {
22602 0 : if (r->client) {
22603 0 : _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
22604 0 : NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
22605 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
22606 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
22607 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->client, &size_client_1));
22608 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->client, &length_client_1));
22609 0 : if (length_client_1 > size_client_1) {
22610 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_client_1, length_client_1);
22611 : }
22612 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t)));
22613 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, length_client_1, sizeof(uint16_t), CH_UTF16));
22614 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
22615 : }
22616 0 : if (r->user) {
22617 0 : _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
22618 0 : NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
22619 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
22620 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
22621 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->user, &size_user_1));
22622 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->user, &length_user_1));
22623 0 : if (length_user_1 > size_user_1) {
22624 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_user_1, length_user_1);
22625 : }
22626 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t)));
22627 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16));
22628 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
22629 : }
22630 : }
22631 0 : return NDR_ERR_SUCCESS;
22632 : }
22633 :
22634 0 : _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
22635 : {
22636 0 : ndr_print_struct(ndr, name, "spoolss_UserLevel3");
22637 0 : if (r == NULL) { ndr_print_null(ndr); return; }
22638 0 : ndr->depth++;
22639 0 : ndr_print_uint32(ndr, "size", r->size);
22640 0 : ndr_print_uint32(ndr, "flags", r->flags);
22641 0 : ndr_print_uint32(ndr, "size2", r->size2);
22642 0 : ndr_print_ptr(ndr, "client", r->client);
22643 0 : ndr->depth++;
22644 0 : if (r->client) {
22645 0 : ndr_print_string(ndr, "client", r->client);
22646 : }
22647 0 : ndr->depth--;
22648 0 : ndr_print_ptr(ndr, "user", r->user);
22649 0 : ndr->depth++;
22650 0 : if (r->user) {
22651 0 : ndr_print_string(ndr, "user", r->user);
22652 : }
22653 0 : ndr->depth--;
22654 0 : ndr_print_uint32(ndr, "build", r->build);
22655 0 : ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
22656 0 : ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
22657 0 : ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
22658 0 : ndr_print_udlong(ndr, "reserved", r->reserved);
22659 0 : ndr->depth--;
22660 : }
22661 :
22662 1636 : static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_UserLevel *r)
22663 : {
22664 0 : uint32_t level;
22665 1636 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22666 1636 : if (ndr_flags & NDR_SCALARS) {
22667 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
22668 818 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
22669 818 : NDR_CHECK(ndr_push_union_align(ndr, 5));
22670 818 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
22671 : /* ms_union is always aligned to the largest union arm*/
22672 818 : NDR_CHECK(ndr_push_align(ndr, 5));
22673 818 : switch (level) {
22674 818 : case 1: {
22675 818 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
22676 818 : break; }
22677 :
22678 0 : case 2: {
22679 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
22680 0 : break; }
22681 :
22682 0 : case 3: {
22683 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
22684 0 : break; }
22685 :
22686 0 : default:
22687 0 : return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
22688 : }
22689 : }
22690 1636 : if (ndr_flags & NDR_BUFFERS) {
22691 818 : if (!(ndr_flags & NDR_SCALARS)) {
22692 : /* We didn't get it above, and the token is not needed after this. */
22693 818 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
22694 : }
22695 818 : switch (level) {
22696 818 : case 1:
22697 818 : if (r->level1) {
22698 766 : NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
22699 : }
22700 818 : break;
22701 :
22702 0 : case 2:
22703 0 : if (r->level2) {
22704 0 : NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
22705 : }
22706 0 : break;
22707 :
22708 0 : case 3:
22709 0 : if (r->level3) {
22710 0 : NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
22711 : }
22712 0 : break;
22713 :
22714 0 : default:
22715 0 : return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
22716 : }
22717 : }
22718 1636 : return NDR_ERR_SUCCESS;
22719 : }
22720 :
22721 1660 : static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_UserLevel *r)
22722 : {
22723 24 : uint32_t level;
22724 24 : uint32_t _level;
22725 1660 : TALLOC_CTX *_mem_save_level1_0 = NULL;
22726 24 : uint32_t _ptr_level1;
22727 1660 : TALLOC_CTX *_mem_save_level2_0 = NULL;
22728 24 : uint32_t _ptr_level2;
22729 1660 : TALLOC_CTX *_mem_save_level3_0 = NULL;
22730 24 : uint32_t _ptr_level3;
22731 1660 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22732 1660 : if (ndr_flags & NDR_SCALARS) {
22733 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
22734 830 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
22735 830 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
22736 830 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
22737 830 : if (_level != level) {
22738 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
22739 : }
22740 : /* ms_union is always aligned to the largest union arm*/
22741 830 : NDR_CHECK(ndr_pull_align(ndr, 5));
22742 830 : switch (level) {
22743 830 : case 1: {
22744 830 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
22745 830 : if (_ptr_level1) {
22746 778 : NDR_PULL_ALLOC(ndr, r->level1);
22747 : } else {
22748 52 : r->level1 = NULL;
22749 : }
22750 818 : break; }
22751 :
22752 0 : case 2: {
22753 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
22754 0 : if (_ptr_level2) {
22755 0 : NDR_PULL_ALLOC(ndr, r->level2);
22756 : } else {
22757 0 : r->level2 = NULL;
22758 : }
22759 0 : break; }
22760 :
22761 0 : case 3: {
22762 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
22763 0 : if (_ptr_level3) {
22764 0 : NDR_PULL_ALLOC(ndr, r->level3);
22765 : } else {
22766 0 : r->level3 = NULL;
22767 : }
22768 0 : break; }
22769 :
22770 0 : default:
22771 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
22772 : }
22773 : }
22774 1660 : if (ndr_flags & NDR_BUFFERS) {
22775 830 : if (!(ndr_flags & NDR_SCALARS)) {
22776 : /* We didn't get it above, and the token is not needed after this. */
22777 830 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
22778 : }
22779 830 : switch (level) {
22780 830 : case 1:
22781 830 : if (r->level1) {
22782 778 : _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
22783 778 : NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
22784 778 : NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
22785 778 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
22786 : }
22787 818 : break;
22788 :
22789 0 : case 2:
22790 0 : if (r->level2) {
22791 0 : _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
22792 0 : NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
22793 0 : NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
22794 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
22795 : }
22796 0 : break;
22797 :
22798 0 : case 3:
22799 0 : if (r->level3) {
22800 0 : _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
22801 0 : NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
22802 0 : NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
22803 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
22804 : }
22805 0 : break;
22806 :
22807 0 : default:
22808 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
22809 : }
22810 : }
22811 1636 : return NDR_ERR_SUCCESS;
22812 : }
22813 :
22814 12 : _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
22815 : {
22816 12 : uint32_t level;
22817 12 : level = ndr_print_steal_switch_value(ndr, r);
22818 12 : ndr_print_union(ndr, name, level, "spoolss_UserLevel");
22819 12 : switch (level) {
22820 12 : case 1:
22821 12 : ndr_print_ptr(ndr, "level1", r->level1);
22822 12 : ndr->depth++;
22823 12 : if (r->level1) {
22824 12 : ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
22825 : }
22826 12 : ndr->depth--;
22827 12 : break;
22828 :
22829 0 : case 2:
22830 0 : ndr_print_ptr(ndr, "level2", r->level2);
22831 0 : ndr->depth++;
22832 0 : if (r->level2) {
22833 0 : ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
22834 : }
22835 0 : ndr->depth--;
22836 0 : break;
22837 :
22838 0 : case 3:
22839 0 : ndr_print_ptr(ndr, "level3", r->level3);
22840 0 : ndr->depth++;
22841 0 : if (r->level3) {
22842 0 : ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
22843 : }
22844 0 : ndr->depth--;
22845 0 : break;
22846 :
22847 0 : default:
22848 0 : ndr_print_bad_level(ndr, name, level);
22849 : }
22850 12 : }
22851 :
22852 818 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_UserLevelCtr *r)
22853 : {
22854 818 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22855 818 : if (ndr_flags & NDR_SCALARS) {
22856 818 : NDR_CHECK(ndr_push_align(ndr, 5));
22857 818 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
22858 818 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
22859 818 : NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
22860 818 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
22861 : }
22862 818 : if (ndr_flags & NDR_BUFFERS) {
22863 818 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
22864 818 : NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
22865 : }
22866 818 : return NDR_ERR_SUCCESS;
22867 : }
22868 :
22869 830 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_UserLevelCtr *r)
22870 : {
22871 830 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22872 830 : if (ndr_flags & NDR_SCALARS) {
22873 830 : NDR_CHECK(ndr_pull_align(ndr, 5));
22874 830 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
22875 830 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
22876 830 : NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
22877 830 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
22878 : }
22879 830 : if (ndr_flags & NDR_BUFFERS) {
22880 830 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
22881 830 : NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
22882 : }
22883 818 : return NDR_ERR_SUCCESS;
22884 : }
22885 :
22886 0 : static void ndr_print_flags_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_UserLevelCtr *r)
22887 : {
22888 0 : ndr_print_spoolss_UserLevelCtr(ndr, name, r);
22889 0 : }
22890 :
22891 12 : _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
22892 : {
22893 12 : ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
22894 12 : if (r == NULL) { ndr_print_null(ndr); return; }
22895 12 : ndr->depth++;
22896 12 : ndr_print_uint32(ndr, "level", r->level);
22897 12 : ndr_print_set_switch_value(ndr, &r->user_info, r->level);
22898 12 : ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
22899 12 : ndr->depth--;
22900 : }
22901 :
22902 988 : static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
22903 : {
22904 988 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
22905 988 : return NDR_ERR_SUCCESS;
22906 : }
22907 :
22908 994 : static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
22909 : {
22910 6 : uint32_t v;
22911 994 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
22912 994 : *r = v;
22913 994 : return NDR_ERR_SUCCESS;
22914 : }
22915 :
22916 6 : _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
22917 : {
22918 6 : ndr_print_uint32(ndr, name, r);
22919 6 : ndr->depth++;
22920 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
22921 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
22922 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
22923 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
22924 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
22925 6 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
22926 6 : ndr->depth--;
22927 6 : }
22928 :
22929 11088 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrinterEnumValues *r)
22930 : {
22931 11088 : uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
22932 11088 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22933 11088 : if (ndr_flags & NDR_SCALARS) {
22934 5544 : NDR_CHECK(ndr_push_align(ndr, 5));
22935 5544 : NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
22936 : {
22937 5544 : libndr_flags _flags_save_string = ndr->flags;
22938 5544 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
22939 5544 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
22940 5544 : ndr->flags = _flags_save_string;
22941 : }
22942 5544 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
22943 5544 : NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
22944 : {
22945 5544 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
22946 5544 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type));
22947 5544 : NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
22948 5544 : ndr->flags = _flags_save_DATA_BLOB;
22949 : }
22950 5544 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data?r->data->length:0));
22951 5544 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
22952 : }
22953 11088 : if (ndr_flags & NDR_BUFFERS) {
22954 5544 : NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
22955 : {
22956 5544 : libndr_flags _flags_save_string = ndr->flags;
22957 5544 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
22958 5544 : if (r->value_name) {
22959 5544 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->value_name));
22960 5544 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
22961 5544 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->value_name));
22962 : }
22963 5544 : ndr->flags = _flags_save_string;
22964 : }
22965 : {
22966 5544 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
22967 5544 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type));
22968 5544 : if (r->data) {
22969 5436 : NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data));
22970 : {
22971 0 : struct ndr_push *_ndr_data;
22972 5436 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data?r->data->length:0));
22973 5436 : NDR_CHECK(ndr_push_DATA_BLOB(_ndr_data, NDR_SCALARS, *r->data));
22974 5436 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data?r->data->length:0));
22975 : }
22976 5436 : NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data));
22977 : }
22978 5544 : ndr->flags = _flags_save_DATA_BLOB;
22979 : }
22980 : }
22981 11088 : ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
22982 11088 : return NDR_ERR_SUCCESS;
22983 : }
22984 :
22985 3348 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrinterEnumValues *r)
22986 : {
22987 3348 : uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
22988 100 : uint32_t _ptr_value_name;
22989 3348 : TALLOC_CTX *_mem_save_value_name_0 = NULL;
22990 100 : uint32_t _ptr_data;
22991 3348 : TALLOC_CTX *_mem_save_data_0 = NULL;
22992 3348 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22993 3348 : if (ndr_flags & NDR_SCALARS) {
22994 1674 : NDR_CHECK(ndr_pull_align(ndr, 5));
22995 1674 : NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
22996 : {
22997 1674 : libndr_flags _flags_save_string = ndr->flags;
22998 1674 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
22999 1674 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
23000 1674 : if (_ptr_value_name) {
23001 1674 : NDR_PULL_ALLOC(ndr, r->value_name);
23002 1674 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
23003 : } else {
23004 0 : r->value_name = NULL;
23005 : }
23006 1674 : ndr->flags = _flags_save_string;
23007 : }
23008 1674 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
23009 1674 : NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
23010 : {
23011 1674 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
23012 1674 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type));
23013 1674 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
23014 1674 : if (_ptr_data) {
23015 1638 : NDR_PULL_ALLOC(ndr, r->data);
23016 1638 : NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
23017 : } else {
23018 36 : r->data = NULL;
23019 : }
23020 1674 : ndr->flags = _flags_save_DATA_BLOB;
23021 : }
23022 1674 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
23023 1674 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
23024 : }
23025 3348 : if (ndr_flags & NDR_BUFFERS) {
23026 1674 : NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
23027 : {
23028 1674 : libndr_flags _flags_save_string = ndr->flags;
23029 1674 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
23030 1674 : if (r->value_name) {
23031 50 : uint32_t _relative_save_offset;
23032 1674 : _relative_save_offset = ndr->offset;
23033 1674 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
23034 1674 : _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
23035 1674 : NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
23036 1674 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
23037 1674 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
23038 1674 : if (ndr->offset > ndr->relative_highest_offset) {
23039 1674 : ndr->relative_highest_offset = ndr->offset;
23040 : }
23041 1674 : ndr->offset = _relative_save_offset;
23042 : }
23043 1674 : ndr->flags = _flags_save_string;
23044 : }
23045 : {
23046 1674 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
23047 1674 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type));
23048 1674 : if (r->data) {
23049 50 : uint32_t _relative_save_offset;
23050 1638 : _relative_save_offset = ndr->offset;
23051 1638 : NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
23052 1638 : _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23053 1638 : NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
23054 : {
23055 50 : struct ndr_pull *_ndr_data;
23056 1638 : ssize_t sub_size = r->data_length;
23057 1638 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, sub_size));
23058 1638 : NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_data, NDR_SCALARS, r->data));
23059 1638 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, sub_size));
23060 : }
23061 1638 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
23062 1638 : if (ndr->offset > ndr->relative_highest_offset) {
23063 1638 : ndr->relative_highest_offset = ndr->offset;
23064 : }
23065 1638 : ndr->offset = _relative_save_offset;
23066 : }
23067 1674 : ndr->flags = _flags_save_DATA_BLOB;
23068 : }
23069 : }
23070 3348 : ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
23071 3348 : return NDR_ERR_SUCCESS;
23072 : }
23073 :
23074 0 : static void ndr_print_flags_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrinterEnumValues *r)
23075 : {
23076 0 : ndr_print_spoolss_PrinterEnumValues(ndr, name, r);
23077 0 : }
23078 :
23079 50 : _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
23080 : {
23081 50 : ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
23082 50 : if (r == NULL) { ndr_print_null(ndr); return; }
23083 50 : ndr->depth++;
23084 : {
23085 50 : libndr_flags _flags_save_string = ndr->flags;
23086 50 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
23087 50 : ndr_print_ptr(ndr, "value_name", r->value_name);
23088 50 : ndr->depth++;
23089 50 : if (r->value_name) {
23090 50 : ndr_print_string(ndr, "value_name", r->value_name);
23091 : }
23092 50 : ndr->depth--;
23093 50 : ndr->flags = _flags_save_string;
23094 : }
23095 50 : ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
23096 50 : ndr_print_winreg_Type(ndr, "type", r->type);
23097 : {
23098 50 : libndr_flags _flags_save_DATA_BLOB = ndr->flags;
23099 50 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type));
23100 50 : ndr_print_ptr(ndr, "data", r->data);
23101 50 : ndr->depth++;
23102 50 : if (r->data) {
23103 50 : ndr_print_DATA_BLOB(ndr, "data", *r->data);
23104 : }
23105 50 : ndr->depth--;
23106 50 : ndr->flags = _flags_save_DATA_BLOB;
23107 : }
23108 50 : ndr_print_uint32(ndr, "data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->data?r->data->length:0:r->data_length);
23109 50 : ndr->depth--;
23110 : }
23111 :
23112 0 : _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, libndr_flags flags)
23113 : {
23114 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues);
23115 : }
23116 :
23117 3384 : static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_KeyNames *r)
23118 : {
23119 0 : uint32_t level;
23120 3384 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23121 3384 : if (ndr_flags & NDR_SCALARS) {
23122 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
23123 3384 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
23124 3384 : NDR_CHECK(ndr_push_union_align(ndr, 4));
23125 3384 : switch (level) {
23126 340 : case 0: {
23127 340 : break; }
23128 :
23129 328 : case 1: {
23130 328 : break; }
23131 :
23132 2716 : default: {
23133 : {
23134 2716 : libndr_flags _flags_save_string_array = ndr->flags;
23135 2716 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
23136 2716 : NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
23137 2716 : ndr->flags = _flags_save_string_array;
23138 : }
23139 2716 : break; }
23140 :
23141 : }
23142 : }
23143 3384 : return NDR_ERR_SUCCESS;
23144 : }
23145 :
23146 3388 : static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_KeyNames *r)
23147 : {
23148 4 : uint32_t level;
23149 3388 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23150 3388 : if (ndr_flags & NDR_SCALARS) {
23151 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
23152 3388 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
23153 3388 : NDR_CHECK(ndr_pull_union_align(ndr, 4));
23154 3388 : switch (level) {
23155 340 : case 0: {
23156 340 : break; }
23157 :
23158 328 : case 1: {
23159 328 : break; }
23160 :
23161 2716 : default: {
23162 : {
23163 2716 : libndr_flags _flags_save_string_array = ndr->flags;
23164 2716 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
23165 2716 : NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
23166 2716 : ndr->flags = _flags_save_string_array;
23167 : }
23168 2716 : break; }
23169 :
23170 : }
23171 : }
23172 3384 : return NDR_ERR_SUCCESS;
23173 : }
23174 :
23175 4 : _PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
23176 : {
23177 4 : uint32_t level;
23178 4 : level = ndr_print_steal_switch_value(ndr, r);
23179 4 : ndr_print_union(ndr, name, level, "spoolss_KeyNames");
23180 4 : switch (level) {
23181 0 : case 0:
23182 0 : break;
23183 :
23184 0 : case 1:
23185 0 : break;
23186 :
23187 0 : default:
23188 : {
23189 0 : libndr_flags _flags_save_string_array = ndr->flags;
23190 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
23191 0 : ndr_print_string_array(ndr, "string_array", r->string_array);
23192 0 : ndr->flags = _flags_save_string_array;
23193 : }
23194 0 : break;
23195 :
23196 : }
23197 4 : }
23198 :
23199 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
23200 : {
23201 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
23202 0 : return NDR_ERR_SUCCESS;
23203 : }
23204 :
23205 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
23206 : {
23207 0 : uint32_t v;
23208 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
23209 0 : *r = v;
23210 0 : return NDR_ERR_SUCCESS;
23211 : }
23212 :
23213 0 : _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
23214 : {
23215 0 : ndr_print_uint32(ndr, name, r);
23216 0 : ndr->depth++;
23217 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
23218 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
23219 0 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
23220 0 : ndr->depth--;
23221 0 : }
23222 :
23223 0 : static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_PortProtocol r)
23224 : {
23225 0 : NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
23226 0 : return NDR_ERR_SUCCESS;
23227 : }
23228 :
23229 0 : static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_PortProtocol *r)
23230 : {
23231 0 : uint32_t v;
23232 0 : NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
23233 0 : *r = v;
23234 0 : return NDR_ERR_SUCCESS;
23235 : }
23236 :
23237 0 : _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
23238 : {
23239 0 : const char *val = NULL;
23240 :
23241 0 : switch (r) {
23242 0 : case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
23243 0 : case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
23244 : }
23245 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
23246 0 : }
23247 :
23248 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PortData1 *r)
23249 : {
23250 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23251 0 : if (ndr_flags & NDR_SCALARS) {
23252 0 : NDR_CHECK(ndr_push_align(ndr, 4));
23253 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
23254 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
23255 0 : NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
23256 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PortData1(r, ndr->flags)));
23257 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
23258 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
23259 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
23260 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
23261 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
23262 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
23263 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
23264 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
23265 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
23266 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
23267 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
23268 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
23269 : }
23270 0 : if (ndr_flags & NDR_BUFFERS) {
23271 0 : }
23272 0 : return NDR_ERR_SUCCESS;
23273 : }
23274 :
23275 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PortData1 *r)
23276 : {
23277 0 : uint32_t size_portname_0 = 0;
23278 0 : uint32_t size_hostaddress_0 = 0;
23279 0 : uint32_t size_snmpcommunity_0 = 0;
23280 0 : uint32_t size_queue_0 = 0;
23281 0 : uint32_t size_ip_address_0 = 0;
23282 0 : uint32_t size_hardware_address_0 = 0;
23283 0 : uint32_t size_device_type_0 = 0;
23284 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23285 0 : if (ndr_flags & NDR_SCALARS) {
23286 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
23287 0 : size_portname_0 = 64;
23288 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, size_portname_0, sizeof(uint16_t), CH_UTF16));
23289 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
23290 0 : NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
23291 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
23292 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
23293 0 : size_hostaddress_0 = 49;
23294 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, size_hostaddress_0, sizeof(uint16_t), CH_UTF16));
23295 0 : size_snmpcommunity_0 = 33;
23296 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, size_snmpcommunity_0, sizeof(uint16_t), CH_UTF16));
23297 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
23298 0 : size_queue_0 = 33;
23299 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, size_queue_0, sizeof(uint16_t), CH_UTF16));
23300 0 : size_ip_address_0 = 16;
23301 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, size_ip_address_0, sizeof(uint16_t), CH_UTF16));
23302 0 : size_hardware_address_0 = 13;
23303 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, size_hardware_address_0, sizeof(uint16_t), CH_UTF16));
23304 0 : size_device_type_0 = 257;
23305 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, size_device_type_0, sizeof(uint16_t), CH_UTF16));
23306 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
23307 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
23308 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
23309 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
23310 : }
23311 0 : if (ndr_flags & NDR_BUFFERS) {
23312 0 : }
23313 0 : return NDR_ERR_SUCCESS;
23314 : }
23315 :
23316 0 : static void ndr_print_flags_spoolss_PortData1(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PortData1 *r)
23317 : {
23318 0 : ndr_print_spoolss_PortData1(ndr, name, r);
23319 0 : }
23320 :
23321 0 : _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
23322 : {
23323 0 : ndr_print_struct(ndr, name, "spoolss_PortData1");
23324 0 : if (r == NULL) { ndr_print_null(ndr); return; }
23325 0 : ndr->depth++;
23326 0 : ndr_print_string(ndr, "portname", r->portname);
23327 0 : ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
23328 0 : ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
23329 0 : ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PortData1(r, ndr->flags):r->size);
23330 0 : ndr_print_uint32(ndr, "reserved", r->reserved);
23331 0 : ndr_print_string(ndr, "hostaddress", r->hostaddress);
23332 0 : ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
23333 0 : ndr_print_uint32(ndr, "dblspool", r->dblspool);
23334 0 : ndr_print_string(ndr, "queue", r->queue);
23335 0 : ndr_print_string(ndr, "ip_address", r->ip_address);
23336 0 : ndr_print_string(ndr, "hardware_address", r->hardware_address);
23337 0 : ndr_print_string(ndr, "device_type", r->device_type);
23338 0 : ndr_print_uint32(ndr, "port_number", r->port_number);
23339 0 : ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
23340 0 : ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
23341 0 : ndr->depth--;
23342 : }
23343 :
23344 0 : _PUBLIC_ size_t ndr_size_spoolss_PortData1(const struct spoolss_PortData1 *r, libndr_flags flags)
23345 : {
23346 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortData1);
23347 : }
23348 :
23349 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PortData2 *r)
23350 : {
23351 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23352 0 : if (ndr_flags & NDR_SCALARS) {
23353 0 : NDR_CHECK(ndr_push_align(ndr, 4));
23354 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
23355 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
23356 0 : NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
23357 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PortData2(r, ndr->flags)));
23358 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
23359 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
23360 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
23361 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
23362 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
23363 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
23364 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
23365 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
23366 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
23367 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
23368 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
23369 : }
23370 0 : if (ndr_flags & NDR_BUFFERS) {
23371 0 : }
23372 0 : return NDR_ERR_SUCCESS;
23373 : }
23374 :
23375 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PortData2 *r)
23376 : {
23377 0 : uint32_t size_portname_0 = 0;
23378 0 : uint32_t size_hostaddress_0 = 0;
23379 0 : uint32_t size_snmpcommunity_0 = 0;
23380 0 : uint32_t size_queue_0 = 0;
23381 0 : uint32_t size_device_type_0 = 0;
23382 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23383 0 : if (ndr_flags & NDR_SCALARS) {
23384 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
23385 0 : size_portname_0 = 64;
23386 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, size_portname_0, sizeof(uint16_t), CH_UTF16));
23387 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
23388 0 : NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
23389 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
23390 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
23391 0 : size_hostaddress_0 = 128;
23392 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, size_hostaddress_0, sizeof(uint16_t), CH_UTF16));
23393 0 : size_snmpcommunity_0 = 33;
23394 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, size_snmpcommunity_0, sizeof(uint16_t), CH_UTF16));
23395 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
23396 0 : size_queue_0 = 33;
23397 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, size_queue_0, sizeof(uint16_t), CH_UTF16));
23398 0 : size_device_type_0 = 257;
23399 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, size_device_type_0, sizeof(uint16_t), CH_UTF16));
23400 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
23401 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
23402 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
23403 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
23404 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
23405 : }
23406 0 : if (ndr_flags & NDR_BUFFERS) {
23407 0 : }
23408 0 : return NDR_ERR_SUCCESS;
23409 : }
23410 :
23411 0 : static void ndr_print_flags_spoolss_PortData2(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PortData2 *r)
23412 : {
23413 0 : ndr_print_spoolss_PortData2(ndr, name, r);
23414 0 : }
23415 :
23416 0 : _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
23417 : {
23418 0 : ndr_print_struct(ndr, name, "spoolss_PortData2");
23419 0 : if (r == NULL) { ndr_print_null(ndr); return; }
23420 0 : ndr->depth++;
23421 0 : ndr_print_string(ndr, "portname", r->portname);
23422 0 : ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
23423 0 : ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
23424 0 : ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PortData2(r, ndr->flags):r->size);
23425 0 : ndr_print_uint32(ndr, "reserved", r->reserved);
23426 0 : ndr_print_string(ndr, "hostaddress", r->hostaddress);
23427 0 : ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
23428 0 : ndr_print_uint32(ndr, "dblspool", r->dblspool);
23429 0 : ndr_print_string(ndr, "queue", r->queue);
23430 0 : ndr_print_string(ndr, "device_type", r->device_type);
23431 0 : ndr_print_uint32(ndr, "port_number", r->port_number);
23432 0 : ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
23433 0 : ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
23434 0 : ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
23435 0 : ndr->depth--;
23436 : }
23437 :
23438 0 : _PUBLIC_ size_t ndr_size_spoolss_PortData2(const struct spoolss_PortData2 *r, libndr_flags flags)
23439 : {
23440 0 : return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortData2);
23441 : }
23442 :
23443 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_MonitorUi *r)
23444 : {
23445 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23446 0 : if (ndr_flags & NDR_SCALARS) {
23447 0 : NDR_CHECK(ndr_push_align(ndr, 4));
23448 : {
23449 0 : libndr_flags _flags_save_string = ndr->flags;
23450 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
23451 0 : NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
23452 0 : ndr->flags = _flags_save_string;
23453 : }
23454 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 4));
23455 : }
23456 0 : if (ndr_flags & NDR_BUFFERS) {
23457 0 : }
23458 0 : return NDR_ERR_SUCCESS;
23459 : }
23460 :
23461 0 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_MonitorUi *r)
23462 : {
23463 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23464 0 : if (ndr_flags & NDR_SCALARS) {
23465 0 : NDR_CHECK(ndr_pull_align(ndr, 4));
23466 : {
23467 0 : libndr_flags _flags_save_string = ndr->flags;
23468 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
23469 0 : NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
23470 0 : ndr->flags = _flags_save_string;
23471 : }
23472 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
23473 : }
23474 0 : if (ndr_flags & NDR_BUFFERS) {
23475 0 : }
23476 0 : return NDR_ERR_SUCCESS;
23477 : }
23478 :
23479 0 : static void ndr_print_flags_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_MonitorUi *r)
23480 : {
23481 0 : ndr_print_spoolss_MonitorUi(ndr, name, r);
23482 0 : }
23483 :
23484 0 : _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
23485 : {
23486 0 : ndr_print_struct(ndr, name, "spoolss_MonitorUi");
23487 0 : if (r == NULL) { ndr_print_null(ndr); return; }
23488 0 : ndr->depth++;
23489 : {
23490 0 : libndr_flags _flags_save_string = ndr->flags;
23491 0 : ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
23492 0 : ndr_print_string(ndr, "dll_name", r->dll_name);
23493 0 : ndr->flags = _flags_save_string;
23494 : }
23495 0 : ndr->depth--;
23496 : }
23497 :
23498 0 : static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, ndr_flags_type ndr_flags, uint32_t r)
23499 : {
23500 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
23501 0 : return NDR_ERR_SUCCESS;
23502 : }
23503 :
23504 2 : static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, ndr_flags_type ndr_flags, uint32_t *r)
23505 : {
23506 2 : uint32_t v;
23507 2 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
23508 2 : *r = v;
23509 2 : return NDR_ERR_SUCCESS;
23510 : }
23511 :
23512 2 : _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
23513 : {
23514 2 : ndr_print_uint32(ndr, name, r);
23515 2 : ndr->depth++;
23516 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
23517 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
23518 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
23519 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
23520 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
23521 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
23522 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
23523 2 : ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
23524 2 : ndr->depth--;
23525 2 : }
23526 :
23527 0 : static enum ndr_err_code ndr_push_RPC_BINARY_CONTAINER(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct RPC_BINARY_CONTAINER *r)
23528 : {
23529 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23530 0 : if (ndr_flags & NDR_SCALARS) {
23531 0 : NDR_CHECK(ndr_push_align(ndr, 5));
23532 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbBuf));
23533 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszString));
23534 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
23535 : }
23536 0 : if (ndr_flags & NDR_BUFFERS) {
23537 0 : if (r->pszString) {
23538 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->cbBuf));
23539 0 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pszString, r->cbBuf));
23540 : }
23541 : }
23542 0 : return NDR_ERR_SUCCESS;
23543 : }
23544 :
23545 0 : static enum ndr_err_code ndr_pull_RPC_BINARY_CONTAINER(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct RPC_BINARY_CONTAINER *r)
23546 : {
23547 0 : uint32_t _ptr_pszString;
23548 0 : uint32_t size_pszString_1 = 0;
23549 0 : TALLOC_CTX *_mem_save_pszString_0 = NULL;
23550 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23551 0 : if (ndr_flags & NDR_SCALARS) {
23552 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
23553 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbBuf));
23554 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszString));
23555 0 : if (_ptr_pszString) {
23556 0 : NDR_PULL_ALLOC(ndr, r->pszString);
23557 : } else {
23558 0 : r->pszString = NULL;
23559 : }
23560 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
23561 : }
23562 0 : if (ndr_flags & NDR_BUFFERS) {
23563 0 : if (r->pszString) {
23564 0 : _mem_save_pszString_0 = NDR_PULL_GET_MEM_CTX(ndr);
23565 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pszString, 0);
23566 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pszString));
23567 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->pszString, &size_pszString_1));
23568 0 : NDR_PULL_ALLOC_N(ndr, r->pszString, size_pszString_1);
23569 0 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pszString, size_pszString_1));
23570 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszString_0, 0);
23571 : }
23572 0 : if (r->pszString) {
23573 0 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->pszString, r->cbBuf));
23574 : }
23575 : }
23576 0 : return NDR_ERR_SUCCESS;
23577 : }
23578 :
23579 0 : _PUBLIC_ void ndr_print_RPC_BINARY_CONTAINER(struct ndr_print *ndr, const char *name, const struct RPC_BINARY_CONTAINER *r)
23580 : {
23581 0 : ndr_print_struct(ndr, name, "RPC_BINARY_CONTAINER");
23582 0 : if (r == NULL) { ndr_print_null(ndr); return; }
23583 0 : ndr->depth++;
23584 0 : ndr_print_uint32(ndr, "cbBuf", r->cbBuf);
23585 0 : ndr_print_ptr(ndr, "pszString", r->pszString);
23586 0 : ndr->depth++;
23587 0 : if (r->pszString) {
23588 0 : ndr_print_array_uint8(ndr, "pszString", r->pszString, r->cbBuf);
23589 : }
23590 0 : ndr->depth--;
23591 0 : ndr->depth--;
23592 : }
23593 :
23594 0 : static enum ndr_err_code ndr_push_RPC_BIDI_DATA_u(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union RPC_BIDI_DATA_u *r)
23595 : {
23596 0 : uint32_t level;
23597 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23598 0 : if (ndr_flags & NDR_SCALARS) {
23599 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
23600 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
23601 0 : NDR_CHECK(ndr_push_union_align(ndr, 5));
23602 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
23603 : /* ms_union is always aligned to the largest union arm*/
23604 0 : NDR_CHECK(ndr_push_align(ndr, 5));
23605 0 : switch (level) {
23606 0 : case BIDI_NULL: {
23607 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bData));
23608 0 : break; }
23609 :
23610 0 : case BIDI_BOOL: {
23611 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bData));
23612 0 : break; }
23613 :
23614 0 : case BIDI_INT: {
23615 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->iData));
23616 0 : break; }
23617 :
23618 0 : case BIDI_STRING: {
23619 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->sData));
23620 0 : break; }
23621 :
23622 0 : case BIDI_TEXT: {
23623 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->sData));
23624 0 : break; }
23625 :
23626 0 : case BIDI_ENUM: {
23627 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->sData));
23628 0 : break; }
23629 :
23630 0 : case BIDI_BLOB: {
23631 0 : NDR_CHECK(ndr_push_RPC_BINARY_CONTAINER(ndr, NDR_SCALARS, &r->biData));
23632 0 : break; }
23633 :
23634 0 : default:
23635 0 : return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
23636 : }
23637 : }
23638 0 : if (ndr_flags & NDR_BUFFERS) {
23639 0 : if (!(ndr_flags & NDR_SCALARS)) {
23640 : /* We didn't get it above, and the token is not needed after this. */
23641 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
23642 : }
23643 0 : switch (level) {
23644 0 : case BIDI_NULL:
23645 0 : break;
23646 :
23647 0 : case BIDI_BOOL:
23648 0 : break;
23649 :
23650 0 : case BIDI_INT:
23651 0 : break;
23652 :
23653 0 : case BIDI_STRING:
23654 0 : if (r->sData) {
23655 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
23656 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23657 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
23658 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sData, ndr_charset_length(r->sData, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23659 : }
23660 0 : break;
23661 :
23662 0 : case BIDI_TEXT:
23663 0 : if (r->sData) {
23664 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
23665 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23666 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
23667 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sData, ndr_charset_length(r->sData, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23668 : }
23669 0 : break;
23670 :
23671 0 : case BIDI_ENUM:
23672 0 : if (r->sData) {
23673 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
23674 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23675 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
23676 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sData, ndr_charset_length(r->sData, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23677 : }
23678 0 : break;
23679 :
23680 0 : case BIDI_BLOB:
23681 0 : NDR_CHECK(ndr_push_RPC_BINARY_CONTAINER(ndr, NDR_BUFFERS, &r->biData));
23682 0 : break;
23683 :
23684 0 : default:
23685 0 : return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
23686 : }
23687 : }
23688 0 : return NDR_ERR_SUCCESS;
23689 : }
23690 :
23691 0 : static enum ndr_err_code ndr_pull_RPC_BIDI_DATA_u(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union RPC_BIDI_DATA_u *r)
23692 : {
23693 0 : uint32_t level;
23694 0 : uint32_t _level;
23695 0 : TALLOC_CTX *_mem_save_sData_0 = NULL;
23696 0 : uint32_t _ptr_sData;
23697 0 : uint32_t size_sData_1 = 0;
23698 0 : uint32_t length_sData_1 = 0;
23699 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23700 0 : if (ndr_flags & NDR_SCALARS) {
23701 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
23702 0 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
23703 0 : NDR_CHECK(ndr_pull_union_align(ndr, 5));
23704 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
23705 0 : if (_level != level) {
23706 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" for r at %s", (uint32_t)_level, __location__);
23707 : }
23708 : /* ms_union is always aligned to the largest union arm*/
23709 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
23710 0 : switch (level) {
23711 0 : case BIDI_NULL: {
23712 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bData));
23713 0 : break; }
23714 :
23715 0 : case BIDI_BOOL: {
23716 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bData));
23717 0 : break; }
23718 :
23719 0 : case BIDI_INT: {
23720 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->iData));
23721 0 : break; }
23722 :
23723 0 : case BIDI_STRING: {
23724 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sData));
23725 0 : if (_ptr_sData) {
23726 0 : NDR_PULL_ALLOC(ndr, r->sData);
23727 : } else {
23728 0 : r->sData = NULL;
23729 : }
23730 0 : break; }
23731 :
23732 0 : case BIDI_TEXT: {
23733 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sData));
23734 0 : if (_ptr_sData) {
23735 0 : NDR_PULL_ALLOC(ndr, r->sData);
23736 : } else {
23737 0 : r->sData = NULL;
23738 : }
23739 0 : break; }
23740 :
23741 0 : case BIDI_ENUM: {
23742 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sData));
23743 0 : if (_ptr_sData) {
23744 0 : NDR_PULL_ALLOC(ndr, r->sData);
23745 : } else {
23746 0 : r->sData = NULL;
23747 : }
23748 0 : break; }
23749 :
23750 0 : case BIDI_BLOB: {
23751 0 : NDR_CHECK(ndr_pull_RPC_BINARY_CONTAINER(ndr, NDR_SCALARS, &r->biData));
23752 0 : break; }
23753 :
23754 0 : default:
23755 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
23756 : }
23757 : }
23758 0 : if (ndr_flags & NDR_BUFFERS) {
23759 0 : if (!(ndr_flags & NDR_SCALARS)) {
23760 : /* We didn't get it above, and the token is not needed after this. */
23761 0 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
23762 : }
23763 0 : switch (level) {
23764 0 : case BIDI_NULL:
23765 0 : break;
23766 :
23767 0 : case BIDI_BOOL:
23768 0 : break;
23769 :
23770 0 : case BIDI_INT:
23771 0 : break;
23772 :
23773 0 : case BIDI_STRING:
23774 0 : if (r->sData) {
23775 0 : _mem_save_sData_0 = NDR_PULL_GET_MEM_CTX(ndr);
23776 0 : NDR_PULL_SET_MEM_CTX(ndr, r->sData, 0);
23777 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->sData));
23778 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->sData));
23779 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->sData, &size_sData_1));
23780 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->sData, &length_sData_1));
23781 0 : if (length_sData_1 > size_sData_1) {
23782 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_sData_1, length_sData_1);
23783 : }
23784 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_sData_1, sizeof(uint16_t)));
23785 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sData, length_sData_1, sizeof(uint16_t), CH_UTF16));
23786 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sData_0, 0);
23787 : }
23788 0 : break;
23789 :
23790 0 : case BIDI_TEXT:
23791 0 : if (r->sData) {
23792 0 : _mem_save_sData_0 = NDR_PULL_GET_MEM_CTX(ndr);
23793 0 : NDR_PULL_SET_MEM_CTX(ndr, r->sData, 0);
23794 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->sData));
23795 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->sData));
23796 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->sData, &size_sData_1));
23797 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->sData, &length_sData_1));
23798 0 : if (length_sData_1 > size_sData_1) {
23799 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_sData_1, length_sData_1);
23800 : }
23801 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_sData_1, sizeof(uint16_t)));
23802 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sData, length_sData_1, sizeof(uint16_t), CH_UTF16));
23803 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sData_0, 0);
23804 : }
23805 0 : break;
23806 :
23807 0 : case BIDI_ENUM:
23808 0 : if (r->sData) {
23809 0 : _mem_save_sData_0 = NDR_PULL_GET_MEM_CTX(ndr);
23810 0 : NDR_PULL_SET_MEM_CTX(ndr, r->sData, 0);
23811 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->sData));
23812 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->sData));
23813 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->sData, &size_sData_1));
23814 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->sData, &length_sData_1));
23815 0 : if (length_sData_1 > size_sData_1) {
23816 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_sData_1, length_sData_1);
23817 : }
23818 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_sData_1, sizeof(uint16_t)));
23819 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sData, length_sData_1, sizeof(uint16_t), CH_UTF16));
23820 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sData_0, 0);
23821 : }
23822 0 : break;
23823 :
23824 0 : case BIDI_BLOB:
23825 0 : NDR_CHECK(ndr_pull_RPC_BINARY_CONTAINER(ndr, NDR_BUFFERS, &r->biData));
23826 0 : break;
23827 :
23828 0 : default:
23829 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
23830 : }
23831 : }
23832 0 : return NDR_ERR_SUCCESS;
23833 : }
23834 :
23835 0 : _PUBLIC_ void ndr_print_RPC_BIDI_DATA_u(struct ndr_print *ndr, const char *name, const union RPC_BIDI_DATA_u *r)
23836 : {
23837 0 : uint32_t level;
23838 0 : level = ndr_print_steal_switch_value(ndr, r);
23839 0 : ndr_print_union(ndr, name, level, "RPC_BIDI_DATA_u");
23840 0 : switch (level) {
23841 0 : case BIDI_NULL:
23842 0 : ndr_print_uint32(ndr, "bData", r->bData);
23843 0 : break;
23844 :
23845 0 : case BIDI_BOOL:
23846 0 : ndr_print_uint32(ndr, "bData", r->bData);
23847 0 : break;
23848 :
23849 0 : case BIDI_INT:
23850 0 : ndr_print_uint32(ndr, "iData", r->iData);
23851 0 : break;
23852 :
23853 0 : case BIDI_STRING:
23854 0 : ndr_print_ptr(ndr, "sData", r->sData);
23855 0 : ndr->depth++;
23856 0 : if (r->sData) {
23857 0 : ndr_print_string(ndr, "sData", r->sData);
23858 : }
23859 0 : ndr->depth--;
23860 0 : break;
23861 :
23862 0 : case BIDI_TEXT:
23863 0 : ndr_print_ptr(ndr, "sData", r->sData);
23864 0 : ndr->depth++;
23865 0 : if (r->sData) {
23866 0 : ndr_print_string(ndr, "sData", r->sData);
23867 : }
23868 0 : ndr->depth--;
23869 0 : break;
23870 :
23871 0 : case BIDI_ENUM:
23872 0 : ndr_print_ptr(ndr, "sData", r->sData);
23873 0 : ndr->depth++;
23874 0 : if (r->sData) {
23875 0 : ndr_print_string(ndr, "sData", r->sData);
23876 : }
23877 0 : ndr->depth--;
23878 0 : break;
23879 :
23880 0 : case BIDI_BLOB:
23881 0 : ndr_print_RPC_BINARY_CONTAINER(ndr, "biData", &r->biData);
23882 0 : break;
23883 :
23884 0 : default:
23885 0 : ndr_print_bad_level(ndr, name, level);
23886 : }
23887 0 : }
23888 :
23889 0 : static enum ndr_err_code ndr_push_RPC_BIDI_DATA(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct RPC_BIDI_DATA *r)
23890 : {
23891 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23892 0 : if (ndr_flags & NDR_SCALARS) {
23893 0 : NDR_CHECK(ndr_push_align(ndr, 5));
23894 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwBidiType));
23895 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->u, r->dwBidiType));
23896 0 : NDR_CHECK(ndr_push_RPC_BIDI_DATA_u(ndr, NDR_SCALARS, &r->u));
23897 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
23898 : }
23899 0 : if (ndr_flags & NDR_BUFFERS) {
23900 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->u, r->dwBidiType));
23901 0 : NDR_CHECK(ndr_push_RPC_BIDI_DATA_u(ndr, NDR_BUFFERS, &r->u));
23902 : }
23903 0 : return NDR_ERR_SUCCESS;
23904 : }
23905 :
23906 0 : static enum ndr_err_code ndr_pull_RPC_BIDI_DATA(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct RPC_BIDI_DATA *r)
23907 : {
23908 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23909 0 : if (ndr_flags & NDR_SCALARS) {
23910 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
23911 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwBidiType));
23912 0 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->u, r->dwBidiType));
23913 0 : NDR_CHECK(ndr_pull_RPC_BIDI_DATA_u(ndr, NDR_SCALARS, &r->u));
23914 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
23915 : }
23916 0 : if (ndr_flags & NDR_BUFFERS) {
23917 0 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->u, r->dwBidiType));
23918 0 : NDR_CHECK(ndr_pull_RPC_BIDI_DATA_u(ndr, NDR_BUFFERS, &r->u));
23919 : }
23920 0 : return NDR_ERR_SUCCESS;
23921 : }
23922 :
23923 0 : _PUBLIC_ void ndr_print_RPC_BIDI_DATA(struct ndr_print *ndr, const char *name, const struct RPC_BIDI_DATA *r)
23924 : {
23925 0 : ndr_print_struct(ndr, name, "RPC_BIDI_DATA");
23926 0 : if (r == NULL) { ndr_print_null(ndr); return; }
23927 0 : ndr->depth++;
23928 0 : ndr_print_uint32(ndr, "dwBidiType", r->dwBidiType);
23929 0 : ndr_print_set_switch_value(ndr, &r->u, r->dwBidiType);
23930 0 : ndr_print_RPC_BIDI_DATA_u(ndr, "u", &r->u);
23931 0 : ndr->depth--;
23932 : }
23933 :
23934 0 : static enum ndr_err_code ndr_push_RPC_BIDI_REQUEST_DATA(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct RPC_BIDI_REQUEST_DATA *r)
23935 : {
23936 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23937 0 : if (ndr_flags & NDR_SCALARS) {
23938 0 : NDR_CHECK(ndr_push_align(ndr, 5));
23939 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReqNumber));
23940 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pSchema));
23941 0 : NDR_CHECK(ndr_push_RPC_BIDI_DATA(ndr, NDR_SCALARS, &r->data));
23942 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
23943 : }
23944 0 : if (ndr_flags & NDR_BUFFERS) {
23945 0 : if (r->pSchema) {
23946 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pSchema, CH_UTF16)));
23947 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23948 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pSchema, CH_UTF16)));
23949 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pSchema, ndr_charset_length(r->pSchema, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23950 : }
23951 0 : NDR_CHECK(ndr_push_RPC_BIDI_DATA(ndr, NDR_BUFFERS, &r->data));
23952 : }
23953 0 : return NDR_ERR_SUCCESS;
23954 : }
23955 :
23956 0 : static enum ndr_err_code ndr_pull_RPC_BIDI_REQUEST_DATA(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct RPC_BIDI_REQUEST_DATA *r)
23957 : {
23958 0 : uint32_t _ptr_pSchema;
23959 0 : uint32_t size_pSchema_1 = 0;
23960 0 : uint32_t length_pSchema_1 = 0;
23961 0 : TALLOC_CTX *_mem_save_pSchema_0 = NULL;
23962 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23963 0 : if (ndr_flags & NDR_SCALARS) {
23964 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
23965 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReqNumber));
23966 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pSchema));
23967 0 : if (_ptr_pSchema) {
23968 0 : NDR_PULL_ALLOC(ndr, r->pSchema);
23969 : } else {
23970 0 : r->pSchema = NULL;
23971 : }
23972 0 : NDR_CHECK(ndr_pull_RPC_BIDI_DATA(ndr, NDR_SCALARS, &r->data));
23973 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
23974 : }
23975 0 : if (ndr_flags & NDR_BUFFERS) {
23976 0 : if (r->pSchema) {
23977 0 : _mem_save_pSchema_0 = NDR_PULL_GET_MEM_CTX(ndr);
23978 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pSchema, 0);
23979 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pSchema));
23980 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pSchema));
23981 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pSchema, &size_pSchema_1));
23982 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pSchema, &length_pSchema_1));
23983 0 : if (length_pSchema_1 > size_pSchema_1) {
23984 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pSchema_1, length_pSchema_1);
23985 : }
23986 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pSchema_1, sizeof(uint16_t)));
23987 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pSchema, length_pSchema_1, sizeof(uint16_t), CH_UTF16));
23988 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pSchema_0, 0);
23989 : }
23990 0 : NDR_CHECK(ndr_pull_RPC_BIDI_DATA(ndr, NDR_BUFFERS, &r->data));
23991 : }
23992 0 : return NDR_ERR_SUCCESS;
23993 : }
23994 :
23995 0 : _PUBLIC_ void ndr_print_RPC_BIDI_REQUEST_DATA(struct ndr_print *ndr, const char *name, const struct RPC_BIDI_REQUEST_DATA *r)
23996 : {
23997 0 : ndr_print_struct(ndr, name, "RPC_BIDI_REQUEST_DATA");
23998 0 : if (r == NULL) { ndr_print_null(ndr); return; }
23999 0 : ndr->depth++;
24000 0 : ndr_print_uint32(ndr, "dwReqNumber", r->dwReqNumber);
24001 0 : ndr_print_ptr(ndr, "pSchema", r->pSchema);
24002 0 : ndr->depth++;
24003 0 : if (r->pSchema) {
24004 0 : ndr_print_string(ndr, "pSchema", r->pSchema);
24005 : }
24006 0 : ndr->depth--;
24007 0 : ndr_print_RPC_BIDI_DATA(ndr, "data", &r->data);
24008 0 : ndr->depth--;
24009 : }
24010 :
24011 0 : _PUBLIC_ enum ndr_err_code ndr_push_RPC_BIDI_REQUEST_CONTAINER(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct RPC_BIDI_REQUEST_CONTAINER *r)
24012 : {
24013 0 : uint32_t cntr_aData_0;
24014 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
24015 0 : if (ndr_flags & NDR_SCALARS) {
24016 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->Count));
24017 0 : NDR_CHECK(ndr_push_align(ndr, 5));
24018 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
24019 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Flags));
24020 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Count));
24021 0 : for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
24022 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->aData[cntr_aData_0]));
24023 : }
24024 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
24025 : }
24026 0 : if (ndr_flags & NDR_BUFFERS) {
24027 0 : for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
24028 0 : if (r->aData[cntr_aData_0]) {
24029 0 : NDR_CHECK(ndr_push_RPC_BIDI_REQUEST_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->aData[cntr_aData_0]));
24030 : }
24031 : }
24032 : }
24033 0 : return NDR_ERR_SUCCESS;
24034 : }
24035 :
24036 0 : _PUBLIC_ enum ndr_err_code ndr_pull_RPC_BIDI_REQUEST_CONTAINER(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct RPC_BIDI_REQUEST_CONTAINER *r)
24037 : {
24038 0 : uint32_t _ptr_aData;
24039 0 : uint32_t size_aData_0 = 0;
24040 0 : uint32_t cntr_aData_0;
24041 0 : TALLOC_CTX *_mem_save_aData_0 = NULL;
24042 0 : TALLOC_CTX *_mem_save_aData_1 = NULL;
24043 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
24044 0 : if (ndr_flags & NDR_SCALARS) {
24045 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->aData));
24046 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
24047 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Version));
24048 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Flags));
24049 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Count));
24050 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->aData, &size_aData_0));
24051 0 : NDR_PULL_ALLOC_N(ndr, r->aData, size_aData_0);
24052 0 : _mem_save_aData_0 = NDR_PULL_GET_MEM_CTX(ndr);
24053 0 : NDR_PULL_SET_MEM_CTX(ndr, r->aData, 0);
24054 0 : for (cntr_aData_0 = 0; cntr_aData_0 < (size_aData_0); cntr_aData_0++) {
24055 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aData));
24056 0 : if (_ptr_aData) {
24057 0 : NDR_PULL_ALLOC(ndr, r->aData[cntr_aData_0]);
24058 : } else {
24059 0 : r->aData[cntr_aData_0] = NULL;
24060 : }
24061 : }
24062 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_0, 0);
24063 0 : if (r->aData) {
24064 0 : NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->aData, r->Count));
24065 : }
24066 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
24067 : }
24068 0 : if (ndr_flags & NDR_BUFFERS) {
24069 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->aData, &size_aData_0));
24070 0 : _mem_save_aData_0 = NDR_PULL_GET_MEM_CTX(ndr);
24071 0 : NDR_PULL_SET_MEM_CTX(ndr, r->aData, 0);
24072 0 : for (cntr_aData_0 = 0; cntr_aData_0 < (size_aData_0); cntr_aData_0++) {
24073 0 : if (r->aData[cntr_aData_0]) {
24074 0 : _mem_save_aData_1 = NDR_PULL_GET_MEM_CTX(ndr);
24075 0 : NDR_PULL_SET_MEM_CTX(ndr, r->aData[cntr_aData_0], 0);
24076 0 : NDR_CHECK(ndr_pull_RPC_BIDI_REQUEST_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->aData[cntr_aData_0]));
24077 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_1, 0);
24078 : }
24079 : }
24080 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_0, 0);
24081 0 : for (cntr_aData_0 = 0; cntr_aData_0 < (size_aData_0); cntr_aData_0++) {
24082 : }
24083 : }
24084 0 : return NDR_ERR_SUCCESS;
24085 : }
24086 :
24087 0 : static void ndr_print_flags_RPC_BIDI_REQUEST_CONTAINER(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct RPC_BIDI_REQUEST_CONTAINER *r)
24088 : {
24089 0 : ndr_print_RPC_BIDI_REQUEST_CONTAINER(ndr, name, r);
24090 0 : }
24091 :
24092 0 : _PUBLIC_ void ndr_print_RPC_BIDI_REQUEST_CONTAINER(struct ndr_print *ndr, const char *name, const struct RPC_BIDI_REQUEST_CONTAINER *r)
24093 : {
24094 0 : uint32_t cntr_aData_0;
24095 0 : ndr_print_struct(ndr, name, "RPC_BIDI_REQUEST_CONTAINER");
24096 0 : if (r == NULL) { ndr_print_null(ndr); return; }
24097 0 : ndr->depth++;
24098 0 : ndr_print_uint32(ndr, "Version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->Version);
24099 0 : ndr_print_uint32(ndr, "Flags", r->Flags);
24100 0 : ndr_print_uint32(ndr, "Count", r->Count);
24101 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "aData", (uint32_t)(r->Count));
24102 0 : ndr->depth++;
24103 0 : for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
24104 0 : ndr_print_ptr(ndr, "aData", r->aData[cntr_aData_0]);
24105 0 : ndr->depth++;
24106 0 : if (r->aData[cntr_aData_0]) {
24107 0 : ndr_print_RPC_BIDI_REQUEST_DATA(ndr, "aData", r->aData[cntr_aData_0]);
24108 : }
24109 0 : ndr->depth--;
24110 : }
24111 0 : ndr->depth--;
24112 0 : ndr->depth--;
24113 : }
24114 :
24115 0 : static enum ndr_err_code ndr_push_RPC_BIDI_RESPONSE_DATA(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct RPC_BIDI_RESPONSE_DATA *r)
24116 : {
24117 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
24118 0 : if (ndr_flags & NDR_SCALARS) {
24119 0 : NDR_CHECK(ndr_push_align(ndr, 5));
24120 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwResult));
24121 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReqNumber));
24122 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pSchema));
24123 0 : NDR_CHECK(ndr_push_RPC_BIDI_DATA(ndr, NDR_SCALARS, &r->data));
24124 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
24125 : }
24126 0 : if (ndr_flags & NDR_BUFFERS) {
24127 0 : if (r->pSchema) {
24128 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pSchema, CH_UTF16)));
24129 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24130 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pSchema, CH_UTF16)));
24131 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pSchema, ndr_charset_length(r->pSchema, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24132 : }
24133 0 : NDR_CHECK(ndr_push_RPC_BIDI_DATA(ndr, NDR_BUFFERS, &r->data));
24134 : }
24135 0 : return NDR_ERR_SUCCESS;
24136 : }
24137 :
24138 0 : static enum ndr_err_code ndr_pull_RPC_BIDI_RESPONSE_DATA(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct RPC_BIDI_RESPONSE_DATA *r)
24139 : {
24140 0 : uint32_t _ptr_pSchema;
24141 0 : uint32_t size_pSchema_1 = 0;
24142 0 : uint32_t length_pSchema_1 = 0;
24143 0 : TALLOC_CTX *_mem_save_pSchema_0 = NULL;
24144 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
24145 0 : if (ndr_flags & NDR_SCALARS) {
24146 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
24147 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwResult));
24148 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReqNumber));
24149 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pSchema));
24150 0 : if (_ptr_pSchema) {
24151 0 : NDR_PULL_ALLOC(ndr, r->pSchema);
24152 : } else {
24153 0 : r->pSchema = NULL;
24154 : }
24155 0 : NDR_CHECK(ndr_pull_RPC_BIDI_DATA(ndr, NDR_SCALARS, &r->data));
24156 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
24157 : }
24158 0 : if (ndr_flags & NDR_BUFFERS) {
24159 0 : if (r->pSchema) {
24160 0 : _mem_save_pSchema_0 = NDR_PULL_GET_MEM_CTX(ndr);
24161 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pSchema, 0);
24162 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pSchema));
24163 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pSchema));
24164 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pSchema, &size_pSchema_1));
24165 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pSchema, &length_pSchema_1));
24166 0 : if (length_pSchema_1 > size_pSchema_1) {
24167 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pSchema_1, length_pSchema_1);
24168 : }
24169 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pSchema_1, sizeof(uint16_t)));
24170 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pSchema, length_pSchema_1, sizeof(uint16_t), CH_UTF16));
24171 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pSchema_0, 0);
24172 : }
24173 0 : NDR_CHECK(ndr_pull_RPC_BIDI_DATA(ndr, NDR_BUFFERS, &r->data));
24174 : }
24175 0 : return NDR_ERR_SUCCESS;
24176 : }
24177 :
24178 0 : _PUBLIC_ void ndr_print_RPC_BIDI_RESPONSE_DATA(struct ndr_print *ndr, const char *name, const struct RPC_BIDI_RESPONSE_DATA *r)
24179 : {
24180 0 : ndr_print_struct(ndr, name, "RPC_BIDI_RESPONSE_DATA");
24181 0 : if (r == NULL) { ndr_print_null(ndr); return; }
24182 0 : ndr->depth++;
24183 0 : ndr_print_uint32(ndr, "dwResult", r->dwResult);
24184 0 : ndr_print_uint32(ndr, "dwReqNumber", r->dwReqNumber);
24185 0 : ndr_print_ptr(ndr, "pSchema", r->pSchema);
24186 0 : ndr->depth++;
24187 0 : if (r->pSchema) {
24188 0 : ndr_print_string(ndr, "pSchema", r->pSchema);
24189 : }
24190 0 : ndr->depth--;
24191 0 : ndr_print_RPC_BIDI_DATA(ndr, "data", &r->data);
24192 0 : ndr->depth--;
24193 : }
24194 :
24195 0 : _PUBLIC_ enum ndr_err_code ndr_push_RPC_BIDI_RESPONSE_CONTAINER(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct RPC_BIDI_RESPONSE_CONTAINER *r)
24196 : {
24197 0 : uint32_t cntr_aData_0;
24198 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
24199 0 : if (ndr_flags & NDR_SCALARS) {
24200 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->Count));
24201 0 : NDR_CHECK(ndr_push_align(ndr, 5));
24202 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
24203 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Flags));
24204 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Count));
24205 0 : for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
24206 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->aData[cntr_aData_0]));
24207 : }
24208 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
24209 : }
24210 0 : if (ndr_flags & NDR_BUFFERS) {
24211 0 : for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
24212 0 : if (r->aData[cntr_aData_0]) {
24213 0 : NDR_CHECK(ndr_push_RPC_BIDI_RESPONSE_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->aData[cntr_aData_0]));
24214 : }
24215 : }
24216 : }
24217 0 : return NDR_ERR_SUCCESS;
24218 : }
24219 :
24220 0 : _PUBLIC_ enum ndr_err_code ndr_pull_RPC_BIDI_RESPONSE_CONTAINER(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct RPC_BIDI_RESPONSE_CONTAINER *r)
24221 : {
24222 0 : uint32_t _ptr_aData;
24223 0 : uint32_t size_aData_0 = 0;
24224 0 : uint32_t cntr_aData_0;
24225 0 : TALLOC_CTX *_mem_save_aData_0 = NULL;
24226 0 : TALLOC_CTX *_mem_save_aData_1 = NULL;
24227 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
24228 0 : if (ndr_flags & NDR_SCALARS) {
24229 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->aData));
24230 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
24231 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Version));
24232 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Flags));
24233 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Count));
24234 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->aData, &size_aData_0));
24235 0 : NDR_PULL_ALLOC_N(ndr, r->aData, size_aData_0);
24236 0 : _mem_save_aData_0 = NDR_PULL_GET_MEM_CTX(ndr);
24237 0 : NDR_PULL_SET_MEM_CTX(ndr, r->aData, 0);
24238 0 : for (cntr_aData_0 = 0; cntr_aData_0 < (size_aData_0); cntr_aData_0++) {
24239 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aData));
24240 0 : if (_ptr_aData) {
24241 0 : NDR_PULL_ALLOC(ndr, r->aData[cntr_aData_0]);
24242 : } else {
24243 0 : r->aData[cntr_aData_0] = NULL;
24244 : }
24245 : }
24246 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_0, 0);
24247 0 : if (r->aData) {
24248 0 : NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->aData, r->Count));
24249 : }
24250 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
24251 : }
24252 0 : if (ndr_flags & NDR_BUFFERS) {
24253 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->aData, &size_aData_0));
24254 0 : _mem_save_aData_0 = NDR_PULL_GET_MEM_CTX(ndr);
24255 0 : NDR_PULL_SET_MEM_CTX(ndr, r->aData, 0);
24256 0 : for (cntr_aData_0 = 0; cntr_aData_0 < (size_aData_0); cntr_aData_0++) {
24257 0 : if (r->aData[cntr_aData_0]) {
24258 0 : _mem_save_aData_1 = NDR_PULL_GET_MEM_CTX(ndr);
24259 0 : NDR_PULL_SET_MEM_CTX(ndr, r->aData[cntr_aData_0], 0);
24260 0 : NDR_CHECK(ndr_pull_RPC_BIDI_RESPONSE_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->aData[cntr_aData_0]));
24261 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_1, 0);
24262 : }
24263 : }
24264 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_0, 0);
24265 0 : for (cntr_aData_0 = 0; cntr_aData_0 < (size_aData_0); cntr_aData_0++) {
24266 : }
24267 : }
24268 0 : return NDR_ERR_SUCCESS;
24269 : }
24270 :
24271 0 : static void ndr_print_flags_RPC_BIDI_RESPONSE_CONTAINER(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct RPC_BIDI_RESPONSE_CONTAINER *r)
24272 : {
24273 0 : ndr_print_RPC_BIDI_RESPONSE_CONTAINER(ndr, name, r);
24274 0 : }
24275 :
24276 0 : _PUBLIC_ void ndr_print_RPC_BIDI_RESPONSE_CONTAINER(struct ndr_print *ndr, const char *name, const struct RPC_BIDI_RESPONSE_CONTAINER *r)
24277 : {
24278 0 : uint32_t cntr_aData_0;
24279 0 : ndr_print_struct(ndr, name, "RPC_BIDI_RESPONSE_CONTAINER");
24280 0 : if (r == NULL) { ndr_print_null(ndr); return; }
24281 0 : ndr->depth++;
24282 0 : ndr_print_uint32(ndr, "Version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->Version);
24283 0 : ndr_print_uint32(ndr, "Flags", r->Flags);
24284 0 : ndr_print_uint32(ndr, "Count", r->Count);
24285 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "aData", (uint32_t)(r->Count));
24286 0 : ndr->depth++;
24287 0 : for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
24288 0 : ndr_print_ptr(ndr, "aData", r->aData[cntr_aData_0]);
24289 0 : ndr->depth++;
24290 0 : if (r->aData[cntr_aData_0]) {
24291 0 : ndr_print_RPC_BIDI_RESPONSE_DATA(ndr, "aData", r->aData[cntr_aData_0]);
24292 : }
24293 0 : ndr->depth--;
24294 : }
24295 0 : ndr->depth--;
24296 0 : ndr->depth--;
24297 : }
24298 :
24299 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_CorePrinterDriver *r)
24300 : {
24301 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
24302 0 : if (ndr_flags & NDR_SCALARS) {
24303 0 : NDR_CHECK(ndr_push_align(ndr, 8));
24304 0 : NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
24305 0 : NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
24306 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
24307 0 : NDR_CHECK(ndr_push_charset_to_null(ndr, NDR_SCALARS, r->szPackageID, 260, sizeof(uint16_t), CH_UTF16));
24308 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
24309 : }
24310 0 : if (ndr_flags & NDR_BUFFERS) {
24311 0 : }
24312 0 : return NDR_ERR_SUCCESS;
24313 : }
24314 :
24315 8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_CorePrinterDriver *r)
24316 : {
24317 8 : uint32_t size_szPackageID_0 = 0;
24318 8 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
24319 8 : if (ndr_flags & NDR_SCALARS) {
24320 8 : NDR_CHECK(ndr_pull_align(ndr, 8));
24321 8 : NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
24322 8 : NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
24323 8 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
24324 8 : size_szPackageID_0 = 260;
24325 8 : NDR_CHECK(ndr_pull_charset_to_null(ndr, NDR_SCALARS, &r->szPackageID, size_szPackageID_0, sizeof(uint16_t), CH_UTF16));
24326 8 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
24327 : }
24328 8 : if (ndr_flags & NDR_BUFFERS) {
24329 8 : }
24330 8 : return NDR_ERR_SUCCESS;
24331 : }
24332 :
24333 0 : static void ndr_print_flags_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_CorePrinterDriver *r)
24334 : {
24335 0 : ndr_print_spoolss_CorePrinterDriver(ndr, name, r);
24336 0 : }
24337 :
24338 8 : _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
24339 : {
24340 8 : ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
24341 8 : if (r == NULL) { ndr_print_null(ndr); return; }
24342 8 : ndr->depth++;
24343 8 : ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
24344 8 : ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
24345 8 : ndr_print_hyper(ndr, "driver_version", r->driver_version);
24346 8 : ndr_print_string(ndr, "szPackageID", r->szPackageID);
24347 8 : ndr->depth--;
24348 : }
24349 :
24350 0 : static enum ndr_err_code ndr_push_spoolss_EPrintPropertyType(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum spoolss_EPrintPropertyType r)
24351 : {
24352 0 : NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
24353 0 : return NDR_ERR_SUCCESS;
24354 : }
24355 :
24356 4 : static enum ndr_err_code ndr_pull_spoolss_EPrintPropertyType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum spoolss_EPrintPropertyType *r)
24357 : {
24358 4 : uint16_t v;
24359 4 : NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
24360 4 : *r = v;
24361 4 : return NDR_ERR_SUCCESS;
24362 : }
24363 :
24364 4 : _PUBLIC_ void ndr_print_spoolss_EPrintPropertyType(struct ndr_print *ndr, const char *name, enum spoolss_EPrintPropertyType r)
24365 : {
24366 4 : const char *val = NULL;
24367 :
24368 4 : switch (r) {
24369 4 : case kRpcPropertyTypeString: val = "kRpcPropertyTypeString"; break;
24370 0 : case kRpcPropertyTypeInt32: val = "kRpcPropertyTypeInt32"; break;
24371 0 : case kRpcPropertyTypeInt64: val = "kRpcPropertyTypeInt64"; break;
24372 0 : case kRpcPropertyTypeByte: val = "kRpcPropertyTypeByte"; break;
24373 0 : case kRpcPropertyTypeBuffer: val = "kRpcPropertyTypeBuffer"; break;
24374 : }
24375 4 : ndr_print_enum(ndr, name, "ENUM", val, r);
24376 4 : }
24377 :
24378 0 : static enum ndr_err_code ndr_push_propertyBlob(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct propertyBlob *r)
24379 : {
24380 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
24381 0 : if (ndr_flags & NDR_SCALARS) {
24382 0 : NDR_CHECK(ndr_push_align(ndr, 5));
24383 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbBuf));
24384 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pBuf));
24385 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
24386 : }
24387 0 : if (ndr_flags & NDR_BUFFERS) {
24388 0 : if (r->pBuf) {
24389 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->cbBuf));
24390 0 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pBuf, r->cbBuf));
24391 : }
24392 : }
24393 0 : return NDR_ERR_SUCCESS;
24394 : }
24395 :
24396 0 : static enum ndr_err_code ndr_pull_propertyBlob(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct propertyBlob *r)
24397 : {
24398 0 : uint32_t _ptr_pBuf;
24399 0 : uint32_t size_pBuf_1 = 0;
24400 0 : TALLOC_CTX *_mem_save_pBuf_0 = NULL;
24401 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
24402 0 : if (ndr_flags & NDR_SCALARS) {
24403 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
24404 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbBuf));
24405 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pBuf));
24406 0 : if (_ptr_pBuf) {
24407 0 : NDR_PULL_ALLOC(ndr, r->pBuf);
24408 : } else {
24409 0 : r->pBuf = NULL;
24410 : }
24411 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
24412 : }
24413 0 : if (ndr_flags & NDR_BUFFERS) {
24414 0 : if (r->pBuf) {
24415 0 : _mem_save_pBuf_0 = NDR_PULL_GET_MEM_CTX(ndr);
24416 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pBuf, 0);
24417 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pBuf));
24418 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->pBuf, &size_pBuf_1));
24419 0 : NDR_PULL_ALLOC_N(ndr, r->pBuf, size_pBuf_1);
24420 0 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pBuf, size_pBuf_1));
24421 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pBuf_0, 0);
24422 : }
24423 0 : if (r->pBuf) {
24424 0 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->pBuf, r->cbBuf));
24425 : }
24426 : }
24427 0 : return NDR_ERR_SUCCESS;
24428 : }
24429 :
24430 0 : _PUBLIC_ void ndr_print_propertyBlob(struct ndr_print *ndr, const char *name, const struct propertyBlob *r)
24431 : {
24432 0 : ndr_print_struct(ndr, name, "propertyBlob");
24433 0 : if (r == NULL) { ndr_print_null(ndr); return; }
24434 0 : ndr->depth++;
24435 0 : ndr_print_uint32(ndr, "cbBuf", r->cbBuf);
24436 0 : ndr_print_ptr(ndr, "pBuf", r->pBuf);
24437 0 : ndr->depth++;
24438 0 : if (r->pBuf) {
24439 0 : ndr_print_array_uint8(ndr, "pBuf", r->pBuf, r->cbBuf);
24440 : }
24441 0 : ndr->depth--;
24442 0 : ndr->depth--;
24443 : }
24444 :
24445 0 : static enum ndr_err_code ndr_push_spoolss_PrintPropertyValueUnion(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_PrintPropertyValueUnion *r)
24446 : {
24447 0 : uint32_t level;
24448 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
24449 0 : if (ndr_flags & NDR_SCALARS) {
24450 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
24451 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
24452 0 : NDR_CHECK(ndr_push_union_align(ndr, 8));
24453 0 : NDR_CHECK(ndr_push_spoolss_EPrintPropertyType(ndr, NDR_SCALARS, level));
24454 : /* ms_union is always aligned to the largest union arm*/
24455 0 : NDR_CHECK(ndr_push_align(ndr, 8));
24456 0 : switch (level) {
24457 0 : case kRpcPropertyTypeString: {
24458 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->propertyString));
24459 0 : break; }
24460 :
24461 0 : case kRpcPropertyTypeInt32: {
24462 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->propertyInt32));
24463 0 : break; }
24464 :
24465 0 : case kRpcPropertyTypeInt64: {
24466 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->propertyInt64));
24467 0 : break; }
24468 :
24469 0 : case kRpcPropertyTypeByte: {
24470 0 : NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->propertyByte));
24471 0 : break; }
24472 :
24473 0 : case kRpcPropertyTypeBuffer: {
24474 0 : NDR_CHECK(ndr_push_propertyBlob(ndr, NDR_SCALARS, &r->propertyBlob));
24475 0 : break; }
24476 :
24477 0 : default:
24478 0 : return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
24479 : }
24480 : }
24481 0 : if (ndr_flags & NDR_BUFFERS) {
24482 0 : if (!(ndr_flags & NDR_SCALARS)) {
24483 : /* We didn't get it above, and the token is not needed after this. */
24484 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
24485 : }
24486 0 : switch (level) {
24487 0 : case kRpcPropertyTypeString:
24488 0 : if (r->propertyString) {
24489 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->propertyString, CH_UTF16)));
24490 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24491 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->propertyString, CH_UTF16)));
24492 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->propertyString, ndr_charset_length(r->propertyString, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24493 : }
24494 0 : break;
24495 :
24496 0 : case kRpcPropertyTypeInt32:
24497 0 : break;
24498 :
24499 0 : case kRpcPropertyTypeInt64:
24500 0 : break;
24501 :
24502 0 : case kRpcPropertyTypeByte:
24503 0 : break;
24504 :
24505 0 : case kRpcPropertyTypeBuffer:
24506 0 : NDR_CHECK(ndr_push_propertyBlob(ndr, NDR_BUFFERS, &r->propertyBlob));
24507 0 : break;
24508 :
24509 0 : default:
24510 0 : return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
24511 : }
24512 : }
24513 0 : return NDR_ERR_SUCCESS;
24514 : }
24515 :
24516 8 : static enum ndr_err_code ndr_pull_spoolss_PrintPropertyValueUnion(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_PrintPropertyValueUnion *r)
24517 : {
24518 8 : uint32_t level;
24519 8 : uint16_t _level;
24520 8 : TALLOC_CTX *_mem_save_propertyString_0 = NULL;
24521 8 : uint32_t _ptr_propertyString;
24522 8 : uint32_t size_propertyString_1 = 0;
24523 8 : uint32_t length_propertyString_1 = 0;
24524 8 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
24525 8 : if (ndr_flags & NDR_SCALARS) {
24526 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
24527 4 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
24528 4 : NDR_CHECK(ndr_pull_union_align(ndr, 8));
24529 4 : NDR_CHECK(ndr_pull_uint1632(ndr, NDR_SCALARS, &_level));
24530 4 : if (_level != level) {
24531 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu16" for r at %s", (uint16_t)_level, __location__);
24532 : }
24533 : /* ms_union is always aligned to the largest union arm*/
24534 4 : NDR_CHECK(ndr_pull_align(ndr, 8));
24535 4 : switch (level) {
24536 4 : case kRpcPropertyTypeString: {
24537 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_propertyString));
24538 4 : if (_ptr_propertyString) {
24539 4 : NDR_PULL_ALLOC(ndr, r->propertyString);
24540 : } else {
24541 0 : r->propertyString = NULL;
24542 : }
24543 0 : break; }
24544 :
24545 0 : case kRpcPropertyTypeInt32: {
24546 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->propertyInt32));
24547 0 : break; }
24548 :
24549 0 : case kRpcPropertyTypeInt64: {
24550 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->propertyInt64));
24551 0 : break; }
24552 :
24553 0 : case kRpcPropertyTypeByte: {
24554 0 : NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->propertyByte));
24555 0 : break; }
24556 :
24557 0 : case kRpcPropertyTypeBuffer: {
24558 0 : NDR_CHECK(ndr_pull_propertyBlob(ndr, NDR_SCALARS, &r->propertyBlob));
24559 0 : break; }
24560 :
24561 0 : default:
24562 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
24563 : }
24564 : }
24565 8 : if (ndr_flags & NDR_BUFFERS) {
24566 4 : if (!(ndr_flags & NDR_SCALARS)) {
24567 : /* We didn't get it above, and the token is not needed after this. */
24568 4 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
24569 : }
24570 4 : switch (level) {
24571 4 : case kRpcPropertyTypeString:
24572 4 : if (r->propertyString) {
24573 4 : _mem_save_propertyString_0 = NDR_PULL_GET_MEM_CTX(ndr);
24574 4 : NDR_PULL_SET_MEM_CTX(ndr, r->propertyString, 0);
24575 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->propertyString));
24576 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->propertyString));
24577 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->propertyString, &size_propertyString_1));
24578 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->propertyString, &length_propertyString_1));
24579 4 : if (length_propertyString_1 > size_propertyString_1) {
24580 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_propertyString_1, length_propertyString_1);
24581 : }
24582 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_propertyString_1, sizeof(uint16_t)));
24583 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->propertyString, length_propertyString_1, sizeof(uint16_t), CH_UTF16));
24584 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_propertyString_0, 0);
24585 : }
24586 0 : break;
24587 :
24588 0 : case kRpcPropertyTypeInt32:
24589 0 : break;
24590 :
24591 0 : case kRpcPropertyTypeInt64:
24592 0 : break;
24593 :
24594 0 : case kRpcPropertyTypeByte:
24595 0 : break;
24596 :
24597 0 : case kRpcPropertyTypeBuffer:
24598 0 : NDR_CHECK(ndr_pull_propertyBlob(ndr, NDR_BUFFERS, &r->propertyBlob));
24599 0 : break;
24600 :
24601 0 : default:
24602 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
24603 : }
24604 : }
24605 0 : return NDR_ERR_SUCCESS;
24606 : }
24607 :
24608 4 : _PUBLIC_ void ndr_print_spoolss_PrintPropertyValueUnion(struct ndr_print *ndr, const char *name, const union spoolss_PrintPropertyValueUnion *r)
24609 : {
24610 4 : uint32_t level;
24611 4 : level = ndr_print_steal_switch_value(ndr, r);
24612 4 : ndr_print_union(ndr, name, level, "spoolss_PrintPropertyValueUnion");
24613 4 : switch (level) {
24614 4 : case kRpcPropertyTypeString:
24615 4 : ndr_print_ptr(ndr, "propertyString", r->propertyString);
24616 4 : ndr->depth++;
24617 4 : if (r->propertyString) {
24618 4 : ndr_print_string(ndr, "propertyString", r->propertyString);
24619 : }
24620 4 : ndr->depth--;
24621 4 : break;
24622 :
24623 0 : case kRpcPropertyTypeInt32:
24624 0 : ndr_print_uint32(ndr, "propertyInt32", r->propertyInt32);
24625 0 : break;
24626 :
24627 0 : case kRpcPropertyTypeInt64:
24628 0 : ndr_print_hyper(ndr, "propertyInt64", r->propertyInt64);
24629 0 : break;
24630 :
24631 0 : case kRpcPropertyTypeByte:
24632 0 : ndr_print_uint8(ndr, "propertyByte", r->propertyByte);
24633 0 : break;
24634 :
24635 0 : case kRpcPropertyTypeBuffer:
24636 0 : ndr_print_propertyBlob(ndr, "propertyBlob", &r->propertyBlob);
24637 0 : break;
24638 :
24639 0 : default:
24640 0 : ndr_print_bad_level(ndr, name, level);
24641 : }
24642 4 : }
24643 :
24644 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintPropertyValue(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrintPropertyValue *r)
24645 : {
24646 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
24647 0 : if (ndr_flags & NDR_SCALARS) {
24648 0 : NDR_CHECK(ndr_push_align(ndr, 8));
24649 0 : NDR_CHECK(ndr_push_spoolss_EPrintPropertyType(ndr, NDR_SCALARS, r->ePropertyType));
24650 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->value, r->ePropertyType));
24651 0 : NDR_CHECK(ndr_push_spoolss_PrintPropertyValueUnion(ndr, NDR_SCALARS, &r->value));
24652 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
24653 : }
24654 0 : if (ndr_flags & NDR_BUFFERS) {
24655 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->value, r->ePropertyType));
24656 0 : NDR_CHECK(ndr_push_spoolss_PrintPropertyValueUnion(ndr, NDR_BUFFERS, &r->value));
24657 : }
24658 0 : return NDR_ERR_SUCCESS;
24659 : }
24660 :
24661 8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintPropertyValue(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrintPropertyValue *r)
24662 : {
24663 8 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
24664 8 : if (ndr_flags & NDR_SCALARS) {
24665 4 : NDR_CHECK(ndr_pull_align(ndr, 8));
24666 8 : NDR_CHECK(ndr_pull_spoolss_EPrintPropertyType(ndr, NDR_SCALARS, &r->ePropertyType));
24667 4 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->value, r->ePropertyType));
24668 4 : NDR_CHECK(ndr_pull_spoolss_PrintPropertyValueUnion(ndr, NDR_SCALARS, &r->value));
24669 4 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
24670 : }
24671 8 : if (ndr_flags & NDR_BUFFERS) {
24672 4 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->value, r->ePropertyType));
24673 4 : NDR_CHECK(ndr_pull_spoolss_PrintPropertyValueUnion(ndr, NDR_BUFFERS, &r->value));
24674 : }
24675 0 : return NDR_ERR_SUCCESS;
24676 : }
24677 :
24678 0 : static void ndr_print_flags_spoolss_PrintPropertyValue(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrintPropertyValue *r)
24679 : {
24680 0 : ndr_print_spoolss_PrintPropertyValue(ndr, name, r);
24681 0 : }
24682 :
24683 4 : _PUBLIC_ void ndr_print_spoolss_PrintPropertyValue(struct ndr_print *ndr, const char *name, const struct spoolss_PrintPropertyValue *r)
24684 : {
24685 4 : ndr_print_struct(ndr, name, "spoolss_PrintPropertyValue");
24686 4 : if (r == NULL) { ndr_print_null(ndr); return; }
24687 4 : ndr->depth++;
24688 4 : ndr_print_spoolss_EPrintPropertyType(ndr, "ePropertyType", r->ePropertyType);
24689 4 : ndr_print_set_switch_value(ndr, &r->value, r->ePropertyType);
24690 4 : ndr_print_spoolss_PrintPropertyValueUnion(ndr, "value", &r->value);
24691 4 : ndr->depth--;
24692 : }
24693 :
24694 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNamedProperty(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_PrintNamedProperty *r)
24695 : {
24696 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
24697 0 : if (ndr_flags & NDR_SCALARS) {
24698 0 : NDR_CHECK(ndr_push_align(ndr, 8));
24699 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->propertyName));
24700 0 : NDR_CHECK(ndr_push_spoolss_PrintPropertyValue(ndr, NDR_SCALARS, &r->propertyValue));
24701 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
24702 : }
24703 0 : if (ndr_flags & NDR_BUFFERS) {
24704 0 : if (r->propertyName) {
24705 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->propertyName, CH_UTF16)));
24706 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24707 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->propertyName, CH_UTF16)));
24708 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->propertyName, ndr_charset_length(r->propertyName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24709 : }
24710 0 : NDR_CHECK(ndr_push_spoolss_PrintPropertyValue(ndr, NDR_BUFFERS, &r->propertyValue));
24711 : }
24712 0 : return NDR_ERR_SUCCESS;
24713 : }
24714 :
24715 4 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNamedProperty(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_PrintNamedProperty *r)
24716 : {
24717 4 : uint32_t _ptr_propertyName;
24718 4 : uint32_t size_propertyName_1 = 0;
24719 4 : uint32_t length_propertyName_1 = 0;
24720 4 : TALLOC_CTX *_mem_save_propertyName_0 = NULL;
24721 4 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
24722 4 : if (ndr_flags & NDR_SCALARS) {
24723 4 : NDR_CHECK(ndr_pull_align(ndr, 8));
24724 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_propertyName));
24725 4 : if (_ptr_propertyName) {
24726 4 : NDR_PULL_ALLOC(ndr, r->propertyName);
24727 : } else {
24728 0 : r->propertyName = NULL;
24729 : }
24730 4 : NDR_CHECK(ndr_pull_spoolss_PrintPropertyValue(ndr, NDR_SCALARS, &r->propertyValue));
24731 4 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
24732 : }
24733 4 : if (ndr_flags & NDR_BUFFERS) {
24734 4 : if (r->propertyName) {
24735 4 : _mem_save_propertyName_0 = NDR_PULL_GET_MEM_CTX(ndr);
24736 4 : NDR_PULL_SET_MEM_CTX(ndr, r->propertyName, 0);
24737 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->propertyName));
24738 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->propertyName));
24739 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->propertyName, &size_propertyName_1));
24740 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->propertyName, &length_propertyName_1));
24741 4 : if (length_propertyName_1 > size_propertyName_1) {
24742 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_propertyName_1, length_propertyName_1);
24743 : }
24744 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_propertyName_1, sizeof(uint16_t)));
24745 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->propertyName, length_propertyName_1, sizeof(uint16_t), CH_UTF16));
24746 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_propertyName_0, 0);
24747 : }
24748 4 : NDR_CHECK(ndr_pull_spoolss_PrintPropertyValue(ndr, NDR_BUFFERS, &r->propertyValue));
24749 : }
24750 0 : return NDR_ERR_SUCCESS;
24751 : }
24752 :
24753 0 : static void ndr_print_flags_spoolss_PrintNamedProperty(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_PrintNamedProperty *r)
24754 : {
24755 0 : ndr_print_spoolss_PrintNamedProperty(ndr, name, r);
24756 0 : }
24757 :
24758 4 : _PUBLIC_ void ndr_print_spoolss_PrintNamedProperty(struct ndr_print *ndr, const char *name, const struct spoolss_PrintNamedProperty *r)
24759 : {
24760 4 : ndr_print_struct(ndr, name, "spoolss_PrintNamedProperty");
24761 4 : if (r == NULL) { ndr_print_null(ndr); return; }
24762 4 : ndr->depth++;
24763 4 : ndr_print_ptr(ndr, "propertyName", r->propertyName);
24764 4 : ndr->depth++;
24765 4 : if (r->propertyName) {
24766 4 : ndr_print_string(ndr, "propertyName", r->propertyName);
24767 : }
24768 4 : ndr->depth--;
24769 4 : ndr_print_spoolss_PrintPropertyValue(ndr, "propertyValue", &r->propertyValue);
24770 4 : ndr->depth--;
24771 : }
24772 :
24773 0 : static enum ndr_err_code ndr_push_EBranchOfficeJobEventType(struct ndr_push *ndr, ndr_flags_type ndr_flags, enum EBranchOfficeJobEventType r)
24774 : {
24775 0 : NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
24776 0 : return NDR_ERR_SUCCESS;
24777 : }
24778 :
24779 0 : static enum ndr_err_code ndr_pull_EBranchOfficeJobEventType(struct ndr_pull *ndr, ndr_flags_type ndr_flags, enum EBranchOfficeJobEventType *r)
24780 : {
24781 0 : uint16_t v;
24782 0 : NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
24783 0 : *r = v;
24784 0 : return NDR_ERR_SUCCESS;
24785 : }
24786 :
24787 0 : _PUBLIC_ void ndr_print_EBranchOfficeJobEventType(struct ndr_print *ndr, const char *name, enum EBranchOfficeJobEventType r)
24788 : {
24789 0 : const char *val = NULL;
24790 :
24791 0 : switch (r) {
24792 0 : case kInvalidJobState: val = "kInvalidJobState"; break;
24793 0 : case kLogJobPrinted: val = "kLogJobPrinted"; break;
24794 0 : case kLogJobRendered: val = "kLogJobRendered"; break;
24795 0 : case kLogJobError: val = "kLogJobError"; break;
24796 0 : case kLogJobPipelineError: val = "kLogJobPipelineError"; break;
24797 0 : case kLogOfflineFileFull: val = "kLogOfflineFileFull"; break;
24798 : }
24799 0 : ndr_print_enum(ndr, name, "ENUM", val, r);
24800 0 : }
24801 :
24802 0 : static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobDataPrinted(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_BranchOfficeJobDataPrinted *r)
24803 : {
24804 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
24805 0 : if (ndr_flags & NDR_SCALARS) {
24806 0 : NDR_CHECK(ndr_push_align(ndr, 8));
24807 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Status));
24808 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pDocumentName));
24809 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pUserName));
24810 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pMachineName));
24811 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pPrinterName));
24812 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pPortName));
24813 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->Size));
24814 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->TotalPages));
24815 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
24816 : }
24817 0 : if (ndr_flags & NDR_BUFFERS) {
24818 0 : if (r->pDocumentName) {
24819 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
24820 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24821 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
24822 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pDocumentName, ndr_charset_length(r->pDocumentName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24823 : }
24824 0 : if (r->pUserName) {
24825 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pUserName, CH_UTF16)));
24826 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24827 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pUserName, CH_UTF16)));
24828 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pUserName, ndr_charset_length(r->pUserName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24829 : }
24830 0 : if (r->pMachineName) {
24831 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
24832 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24833 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
24834 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pMachineName, ndr_charset_length(r->pMachineName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24835 : }
24836 0 : if (r->pPrinterName) {
24837 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
24838 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24839 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
24840 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pPrinterName, ndr_charset_length(r->pPrinterName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24841 : }
24842 0 : if (r->pPortName) {
24843 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPortName, CH_UTF16)));
24844 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24845 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPortName, CH_UTF16)));
24846 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pPortName, ndr_charset_length(r->pPortName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24847 : }
24848 : }
24849 0 : return NDR_ERR_SUCCESS;
24850 : }
24851 :
24852 0 : static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobDataPrinted(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_BranchOfficeJobDataPrinted *r)
24853 : {
24854 0 : uint32_t _ptr_pDocumentName;
24855 0 : uint32_t size_pDocumentName_1 = 0;
24856 0 : uint32_t length_pDocumentName_1 = 0;
24857 0 : TALLOC_CTX *_mem_save_pDocumentName_0 = NULL;
24858 0 : uint32_t _ptr_pUserName;
24859 0 : uint32_t size_pUserName_1 = 0;
24860 0 : uint32_t length_pUserName_1 = 0;
24861 0 : TALLOC_CTX *_mem_save_pUserName_0 = NULL;
24862 0 : uint32_t _ptr_pMachineName;
24863 0 : uint32_t size_pMachineName_1 = 0;
24864 0 : uint32_t length_pMachineName_1 = 0;
24865 0 : TALLOC_CTX *_mem_save_pMachineName_0 = NULL;
24866 0 : uint32_t _ptr_pPrinterName;
24867 0 : uint32_t size_pPrinterName_1 = 0;
24868 0 : uint32_t length_pPrinterName_1 = 0;
24869 0 : TALLOC_CTX *_mem_save_pPrinterName_0 = NULL;
24870 0 : uint32_t _ptr_pPortName;
24871 0 : uint32_t size_pPortName_1 = 0;
24872 0 : uint32_t length_pPortName_1 = 0;
24873 0 : TALLOC_CTX *_mem_save_pPortName_0 = NULL;
24874 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
24875 0 : if (ndr_flags & NDR_SCALARS) {
24876 0 : NDR_CHECK(ndr_pull_align(ndr, 8));
24877 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Status));
24878 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pDocumentName));
24879 0 : if (_ptr_pDocumentName) {
24880 0 : NDR_PULL_ALLOC(ndr, r->pDocumentName);
24881 : } else {
24882 0 : r->pDocumentName = NULL;
24883 : }
24884 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pUserName));
24885 0 : if (_ptr_pUserName) {
24886 0 : NDR_PULL_ALLOC(ndr, r->pUserName);
24887 : } else {
24888 0 : r->pUserName = NULL;
24889 : }
24890 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pMachineName));
24891 0 : if (_ptr_pMachineName) {
24892 0 : NDR_PULL_ALLOC(ndr, r->pMachineName);
24893 : } else {
24894 0 : r->pMachineName = NULL;
24895 : }
24896 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pPrinterName));
24897 0 : if (_ptr_pPrinterName) {
24898 0 : NDR_PULL_ALLOC(ndr, r->pPrinterName);
24899 : } else {
24900 0 : r->pPrinterName = NULL;
24901 : }
24902 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pPortName));
24903 0 : if (_ptr_pPortName) {
24904 0 : NDR_PULL_ALLOC(ndr, r->pPortName);
24905 : } else {
24906 0 : r->pPortName = NULL;
24907 : }
24908 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->Size));
24909 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->TotalPages));
24910 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
24911 : }
24912 0 : if (ndr_flags & NDR_BUFFERS) {
24913 0 : if (r->pDocumentName) {
24914 0 : _mem_save_pDocumentName_0 = NDR_PULL_GET_MEM_CTX(ndr);
24915 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pDocumentName, 0);
24916 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pDocumentName));
24917 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pDocumentName));
24918 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pDocumentName, &size_pDocumentName_1));
24919 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pDocumentName, &length_pDocumentName_1));
24920 0 : if (length_pDocumentName_1 > size_pDocumentName_1) {
24921 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pDocumentName_1, length_pDocumentName_1);
24922 : }
24923 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pDocumentName_1, sizeof(uint16_t)));
24924 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pDocumentName, length_pDocumentName_1, sizeof(uint16_t), CH_UTF16));
24925 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pDocumentName_0, 0);
24926 : }
24927 0 : if (r->pUserName) {
24928 0 : _mem_save_pUserName_0 = NDR_PULL_GET_MEM_CTX(ndr);
24929 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pUserName, 0);
24930 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pUserName));
24931 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pUserName));
24932 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pUserName, &size_pUserName_1));
24933 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pUserName, &length_pUserName_1));
24934 0 : if (length_pUserName_1 > size_pUserName_1) {
24935 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pUserName_1, length_pUserName_1);
24936 : }
24937 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pUserName_1, sizeof(uint16_t)));
24938 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pUserName, length_pUserName_1, sizeof(uint16_t), CH_UTF16));
24939 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pUserName_0, 0);
24940 : }
24941 0 : if (r->pMachineName) {
24942 0 : _mem_save_pMachineName_0 = NDR_PULL_GET_MEM_CTX(ndr);
24943 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pMachineName, 0);
24944 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pMachineName));
24945 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pMachineName));
24946 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pMachineName, &size_pMachineName_1));
24947 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pMachineName, &length_pMachineName_1));
24948 0 : if (length_pMachineName_1 > size_pMachineName_1) {
24949 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pMachineName_1, length_pMachineName_1);
24950 : }
24951 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pMachineName_1, sizeof(uint16_t)));
24952 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pMachineName, length_pMachineName_1, sizeof(uint16_t), CH_UTF16));
24953 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pMachineName_0, 0);
24954 : }
24955 0 : if (r->pPrinterName) {
24956 0 : _mem_save_pPrinterName_0 = NDR_PULL_GET_MEM_CTX(ndr);
24957 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pPrinterName, 0);
24958 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pPrinterName));
24959 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pPrinterName));
24960 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pPrinterName, &size_pPrinterName_1));
24961 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pPrinterName, &length_pPrinterName_1));
24962 0 : if (length_pPrinterName_1 > size_pPrinterName_1) {
24963 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pPrinterName_1, length_pPrinterName_1);
24964 : }
24965 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pPrinterName_1, sizeof(uint16_t)));
24966 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pPrinterName, length_pPrinterName_1, sizeof(uint16_t), CH_UTF16));
24967 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pPrinterName_0, 0);
24968 : }
24969 0 : if (r->pPortName) {
24970 0 : _mem_save_pPortName_0 = NDR_PULL_GET_MEM_CTX(ndr);
24971 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pPortName, 0);
24972 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pPortName));
24973 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pPortName));
24974 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pPortName, &size_pPortName_1));
24975 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pPortName, &length_pPortName_1));
24976 0 : if (length_pPortName_1 > size_pPortName_1) {
24977 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pPortName_1, length_pPortName_1);
24978 : }
24979 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pPortName_1, sizeof(uint16_t)));
24980 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pPortName, length_pPortName_1, sizeof(uint16_t), CH_UTF16));
24981 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pPortName_0, 0);
24982 : }
24983 : }
24984 0 : return NDR_ERR_SUCCESS;
24985 : }
24986 :
24987 0 : _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobDataPrinted(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobDataPrinted *r)
24988 : {
24989 0 : ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobDataPrinted");
24990 0 : if (r == NULL) { ndr_print_null(ndr); return; }
24991 0 : ndr->depth++;
24992 0 : ndr_print_uint32(ndr, "Status", r->Status);
24993 0 : ndr_print_ptr(ndr, "pDocumentName", r->pDocumentName);
24994 0 : ndr->depth++;
24995 0 : if (r->pDocumentName) {
24996 0 : ndr_print_string(ndr, "pDocumentName", r->pDocumentName);
24997 : }
24998 0 : ndr->depth--;
24999 0 : ndr_print_ptr(ndr, "pUserName", r->pUserName);
25000 0 : ndr->depth++;
25001 0 : if (r->pUserName) {
25002 0 : ndr_print_string(ndr, "pUserName", r->pUserName);
25003 : }
25004 0 : ndr->depth--;
25005 0 : ndr_print_ptr(ndr, "pMachineName", r->pMachineName);
25006 0 : ndr->depth++;
25007 0 : if (r->pMachineName) {
25008 0 : ndr_print_string(ndr, "pMachineName", r->pMachineName);
25009 : }
25010 0 : ndr->depth--;
25011 0 : ndr_print_ptr(ndr, "pPrinterName", r->pPrinterName);
25012 0 : ndr->depth++;
25013 0 : if (r->pPrinterName) {
25014 0 : ndr_print_string(ndr, "pPrinterName", r->pPrinterName);
25015 : }
25016 0 : ndr->depth--;
25017 0 : ndr_print_ptr(ndr, "pPortName", r->pPortName);
25018 0 : ndr->depth++;
25019 0 : if (r->pPortName) {
25020 0 : ndr_print_string(ndr, "pPortName", r->pPortName);
25021 : }
25022 0 : ndr->depth--;
25023 0 : ndr_print_hyper(ndr, "Size", r->Size);
25024 0 : ndr_print_uint32(ndr, "TotalPages", r->TotalPages);
25025 0 : ndr->depth--;
25026 : }
25027 :
25028 0 : static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobDataRendered(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_BranchOfficeJobDataRendered *r)
25029 : {
25030 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
25031 0 : if (ndr_flags & NDR_SCALARS) {
25032 0 : NDR_CHECK(ndr_push_align(ndr, 8));
25033 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->Size));
25034 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ICMMethod));
25035 0 : NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->Color));
25036 0 : NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->PrintQuality));
25037 0 : NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->YResolution));
25038 0 : NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->Copies));
25039 0 : NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->TTOption));
25040 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
25041 : }
25042 0 : if (ndr_flags & NDR_BUFFERS) {
25043 0 : }
25044 0 : return NDR_ERR_SUCCESS;
25045 : }
25046 :
25047 0 : static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobDataRendered(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_BranchOfficeJobDataRendered *r)
25048 : {
25049 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
25050 0 : if (ndr_flags & NDR_SCALARS) {
25051 0 : NDR_CHECK(ndr_pull_align(ndr, 8));
25052 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->Size));
25053 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ICMMethod));
25054 0 : NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->Color));
25055 0 : NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->PrintQuality));
25056 0 : NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->YResolution));
25057 0 : NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->Copies));
25058 0 : NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->TTOption));
25059 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
25060 : }
25061 0 : if (ndr_flags & NDR_BUFFERS) {
25062 0 : }
25063 0 : return NDR_ERR_SUCCESS;
25064 : }
25065 :
25066 0 : _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobDataRendered(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobDataRendered *r)
25067 : {
25068 0 : ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobDataRendered");
25069 0 : if (r == NULL) { ndr_print_null(ndr); return; }
25070 0 : ndr->depth++;
25071 0 : ndr_print_hyper(ndr, "Size", r->Size);
25072 0 : ndr_print_uint32(ndr, "ICMMethod", r->ICMMethod);
25073 0 : ndr_print_int16(ndr, "Color", r->Color);
25074 0 : ndr_print_int16(ndr, "PrintQuality", r->PrintQuality);
25075 0 : ndr_print_int16(ndr, "YResolution", r->YResolution);
25076 0 : ndr_print_int16(ndr, "Copies", r->Copies);
25077 0 : ndr_print_int16(ndr, "TTOption", r->TTOption);
25078 0 : ndr->depth--;
25079 : }
25080 :
25081 0 : static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobDataError(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_BranchOfficeJobDataError *r)
25082 : {
25083 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
25084 0 : if (ndr_flags & NDR_SCALARS) {
25085 0 : NDR_CHECK(ndr_push_align(ndr, 8));
25086 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->LastError));
25087 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pDocumentName));
25088 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pUserName));
25089 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pPrinterName));
25090 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pDataType));
25091 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->TotalSize));
25092 0 : NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->PrintedSize));
25093 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->TotalPages));
25094 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->PrintedPages));
25095 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pMachineName));
25096 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pJobError));
25097 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pErrorDescription));
25098 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
25099 : }
25100 0 : if (ndr_flags & NDR_BUFFERS) {
25101 0 : if (r->pDocumentName) {
25102 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
25103 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25104 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
25105 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pDocumentName, ndr_charset_length(r->pDocumentName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25106 : }
25107 0 : if (r->pUserName) {
25108 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pUserName, CH_UTF16)));
25109 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25110 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pUserName, CH_UTF16)));
25111 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pUserName, ndr_charset_length(r->pUserName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25112 : }
25113 0 : if (r->pPrinterName) {
25114 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
25115 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25116 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
25117 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pPrinterName, ndr_charset_length(r->pPrinterName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25118 : }
25119 0 : if (r->pDataType) {
25120 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDataType, CH_UTF16)));
25121 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25122 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDataType, CH_UTF16)));
25123 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pDataType, ndr_charset_length(r->pDataType, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25124 : }
25125 0 : if (r->pMachineName) {
25126 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
25127 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25128 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
25129 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pMachineName, ndr_charset_length(r->pMachineName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25130 : }
25131 0 : if (r->pJobError) {
25132 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pJobError, CH_UTF16)));
25133 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25134 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pJobError, CH_UTF16)));
25135 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pJobError, ndr_charset_length(r->pJobError, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25136 : }
25137 0 : if (r->pErrorDescription) {
25138 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pErrorDescription, CH_UTF16)));
25139 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25140 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pErrorDescription, CH_UTF16)));
25141 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pErrorDescription, ndr_charset_length(r->pErrorDescription, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25142 : }
25143 : }
25144 0 : return NDR_ERR_SUCCESS;
25145 : }
25146 :
25147 0 : static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobDataError(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_BranchOfficeJobDataError *r)
25148 : {
25149 0 : uint32_t _ptr_pDocumentName;
25150 0 : uint32_t size_pDocumentName_1 = 0;
25151 0 : uint32_t length_pDocumentName_1 = 0;
25152 0 : TALLOC_CTX *_mem_save_pDocumentName_0 = NULL;
25153 0 : uint32_t _ptr_pUserName;
25154 0 : uint32_t size_pUserName_1 = 0;
25155 0 : uint32_t length_pUserName_1 = 0;
25156 0 : TALLOC_CTX *_mem_save_pUserName_0 = NULL;
25157 0 : uint32_t _ptr_pPrinterName;
25158 0 : uint32_t size_pPrinterName_1 = 0;
25159 0 : uint32_t length_pPrinterName_1 = 0;
25160 0 : TALLOC_CTX *_mem_save_pPrinterName_0 = NULL;
25161 0 : uint32_t _ptr_pDataType;
25162 0 : uint32_t size_pDataType_1 = 0;
25163 0 : uint32_t length_pDataType_1 = 0;
25164 0 : TALLOC_CTX *_mem_save_pDataType_0 = NULL;
25165 0 : uint32_t _ptr_pMachineName;
25166 0 : uint32_t size_pMachineName_1 = 0;
25167 0 : uint32_t length_pMachineName_1 = 0;
25168 0 : TALLOC_CTX *_mem_save_pMachineName_0 = NULL;
25169 0 : uint32_t _ptr_pJobError;
25170 0 : uint32_t size_pJobError_1 = 0;
25171 0 : uint32_t length_pJobError_1 = 0;
25172 0 : TALLOC_CTX *_mem_save_pJobError_0 = NULL;
25173 0 : uint32_t _ptr_pErrorDescription;
25174 0 : uint32_t size_pErrorDescription_1 = 0;
25175 0 : uint32_t length_pErrorDescription_1 = 0;
25176 0 : TALLOC_CTX *_mem_save_pErrorDescription_0 = NULL;
25177 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
25178 0 : if (ndr_flags & NDR_SCALARS) {
25179 0 : NDR_CHECK(ndr_pull_align(ndr, 8));
25180 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->LastError));
25181 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pDocumentName));
25182 0 : if (_ptr_pDocumentName) {
25183 0 : NDR_PULL_ALLOC(ndr, r->pDocumentName);
25184 : } else {
25185 0 : r->pDocumentName = NULL;
25186 : }
25187 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pUserName));
25188 0 : if (_ptr_pUserName) {
25189 0 : NDR_PULL_ALLOC(ndr, r->pUserName);
25190 : } else {
25191 0 : r->pUserName = NULL;
25192 : }
25193 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pPrinterName));
25194 0 : if (_ptr_pPrinterName) {
25195 0 : NDR_PULL_ALLOC(ndr, r->pPrinterName);
25196 : } else {
25197 0 : r->pPrinterName = NULL;
25198 : }
25199 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pDataType));
25200 0 : if (_ptr_pDataType) {
25201 0 : NDR_PULL_ALLOC(ndr, r->pDataType);
25202 : } else {
25203 0 : r->pDataType = NULL;
25204 : }
25205 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->TotalSize));
25206 0 : NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->PrintedSize));
25207 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->TotalPages));
25208 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->PrintedPages));
25209 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pMachineName));
25210 0 : if (_ptr_pMachineName) {
25211 0 : NDR_PULL_ALLOC(ndr, r->pMachineName);
25212 : } else {
25213 0 : r->pMachineName = NULL;
25214 : }
25215 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pJobError));
25216 0 : if (_ptr_pJobError) {
25217 0 : NDR_PULL_ALLOC(ndr, r->pJobError);
25218 : } else {
25219 0 : r->pJobError = NULL;
25220 : }
25221 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pErrorDescription));
25222 0 : if (_ptr_pErrorDescription) {
25223 0 : NDR_PULL_ALLOC(ndr, r->pErrorDescription);
25224 : } else {
25225 0 : r->pErrorDescription = NULL;
25226 : }
25227 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
25228 : }
25229 0 : if (ndr_flags & NDR_BUFFERS) {
25230 0 : if (r->pDocumentName) {
25231 0 : _mem_save_pDocumentName_0 = NDR_PULL_GET_MEM_CTX(ndr);
25232 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pDocumentName, 0);
25233 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pDocumentName));
25234 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pDocumentName));
25235 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pDocumentName, &size_pDocumentName_1));
25236 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pDocumentName, &length_pDocumentName_1));
25237 0 : if (length_pDocumentName_1 > size_pDocumentName_1) {
25238 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pDocumentName_1, length_pDocumentName_1);
25239 : }
25240 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pDocumentName_1, sizeof(uint16_t)));
25241 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pDocumentName, length_pDocumentName_1, sizeof(uint16_t), CH_UTF16));
25242 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pDocumentName_0, 0);
25243 : }
25244 0 : if (r->pUserName) {
25245 0 : _mem_save_pUserName_0 = NDR_PULL_GET_MEM_CTX(ndr);
25246 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pUserName, 0);
25247 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pUserName));
25248 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pUserName));
25249 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pUserName, &size_pUserName_1));
25250 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pUserName, &length_pUserName_1));
25251 0 : if (length_pUserName_1 > size_pUserName_1) {
25252 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pUserName_1, length_pUserName_1);
25253 : }
25254 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pUserName_1, sizeof(uint16_t)));
25255 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pUserName, length_pUserName_1, sizeof(uint16_t), CH_UTF16));
25256 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pUserName_0, 0);
25257 : }
25258 0 : if (r->pPrinterName) {
25259 0 : _mem_save_pPrinterName_0 = NDR_PULL_GET_MEM_CTX(ndr);
25260 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pPrinterName, 0);
25261 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pPrinterName));
25262 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pPrinterName));
25263 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pPrinterName, &size_pPrinterName_1));
25264 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pPrinterName, &length_pPrinterName_1));
25265 0 : if (length_pPrinterName_1 > size_pPrinterName_1) {
25266 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pPrinterName_1, length_pPrinterName_1);
25267 : }
25268 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pPrinterName_1, sizeof(uint16_t)));
25269 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pPrinterName, length_pPrinterName_1, sizeof(uint16_t), CH_UTF16));
25270 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pPrinterName_0, 0);
25271 : }
25272 0 : if (r->pDataType) {
25273 0 : _mem_save_pDataType_0 = NDR_PULL_GET_MEM_CTX(ndr);
25274 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pDataType, 0);
25275 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pDataType));
25276 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pDataType));
25277 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pDataType, &size_pDataType_1));
25278 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pDataType, &length_pDataType_1));
25279 0 : if (length_pDataType_1 > size_pDataType_1) {
25280 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pDataType_1, length_pDataType_1);
25281 : }
25282 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pDataType_1, sizeof(uint16_t)));
25283 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pDataType, length_pDataType_1, sizeof(uint16_t), CH_UTF16));
25284 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pDataType_0, 0);
25285 : }
25286 0 : if (r->pMachineName) {
25287 0 : _mem_save_pMachineName_0 = NDR_PULL_GET_MEM_CTX(ndr);
25288 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pMachineName, 0);
25289 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pMachineName));
25290 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pMachineName));
25291 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pMachineName, &size_pMachineName_1));
25292 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pMachineName, &length_pMachineName_1));
25293 0 : if (length_pMachineName_1 > size_pMachineName_1) {
25294 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pMachineName_1, length_pMachineName_1);
25295 : }
25296 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pMachineName_1, sizeof(uint16_t)));
25297 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pMachineName, length_pMachineName_1, sizeof(uint16_t), CH_UTF16));
25298 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pMachineName_0, 0);
25299 : }
25300 0 : if (r->pJobError) {
25301 0 : _mem_save_pJobError_0 = NDR_PULL_GET_MEM_CTX(ndr);
25302 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pJobError, 0);
25303 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pJobError));
25304 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pJobError));
25305 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pJobError, &size_pJobError_1));
25306 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pJobError, &length_pJobError_1));
25307 0 : if (length_pJobError_1 > size_pJobError_1) {
25308 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pJobError_1, length_pJobError_1);
25309 : }
25310 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pJobError_1, sizeof(uint16_t)));
25311 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pJobError, length_pJobError_1, sizeof(uint16_t), CH_UTF16));
25312 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pJobError_0, 0);
25313 : }
25314 0 : if (r->pErrorDescription) {
25315 0 : _mem_save_pErrorDescription_0 = NDR_PULL_GET_MEM_CTX(ndr);
25316 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pErrorDescription, 0);
25317 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pErrorDescription));
25318 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pErrorDescription));
25319 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pErrorDescription, &size_pErrorDescription_1));
25320 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pErrorDescription, &length_pErrorDescription_1));
25321 0 : if (length_pErrorDescription_1 > size_pErrorDescription_1) {
25322 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pErrorDescription_1, length_pErrorDescription_1);
25323 : }
25324 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pErrorDescription_1, sizeof(uint16_t)));
25325 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pErrorDescription, length_pErrorDescription_1, sizeof(uint16_t), CH_UTF16));
25326 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pErrorDescription_0, 0);
25327 : }
25328 : }
25329 0 : return NDR_ERR_SUCCESS;
25330 : }
25331 :
25332 0 : _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobDataError(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobDataError *r)
25333 : {
25334 0 : ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobDataError");
25335 0 : if (r == NULL) { ndr_print_null(ndr); return; }
25336 0 : ndr->depth++;
25337 0 : ndr_print_WERROR(ndr, "LastError", r->LastError);
25338 0 : ndr_print_ptr(ndr, "pDocumentName", r->pDocumentName);
25339 0 : ndr->depth++;
25340 0 : if (r->pDocumentName) {
25341 0 : ndr_print_string(ndr, "pDocumentName", r->pDocumentName);
25342 : }
25343 0 : ndr->depth--;
25344 0 : ndr_print_ptr(ndr, "pUserName", r->pUserName);
25345 0 : ndr->depth++;
25346 0 : if (r->pUserName) {
25347 0 : ndr_print_string(ndr, "pUserName", r->pUserName);
25348 : }
25349 0 : ndr->depth--;
25350 0 : ndr_print_ptr(ndr, "pPrinterName", r->pPrinterName);
25351 0 : ndr->depth++;
25352 0 : if (r->pPrinterName) {
25353 0 : ndr_print_string(ndr, "pPrinterName", r->pPrinterName);
25354 : }
25355 0 : ndr->depth--;
25356 0 : ndr_print_ptr(ndr, "pDataType", r->pDataType);
25357 0 : ndr->depth++;
25358 0 : if (r->pDataType) {
25359 0 : ndr_print_string(ndr, "pDataType", r->pDataType);
25360 : }
25361 0 : ndr->depth--;
25362 0 : ndr_print_hyper(ndr, "TotalSize", r->TotalSize);
25363 0 : ndr_print_hyper(ndr, "PrintedSize", r->PrintedSize);
25364 0 : ndr_print_uint32(ndr, "TotalPages", r->TotalPages);
25365 0 : ndr_print_uint32(ndr, "PrintedPages", r->PrintedPages);
25366 0 : ndr_print_ptr(ndr, "pMachineName", r->pMachineName);
25367 0 : ndr->depth++;
25368 0 : if (r->pMachineName) {
25369 0 : ndr_print_string(ndr, "pMachineName", r->pMachineName);
25370 : }
25371 0 : ndr->depth--;
25372 0 : ndr_print_ptr(ndr, "pJobError", r->pJobError);
25373 0 : ndr->depth++;
25374 0 : if (r->pJobError) {
25375 0 : ndr_print_string(ndr, "pJobError", r->pJobError);
25376 : }
25377 0 : ndr->depth--;
25378 0 : ndr_print_ptr(ndr, "pErrorDescription", r->pErrorDescription);
25379 0 : ndr->depth++;
25380 0 : if (r->pErrorDescription) {
25381 0 : ndr_print_string(ndr, "pErrorDescription", r->pErrorDescription);
25382 : }
25383 0 : ndr->depth--;
25384 0 : ndr->depth--;
25385 : }
25386 :
25387 0 : static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobDataPipelineFailed(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_BranchOfficeJobDataPipelineFailed *r)
25388 : {
25389 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
25390 0 : if (ndr_flags & NDR_SCALARS) {
25391 0 : NDR_CHECK(ndr_push_align(ndr, 5));
25392 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pDocumentName));
25393 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pPrinterName));
25394 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pExtraErrorInfo));
25395 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
25396 : }
25397 0 : if (ndr_flags & NDR_BUFFERS) {
25398 0 : if (r->pDocumentName) {
25399 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
25400 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25401 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
25402 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pDocumentName, ndr_charset_length(r->pDocumentName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25403 : }
25404 0 : if (r->pPrinterName) {
25405 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
25406 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25407 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
25408 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pPrinterName, ndr_charset_length(r->pPrinterName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25409 : }
25410 0 : if (r->pExtraErrorInfo) {
25411 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pExtraErrorInfo, CH_UTF16)));
25412 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25413 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pExtraErrorInfo, CH_UTF16)));
25414 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pExtraErrorInfo, ndr_charset_length(r->pExtraErrorInfo, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25415 : }
25416 : }
25417 0 : return NDR_ERR_SUCCESS;
25418 : }
25419 :
25420 0 : static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobDataPipelineFailed(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_BranchOfficeJobDataPipelineFailed *r)
25421 : {
25422 0 : uint32_t _ptr_pDocumentName;
25423 0 : uint32_t size_pDocumentName_1 = 0;
25424 0 : uint32_t length_pDocumentName_1 = 0;
25425 0 : TALLOC_CTX *_mem_save_pDocumentName_0 = NULL;
25426 0 : uint32_t _ptr_pPrinterName;
25427 0 : uint32_t size_pPrinterName_1 = 0;
25428 0 : uint32_t length_pPrinterName_1 = 0;
25429 0 : TALLOC_CTX *_mem_save_pPrinterName_0 = NULL;
25430 0 : uint32_t _ptr_pExtraErrorInfo;
25431 0 : uint32_t size_pExtraErrorInfo_1 = 0;
25432 0 : uint32_t length_pExtraErrorInfo_1 = 0;
25433 0 : TALLOC_CTX *_mem_save_pExtraErrorInfo_0 = NULL;
25434 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
25435 0 : if (ndr_flags & NDR_SCALARS) {
25436 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
25437 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pDocumentName));
25438 0 : if (_ptr_pDocumentName) {
25439 0 : NDR_PULL_ALLOC(ndr, r->pDocumentName);
25440 : } else {
25441 0 : r->pDocumentName = NULL;
25442 : }
25443 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pPrinterName));
25444 0 : if (_ptr_pPrinterName) {
25445 0 : NDR_PULL_ALLOC(ndr, r->pPrinterName);
25446 : } else {
25447 0 : r->pPrinterName = NULL;
25448 : }
25449 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pExtraErrorInfo));
25450 0 : if (_ptr_pExtraErrorInfo) {
25451 0 : NDR_PULL_ALLOC(ndr, r->pExtraErrorInfo);
25452 : } else {
25453 0 : r->pExtraErrorInfo = NULL;
25454 : }
25455 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
25456 : }
25457 0 : if (ndr_flags & NDR_BUFFERS) {
25458 0 : if (r->pDocumentName) {
25459 0 : _mem_save_pDocumentName_0 = NDR_PULL_GET_MEM_CTX(ndr);
25460 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pDocumentName, 0);
25461 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pDocumentName));
25462 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pDocumentName));
25463 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pDocumentName, &size_pDocumentName_1));
25464 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pDocumentName, &length_pDocumentName_1));
25465 0 : if (length_pDocumentName_1 > size_pDocumentName_1) {
25466 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pDocumentName_1, length_pDocumentName_1);
25467 : }
25468 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pDocumentName_1, sizeof(uint16_t)));
25469 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pDocumentName, length_pDocumentName_1, sizeof(uint16_t), CH_UTF16));
25470 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pDocumentName_0, 0);
25471 : }
25472 0 : if (r->pPrinterName) {
25473 0 : _mem_save_pPrinterName_0 = NDR_PULL_GET_MEM_CTX(ndr);
25474 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pPrinterName, 0);
25475 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pPrinterName));
25476 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pPrinterName));
25477 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pPrinterName, &size_pPrinterName_1));
25478 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pPrinterName, &length_pPrinterName_1));
25479 0 : if (length_pPrinterName_1 > size_pPrinterName_1) {
25480 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pPrinterName_1, length_pPrinterName_1);
25481 : }
25482 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pPrinterName_1, sizeof(uint16_t)));
25483 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pPrinterName, length_pPrinterName_1, sizeof(uint16_t), CH_UTF16));
25484 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pPrinterName_0, 0);
25485 : }
25486 0 : if (r->pExtraErrorInfo) {
25487 0 : _mem_save_pExtraErrorInfo_0 = NDR_PULL_GET_MEM_CTX(ndr);
25488 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pExtraErrorInfo, 0);
25489 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pExtraErrorInfo));
25490 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pExtraErrorInfo));
25491 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pExtraErrorInfo, &size_pExtraErrorInfo_1));
25492 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pExtraErrorInfo, &length_pExtraErrorInfo_1));
25493 0 : if (length_pExtraErrorInfo_1 > size_pExtraErrorInfo_1) {
25494 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pExtraErrorInfo_1, length_pExtraErrorInfo_1);
25495 : }
25496 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pExtraErrorInfo_1, sizeof(uint16_t)));
25497 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pExtraErrorInfo, length_pExtraErrorInfo_1, sizeof(uint16_t), CH_UTF16));
25498 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pExtraErrorInfo_0, 0);
25499 : }
25500 : }
25501 0 : return NDR_ERR_SUCCESS;
25502 : }
25503 :
25504 0 : _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobDataPipelineFailed(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobDataPipelineFailed *r)
25505 : {
25506 0 : ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobDataPipelineFailed");
25507 0 : if (r == NULL) { ndr_print_null(ndr); return; }
25508 0 : ndr->depth++;
25509 0 : ndr_print_ptr(ndr, "pDocumentName", r->pDocumentName);
25510 0 : ndr->depth++;
25511 0 : if (r->pDocumentName) {
25512 0 : ndr_print_string(ndr, "pDocumentName", r->pDocumentName);
25513 : }
25514 0 : ndr->depth--;
25515 0 : ndr_print_ptr(ndr, "pPrinterName", r->pPrinterName);
25516 0 : ndr->depth++;
25517 0 : if (r->pPrinterName) {
25518 0 : ndr_print_string(ndr, "pPrinterName", r->pPrinterName);
25519 : }
25520 0 : ndr->depth--;
25521 0 : ndr_print_ptr(ndr, "pExtraErrorInfo", r->pExtraErrorInfo);
25522 0 : ndr->depth++;
25523 0 : if (r->pExtraErrorInfo) {
25524 0 : ndr_print_string(ndr, "pExtraErrorInfo", r->pExtraErrorInfo);
25525 : }
25526 0 : ndr->depth--;
25527 0 : ndr->depth--;
25528 : }
25529 :
25530 0 : static enum ndr_err_code ndr_push_spoolss_BranchOfficeLogOfflineFileFull(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_BranchOfficeLogOfflineFileFull *r)
25531 : {
25532 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
25533 0 : if (ndr_flags & NDR_SCALARS) {
25534 0 : NDR_CHECK(ndr_push_align(ndr, 5));
25535 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->pMachineName));
25536 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 5));
25537 : }
25538 0 : if (ndr_flags & NDR_BUFFERS) {
25539 0 : if (r->pMachineName) {
25540 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
25541 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25542 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
25543 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pMachineName, ndr_charset_length(r->pMachineName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25544 : }
25545 : }
25546 0 : return NDR_ERR_SUCCESS;
25547 : }
25548 :
25549 0 : static enum ndr_err_code ndr_pull_spoolss_BranchOfficeLogOfflineFileFull(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_BranchOfficeLogOfflineFileFull *r)
25550 : {
25551 0 : uint32_t _ptr_pMachineName;
25552 0 : uint32_t size_pMachineName_1 = 0;
25553 0 : uint32_t length_pMachineName_1 = 0;
25554 0 : TALLOC_CTX *_mem_save_pMachineName_0 = NULL;
25555 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
25556 0 : if (ndr_flags & NDR_SCALARS) {
25557 0 : NDR_CHECK(ndr_pull_align(ndr, 5));
25558 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pMachineName));
25559 0 : if (_ptr_pMachineName) {
25560 0 : NDR_PULL_ALLOC(ndr, r->pMachineName);
25561 : } else {
25562 0 : r->pMachineName = NULL;
25563 : }
25564 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
25565 : }
25566 0 : if (ndr_flags & NDR_BUFFERS) {
25567 0 : if (r->pMachineName) {
25568 0 : _mem_save_pMachineName_0 = NDR_PULL_GET_MEM_CTX(ndr);
25569 0 : NDR_PULL_SET_MEM_CTX(ndr, r->pMachineName, 0);
25570 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->pMachineName));
25571 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->pMachineName));
25572 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->pMachineName, &size_pMachineName_1));
25573 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->pMachineName, &length_pMachineName_1));
25574 0 : if (length_pMachineName_1 > size_pMachineName_1) {
25575 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pMachineName_1, length_pMachineName_1);
25576 : }
25577 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pMachineName_1, sizeof(uint16_t)));
25578 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pMachineName, length_pMachineName_1, sizeof(uint16_t), CH_UTF16));
25579 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pMachineName_0, 0);
25580 : }
25581 : }
25582 0 : return NDR_ERR_SUCCESS;
25583 : }
25584 :
25585 0 : _PUBLIC_ void ndr_print_spoolss_BranchOfficeLogOfflineFileFull(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeLogOfflineFileFull *r)
25586 : {
25587 0 : ndr_print_struct(ndr, name, "spoolss_BranchOfficeLogOfflineFileFull");
25588 0 : if (r == NULL) { ndr_print_null(ndr); return; }
25589 0 : ndr->depth++;
25590 0 : ndr_print_ptr(ndr, "pMachineName", r->pMachineName);
25591 0 : ndr->depth++;
25592 0 : if (r->pMachineName) {
25593 0 : ndr_print_string(ndr, "pMachineName", r->pMachineName);
25594 : }
25595 0 : ndr->depth--;
25596 0 : ndr->depth--;
25597 : }
25598 :
25599 0 : static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobInfo(struct ndr_push *ndr, ndr_flags_type ndr_flags, const union spoolss_BranchOfficeJobInfo *r)
25600 : {
25601 0 : uint32_t level;
25602 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
25603 0 : if (ndr_flags & NDR_SCALARS) {
25604 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
25605 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
25606 0 : NDR_CHECK(ndr_push_union_align(ndr, 8));
25607 0 : NDR_CHECK(ndr_push_EBranchOfficeJobEventType(ndr, NDR_SCALARS, level));
25608 : /* ms_union is always aligned to the largest union arm*/
25609 0 : NDR_CHECK(ndr_push_align(ndr, 8));
25610 0 : switch (level) {
25611 0 : case kLogJobPrinted: {
25612 0 : NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataPrinted(ndr, NDR_SCALARS, &r->LogJobPrinted));
25613 0 : break; }
25614 :
25615 0 : case kLogJobRendered: {
25616 0 : NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataRendered(ndr, NDR_SCALARS, &r->LogJobRendered));
25617 0 : break; }
25618 :
25619 0 : case kLogJobError: {
25620 0 : NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataError(ndr, NDR_SCALARS, &r->LogJobError));
25621 0 : break; }
25622 :
25623 0 : case kLogJobPipelineError: {
25624 0 : NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataPipelineFailed(ndr, NDR_SCALARS, &r->LogPipelineFailed));
25625 0 : break; }
25626 :
25627 0 : case kLogOfflineFileFull: {
25628 0 : NDR_CHECK(ndr_push_spoolss_BranchOfficeLogOfflineFileFull(ndr, NDR_SCALARS, &r->LogOfflineFileFull));
25629 0 : break; }
25630 :
25631 0 : default:
25632 0 : return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
25633 : }
25634 : }
25635 0 : if (ndr_flags & NDR_BUFFERS) {
25636 0 : if (!(ndr_flags & NDR_SCALARS)) {
25637 : /* We didn't get it above, and the token is not needed after this. */
25638 0 : NDR_CHECK(ndr_push_steal_switch_value(ndr, r, &level));
25639 : }
25640 0 : switch (level) {
25641 0 : case kLogJobPrinted:
25642 0 : NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataPrinted(ndr, NDR_BUFFERS, &r->LogJobPrinted));
25643 0 : break;
25644 :
25645 0 : case kLogJobRendered:
25646 0 : break;
25647 :
25648 0 : case kLogJobError:
25649 0 : NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataError(ndr, NDR_BUFFERS, &r->LogJobError));
25650 0 : break;
25651 :
25652 0 : case kLogJobPipelineError:
25653 0 : NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataPipelineFailed(ndr, NDR_BUFFERS, &r->LogPipelineFailed));
25654 0 : break;
25655 :
25656 0 : case kLogOfflineFileFull:
25657 0 : NDR_CHECK(ndr_push_spoolss_BranchOfficeLogOfflineFileFull(ndr, NDR_BUFFERS, &r->LogOfflineFileFull));
25658 0 : break;
25659 :
25660 0 : default:
25661 0 : return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32, level);
25662 : }
25663 : }
25664 0 : return NDR_ERR_SUCCESS;
25665 : }
25666 :
25667 0 : static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobInfo(struct ndr_pull *ndr, ndr_flags_type ndr_flags, union spoolss_BranchOfficeJobInfo *r)
25668 : {
25669 0 : uint32_t level;
25670 0 : uint16_t _level;
25671 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
25672 0 : if (ndr_flags & NDR_SCALARS) {
25673 : /* This token is not used again (except perhaps below in the NDR_BUFFERS case) */
25674 0 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
25675 0 : NDR_CHECK(ndr_pull_union_align(ndr, 8));
25676 0 : NDR_CHECK(ndr_pull_uint1632(ndr, NDR_SCALARS, &_level));
25677 0 : if (_level != level) {
25678 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu16" for r at %s", (uint16_t)_level, __location__);
25679 : }
25680 : /* ms_union is always aligned to the largest union arm*/
25681 0 : NDR_CHECK(ndr_pull_align(ndr, 8));
25682 0 : switch (level) {
25683 0 : case kLogJobPrinted: {
25684 0 : NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataPrinted(ndr, NDR_SCALARS, &r->LogJobPrinted));
25685 0 : break; }
25686 :
25687 0 : case kLogJobRendered: {
25688 0 : NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataRendered(ndr, NDR_SCALARS, &r->LogJobRendered));
25689 0 : break; }
25690 :
25691 0 : case kLogJobError: {
25692 0 : NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataError(ndr, NDR_SCALARS, &r->LogJobError));
25693 0 : break; }
25694 :
25695 0 : case kLogJobPipelineError: {
25696 0 : NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataPipelineFailed(ndr, NDR_SCALARS, &r->LogPipelineFailed));
25697 0 : break; }
25698 :
25699 0 : case kLogOfflineFileFull: {
25700 0 : NDR_CHECK(ndr_pull_spoolss_BranchOfficeLogOfflineFileFull(ndr, NDR_SCALARS, &r->LogOfflineFileFull));
25701 0 : break; }
25702 :
25703 0 : default:
25704 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
25705 : }
25706 : }
25707 0 : if (ndr_flags & NDR_BUFFERS) {
25708 0 : if (!(ndr_flags & NDR_SCALARS)) {
25709 : /* We didn't get it above, and the token is not needed after this. */
25710 0 : NDR_CHECK(ndr_pull_steal_switch_value(ndr, r, &level));
25711 : }
25712 0 : switch (level) {
25713 0 : case kLogJobPrinted:
25714 0 : NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataPrinted(ndr, NDR_BUFFERS, &r->LogJobPrinted));
25715 0 : break;
25716 :
25717 0 : case kLogJobRendered:
25718 0 : break;
25719 :
25720 0 : case kLogJobError:
25721 0 : NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataError(ndr, NDR_BUFFERS, &r->LogJobError));
25722 0 : break;
25723 :
25724 0 : case kLogJobPipelineError:
25725 0 : NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataPipelineFailed(ndr, NDR_BUFFERS, &r->LogPipelineFailed));
25726 0 : break;
25727 :
25728 0 : case kLogOfflineFileFull:
25729 0 : NDR_CHECK(ndr_pull_spoolss_BranchOfficeLogOfflineFileFull(ndr, NDR_BUFFERS, &r->LogOfflineFileFull));
25730 0 : break;
25731 :
25732 0 : default:
25733 0 : return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %"PRIu32" at %s", level, __location__);
25734 : }
25735 : }
25736 0 : return NDR_ERR_SUCCESS;
25737 : }
25738 :
25739 0 : _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_BranchOfficeJobInfo *r)
25740 : {
25741 0 : uint32_t level;
25742 0 : level = ndr_print_steal_switch_value(ndr, r);
25743 0 : ndr_print_union(ndr, name, level, "spoolss_BranchOfficeJobInfo");
25744 0 : switch (level) {
25745 0 : case kLogJobPrinted:
25746 0 : ndr_print_spoolss_BranchOfficeJobDataPrinted(ndr, "LogJobPrinted", &r->LogJobPrinted);
25747 0 : break;
25748 :
25749 0 : case kLogJobRendered:
25750 0 : ndr_print_spoolss_BranchOfficeJobDataRendered(ndr, "LogJobRendered", &r->LogJobRendered);
25751 0 : break;
25752 :
25753 0 : case kLogJobError:
25754 0 : ndr_print_spoolss_BranchOfficeJobDataError(ndr, "LogJobError", &r->LogJobError);
25755 0 : break;
25756 :
25757 0 : case kLogJobPipelineError:
25758 0 : ndr_print_spoolss_BranchOfficeJobDataPipelineFailed(ndr, "LogPipelineFailed", &r->LogPipelineFailed);
25759 0 : break;
25760 :
25761 0 : case kLogOfflineFileFull:
25762 0 : ndr_print_spoolss_BranchOfficeLogOfflineFileFull(ndr, "LogOfflineFileFull", &r->LogOfflineFileFull);
25763 0 : break;
25764 :
25765 0 : default:
25766 0 : ndr_print_bad_level(ndr, name, level);
25767 : }
25768 0 : }
25769 :
25770 0 : static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobData(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_BranchOfficeJobData *r)
25771 : {
25772 0 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
25773 0 : if (ndr_flags & NDR_SCALARS) {
25774 0 : NDR_CHECK(ndr_push_align(ndr, 8));
25775 0 : NDR_CHECK(ndr_push_EBranchOfficeJobEventType(ndr, NDR_SCALARS, r->eEventType));
25776 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->JobId));
25777 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->JobInfo, r->eEventType));
25778 0 : NDR_CHECK(ndr_push_spoolss_BranchOfficeJobInfo(ndr, NDR_SCALARS, &r->JobInfo));
25779 0 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
25780 : }
25781 0 : if (ndr_flags & NDR_BUFFERS) {
25782 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->JobInfo, r->eEventType));
25783 0 : NDR_CHECK(ndr_push_spoolss_BranchOfficeJobInfo(ndr, NDR_BUFFERS, &r->JobInfo));
25784 : }
25785 0 : return NDR_ERR_SUCCESS;
25786 : }
25787 :
25788 0 : static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobData(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_BranchOfficeJobData *r)
25789 : {
25790 0 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
25791 0 : if (ndr_flags & NDR_SCALARS) {
25792 0 : NDR_CHECK(ndr_pull_align(ndr, 8));
25793 0 : NDR_CHECK(ndr_pull_EBranchOfficeJobEventType(ndr, NDR_SCALARS, &r->eEventType));
25794 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->JobId));
25795 0 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->JobInfo, r->eEventType));
25796 0 : NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobInfo(ndr, NDR_SCALARS, &r->JobInfo));
25797 0 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
25798 : }
25799 0 : if (ndr_flags & NDR_BUFFERS) {
25800 0 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->JobInfo, r->eEventType));
25801 0 : NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobInfo(ndr, NDR_BUFFERS, &r->JobInfo));
25802 : }
25803 0 : return NDR_ERR_SUCCESS;
25804 : }
25805 :
25806 0 : _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobData(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobData *r)
25807 : {
25808 0 : ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobData");
25809 0 : if (r == NULL) { ndr_print_null(ndr); return; }
25810 0 : ndr->depth++;
25811 0 : ndr_print_EBranchOfficeJobEventType(ndr, "eEventType", r->eEventType);
25812 0 : ndr_print_uint32(ndr, "JobId", r->JobId);
25813 0 : ndr_print_set_switch_value(ndr, &r->JobInfo, r->eEventType);
25814 0 : ndr_print_spoolss_BranchOfficeJobInfo(ndr, "JobInfo", &r->JobInfo);
25815 0 : ndr->depth--;
25816 : }
25817 :
25818 8 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_BranchOfficeJobDataContainer(struct ndr_push *ndr, ndr_flags_type ndr_flags, const struct spoolss_BranchOfficeJobDataContainer *r)
25819 : {
25820 0 : uint32_t cntr_JobData_0;
25821 8 : NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
25822 8 : if (ndr_flags & NDR_SCALARS) {
25823 8 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->cJobDataEntries));
25824 8 : NDR_CHECK(ndr_push_align(ndr, 8));
25825 8 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cJobDataEntries));
25826 8 : for (cntr_JobData_0 = 0; cntr_JobData_0 < (r->cJobDataEntries); cntr_JobData_0++) {
25827 0 : NDR_CHECK(ndr_push_spoolss_BranchOfficeJobData(ndr, NDR_SCALARS, &r->JobData[cntr_JobData_0]));
25828 : }
25829 8 : NDR_CHECK(ndr_push_trailer_align(ndr, 8));
25830 : }
25831 8 : if (ndr_flags & NDR_BUFFERS) {
25832 8 : for (cntr_JobData_0 = 0; cntr_JobData_0 < (r->cJobDataEntries); cntr_JobData_0++) {
25833 0 : NDR_CHECK(ndr_push_spoolss_BranchOfficeJobData(ndr, NDR_BUFFERS, &r->JobData[cntr_JobData_0]));
25834 : }
25835 : }
25836 8 : return NDR_ERR_SUCCESS;
25837 : }
25838 :
25839 8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobDataContainer(struct ndr_pull *ndr, ndr_flags_type ndr_flags, struct spoolss_BranchOfficeJobDataContainer *r)
25840 : {
25841 8 : uint32_t size_JobData_0 = 0;
25842 0 : uint32_t cntr_JobData_0;
25843 8 : TALLOC_CTX *_mem_save_JobData_0 = NULL;
25844 8 : NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
25845 8 : if (ndr_flags & NDR_SCALARS) {
25846 8 : NDR_CHECK(ndr_pull_array_size(ndr, &r->JobData));
25847 8 : NDR_CHECK(ndr_pull_align(ndr, 8));
25848 8 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cJobDataEntries));
25849 8 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->JobData, &size_JobData_0));
25850 8 : NDR_PULL_ALLOC_N(ndr, r->JobData, size_JobData_0);
25851 8 : _mem_save_JobData_0 = NDR_PULL_GET_MEM_CTX(ndr);
25852 8 : NDR_PULL_SET_MEM_CTX(ndr, r->JobData, 0);
25853 8 : for (cntr_JobData_0 = 0; cntr_JobData_0 < (size_JobData_0); cntr_JobData_0++) {
25854 0 : NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobData(ndr, NDR_SCALARS, &r->JobData[cntr_JobData_0]));
25855 : }
25856 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_JobData_0, 0);
25857 8 : if (r->JobData) {
25858 8 : NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->JobData, r->cJobDataEntries));
25859 : }
25860 8 : NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
25861 : }
25862 8 : if (ndr_flags & NDR_BUFFERS) {
25863 8 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->JobData, &size_JobData_0));
25864 8 : _mem_save_JobData_0 = NDR_PULL_GET_MEM_CTX(ndr);
25865 8 : NDR_PULL_SET_MEM_CTX(ndr, r->JobData, 0);
25866 8 : for (cntr_JobData_0 = 0; cntr_JobData_0 < (size_JobData_0); cntr_JobData_0++) {
25867 0 : NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobData(ndr, NDR_BUFFERS, &r->JobData[cntr_JobData_0]));
25868 : }
25869 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_JobData_0, 0);
25870 8 : for (cntr_JobData_0 = 0; cntr_JobData_0 < (size_JobData_0); cntr_JobData_0++) {
25871 : }
25872 : }
25873 8 : return NDR_ERR_SUCCESS;
25874 : }
25875 :
25876 0 : static void ndr_print_flags_spoolss_BranchOfficeJobDataContainer(struct ndr_print *ndr, const char *name, ndr_flags_type unused, const struct spoolss_BranchOfficeJobDataContainer *r)
25877 : {
25878 0 : ndr_print_spoolss_BranchOfficeJobDataContainer(ndr, name, r);
25879 0 : }
25880 :
25881 0 : _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobDataContainer(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobDataContainer *r)
25882 : {
25883 0 : uint32_t cntr_JobData_0;
25884 0 : ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobDataContainer");
25885 0 : if (r == NULL) { ndr_print_null(ndr); return; }
25886 0 : ndr->depth++;
25887 0 : ndr_print_uint32(ndr, "cJobDataEntries", r->cJobDataEntries);
25888 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "JobData", (uint32_t)(r->cJobDataEntries));
25889 0 : ndr->depth++;
25890 0 : for (cntr_JobData_0 = 0; cntr_JobData_0 < (r->cJobDataEntries); cntr_JobData_0++) {
25891 0 : ndr_print_spoolss_BranchOfficeJobData(ndr, "JobData", &r->JobData[cntr_JobData_0]);
25892 : }
25893 0 : ndr->depth--;
25894 0 : ndr->depth--;
25895 : }
25896 :
25897 360 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumPrinters *r)
25898 : {
25899 360 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
25900 360 : if (flags & NDR_IN) {
25901 180 : NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
25902 180 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
25903 180 : if (r->in.server) {
25904 120 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
25905 120 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25906 120 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
25907 120 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25908 : }
25909 180 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25910 180 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25911 180 : if (r->in.buffer) {
25912 92 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25913 : }
25914 180 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25915 : }
25916 360 : if (flags & NDR_OUT) {
25917 180 : if (r->out.needed == NULL) {
25918 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25919 : }
25920 180 : if (r->out.count == NULL) {
25921 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25922 : }
25923 180 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25924 180 : if (r->out.info) {
25925 92 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25926 : }
25927 180 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25928 180 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25929 180 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25930 : }
25931 360 : return NDR_ERR_SUCCESS;
25932 : }
25933 :
25934 360 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumPrinters *r)
25935 : {
25936 0 : uint32_t _ptr_server;
25937 360 : uint32_t size_server_1 = 0;
25938 360 : uint32_t length_server_1 = 0;
25939 0 : uint32_t _ptr_buffer;
25940 0 : uint32_t _ptr_info;
25941 360 : TALLOC_CTX *_mem_save_server_0 = NULL;
25942 360 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
25943 360 : TALLOC_CTX *_mem_save_info_0 = NULL;
25944 360 : TALLOC_CTX *_mem_save_needed_0 = NULL;
25945 360 : TALLOC_CTX *_mem_save_count_0 = NULL;
25946 360 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
25947 360 : if (flags & NDR_IN) {
25948 180 : NDR_ZERO_STRUCT(r->out);
25949 :
25950 180 : NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
25951 180 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
25952 180 : if (_ptr_server) {
25953 120 : NDR_PULL_ALLOC(ndr, r->in.server);
25954 : } else {
25955 60 : r->in.server = NULL;
25956 : }
25957 180 : if (r->in.server) {
25958 120 : _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
25959 120 : NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
25960 120 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
25961 120 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
25962 120 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
25963 120 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
25964 120 : if (length_server_1 > size_server_1) {
25965 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
25966 : }
25967 120 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
25968 120 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
25969 120 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
25970 : }
25971 180 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25972 180 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25973 180 : if (_ptr_buffer) {
25974 92 : NDR_PULL_ALLOC(ndr, r->in.buffer);
25975 : } else {
25976 88 : r->in.buffer = NULL;
25977 : }
25978 180 : if (r->in.buffer) {
25979 92 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25980 92 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25981 92 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25982 92 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25983 : }
25984 180 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25985 180 : NDR_PULL_ALLOC(ndr, r->out.needed);
25986 180 : NDR_ZERO_STRUCTP(r->out.needed);
25987 180 : NDR_PULL_ALLOC(ndr, r->out.count);
25988 180 : NDR_ZERO_STRUCTP(r->out.count);
25989 : }
25990 360 : if (flags & NDR_OUT) {
25991 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
25992 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
25993 180 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25994 180 : if (_ptr_info) {
25995 92 : NDR_PULL_ALLOC(ndr, r->out.info);
25996 : } else {
25997 88 : r->out.info = NULL;
25998 : }
25999 180 : if (r->out.info) {
26000 92 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26001 92 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26002 92 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
26003 92 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26004 : }
26005 180 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26006 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
26007 : }
26008 180 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26009 180 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26010 180 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26011 180 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26012 180 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26013 0 : NDR_PULL_ALLOC(ndr, r->out.count);
26014 : }
26015 180 : _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
26016 180 : NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
26017 180 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
26018 180 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
26019 180 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26020 : }
26021 360 : return NDR_ERR_SUCCESS;
26022 : }
26023 :
26024 272 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumPrinters *r)
26025 : {
26026 0 : uint32_t cntr_info_0;
26027 272 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
26028 272 : if (flags & NDR_IN) {
26029 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26030 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
26031 : }
26032 272 : if (flags & NDR_OUT) {
26033 1712 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
26034 1440 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26035 1440 : NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26036 : }
26037 1712 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
26038 1440 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26039 1440 : NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26040 : }
26041 : }
26042 272 : return NDR_ERR_SUCCESS;
26043 : }
26044 :
26045 84 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumPrinters *r)
26046 : {
26047 84 : uint32_t size_info_0 = 0;
26048 0 : uint32_t cntr_info_0;
26049 84 : TALLOC_CTX *_mem_save_info_0 = NULL;
26050 84 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
26051 84 : if (flags & NDR_IN) {
26052 0 : NDR_ZERO_STRUCT(r->out);
26053 :
26054 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26055 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
26056 : }
26057 84 : if (flags & NDR_OUT) {
26058 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
26059 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
26060 84 : size_info_0 = r->in.count;
26061 84 : NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
26062 84 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26063 84 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26064 544 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
26065 460 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26066 460 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26067 : }
26068 544 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
26069 460 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26070 460 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26071 : }
26072 84 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26073 544 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
26074 : }
26075 : }
26076 84 : return NDR_ERR_SUCCESS;
26077 : }
26078 :
26079 0 : _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPrinters *r)
26080 : {
26081 0 : uint32_t cntr_info_2;
26082 0 : ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
26083 0 : if (r == NULL) { ndr_print_null(ndr); return; }
26084 0 : ndr->depth++;
26085 0 : if (flags & NDR_SET_VALUES) {
26086 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26087 : }
26088 0 : if (flags & NDR_IN) {
26089 0 : ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
26090 0 : ndr->depth++;
26091 0 : ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
26092 0 : ndr_print_ptr(ndr, "server", r->in.server);
26093 0 : ndr->depth++;
26094 0 : if (r->in.server) {
26095 0 : ndr_print_string(ndr, "server", r->in.server);
26096 : }
26097 0 : ndr->depth--;
26098 0 : ndr_print_uint32(ndr, "level", r->in.level);
26099 0 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
26100 0 : ndr->depth++;
26101 0 : if (r->in.buffer) {
26102 0 : ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26103 : }
26104 0 : ndr->depth--;
26105 0 : ndr_print_uint32(ndr, "offered", r->in.offered);
26106 0 : ndr->depth--;
26107 : }
26108 0 : if (flags & NDR_OUT) {
26109 0 : ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
26110 0 : ndr->depth++;
26111 0 : ndr_print_ptr(ndr, "count", r->out.count);
26112 0 : ndr->depth++;
26113 0 : ndr_print_uint32(ndr, "count", *r->out.count);
26114 0 : ndr->depth--;
26115 0 : ndr_print_ptr(ndr, "info", r->out.info);
26116 0 : ndr->depth++;
26117 0 : ndr_print_ptr(ndr, "info", *r->out.info);
26118 0 : ndr->depth++;
26119 0 : if (*r->out.info) {
26120 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
26121 0 : ndr->depth++;
26122 0 : for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
26123 0 : ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
26124 0 : ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
26125 : }
26126 0 : ndr->depth--;
26127 : }
26128 0 : ndr->depth--;
26129 0 : ndr->depth--;
26130 0 : ndr_print_ptr(ndr, "needed", r->out.needed);
26131 0 : ndr->depth++;
26132 0 : ndr_print_uint32(ndr, "needed", *r->out.needed);
26133 0 : ndr->depth--;
26134 0 : ndr_print_WERROR(ndr, "result", r->out.result);
26135 0 : ndr->depth--;
26136 : }
26137 0 : ndr->depth--;
26138 : }
26139 :
26140 388 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_OpenPrinter *r)
26141 : {
26142 388 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
26143 388 : if (flags & NDR_IN) {
26144 194 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
26145 194 : if (r->in.printername) {
26146 194 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26147 194 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26148 194 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
26149 194 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26150 : }
26151 194 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
26152 194 : if (r->in.datatype) {
26153 28 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26154 28 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26155 28 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
26156 28 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26157 : }
26158 194 : NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26159 194 : NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
26160 : }
26161 388 : if (flags & NDR_OUT) {
26162 194 : if (r->out.handle == NULL) {
26163 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26164 : }
26165 194 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26166 194 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26167 : }
26168 388 : return NDR_ERR_SUCCESS;
26169 : }
26170 :
26171 388 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_OpenPrinter *r)
26172 : {
26173 0 : uint32_t _ptr_printername;
26174 388 : uint32_t size_printername_1 = 0;
26175 388 : uint32_t length_printername_1 = 0;
26176 0 : uint32_t _ptr_datatype;
26177 388 : uint32_t size_datatype_1 = 0;
26178 388 : uint32_t length_datatype_1 = 0;
26179 388 : TALLOC_CTX *_mem_save_printername_0 = NULL;
26180 388 : TALLOC_CTX *_mem_save_datatype_0 = NULL;
26181 388 : TALLOC_CTX *_mem_save_handle_0 = NULL;
26182 388 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
26183 388 : if (flags & NDR_IN) {
26184 194 : NDR_ZERO_STRUCT(r->out);
26185 :
26186 194 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
26187 194 : if (_ptr_printername) {
26188 194 : NDR_PULL_ALLOC(ndr, r->in.printername);
26189 : } else {
26190 0 : r->in.printername = NULL;
26191 : }
26192 194 : if (r->in.printername) {
26193 194 : _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26194 194 : NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
26195 194 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
26196 194 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
26197 194 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.printername, &size_printername_1));
26198 194 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.printername, &length_printername_1));
26199 194 : if (length_printername_1 > size_printername_1) {
26200 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printername_1, length_printername_1);
26201 : }
26202 194 : NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
26203 194 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
26204 194 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
26205 : }
26206 194 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
26207 194 : if (_ptr_datatype) {
26208 28 : NDR_PULL_ALLOC(ndr, r->in.datatype);
26209 : } else {
26210 166 : r->in.datatype = NULL;
26211 : }
26212 194 : if (r->in.datatype) {
26213 28 : _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
26214 28 : NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
26215 28 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
26216 28 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
26217 28 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.datatype, &size_datatype_1));
26218 28 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.datatype, &length_datatype_1));
26219 28 : if (length_datatype_1 > size_datatype_1) {
26220 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_datatype_1, length_datatype_1);
26221 : }
26222 28 : NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
26223 28 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
26224 28 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
26225 : }
26226 194 : NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
26227 194 : NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
26228 194 : NDR_PULL_ALLOC(ndr, r->out.handle);
26229 194 : NDR_ZERO_STRUCTP(r->out.handle);
26230 : }
26231 388 : if (flags & NDR_OUT) {
26232 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
26233 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
26234 194 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26235 28 : NDR_PULL_ALLOC(ndr, r->out.handle);
26236 : }
26237 194 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26238 194 : NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26239 194 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26240 194 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26241 194 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26242 : }
26243 388 : return NDR_ERR_SUCCESS;
26244 : }
26245 :
26246 0 : _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_OpenPrinter *r)
26247 : {
26248 0 : ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
26249 0 : if (r == NULL) { ndr_print_null(ndr); return; }
26250 0 : ndr->depth++;
26251 0 : if (flags & NDR_SET_VALUES) {
26252 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26253 : }
26254 0 : if (flags & NDR_IN) {
26255 0 : ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
26256 0 : ndr->depth++;
26257 0 : ndr_print_ptr(ndr, "printername", r->in.printername);
26258 0 : ndr->depth++;
26259 0 : if (r->in.printername) {
26260 0 : ndr_print_string(ndr, "printername", r->in.printername);
26261 : }
26262 0 : ndr->depth--;
26263 0 : ndr_print_ptr(ndr, "datatype", r->in.datatype);
26264 0 : ndr->depth++;
26265 0 : if (r->in.datatype) {
26266 0 : ndr_print_string(ndr, "datatype", r->in.datatype);
26267 : }
26268 0 : ndr->depth--;
26269 0 : ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
26270 0 : ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
26271 0 : ndr->depth--;
26272 : }
26273 0 : if (flags & NDR_OUT) {
26274 0 : ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
26275 0 : ndr->depth++;
26276 0 : ndr_print_ptr(ndr, "handle", r->out.handle);
26277 0 : ndr->depth++;
26278 0 : ndr_print_policy_handle(ndr, "handle", r->out.handle);
26279 0 : ndr->depth--;
26280 0 : ndr_print_WERROR(ndr, "result", r->out.result);
26281 0 : ndr->depth--;
26282 : }
26283 0 : ndr->depth--;
26284 : }
26285 :
26286 1280 : static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SetJob *r)
26287 : {
26288 1280 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
26289 1280 : if (flags & NDR_IN) {
26290 640 : if (r->in.handle == NULL) {
26291 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26292 : }
26293 640 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26294 640 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
26295 640 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
26296 640 : if (r->in.ctr) {
26297 32 : NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
26298 : }
26299 640 : NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
26300 : }
26301 1280 : if (flags & NDR_OUT) {
26302 640 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26303 : }
26304 1280 : return NDR_ERR_SUCCESS;
26305 : }
26306 :
26307 1280 : static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SetJob *r)
26308 : {
26309 0 : uint32_t _ptr_ctr;
26310 1280 : TALLOC_CTX *_mem_save_handle_0 = NULL;
26311 1280 : TALLOC_CTX *_mem_save_ctr_0 = NULL;
26312 1280 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
26313 1280 : if (flags & NDR_IN) {
26314 640 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26315 640 : NDR_PULL_ALLOC(ndr, r->in.handle);
26316 : }
26317 640 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26318 640 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26319 640 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26320 640 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26321 640 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
26322 640 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
26323 640 : if (_ptr_ctr) {
26324 32 : NDR_PULL_ALLOC(ndr, r->in.ctr);
26325 : } else {
26326 608 : r->in.ctr = NULL;
26327 : }
26328 640 : if (r->in.ctr) {
26329 32 : _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26330 32 : NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
26331 32 : NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
26332 32 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
26333 : }
26334 640 : NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
26335 : }
26336 1280 : if (flags & NDR_OUT) {
26337 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
26338 : if (r->in.handle == NULL) {
26339 : NDR_PULL_ALLOC(ndr, r->in.handle);
26340 : NDR_ZERO_STRUCTP(r->in.handle);
26341 : }
26342 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
26343 640 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26344 : }
26345 1280 : return NDR_ERR_SUCCESS;
26346 : }
26347 :
26348 0 : _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SetJob *r)
26349 : {
26350 0 : ndr_print_struct(ndr, name, "spoolss_SetJob");
26351 0 : if (r == NULL) { ndr_print_null(ndr); return; }
26352 0 : ndr->depth++;
26353 0 : if (flags & NDR_SET_VALUES) {
26354 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26355 : }
26356 0 : if (flags & NDR_IN) {
26357 0 : ndr_print_struct(ndr, "in", "spoolss_SetJob");
26358 0 : ndr->depth++;
26359 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
26360 0 : ndr->depth++;
26361 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
26362 0 : ndr->depth--;
26363 0 : ndr_print_uint32(ndr, "job_id", r->in.job_id);
26364 0 : ndr_print_ptr(ndr, "ctr", r->in.ctr);
26365 0 : ndr->depth++;
26366 0 : if (r->in.ctr) {
26367 0 : ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
26368 : }
26369 0 : ndr->depth--;
26370 0 : ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
26371 0 : ndr->depth--;
26372 : }
26373 0 : if (flags & NDR_OUT) {
26374 0 : ndr_print_struct(ndr, "out", "spoolss_SetJob");
26375 0 : ndr->depth++;
26376 0 : ndr_print_WERROR(ndr, "result", r->out.result);
26377 0 : ndr->depth--;
26378 : }
26379 0 : ndr->depth--;
26380 : }
26381 :
26382 4096 : static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetJob *r)
26383 : {
26384 4096 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
26385 4096 : if (flags & NDR_IN) {
26386 2048 : if (r->in.handle == NULL) {
26387 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26388 : }
26389 2048 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26390 2048 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
26391 2048 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26392 2048 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26393 2048 : if (r->in.buffer) {
26394 64 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
26395 : }
26396 2048 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26397 : }
26398 4096 : if (flags & NDR_OUT) {
26399 2048 : if (r->out.needed == NULL) {
26400 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26401 : }
26402 2048 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
26403 2048 : if (r->out.info) {
26404 : {
26405 0 : struct ndr_push *_ndr_info;
26406 64 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26407 64 : NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
26408 64 : NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
26409 64 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26410 : }
26411 : }
26412 2048 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26413 2048 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26414 : }
26415 4096 : return NDR_ERR_SUCCESS;
26416 : }
26417 :
26418 4096 : static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetJob *r)
26419 : {
26420 0 : uint32_t _ptr_buffer;
26421 0 : uint32_t _ptr_info;
26422 4096 : TALLOC_CTX *_mem_save_handle_0 = NULL;
26423 4096 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
26424 4096 : TALLOC_CTX *_mem_save_info_0 = NULL;
26425 4096 : TALLOC_CTX *_mem_save_needed_0 = NULL;
26426 4096 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
26427 4096 : if (flags & NDR_IN) {
26428 2048 : NDR_ZERO_STRUCT(r->out);
26429 :
26430 2048 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26431 2048 : NDR_PULL_ALLOC(ndr, r->in.handle);
26432 : }
26433 2048 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26434 2048 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26435 2048 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26436 2048 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26437 2048 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
26438 2048 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26439 2048 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26440 2048 : if (_ptr_buffer) {
26441 64 : NDR_PULL_ALLOC(ndr, r->in.buffer);
26442 : } else {
26443 1984 : r->in.buffer = NULL;
26444 : }
26445 2048 : if (r->in.buffer) {
26446 64 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26447 64 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26448 64 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
26449 64 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26450 : }
26451 2048 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26452 2048 : NDR_PULL_ALLOC(ndr, r->out.needed);
26453 2048 : NDR_ZERO_STRUCTP(r->out.needed);
26454 : }
26455 4096 : if (flags & NDR_OUT) {
26456 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
26457 : if (r->in.handle == NULL) {
26458 : NDR_PULL_ALLOC(ndr, r->in.handle);
26459 : NDR_ZERO_STRUCTP(r->in.handle);
26460 : }
26461 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
26462 2048 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26463 2048 : if (_ptr_info) {
26464 64 : NDR_PULL_ALLOC(ndr, r->out.info);
26465 : } else {
26466 1984 : r->out.info = NULL;
26467 : }
26468 2048 : if (r->out.info) {
26469 64 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26470 64 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26471 : {
26472 0 : struct ndr_pull *_ndr_info;
26473 64 : ssize_t sub_size = r->in.offered;
26474 64 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, sub_size));
26475 64 : NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
26476 64 : NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
26477 64 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, sub_size));
26478 : }
26479 64 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26480 : }
26481 2048 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26482 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
26483 : }
26484 2048 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26485 2048 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26486 2048 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26487 2048 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26488 2048 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26489 : }
26490 4096 : return NDR_ERR_SUCCESS;
26491 : }
26492 :
26493 0 : _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetJob *r)
26494 : {
26495 0 : ndr_print_struct(ndr, name, "spoolss_GetJob");
26496 0 : if (r == NULL) { ndr_print_null(ndr); return; }
26497 0 : ndr->depth++;
26498 0 : if (flags & NDR_SET_VALUES) {
26499 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26500 : }
26501 0 : if (flags & NDR_IN) {
26502 0 : ndr_print_struct(ndr, "in", "spoolss_GetJob");
26503 0 : ndr->depth++;
26504 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
26505 0 : ndr->depth++;
26506 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
26507 0 : ndr->depth--;
26508 0 : ndr_print_uint32(ndr, "job_id", r->in.job_id);
26509 0 : ndr_print_uint32(ndr, "level", r->in.level);
26510 0 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
26511 0 : ndr->depth++;
26512 0 : if (r->in.buffer) {
26513 0 : ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26514 : }
26515 0 : ndr->depth--;
26516 0 : ndr_print_uint32(ndr, "offered", r->in.offered);
26517 0 : ndr->depth--;
26518 : }
26519 0 : if (flags & NDR_OUT) {
26520 0 : ndr_print_struct(ndr, "out", "spoolss_GetJob");
26521 0 : ndr->depth++;
26522 0 : ndr_print_ptr(ndr, "info", r->out.info);
26523 0 : ndr->depth++;
26524 0 : if (r->out.info) {
26525 0 : ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
26526 0 : ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
26527 : }
26528 0 : ndr->depth--;
26529 0 : ndr_print_ptr(ndr, "needed", r->out.needed);
26530 0 : ndr->depth++;
26531 0 : ndr_print_uint32(ndr, "needed", *r->out.needed);
26532 0 : ndr->depth--;
26533 0 : ndr_print_WERROR(ndr, "result", r->out.result);
26534 0 : ndr->depth--;
26535 : }
26536 0 : ndr->depth--;
26537 : }
26538 :
26539 196 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumJobs *r)
26540 : {
26541 196 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
26542 196 : if (flags & NDR_IN) {
26543 98 : if (r->in.handle == NULL) {
26544 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26545 : }
26546 98 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26547 98 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
26548 98 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
26549 98 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26550 98 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26551 98 : if (r->in.buffer) {
26552 24 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
26553 : }
26554 98 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26555 : }
26556 196 : if (flags & NDR_OUT) {
26557 98 : if (r->out.needed == NULL) {
26558 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26559 : }
26560 98 : if (r->out.count == NULL) {
26561 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26562 : }
26563 98 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
26564 98 : if (r->out.info) {
26565 24 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
26566 : }
26567 98 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26568 98 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
26569 98 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26570 : }
26571 196 : return NDR_ERR_SUCCESS;
26572 : }
26573 :
26574 196 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumJobs *r)
26575 : {
26576 0 : uint32_t _ptr_buffer;
26577 0 : uint32_t _ptr_info;
26578 196 : TALLOC_CTX *_mem_save_handle_0 = NULL;
26579 196 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
26580 196 : TALLOC_CTX *_mem_save_info_0 = NULL;
26581 196 : TALLOC_CTX *_mem_save_needed_0 = NULL;
26582 196 : TALLOC_CTX *_mem_save_count_0 = NULL;
26583 196 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
26584 196 : if (flags & NDR_IN) {
26585 98 : NDR_ZERO_STRUCT(r->out);
26586 :
26587 98 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26588 98 : NDR_PULL_ALLOC(ndr, r->in.handle);
26589 : }
26590 98 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26591 98 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26592 98 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26593 98 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26594 98 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
26595 98 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
26596 98 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26597 98 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26598 98 : if (_ptr_buffer) {
26599 24 : NDR_PULL_ALLOC(ndr, r->in.buffer);
26600 : } else {
26601 74 : r->in.buffer = NULL;
26602 : }
26603 98 : if (r->in.buffer) {
26604 24 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26605 24 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26606 24 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
26607 24 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26608 : }
26609 98 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26610 98 : NDR_PULL_ALLOC(ndr, r->out.needed);
26611 98 : NDR_ZERO_STRUCTP(r->out.needed);
26612 98 : NDR_PULL_ALLOC(ndr, r->out.count);
26613 98 : NDR_ZERO_STRUCTP(r->out.count);
26614 : }
26615 196 : if (flags & NDR_OUT) {
26616 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
26617 : if (r->in.handle == NULL) {
26618 : NDR_PULL_ALLOC(ndr, r->in.handle);
26619 : NDR_ZERO_STRUCTP(r->in.handle);
26620 : }
26621 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
26622 98 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26623 98 : if (_ptr_info) {
26624 24 : NDR_PULL_ALLOC(ndr, r->out.info);
26625 : } else {
26626 74 : r->out.info = NULL;
26627 : }
26628 98 : if (r->out.info) {
26629 24 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26630 24 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26631 24 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
26632 24 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26633 : }
26634 98 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26635 10 : NDR_PULL_ALLOC(ndr, r->out.needed);
26636 : }
26637 98 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26638 98 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26639 98 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26640 98 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26641 98 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26642 10 : NDR_PULL_ALLOC(ndr, r->out.count);
26643 : }
26644 98 : _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
26645 98 : NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
26646 98 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
26647 98 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
26648 98 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26649 : }
26650 196 : return NDR_ERR_SUCCESS;
26651 : }
26652 :
26653 64 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumJobs *r)
26654 : {
26655 0 : uint32_t cntr_info_0;
26656 64 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
26657 64 : if (flags & NDR_IN) {
26658 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26659 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
26660 : }
26661 64 : if (flags & NDR_OUT) {
26662 460 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
26663 396 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26664 396 : NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26665 : }
26666 460 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
26667 396 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26668 396 : NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26669 : }
26670 : }
26671 64 : return NDR_ERR_SUCCESS;
26672 : }
26673 :
26674 24 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumJobs *r)
26675 : {
26676 24 : uint32_t size_info_0 = 0;
26677 0 : uint32_t cntr_info_0;
26678 24 : TALLOC_CTX *_mem_save_info_0 = NULL;
26679 24 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
26680 24 : if (flags & NDR_IN) {
26681 0 : NDR_ZERO_STRUCT(r->out);
26682 :
26683 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26684 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
26685 : }
26686 24 : if (flags & NDR_OUT) {
26687 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
26688 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
26689 24 : size_info_0 = r->in.count;
26690 24 : NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
26691 24 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26692 24 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26693 156 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
26694 132 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26695 132 : NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26696 : }
26697 156 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
26698 132 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26699 132 : NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26700 : }
26701 24 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26702 156 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
26703 : }
26704 : }
26705 24 : return NDR_ERR_SUCCESS;
26706 : }
26707 :
26708 0 : _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumJobs *r)
26709 : {
26710 0 : uint32_t cntr_info_2;
26711 0 : ndr_print_struct(ndr, name, "spoolss_EnumJobs");
26712 0 : if (r == NULL) { ndr_print_null(ndr); return; }
26713 0 : ndr->depth++;
26714 0 : if (flags & NDR_SET_VALUES) {
26715 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26716 : }
26717 0 : if (flags & NDR_IN) {
26718 0 : ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
26719 0 : ndr->depth++;
26720 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
26721 0 : ndr->depth++;
26722 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
26723 0 : ndr->depth--;
26724 0 : ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
26725 0 : ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
26726 0 : ndr_print_uint32(ndr, "level", r->in.level);
26727 0 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
26728 0 : ndr->depth++;
26729 0 : if (r->in.buffer) {
26730 0 : ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26731 : }
26732 0 : ndr->depth--;
26733 0 : ndr_print_uint32(ndr, "offered", r->in.offered);
26734 0 : ndr->depth--;
26735 : }
26736 0 : if (flags & NDR_OUT) {
26737 0 : ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
26738 0 : ndr->depth++;
26739 0 : ndr_print_ptr(ndr, "count", r->out.count);
26740 0 : ndr->depth++;
26741 0 : ndr_print_uint32(ndr, "count", *r->out.count);
26742 0 : ndr->depth--;
26743 0 : ndr_print_ptr(ndr, "info", r->out.info);
26744 0 : ndr->depth++;
26745 0 : ndr_print_ptr(ndr, "info", *r->out.info);
26746 0 : ndr->depth++;
26747 0 : if (*r->out.info) {
26748 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
26749 0 : ndr->depth++;
26750 0 : for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
26751 0 : ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
26752 0 : ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
26753 : }
26754 0 : ndr->depth--;
26755 : }
26756 0 : ndr->depth--;
26757 0 : ndr->depth--;
26758 0 : ndr_print_ptr(ndr, "needed", r->out.needed);
26759 0 : ndr->depth++;
26760 0 : ndr_print_uint32(ndr, "needed", *r->out.needed);
26761 0 : ndr->depth--;
26762 0 : ndr_print_WERROR(ndr, "result", r->out.result);
26763 0 : ndr->depth--;
26764 : }
26765 0 : ndr->depth--;
26766 : }
26767 :
26768 144 : static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPrinter *r)
26769 : {
26770 144 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
26771 144 : if (flags & NDR_IN) {
26772 72 : if (r->in.info_ctr == NULL) {
26773 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26774 : }
26775 72 : if (r->in.devmode_ctr == NULL) {
26776 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26777 : }
26778 72 : if (r->in.secdesc_ctr == NULL) {
26779 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26780 : }
26781 72 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26782 72 : if (r->in.server) {
26783 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26784 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26785 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26786 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26787 : }
26788 72 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26789 72 : NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26790 72 : NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
26791 : }
26792 144 : if (flags & NDR_OUT) {
26793 72 : if (r->out.handle == NULL) {
26794 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26795 : }
26796 72 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26797 72 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26798 : }
26799 144 : return NDR_ERR_SUCCESS;
26800 : }
26801 :
26802 144 : static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPrinter *r)
26803 : {
26804 0 : uint32_t _ptr_server;
26805 144 : uint32_t size_server_1 = 0;
26806 144 : uint32_t length_server_1 = 0;
26807 144 : TALLOC_CTX *_mem_save_server_0 = NULL;
26808 144 : TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
26809 144 : TALLOC_CTX *_mem_save_devmode_ctr_0 = NULL;
26810 144 : TALLOC_CTX *_mem_save_secdesc_ctr_0 = NULL;
26811 144 : TALLOC_CTX *_mem_save_handle_0 = NULL;
26812 144 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
26813 144 : if (flags & NDR_IN) {
26814 72 : NDR_ZERO_STRUCT(r->out);
26815 :
26816 72 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26817 72 : if (_ptr_server) {
26818 0 : NDR_PULL_ALLOC(ndr, r->in.server);
26819 : } else {
26820 72 : r->in.server = NULL;
26821 : }
26822 72 : if (r->in.server) {
26823 0 : _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26824 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26825 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26826 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26827 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
26828 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
26829 0 : if (length_server_1 > size_server_1) {
26830 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
26831 : }
26832 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
26833 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
26834 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26835 : }
26836 72 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26837 72 : NDR_PULL_ALLOC(ndr, r->in.info_ctr);
26838 : }
26839 72 : _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26840 72 : NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
26841 72 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26842 72 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26843 72 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26844 72 : NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
26845 : }
26846 72 : _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26847 72 : NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
26848 72 : NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26849 72 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26850 72 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26851 72 : NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
26852 : }
26853 72 : _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26854 72 : NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
26855 72 : NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
26856 72 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26857 72 : NDR_PULL_ALLOC(ndr, r->out.handle);
26858 72 : NDR_ZERO_STRUCTP(r->out.handle);
26859 : }
26860 144 : if (flags & NDR_OUT) {
26861 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
26862 : if (r->in.info_ctr == NULL) {
26863 : NDR_PULL_ALLOC(ndr, r->in.info_ctr);
26864 : NDR_ZERO_STRUCTP(r->in.info_ctr);
26865 : }
26866 : if (r->in.devmode_ctr == NULL) {
26867 : NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
26868 : NDR_ZERO_STRUCTP(r->in.devmode_ctr);
26869 : }
26870 : if (r->in.secdesc_ctr == NULL) {
26871 : NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
26872 : NDR_ZERO_STRUCTP(r->in.secdesc_ctr);
26873 : }
26874 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
26875 72 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26876 0 : NDR_PULL_ALLOC(ndr, r->out.handle);
26877 : }
26878 72 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26879 72 : NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26880 72 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26881 72 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26882 72 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26883 : }
26884 144 : return NDR_ERR_SUCCESS;
26885 : }
26886 :
26887 0 : _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPrinter *r)
26888 : {
26889 0 : ndr_print_struct(ndr, name, "spoolss_AddPrinter");
26890 0 : if (r == NULL) { ndr_print_null(ndr); return; }
26891 0 : ndr->depth++;
26892 0 : if (flags & NDR_SET_VALUES) {
26893 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26894 : }
26895 0 : if (flags & NDR_IN) {
26896 0 : ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
26897 0 : ndr->depth++;
26898 0 : ndr_print_ptr(ndr, "server", r->in.server);
26899 0 : ndr->depth++;
26900 0 : if (r->in.server) {
26901 0 : ndr_print_string(ndr, "server", r->in.server);
26902 : }
26903 0 : ndr->depth--;
26904 0 : ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
26905 0 : ndr->depth++;
26906 0 : ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
26907 0 : ndr->depth--;
26908 0 : ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
26909 0 : ndr->depth++;
26910 0 : ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
26911 0 : ndr->depth--;
26912 0 : ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
26913 0 : ndr->depth++;
26914 0 : ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
26915 0 : ndr->depth--;
26916 0 : ndr->depth--;
26917 : }
26918 0 : if (flags & NDR_OUT) {
26919 0 : ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
26920 0 : ndr->depth++;
26921 0 : ndr_print_ptr(ndr, "handle", r->out.handle);
26922 0 : ndr->depth++;
26923 0 : ndr_print_policy_handle(ndr, "handle", r->out.handle);
26924 0 : ndr->depth--;
26925 0 : ndr_print_WERROR(ndr, "result", r->out.result);
26926 0 : ndr->depth--;
26927 : }
26928 0 : ndr->depth--;
26929 : }
26930 :
26931 32 : static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrinter *r)
26932 : {
26933 32 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
26934 32 : if (flags & NDR_IN) {
26935 16 : if (r->in.handle == NULL) {
26936 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26937 : }
26938 16 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26939 : }
26940 32 : if (flags & NDR_OUT) {
26941 16 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26942 : }
26943 32 : return NDR_ERR_SUCCESS;
26944 : }
26945 :
26946 32 : static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrinter *r)
26947 : {
26948 32 : TALLOC_CTX *_mem_save_handle_0 = NULL;
26949 32 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
26950 32 : if (flags & NDR_IN) {
26951 16 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26952 16 : NDR_PULL_ALLOC(ndr, r->in.handle);
26953 : }
26954 16 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26955 16 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26956 16 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26957 16 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26958 : }
26959 32 : if (flags & NDR_OUT) {
26960 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
26961 : if (r->in.handle == NULL) {
26962 : NDR_PULL_ALLOC(ndr, r->in.handle);
26963 : NDR_ZERO_STRUCTP(r->in.handle);
26964 : }
26965 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
26966 16 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26967 : }
26968 32 : return NDR_ERR_SUCCESS;
26969 : }
26970 :
26971 0 : _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrinter *r)
26972 : {
26973 0 : ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
26974 0 : if (r == NULL) { ndr_print_null(ndr); return; }
26975 0 : ndr->depth++;
26976 0 : if (flags & NDR_SET_VALUES) {
26977 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26978 : }
26979 0 : if (flags & NDR_IN) {
26980 0 : ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
26981 0 : ndr->depth++;
26982 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
26983 0 : ndr->depth++;
26984 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
26985 0 : ndr->depth--;
26986 0 : ndr->depth--;
26987 : }
26988 0 : if (flags & NDR_OUT) {
26989 0 : ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
26990 0 : ndr->depth++;
26991 0 : ndr_print_WERROR(ndr, "result", r->out.result);
26992 0 : ndr->depth--;
26993 : }
26994 0 : ndr->depth--;
26995 : }
26996 :
26997 1168 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SetPrinter *r)
26998 : {
26999 1168 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27000 1168 : if (flags & NDR_IN) {
27001 584 : if (r->in.handle == NULL) {
27002 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27003 : }
27004 584 : if (r->in.info_ctr == NULL) {
27005 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27006 : }
27007 584 : if (r->in.devmode_ctr == NULL) {
27008 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27009 : }
27010 584 : if (r->in.secdesc_ctr == NULL) {
27011 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27012 : }
27013 584 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27014 584 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27015 584 : NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27016 584 : NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27017 584 : NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
27018 : }
27019 1168 : if (flags & NDR_OUT) {
27020 584 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27021 : }
27022 1168 : return NDR_ERR_SUCCESS;
27023 : }
27024 :
27025 1172 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SetPrinter *r)
27026 : {
27027 1172 : TALLOC_CTX *_mem_save_handle_0 = NULL;
27028 1172 : TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
27029 1172 : TALLOC_CTX *_mem_save_devmode_ctr_0 = NULL;
27030 1172 : TALLOC_CTX *_mem_save_secdesc_ctr_0 = NULL;
27031 1172 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27032 1172 : if (flags & NDR_IN) {
27033 588 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27034 588 : NDR_PULL_ALLOC(ndr, r->in.handle);
27035 : }
27036 588 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27037 588 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27038 588 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27039 588 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27040 588 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27041 588 : NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27042 : }
27043 588 : _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27044 588 : NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27045 588 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27046 588 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27047 588 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27048 588 : NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
27049 : }
27050 588 : _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27051 588 : NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
27052 588 : NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27053 588 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27054 588 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27055 588 : NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
27056 : }
27057 588 : _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27058 588 : NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
27059 588 : NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27060 588 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27061 592 : NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
27062 : }
27063 1172 : if (flags & NDR_OUT) {
27064 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
27065 : if (r->in.handle == NULL) {
27066 : NDR_PULL_ALLOC(ndr, r->in.handle);
27067 : NDR_ZERO_STRUCTP(r->in.handle);
27068 : }
27069 : if (r->in.info_ctr == NULL) {
27070 : NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27071 : NDR_ZERO_STRUCTP(r->in.info_ctr);
27072 : }
27073 : if (r->in.devmode_ctr == NULL) {
27074 : NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
27075 : NDR_ZERO_STRUCTP(r->in.devmode_ctr);
27076 : }
27077 : if (r->in.secdesc_ctr == NULL) {
27078 : NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
27079 : NDR_ZERO_STRUCTP(r->in.secdesc_ctr);
27080 : }
27081 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
27082 584 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27083 : }
27084 1168 : return NDR_ERR_SUCCESS;
27085 : }
27086 :
27087 4 : _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SetPrinter *r)
27088 : {
27089 4 : ndr_print_struct(ndr, name, "spoolss_SetPrinter");
27090 4 : if (r == NULL) { ndr_print_null(ndr); return; }
27091 4 : ndr->depth++;
27092 4 : if (flags & NDR_SET_VALUES) {
27093 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27094 : }
27095 4 : if (flags & NDR_IN) {
27096 4 : ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
27097 4 : ndr->depth++;
27098 4 : ndr_print_ptr(ndr, "handle", r->in.handle);
27099 4 : ndr->depth++;
27100 4 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
27101 4 : ndr->depth--;
27102 4 : ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27103 4 : ndr->depth++;
27104 4 : ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27105 4 : ndr->depth--;
27106 4 : ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
27107 4 : ndr->depth++;
27108 4 : ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
27109 4 : ndr->depth--;
27110 4 : ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27111 4 : ndr->depth++;
27112 4 : ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27113 4 : ndr->depth--;
27114 4 : ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
27115 4 : ndr->depth--;
27116 : }
27117 4 : if (flags & NDR_OUT) {
27118 0 : ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
27119 0 : ndr->depth++;
27120 0 : ndr_print_WERROR(ndr, "result", r->out.result);
27121 0 : ndr->depth--;
27122 : }
27123 4 : ndr->depth--;
27124 : }
27125 :
27126 7024 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetPrinter *r)
27127 : {
27128 7024 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27129 7024 : if (flags & NDR_IN) {
27130 3512 : if (r->in.handle == NULL) {
27131 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27132 : }
27133 3512 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27134 3512 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27135 3512 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
27136 3512 : if (r->in.buffer) {
27137 1748 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
27138 : }
27139 3512 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27140 : }
27141 7024 : if (flags & NDR_OUT) {
27142 3512 : if (r->out.needed == NULL) {
27143 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27144 : }
27145 3512 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
27146 3512 : if (r->out.info) {
27147 : {
27148 0 : struct ndr_push *_ndr_info;
27149 1748 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
27150 1748 : NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
27151 1748 : NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
27152 1748 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
27153 : }
27154 : }
27155 3512 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27156 3512 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27157 : }
27158 7024 : return NDR_ERR_SUCCESS;
27159 : }
27160 :
27161 7028 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetPrinter *r)
27162 : {
27163 4 : uint32_t _ptr_buffer;
27164 4 : uint32_t _ptr_info;
27165 7028 : TALLOC_CTX *_mem_save_handle_0 = NULL;
27166 7028 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
27167 7028 : TALLOC_CTX *_mem_save_info_0 = NULL;
27168 7028 : TALLOC_CTX *_mem_save_needed_0 = NULL;
27169 7028 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27170 7028 : if (flags & NDR_IN) {
27171 3514 : NDR_ZERO_STRUCT(r->out);
27172 :
27173 3514 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27174 3514 : NDR_PULL_ALLOC(ndr, r->in.handle);
27175 : }
27176 3514 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27177 3514 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27178 3514 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27179 3514 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27180 3514 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27181 3514 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
27182 3514 : if (_ptr_buffer) {
27183 1748 : NDR_PULL_ALLOC(ndr, r->in.buffer);
27184 : } else {
27185 1766 : r->in.buffer = NULL;
27186 : }
27187 3514 : if (r->in.buffer) {
27188 1748 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27189 1748 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
27190 1748 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
27191 1748 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
27192 : }
27193 3514 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27194 3514 : NDR_PULL_ALLOC(ndr, r->out.needed);
27195 3514 : NDR_ZERO_STRUCTP(r->out.needed);
27196 : }
27197 7028 : if (flags & NDR_OUT) {
27198 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
27199 : if (r->in.handle == NULL) {
27200 : NDR_PULL_ALLOC(ndr, r->in.handle);
27201 : NDR_ZERO_STRUCTP(r->in.handle);
27202 : }
27203 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
27204 3514 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
27205 3514 : if (_ptr_info) {
27206 1748 : NDR_PULL_ALLOC(ndr, r->out.info);
27207 : } else {
27208 1766 : r->out.info = NULL;
27209 : }
27210 3514 : if (r->out.info) {
27211 1748 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27212 1748 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
27213 : {
27214 0 : struct ndr_pull *_ndr_info;
27215 1748 : ssize_t sub_size = r->in.offered;
27216 1748 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, sub_size));
27217 1748 : NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
27218 1748 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
27219 1748 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, sub_size));
27220 : }
27221 1748 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
27222 : }
27223 3514 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27224 2 : NDR_PULL_ALLOC(ndr, r->out.needed);
27225 : }
27226 3514 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27227 3514 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27228 3514 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27229 3514 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27230 3514 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27231 : }
27232 7024 : return NDR_ERR_SUCCESS;
27233 : }
27234 :
27235 4 : _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetPrinter *r)
27236 : {
27237 4 : ndr_print_struct(ndr, name, "spoolss_GetPrinter");
27238 4 : if (r == NULL) { ndr_print_null(ndr); return; }
27239 4 : ndr->depth++;
27240 4 : if (flags & NDR_SET_VALUES) {
27241 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27242 : }
27243 4 : if (flags & NDR_IN) {
27244 2 : ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
27245 2 : ndr->depth++;
27246 2 : ndr_print_ptr(ndr, "handle", r->in.handle);
27247 2 : ndr->depth++;
27248 2 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
27249 2 : ndr->depth--;
27250 2 : ndr_print_uint32(ndr, "level", r->in.level);
27251 2 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
27252 2 : ndr->depth++;
27253 2 : if (r->in.buffer) {
27254 0 : ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
27255 : }
27256 2 : ndr->depth--;
27257 2 : ndr_print_uint32(ndr, "offered", r->in.offered);
27258 2 : ndr->depth--;
27259 : }
27260 4 : if (flags & NDR_OUT) {
27261 2 : ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
27262 2 : ndr->depth++;
27263 2 : ndr_print_ptr(ndr, "info", r->out.info);
27264 2 : ndr->depth++;
27265 2 : if (r->out.info) {
27266 0 : ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
27267 0 : ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
27268 : }
27269 2 : ndr->depth--;
27270 2 : ndr_print_ptr(ndr, "needed", r->out.needed);
27271 2 : ndr->depth++;
27272 2 : ndr_print_uint32(ndr, "needed", *r->out.needed);
27273 2 : ndr->depth--;
27274 2 : ndr_print_WERROR(ndr, "result", r->out.result);
27275 2 : ndr->depth--;
27276 : }
27277 4 : ndr->depth--;
27278 : }
27279 :
27280 0 : static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPrinterDriver *r)
27281 : {
27282 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27283 0 : if (flags & NDR_IN) {
27284 0 : if (r->in.info_ctr == NULL) {
27285 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27286 : }
27287 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
27288 0 : if (r->in.servername) {
27289 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
27290 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27291 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
27292 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27293 : }
27294 0 : NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27295 : }
27296 0 : if (flags & NDR_OUT) {
27297 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27298 : }
27299 0 : return NDR_ERR_SUCCESS;
27300 : }
27301 :
27302 0 : static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPrinterDriver *r)
27303 : {
27304 0 : uint32_t _ptr_servername;
27305 0 : uint32_t size_servername_1 = 0;
27306 0 : uint32_t length_servername_1 = 0;
27307 0 : TALLOC_CTX *_mem_save_servername_0 = NULL;
27308 0 : TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
27309 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27310 0 : if (flags & NDR_IN) {
27311 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
27312 0 : if (_ptr_servername) {
27313 0 : NDR_PULL_ALLOC(ndr, r->in.servername);
27314 : } else {
27315 0 : r->in.servername = NULL;
27316 : }
27317 0 : if (r->in.servername) {
27318 0 : _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27319 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
27320 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
27321 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
27322 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
27323 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
27324 0 : if (length_servername_1 > size_servername_1) {
27325 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
27326 : }
27327 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
27328 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
27329 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
27330 : }
27331 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27332 0 : NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27333 : }
27334 0 : _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27335 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27336 0 : NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27337 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27338 : }
27339 0 : if (flags & NDR_OUT) {
27340 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
27341 : if (r->in.info_ctr == NULL) {
27342 : NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27343 : NDR_ZERO_STRUCTP(r->in.info_ctr);
27344 : }
27345 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
27346 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27347 : }
27348 0 : return NDR_ERR_SUCCESS;
27349 : }
27350 :
27351 0 : _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPrinterDriver *r)
27352 : {
27353 0 : ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
27354 0 : if (r == NULL) { ndr_print_null(ndr); return; }
27355 0 : ndr->depth++;
27356 0 : if (flags & NDR_SET_VALUES) {
27357 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27358 : }
27359 0 : if (flags & NDR_IN) {
27360 0 : ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
27361 0 : ndr->depth++;
27362 0 : ndr_print_ptr(ndr, "servername", r->in.servername);
27363 0 : ndr->depth++;
27364 0 : if (r->in.servername) {
27365 0 : ndr_print_string(ndr, "servername", r->in.servername);
27366 : }
27367 0 : ndr->depth--;
27368 0 : ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27369 0 : ndr->depth++;
27370 0 : ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27371 0 : ndr->depth--;
27372 0 : ndr->depth--;
27373 : }
27374 0 : if (flags & NDR_OUT) {
27375 0 : ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
27376 0 : ndr->depth++;
27377 0 : ndr_print_WERROR(ndr, "result", r->out.result);
27378 0 : ndr->depth--;
27379 : }
27380 0 : ndr->depth--;
27381 : }
27382 :
27383 216 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumPrinterDrivers *r)
27384 : {
27385 216 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27386 216 : if (flags & NDR_IN) {
27387 108 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27388 108 : if (r->in.server) {
27389 108 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27390 108 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27391 108 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27392 108 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27393 : }
27394 108 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
27395 108 : if (r->in.environment) {
27396 108 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
27397 108 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27398 108 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
27399 108 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27400 : }
27401 108 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27402 108 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
27403 108 : if (r->in.buffer) {
27404 24 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
27405 : }
27406 108 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27407 : }
27408 216 : if (flags & NDR_OUT) {
27409 108 : if (r->out.needed == NULL) {
27410 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27411 : }
27412 108 : if (r->out.count == NULL) {
27413 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27414 : }
27415 108 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
27416 108 : if (r->out.info) {
27417 24 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
27418 : }
27419 108 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27420 108 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
27421 108 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27422 : }
27423 216 : return NDR_ERR_SUCCESS;
27424 : }
27425 :
27426 216 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumPrinterDrivers *r)
27427 : {
27428 0 : uint32_t _ptr_server;
27429 216 : uint32_t size_server_1 = 0;
27430 216 : uint32_t length_server_1 = 0;
27431 0 : uint32_t _ptr_environment;
27432 216 : uint32_t size_environment_1 = 0;
27433 216 : uint32_t length_environment_1 = 0;
27434 0 : uint32_t _ptr_buffer;
27435 0 : uint32_t _ptr_info;
27436 216 : TALLOC_CTX *_mem_save_server_0 = NULL;
27437 216 : TALLOC_CTX *_mem_save_environment_0 = NULL;
27438 216 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
27439 216 : TALLOC_CTX *_mem_save_info_0 = NULL;
27440 216 : TALLOC_CTX *_mem_save_needed_0 = NULL;
27441 216 : TALLOC_CTX *_mem_save_count_0 = NULL;
27442 216 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27443 216 : if (flags & NDR_IN) {
27444 108 : NDR_ZERO_STRUCT(r->out);
27445 :
27446 108 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27447 108 : if (_ptr_server) {
27448 108 : NDR_PULL_ALLOC(ndr, r->in.server);
27449 : } else {
27450 0 : r->in.server = NULL;
27451 : }
27452 108 : if (r->in.server) {
27453 108 : _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
27454 108 : NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27455 108 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27456 108 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27457 108 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
27458 108 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
27459 108 : if (length_server_1 > size_server_1) {
27460 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
27461 : }
27462 108 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
27463 108 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
27464 108 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27465 : }
27466 108 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
27467 108 : if (_ptr_environment) {
27468 108 : NDR_PULL_ALLOC(ndr, r->in.environment);
27469 : } else {
27470 0 : r->in.environment = NULL;
27471 : }
27472 108 : if (r->in.environment) {
27473 108 : _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
27474 108 : NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
27475 108 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
27476 108 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
27477 108 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.environment, &size_environment_1));
27478 108 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.environment, &length_environment_1));
27479 108 : if (length_environment_1 > size_environment_1) {
27480 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_environment_1, length_environment_1);
27481 : }
27482 108 : NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
27483 108 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
27484 108 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
27485 : }
27486 108 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27487 108 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
27488 108 : if (_ptr_buffer) {
27489 24 : NDR_PULL_ALLOC(ndr, r->in.buffer);
27490 : } else {
27491 84 : r->in.buffer = NULL;
27492 : }
27493 108 : if (r->in.buffer) {
27494 24 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27495 24 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
27496 24 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
27497 24 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
27498 : }
27499 108 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27500 108 : NDR_PULL_ALLOC(ndr, r->out.needed);
27501 108 : NDR_ZERO_STRUCTP(r->out.needed);
27502 108 : NDR_PULL_ALLOC(ndr, r->out.count);
27503 108 : NDR_ZERO_STRUCTP(r->out.count);
27504 : }
27505 216 : if (flags & NDR_OUT) {
27506 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
27507 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
27508 108 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
27509 108 : if (_ptr_info) {
27510 24 : NDR_PULL_ALLOC(ndr, r->out.info);
27511 : } else {
27512 84 : r->out.info = NULL;
27513 : }
27514 108 : if (r->out.info) {
27515 24 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27516 24 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
27517 24 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
27518 24 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
27519 : }
27520 108 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27521 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
27522 : }
27523 108 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27524 108 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27525 108 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27526 108 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27527 108 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27528 0 : NDR_PULL_ALLOC(ndr, r->out.count);
27529 : }
27530 108 : _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
27531 108 : NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
27532 108 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
27533 108 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
27534 108 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27535 : }
27536 216 : return NDR_ERR_SUCCESS;
27537 : }
27538 :
27539 24 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumPrinterDrivers *r)
27540 : {
27541 0 : uint32_t cntr_info_0;
27542 24 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27543 24 : if (flags & NDR_IN) {
27544 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27545 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
27546 : }
27547 24 : if (flags & NDR_OUT) {
27548 24 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
27549 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
27550 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27551 : }
27552 24 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
27553 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
27554 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27555 : }
27556 : }
27557 24 : return NDR_ERR_SUCCESS;
27558 : }
27559 :
27560 24 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumPrinterDrivers *r)
27561 : {
27562 24 : uint32_t size_info_0 = 0;
27563 0 : uint32_t cntr_info_0;
27564 24 : TALLOC_CTX *_mem_save_info_0 = NULL;
27565 24 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27566 24 : if (flags & NDR_IN) {
27567 0 : NDR_ZERO_STRUCT(r->out);
27568 :
27569 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27570 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
27571 : }
27572 24 : if (flags & NDR_OUT) {
27573 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
27574 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
27575 24 : size_info_0 = r->in.count;
27576 24 : NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
27577 24 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27578 24 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
27579 24 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
27580 0 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
27581 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27582 : }
27583 24 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
27584 0 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
27585 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27586 : }
27587 24 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
27588 24 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
27589 : }
27590 : }
27591 24 : return NDR_ERR_SUCCESS;
27592 : }
27593 :
27594 0 : _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPrinterDrivers *r)
27595 : {
27596 0 : uint32_t cntr_info_2;
27597 0 : ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
27598 0 : if (r == NULL) { ndr_print_null(ndr); return; }
27599 0 : ndr->depth++;
27600 0 : if (flags & NDR_SET_VALUES) {
27601 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27602 : }
27603 0 : if (flags & NDR_IN) {
27604 0 : ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
27605 0 : ndr->depth++;
27606 0 : ndr_print_ptr(ndr, "server", r->in.server);
27607 0 : ndr->depth++;
27608 0 : if (r->in.server) {
27609 0 : ndr_print_string(ndr, "server", r->in.server);
27610 : }
27611 0 : ndr->depth--;
27612 0 : ndr_print_ptr(ndr, "environment", r->in.environment);
27613 0 : ndr->depth++;
27614 0 : if (r->in.environment) {
27615 0 : ndr_print_string(ndr, "environment", r->in.environment);
27616 : }
27617 0 : ndr->depth--;
27618 0 : ndr_print_uint32(ndr, "level", r->in.level);
27619 0 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
27620 0 : ndr->depth++;
27621 0 : if (r->in.buffer) {
27622 0 : ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
27623 : }
27624 0 : ndr->depth--;
27625 0 : ndr_print_uint32(ndr, "offered", r->in.offered);
27626 0 : ndr->depth--;
27627 : }
27628 0 : if (flags & NDR_OUT) {
27629 0 : ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
27630 0 : ndr->depth++;
27631 0 : ndr_print_ptr(ndr, "count", r->out.count);
27632 0 : ndr->depth++;
27633 0 : ndr_print_uint32(ndr, "count", *r->out.count);
27634 0 : ndr->depth--;
27635 0 : ndr_print_ptr(ndr, "info", r->out.info);
27636 0 : ndr->depth++;
27637 0 : ndr_print_ptr(ndr, "info", *r->out.info);
27638 0 : ndr->depth++;
27639 0 : if (*r->out.info) {
27640 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
27641 0 : ndr->depth++;
27642 0 : for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
27643 0 : ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
27644 0 : ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
27645 : }
27646 0 : ndr->depth--;
27647 : }
27648 0 : ndr->depth--;
27649 0 : ndr->depth--;
27650 0 : ndr_print_ptr(ndr, "needed", r->out.needed);
27651 0 : ndr->depth++;
27652 0 : ndr_print_uint32(ndr, "needed", *r->out.needed);
27653 0 : ndr->depth--;
27654 0 : ndr_print_WERROR(ndr, "result", r->out.result);
27655 0 : ndr->depth--;
27656 : }
27657 0 : ndr->depth--;
27658 : }
27659 :
27660 0 : static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetPrinterDriver *r)
27661 : {
27662 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27663 0 : if (flags & NDR_IN) {
27664 0 : if (r->in.handle == NULL) {
27665 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27666 : }
27667 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27668 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
27669 0 : if (r->in.architecture) {
27670 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
27671 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27672 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
27673 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27674 : }
27675 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27676 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
27677 0 : if (r->in.buffer) {
27678 0 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
27679 : }
27680 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27681 : }
27682 0 : if (flags & NDR_OUT) {
27683 0 : if (r->out.needed == NULL) {
27684 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27685 : }
27686 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
27687 0 : if (r->out.info) {
27688 : {
27689 0 : struct ndr_push *_ndr_info;
27690 0 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
27691 0 : NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
27692 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
27693 0 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
27694 : }
27695 : }
27696 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27697 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27698 : }
27699 0 : return NDR_ERR_SUCCESS;
27700 : }
27701 :
27702 0 : static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetPrinterDriver *r)
27703 : {
27704 0 : uint32_t _ptr_architecture;
27705 0 : uint32_t size_architecture_1 = 0;
27706 0 : uint32_t length_architecture_1 = 0;
27707 0 : uint32_t _ptr_buffer;
27708 0 : uint32_t _ptr_info;
27709 0 : TALLOC_CTX *_mem_save_handle_0 = NULL;
27710 0 : TALLOC_CTX *_mem_save_architecture_0 = NULL;
27711 0 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
27712 0 : TALLOC_CTX *_mem_save_info_0 = NULL;
27713 0 : TALLOC_CTX *_mem_save_needed_0 = NULL;
27714 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27715 0 : if (flags & NDR_IN) {
27716 0 : NDR_ZERO_STRUCT(r->out);
27717 :
27718 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27719 0 : NDR_PULL_ALLOC(ndr, r->in.handle);
27720 : }
27721 0 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27722 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27723 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27724 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27725 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
27726 0 : if (_ptr_architecture) {
27727 0 : NDR_PULL_ALLOC(ndr, r->in.architecture);
27728 : } else {
27729 0 : r->in.architecture = NULL;
27730 : }
27731 0 : if (r->in.architecture) {
27732 0 : _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
27733 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
27734 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
27735 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
27736 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.architecture, &size_architecture_1));
27737 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.architecture, &length_architecture_1));
27738 0 : if (length_architecture_1 > size_architecture_1) {
27739 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
27740 : }
27741 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
27742 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
27743 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
27744 : }
27745 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27746 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
27747 0 : if (_ptr_buffer) {
27748 0 : NDR_PULL_ALLOC(ndr, r->in.buffer);
27749 : } else {
27750 0 : r->in.buffer = NULL;
27751 : }
27752 0 : if (r->in.buffer) {
27753 0 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27754 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
27755 0 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
27756 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
27757 : }
27758 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27759 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
27760 0 : NDR_ZERO_STRUCTP(r->out.needed);
27761 : }
27762 0 : if (flags & NDR_OUT) {
27763 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
27764 : if (r->in.handle == NULL) {
27765 : NDR_PULL_ALLOC(ndr, r->in.handle);
27766 : NDR_ZERO_STRUCTP(r->in.handle);
27767 : }
27768 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
27769 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
27770 0 : if (_ptr_info) {
27771 0 : NDR_PULL_ALLOC(ndr, r->out.info);
27772 : } else {
27773 0 : r->out.info = NULL;
27774 : }
27775 0 : if (r->out.info) {
27776 0 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27777 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
27778 : {
27779 0 : struct ndr_pull *_ndr_info;
27780 0 : ssize_t sub_size = r->in.offered;
27781 0 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, sub_size));
27782 0 : NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
27783 0 : NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
27784 0 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, sub_size));
27785 : }
27786 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
27787 : }
27788 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27789 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
27790 : }
27791 0 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27792 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27793 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27794 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27795 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27796 : }
27797 0 : return NDR_ERR_SUCCESS;
27798 : }
27799 :
27800 0 : _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetPrinterDriver *r)
27801 : {
27802 0 : ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
27803 0 : if (r == NULL) { ndr_print_null(ndr); return; }
27804 0 : ndr->depth++;
27805 0 : if (flags & NDR_SET_VALUES) {
27806 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27807 : }
27808 0 : if (flags & NDR_IN) {
27809 0 : ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
27810 0 : ndr->depth++;
27811 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
27812 0 : ndr->depth++;
27813 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
27814 0 : ndr->depth--;
27815 0 : ndr_print_ptr(ndr, "architecture", r->in.architecture);
27816 0 : ndr->depth++;
27817 0 : if (r->in.architecture) {
27818 0 : ndr_print_string(ndr, "architecture", r->in.architecture);
27819 : }
27820 0 : ndr->depth--;
27821 0 : ndr_print_uint32(ndr, "level", r->in.level);
27822 0 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
27823 0 : ndr->depth++;
27824 0 : if (r->in.buffer) {
27825 0 : ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
27826 : }
27827 0 : ndr->depth--;
27828 0 : ndr_print_uint32(ndr, "offered", r->in.offered);
27829 0 : ndr->depth--;
27830 : }
27831 0 : if (flags & NDR_OUT) {
27832 0 : ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
27833 0 : ndr->depth++;
27834 0 : ndr_print_ptr(ndr, "info", r->out.info);
27835 0 : ndr->depth++;
27836 0 : if (r->out.info) {
27837 0 : ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
27838 0 : ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
27839 : }
27840 0 : ndr->depth--;
27841 0 : ndr_print_ptr(ndr, "needed", r->out.needed);
27842 0 : ndr->depth++;
27843 0 : ndr_print_uint32(ndr, "needed", *r->out.needed);
27844 0 : ndr->depth--;
27845 0 : ndr_print_WERROR(ndr, "result", r->out.result);
27846 0 : ndr->depth--;
27847 : }
27848 0 : ndr->depth--;
27849 : }
27850 :
27851 336 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetPrinterDriverDirectory *r)
27852 : {
27853 336 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27854 336 : if (flags & NDR_IN) {
27855 168 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27856 168 : if (r->in.server) {
27857 160 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27858 160 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27859 160 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27860 160 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27861 : }
27862 168 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
27863 168 : if (r->in.environment) {
27864 168 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
27865 168 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27866 168 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
27867 168 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27868 : }
27869 168 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27870 168 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
27871 168 : if (r->in.buffer) {
27872 84 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
27873 : }
27874 168 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27875 : }
27876 336 : if (flags & NDR_OUT) {
27877 168 : if (r->out.needed == NULL) {
27878 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27879 : }
27880 168 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
27881 168 : if (r->out.info) {
27882 : {
27883 0 : struct ndr_push *_ndr_info;
27884 84 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
27885 84 : NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
27886 84 : NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
27887 84 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
27888 : }
27889 : }
27890 168 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27891 168 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27892 : }
27893 336 : return NDR_ERR_SUCCESS;
27894 : }
27895 :
27896 342 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetPrinterDriverDirectory *r)
27897 : {
27898 6 : uint32_t _ptr_server;
27899 342 : uint32_t size_server_1 = 0;
27900 342 : uint32_t length_server_1 = 0;
27901 6 : uint32_t _ptr_environment;
27902 342 : uint32_t size_environment_1 = 0;
27903 342 : uint32_t length_environment_1 = 0;
27904 6 : uint32_t _ptr_buffer;
27905 6 : uint32_t _ptr_info;
27906 342 : TALLOC_CTX *_mem_save_server_0 = NULL;
27907 342 : TALLOC_CTX *_mem_save_environment_0 = NULL;
27908 342 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
27909 342 : TALLOC_CTX *_mem_save_info_0 = NULL;
27910 342 : TALLOC_CTX *_mem_save_needed_0 = NULL;
27911 342 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27912 342 : if (flags & NDR_IN) {
27913 172 : NDR_ZERO_STRUCT(r->out);
27914 :
27915 172 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27916 172 : if (_ptr_server) {
27917 164 : NDR_PULL_ALLOC(ndr, r->in.server);
27918 : } else {
27919 8 : r->in.server = NULL;
27920 : }
27921 172 : if (r->in.server) {
27922 164 : _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
27923 164 : NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27924 164 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27925 164 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27926 164 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
27927 164 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
27928 164 : if (length_server_1 > size_server_1) {
27929 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
27930 : }
27931 164 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
27932 164 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
27933 164 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27934 : }
27935 172 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
27936 172 : if (_ptr_environment) {
27937 172 : NDR_PULL_ALLOC(ndr, r->in.environment);
27938 : } else {
27939 0 : r->in.environment = NULL;
27940 : }
27941 172 : if (r->in.environment) {
27942 172 : _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
27943 172 : NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
27944 172 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
27945 172 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
27946 172 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.environment, &size_environment_1));
27947 172 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.environment, &length_environment_1));
27948 172 : if (length_environment_1 > size_environment_1) {
27949 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_environment_1, length_environment_1);
27950 : }
27951 172 : NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
27952 172 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
27953 172 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
27954 : }
27955 172 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27956 172 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
27957 172 : if (_ptr_buffer) {
27958 88 : NDR_PULL_ALLOC(ndr, r->in.buffer);
27959 : } else {
27960 84 : r->in.buffer = NULL;
27961 : }
27962 172 : if (r->in.buffer) {
27963 88 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27964 88 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
27965 88 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
27966 88 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
27967 : }
27968 172 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27969 172 : NDR_PULL_ALLOC(ndr, r->out.needed);
27970 172 : NDR_ZERO_STRUCTP(r->out.needed);
27971 : }
27972 342 : if (flags & NDR_OUT) {
27973 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
27974 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
27975 170 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
27976 170 : if (_ptr_info) {
27977 86 : NDR_PULL_ALLOC(ndr, r->out.info);
27978 : } else {
27979 84 : r->out.info = NULL;
27980 : }
27981 170 : if (r->out.info) {
27982 86 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27983 86 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
27984 : {
27985 2 : struct ndr_pull *_ndr_info;
27986 86 : ssize_t sub_size = r->in.offered;
27987 86 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, sub_size));
27988 86 : NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
27989 86 : NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
27990 86 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, sub_size));
27991 : }
27992 86 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
27993 : }
27994 170 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27995 2 : NDR_PULL_ALLOC(ndr, r->out.needed);
27996 : }
27997 170 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27998 170 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27999 170 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28000 170 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28001 170 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28002 : }
28003 336 : return NDR_ERR_SUCCESS;
28004 : }
28005 :
28006 6 : _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetPrinterDriverDirectory *r)
28007 : {
28008 6 : ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
28009 6 : if (r == NULL) { ndr_print_null(ndr); return; }
28010 6 : ndr->depth++;
28011 6 : if (flags & NDR_SET_VALUES) {
28012 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28013 : }
28014 6 : if (flags & NDR_IN) {
28015 4 : ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
28016 4 : ndr->depth++;
28017 4 : ndr_print_ptr(ndr, "server", r->in.server);
28018 4 : ndr->depth++;
28019 4 : if (r->in.server) {
28020 4 : ndr_print_string(ndr, "server", r->in.server);
28021 : }
28022 4 : ndr->depth--;
28023 4 : ndr_print_ptr(ndr, "environment", r->in.environment);
28024 4 : ndr->depth++;
28025 4 : if (r->in.environment) {
28026 4 : ndr_print_string(ndr, "environment", r->in.environment);
28027 : }
28028 4 : ndr->depth--;
28029 4 : ndr_print_uint32(ndr, "level", r->in.level);
28030 4 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
28031 4 : ndr->depth++;
28032 4 : if (r->in.buffer) {
28033 4 : ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
28034 : }
28035 4 : ndr->depth--;
28036 4 : ndr_print_uint32(ndr, "offered", r->in.offered);
28037 4 : ndr->depth--;
28038 : }
28039 6 : if (flags & NDR_OUT) {
28040 2 : ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
28041 2 : ndr->depth++;
28042 2 : ndr_print_ptr(ndr, "info", r->out.info);
28043 2 : ndr->depth++;
28044 2 : if (r->out.info) {
28045 2 : ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
28046 2 : ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
28047 : }
28048 2 : ndr->depth--;
28049 2 : ndr_print_ptr(ndr, "needed", r->out.needed);
28050 2 : ndr->depth++;
28051 2 : ndr_print_uint32(ndr, "needed", *r->out.needed);
28052 2 : ndr->depth--;
28053 2 : ndr_print_WERROR(ndr, "result", r->out.result);
28054 2 : ndr->depth--;
28055 : }
28056 6 : ndr->depth--;
28057 : }
28058 :
28059 0 : static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrinterDriver *r)
28060 : {
28061 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28062 0 : if (flags & NDR_IN) {
28063 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
28064 0 : if (r->in.server) {
28065 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28066 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28067 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28068 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28069 : }
28070 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28071 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28072 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28073 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28074 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28075 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28076 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28077 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28078 : }
28079 0 : if (flags & NDR_OUT) {
28080 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28081 : }
28082 0 : return NDR_ERR_SUCCESS;
28083 : }
28084 :
28085 0 : static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrinterDriver *r)
28086 : {
28087 0 : uint32_t _ptr_server;
28088 0 : uint32_t size_server_1 = 0;
28089 0 : uint32_t length_server_1 = 0;
28090 0 : uint32_t size_architecture_0 = 0;
28091 0 : uint32_t length_architecture_0 = 0;
28092 0 : uint32_t size_driver_0 = 0;
28093 0 : uint32_t length_driver_0 = 0;
28094 0 : TALLOC_CTX *_mem_save_server_0 = NULL;
28095 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28096 0 : if (flags & NDR_IN) {
28097 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
28098 0 : if (_ptr_server) {
28099 0 : NDR_PULL_ALLOC(ndr, r->in.server);
28100 : } else {
28101 0 : r->in.server = NULL;
28102 : }
28103 0 : if (r->in.server) {
28104 0 : _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
28105 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
28106 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
28107 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
28108 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
28109 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
28110 0 : if (length_server_1 > size_server_1) {
28111 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
28112 : }
28113 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
28114 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
28115 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
28116 : }
28117 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
28118 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
28119 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.architecture, &size_architecture_0));
28120 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.architecture, &length_architecture_0));
28121 0 : if (length_architecture_0 > size_architecture_0) {
28122 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_0, length_architecture_0);
28123 : }
28124 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_0, sizeof(uint16_t)));
28125 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_0, sizeof(uint16_t), CH_UTF16));
28126 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
28127 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
28128 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.driver, &size_driver_0));
28129 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.driver, &length_driver_0));
28130 0 : if (length_driver_0 > size_driver_0) {
28131 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_0, length_driver_0);
28132 : }
28133 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_0, sizeof(uint16_t)));
28134 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, length_driver_0, sizeof(uint16_t), CH_UTF16));
28135 : }
28136 0 : if (flags & NDR_OUT) {
28137 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
28138 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
28139 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28140 : }
28141 0 : return NDR_ERR_SUCCESS;
28142 : }
28143 :
28144 0 : _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrinterDriver *r)
28145 : {
28146 0 : ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
28147 0 : if (r == NULL) { ndr_print_null(ndr); return; }
28148 0 : ndr->depth++;
28149 0 : if (flags & NDR_SET_VALUES) {
28150 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28151 : }
28152 0 : if (flags & NDR_IN) {
28153 0 : ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
28154 0 : ndr->depth++;
28155 0 : ndr_print_ptr(ndr, "server", r->in.server);
28156 0 : ndr->depth++;
28157 0 : if (r->in.server) {
28158 0 : ndr_print_string(ndr, "server", r->in.server);
28159 : }
28160 0 : ndr->depth--;
28161 0 : ndr_print_string(ndr, "architecture", r->in.architecture);
28162 0 : ndr_print_string(ndr, "driver", r->in.driver);
28163 0 : ndr->depth--;
28164 : }
28165 0 : if (flags & NDR_OUT) {
28166 0 : ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
28167 0 : ndr->depth++;
28168 0 : ndr_print_WERROR(ndr, "result", r->out.result);
28169 0 : ndr->depth--;
28170 : }
28171 0 : ndr->depth--;
28172 : }
28173 :
28174 8 : static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPrintProcessor *r)
28175 : {
28176 8 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28177 8 : if (flags & NDR_IN) {
28178 4 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
28179 4 : if (r->in.server) {
28180 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28181 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28182 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28183 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28184 : }
28185 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28186 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28187 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28188 4 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28189 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
28190 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28191 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
28192 4 : 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));
28193 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
28194 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28195 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
28196 4 : 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));
28197 : }
28198 8 : if (flags & NDR_OUT) {
28199 4 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28200 : }
28201 8 : return NDR_ERR_SUCCESS;
28202 : }
28203 :
28204 8 : static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPrintProcessor *r)
28205 : {
28206 0 : uint32_t _ptr_server;
28207 8 : uint32_t size_server_1 = 0;
28208 8 : uint32_t length_server_1 = 0;
28209 8 : uint32_t size_architecture_0 = 0;
28210 8 : uint32_t length_architecture_0 = 0;
28211 8 : uint32_t size_path_name_0 = 0;
28212 8 : uint32_t length_path_name_0 = 0;
28213 8 : uint32_t size_print_processor_name_0 = 0;
28214 8 : uint32_t length_print_processor_name_0 = 0;
28215 8 : TALLOC_CTX *_mem_save_server_0 = NULL;
28216 8 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28217 8 : if (flags & NDR_IN) {
28218 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
28219 4 : if (_ptr_server) {
28220 0 : NDR_PULL_ALLOC(ndr, r->in.server);
28221 : } else {
28222 4 : r->in.server = NULL;
28223 : }
28224 4 : if (r->in.server) {
28225 0 : _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
28226 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
28227 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
28228 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
28229 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
28230 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
28231 0 : if (length_server_1 > size_server_1) {
28232 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
28233 : }
28234 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
28235 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
28236 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
28237 : }
28238 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
28239 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
28240 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.architecture, &size_architecture_0));
28241 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.architecture, &length_architecture_0));
28242 4 : if (length_architecture_0 > size_architecture_0) {
28243 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_0, length_architecture_0);
28244 : }
28245 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_0, sizeof(uint16_t)));
28246 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_0, sizeof(uint16_t), CH_UTF16));
28247 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
28248 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
28249 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.path_name, &size_path_name_0));
28250 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.path_name, &length_path_name_0));
28251 4 : if (length_path_name_0 > size_path_name_0) {
28252 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_path_name_0, length_path_name_0);
28253 : }
28254 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_path_name_0, sizeof(uint16_t)));
28255 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path_name, length_path_name_0, sizeof(uint16_t), CH_UTF16));
28256 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
28257 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
28258 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.print_processor_name, &size_print_processor_name_0));
28259 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.print_processor_name, &length_print_processor_name_0));
28260 4 : if (length_print_processor_name_0 > size_print_processor_name_0) {
28261 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_print_processor_name_0, length_print_processor_name_0);
28262 : }
28263 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_name_0, sizeof(uint16_t)));
28264 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, length_print_processor_name_0, sizeof(uint16_t), CH_UTF16));
28265 : }
28266 8 : if (flags & NDR_OUT) {
28267 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
28268 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
28269 4 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28270 : }
28271 8 : return NDR_ERR_SUCCESS;
28272 : }
28273 :
28274 0 : _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPrintProcessor *r)
28275 : {
28276 0 : ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
28277 0 : if (r == NULL) { ndr_print_null(ndr); return; }
28278 0 : ndr->depth++;
28279 0 : if (flags & NDR_SET_VALUES) {
28280 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28281 : }
28282 0 : if (flags & NDR_IN) {
28283 0 : ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
28284 0 : ndr->depth++;
28285 0 : ndr_print_ptr(ndr, "server", r->in.server);
28286 0 : ndr->depth++;
28287 0 : if (r->in.server) {
28288 0 : ndr_print_string(ndr, "server", r->in.server);
28289 : }
28290 0 : ndr->depth--;
28291 0 : ndr_print_string(ndr, "architecture", r->in.architecture);
28292 0 : ndr_print_string(ndr, "path_name", r->in.path_name);
28293 0 : ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
28294 0 : ndr->depth--;
28295 : }
28296 0 : if (flags & NDR_OUT) {
28297 0 : ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
28298 0 : ndr->depth++;
28299 0 : ndr_print_WERROR(ndr, "result", r->out.result);
28300 0 : ndr->depth--;
28301 : }
28302 0 : ndr->depth--;
28303 : }
28304 :
28305 96 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumPrintProcessors *r)
28306 : {
28307 96 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28308 96 : if (flags & NDR_IN) {
28309 48 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
28310 48 : if (r->in.servername) {
28311 48 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28312 48 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28313 48 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
28314 48 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28315 : }
28316 48 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
28317 48 : if (r->in.environment) {
28318 48 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
28319 48 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28320 48 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
28321 48 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28322 : }
28323 48 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
28324 48 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
28325 48 : if (r->in.buffer) {
28326 12 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
28327 : }
28328 48 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28329 : }
28330 96 : if (flags & NDR_OUT) {
28331 48 : if (r->out.needed == NULL) {
28332 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28333 : }
28334 48 : if (r->out.count == NULL) {
28335 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28336 : }
28337 48 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
28338 48 : if (r->out.info) {
28339 12 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
28340 : }
28341 48 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28342 48 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
28343 48 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28344 : }
28345 96 : return NDR_ERR_SUCCESS;
28346 : }
28347 :
28348 96 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumPrintProcessors *r)
28349 : {
28350 0 : uint32_t _ptr_servername;
28351 96 : uint32_t size_servername_1 = 0;
28352 96 : uint32_t length_servername_1 = 0;
28353 0 : uint32_t _ptr_environment;
28354 96 : uint32_t size_environment_1 = 0;
28355 96 : uint32_t length_environment_1 = 0;
28356 0 : uint32_t _ptr_buffer;
28357 0 : uint32_t _ptr_info;
28358 96 : TALLOC_CTX *_mem_save_servername_0 = NULL;
28359 96 : TALLOC_CTX *_mem_save_environment_0 = NULL;
28360 96 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
28361 96 : TALLOC_CTX *_mem_save_info_0 = NULL;
28362 96 : TALLOC_CTX *_mem_save_needed_0 = NULL;
28363 96 : TALLOC_CTX *_mem_save_count_0 = NULL;
28364 96 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28365 96 : if (flags & NDR_IN) {
28366 48 : NDR_ZERO_STRUCT(r->out);
28367 :
28368 48 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
28369 48 : if (_ptr_servername) {
28370 48 : NDR_PULL_ALLOC(ndr, r->in.servername);
28371 : } else {
28372 0 : r->in.servername = NULL;
28373 : }
28374 48 : if (r->in.servername) {
28375 48 : _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
28376 48 : NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
28377 48 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
28378 48 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
28379 48 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
28380 48 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
28381 48 : if (length_servername_1 > size_servername_1) {
28382 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
28383 : }
28384 48 : NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
28385 48 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
28386 48 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
28387 : }
28388 48 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
28389 48 : if (_ptr_environment) {
28390 48 : NDR_PULL_ALLOC(ndr, r->in.environment);
28391 : } else {
28392 0 : r->in.environment = NULL;
28393 : }
28394 48 : if (r->in.environment) {
28395 48 : _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
28396 48 : NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
28397 48 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
28398 48 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
28399 48 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.environment, &size_environment_1));
28400 48 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.environment, &length_environment_1));
28401 48 : if (length_environment_1 > size_environment_1) {
28402 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_environment_1, length_environment_1);
28403 : }
28404 48 : NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
28405 48 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
28406 48 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
28407 : }
28408 48 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
28409 48 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
28410 48 : if (_ptr_buffer) {
28411 12 : NDR_PULL_ALLOC(ndr, r->in.buffer);
28412 : } else {
28413 36 : r->in.buffer = NULL;
28414 : }
28415 48 : if (r->in.buffer) {
28416 12 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
28417 12 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
28418 12 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
28419 12 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
28420 : }
28421 48 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28422 48 : NDR_PULL_ALLOC(ndr, r->out.needed);
28423 48 : NDR_ZERO_STRUCTP(r->out.needed);
28424 48 : NDR_PULL_ALLOC(ndr, r->out.count);
28425 48 : NDR_ZERO_STRUCTP(r->out.count);
28426 : }
28427 96 : if (flags & NDR_OUT) {
28428 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
28429 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
28430 48 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
28431 48 : if (_ptr_info) {
28432 12 : NDR_PULL_ALLOC(ndr, r->out.info);
28433 : } else {
28434 36 : r->out.info = NULL;
28435 : }
28436 48 : if (r->out.info) {
28437 12 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
28438 12 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
28439 12 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
28440 12 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
28441 : }
28442 48 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28443 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
28444 : }
28445 48 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28446 48 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28447 48 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28448 48 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28449 48 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28450 0 : NDR_PULL_ALLOC(ndr, r->out.count);
28451 : }
28452 48 : _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
28453 48 : NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
28454 48 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
28455 48 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
28456 48 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28457 : }
28458 96 : return NDR_ERR_SUCCESS;
28459 : }
28460 :
28461 36 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumPrintProcessors *r)
28462 : {
28463 0 : uint32_t cntr_info_0;
28464 36 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28465 36 : if (flags & NDR_IN) {
28466 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
28467 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
28468 : }
28469 36 : if (flags & NDR_OUT) {
28470 72 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
28471 36 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
28472 36 : NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28473 : }
28474 72 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
28475 36 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
28476 36 : NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28477 : }
28478 : }
28479 36 : return NDR_ERR_SUCCESS;
28480 : }
28481 :
28482 12 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumPrintProcessors *r)
28483 : {
28484 12 : uint32_t size_info_0 = 0;
28485 0 : uint32_t cntr_info_0;
28486 12 : TALLOC_CTX *_mem_save_info_0 = NULL;
28487 12 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28488 12 : if (flags & NDR_IN) {
28489 0 : NDR_ZERO_STRUCT(r->out);
28490 :
28491 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
28492 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
28493 : }
28494 12 : if (flags & NDR_OUT) {
28495 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
28496 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
28497 12 : size_info_0 = r->in.count;
28498 12 : NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
28499 12 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
28500 12 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
28501 24 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
28502 12 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
28503 12 : NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28504 : }
28505 24 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
28506 12 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
28507 12 : NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28508 : }
28509 12 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
28510 24 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
28511 : }
28512 : }
28513 12 : return NDR_ERR_SUCCESS;
28514 : }
28515 :
28516 0 : _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPrintProcessors *r)
28517 : {
28518 0 : uint32_t cntr_info_2;
28519 0 : ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
28520 0 : if (r == NULL) { ndr_print_null(ndr); return; }
28521 0 : ndr->depth++;
28522 0 : if (flags & NDR_SET_VALUES) {
28523 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28524 : }
28525 0 : if (flags & NDR_IN) {
28526 0 : ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
28527 0 : ndr->depth++;
28528 0 : ndr_print_ptr(ndr, "servername", r->in.servername);
28529 0 : ndr->depth++;
28530 0 : if (r->in.servername) {
28531 0 : ndr_print_string(ndr, "servername", r->in.servername);
28532 : }
28533 0 : ndr->depth--;
28534 0 : ndr_print_ptr(ndr, "environment", r->in.environment);
28535 0 : ndr->depth++;
28536 0 : if (r->in.environment) {
28537 0 : ndr_print_string(ndr, "environment", r->in.environment);
28538 : }
28539 0 : ndr->depth--;
28540 0 : ndr_print_uint32(ndr, "level", r->in.level);
28541 0 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
28542 0 : ndr->depth++;
28543 0 : if (r->in.buffer) {
28544 0 : ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
28545 : }
28546 0 : ndr->depth--;
28547 0 : ndr_print_uint32(ndr, "offered", r->in.offered);
28548 0 : ndr->depth--;
28549 : }
28550 0 : if (flags & NDR_OUT) {
28551 0 : ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
28552 0 : ndr->depth++;
28553 0 : ndr_print_ptr(ndr, "count", r->out.count);
28554 0 : ndr->depth++;
28555 0 : ndr_print_uint32(ndr, "count", *r->out.count);
28556 0 : ndr->depth--;
28557 0 : ndr_print_ptr(ndr, "info", r->out.info);
28558 0 : ndr->depth++;
28559 0 : ndr_print_ptr(ndr, "info", *r->out.info);
28560 0 : ndr->depth++;
28561 0 : if (*r->out.info) {
28562 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
28563 0 : ndr->depth++;
28564 0 : for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
28565 0 : ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
28566 0 : ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
28567 : }
28568 0 : ndr->depth--;
28569 : }
28570 0 : ndr->depth--;
28571 0 : ndr->depth--;
28572 0 : ndr_print_ptr(ndr, "needed", r->out.needed);
28573 0 : ndr->depth++;
28574 0 : ndr_print_uint32(ndr, "needed", *r->out.needed);
28575 0 : ndr->depth--;
28576 0 : ndr_print_WERROR(ndr, "result", r->out.result);
28577 0 : ndr->depth--;
28578 : }
28579 0 : ndr->depth--;
28580 : }
28581 :
28582 80 : static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetPrintProcessorDirectory *r)
28583 : {
28584 80 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28585 80 : if (flags & NDR_IN) {
28586 40 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
28587 40 : if (r->in.server) {
28588 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28589 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28590 32 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28591 32 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28592 : }
28593 40 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
28594 40 : if (r->in.environment) {
28595 40 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
28596 40 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28597 40 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
28598 40 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28599 : }
28600 40 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
28601 40 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
28602 40 : if (r->in.buffer) {
28603 20 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
28604 : }
28605 40 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28606 : }
28607 80 : if (flags & NDR_OUT) {
28608 40 : if (r->out.needed == NULL) {
28609 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28610 : }
28611 40 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
28612 40 : if (r->out.info) {
28613 : {
28614 0 : struct ndr_push *_ndr_info;
28615 20 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
28616 20 : NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
28617 20 : NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
28618 20 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
28619 : }
28620 : }
28621 40 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28622 40 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28623 : }
28624 80 : return NDR_ERR_SUCCESS;
28625 : }
28626 :
28627 80 : static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetPrintProcessorDirectory *r)
28628 : {
28629 0 : uint32_t _ptr_server;
28630 80 : uint32_t size_server_1 = 0;
28631 80 : uint32_t length_server_1 = 0;
28632 0 : uint32_t _ptr_environment;
28633 80 : uint32_t size_environment_1 = 0;
28634 80 : uint32_t length_environment_1 = 0;
28635 0 : uint32_t _ptr_buffer;
28636 0 : uint32_t _ptr_info;
28637 80 : TALLOC_CTX *_mem_save_server_0 = NULL;
28638 80 : TALLOC_CTX *_mem_save_environment_0 = NULL;
28639 80 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
28640 80 : TALLOC_CTX *_mem_save_info_0 = NULL;
28641 80 : TALLOC_CTX *_mem_save_needed_0 = NULL;
28642 80 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28643 80 : if (flags & NDR_IN) {
28644 40 : NDR_ZERO_STRUCT(r->out);
28645 :
28646 40 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
28647 40 : if (_ptr_server) {
28648 32 : NDR_PULL_ALLOC(ndr, r->in.server);
28649 : } else {
28650 8 : r->in.server = NULL;
28651 : }
28652 40 : if (r->in.server) {
28653 32 : _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
28654 32 : NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
28655 32 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
28656 32 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
28657 32 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
28658 32 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
28659 32 : if (length_server_1 > size_server_1) {
28660 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
28661 : }
28662 32 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
28663 32 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
28664 32 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
28665 : }
28666 40 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
28667 40 : if (_ptr_environment) {
28668 40 : NDR_PULL_ALLOC(ndr, r->in.environment);
28669 : } else {
28670 0 : r->in.environment = NULL;
28671 : }
28672 40 : if (r->in.environment) {
28673 40 : _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
28674 40 : NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
28675 40 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
28676 40 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
28677 40 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.environment, &size_environment_1));
28678 40 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.environment, &length_environment_1));
28679 40 : if (length_environment_1 > size_environment_1) {
28680 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_environment_1, length_environment_1);
28681 : }
28682 40 : NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
28683 40 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
28684 40 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
28685 : }
28686 40 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
28687 40 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
28688 40 : if (_ptr_buffer) {
28689 20 : NDR_PULL_ALLOC(ndr, r->in.buffer);
28690 : } else {
28691 20 : r->in.buffer = NULL;
28692 : }
28693 40 : if (r->in.buffer) {
28694 20 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
28695 20 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
28696 20 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
28697 20 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
28698 : }
28699 40 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28700 40 : NDR_PULL_ALLOC(ndr, r->out.needed);
28701 40 : NDR_ZERO_STRUCTP(r->out.needed);
28702 : }
28703 80 : if (flags & NDR_OUT) {
28704 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
28705 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
28706 40 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
28707 40 : if (_ptr_info) {
28708 20 : NDR_PULL_ALLOC(ndr, r->out.info);
28709 : } else {
28710 20 : r->out.info = NULL;
28711 : }
28712 40 : if (r->out.info) {
28713 20 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
28714 20 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
28715 : {
28716 0 : struct ndr_pull *_ndr_info;
28717 20 : ssize_t sub_size = r->in.offered;
28718 20 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, sub_size));
28719 20 : NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
28720 20 : NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
28721 20 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, sub_size));
28722 : }
28723 20 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
28724 : }
28725 40 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28726 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
28727 : }
28728 40 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28729 40 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28730 40 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28731 40 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28732 40 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28733 : }
28734 80 : return NDR_ERR_SUCCESS;
28735 : }
28736 :
28737 0 : _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetPrintProcessorDirectory *r)
28738 : {
28739 0 : ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
28740 0 : if (r == NULL) { ndr_print_null(ndr); return; }
28741 0 : ndr->depth++;
28742 0 : if (flags & NDR_SET_VALUES) {
28743 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28744 : }
28745 0 : if (flags & NDR_IN) {
28746 0 : ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
28747 0 : ndr->depth++;
28748 0 : ndr_print_ptr(ndr, "server", r->in.server);
28749 0 : ndr->depth++;
28750 0 : if (r->in.server) {
28751 0 : ndr_print_string(ndr, "server", r->in.server);
28752 : }
28753 0 : ndr->depth--;
28754 0 : ndr_print_ptr(ndr, "environment", r->in.environment);
28755 0 : ndr->depth++;
28756 0 : if (r->in.environment) {
28757 0 : ndr_print_string(ndr, "environment", r->in.environment);
28758 : }
28759 0 : ndr->depth--;
28760 0 : ndr_print_uint32(ndr, "level", r->in.level);
28761 0 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
28762 0 : ndr->depth++;
28763 0 : if (r->in.buffer) {
28764 0 : ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
28765 : }
28766 0 : ndr->depth--;
28767 0 : ndr_print_uint32(ndr, "offered", r->in.offered);
28768 0 : ndr->depth--;
28769 : }
28770 0 : if (flags & NDR_OUT) {
28771 0 : ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
28772 0 : ndr->depth++;
28773 0 : ndr_print_ptr(ndr, "info", r->out.info);
28774 0 : ndr->depth++;
28775 0 : if (r->out.info) {
28776 0 : ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
28777 0 : ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
28778 : }
28779 0 : ndr->depth--;
28780 0 : ndr_print_ptr(ndr, "needed", r->out.needed);
28781 0 : ndr->depth++;
28782 0 : ndr_print_uint32(ndr, "needed", *r->out.needed);
28783 0 : ndr->depth--;
28784 0 : ndr_print_WERROR(ndr, "result", r->out.result);
28785 0 : ndr->depth--;
28786 : }
28787 0 : ndr->depth--;
28788 : }
28789 :
28790 1336 : static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_StartDocPrinter *r)
28791 : {
28792 1336 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28793 1336 : if (flags & NDR_IN) {
28794 668 : if (r->in.handle == NULL) {
28795 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28796 : }
28797 668 : if (r->in.info_ctr == NULL) {
28798 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28799 : }
28800 668 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28801 668 : NDR_CHECK(ndr_push_spoolss_DocumentInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28802 : }
28803 1336 : if (flags & NDR_OUT) {
28804 668 : if (r->out.job_id == NULL) {
28805 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28806 : }
28807 668 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
28808 668 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28809 : }
28810 1336 : return NDR_ERR_SUCCESS;
28811 : }
28812 :
28813 1336 : static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_StartDocPrinter *r)
28814 : {
28815 1336 : TALLOC_CTX *_mem_save_handle_0 = NULL;
28816 1336 : TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
28817 1336 : TALLOC_CTX *_mem_save_job_id_0 = NULL;
28818 1336 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28819 1336 : if (flags & NDR_IN) {
28820 668 : NDR_ZERO_STRUCT(r->out);
28821 :
28822 668 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28823 668 : NDR_PULL_ALLOC(ndr, r->in.handle);
28824 : }
28825 668 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28826 668 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28827 668 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28828 668 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28829 668 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28830 668 : NDR_PULL_ALLOC(ndr, r->in.info_ctr);
28831 : }
28832 668 : _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28833 668 : NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
28834 668 : NDR_CHECK(ndr_pull_spoolss_DocumentInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28835 668 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28836 668 : NDR_PULL_ALLOC(ndr, r->out.job_id);
28837 668 : NDR_ZERO_STRUCTP(r->out.job_id);
28838 : }
28839 1336 : if (flags & NDR_OUT) {
28840 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
28841 : if (r->in.handle == NULL) {
28842 : NDR_PULL_ALLOC(ndr, r->in.handle);
28843 : NDR_ZERO_STRUCTP(r->in.handle);
28844 : }
28845 : if (r->in.info_ctr == NULL) {
28846 : NDR_PULL_ALLOC(ndr, r->in.info_ctr);
28847 : NDR_ZERO_STRUCTP(r->in.info_ctr);
28848 : }
28849 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
28850 668 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28851 28 : NDR_PULL_ALLOC(ndr, r->out.job_id);
28852 : }
28853 668 : _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
28854 668 : NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
28855 668 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
28856 668 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
28857 668 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28858 : }
28859 1336 : return NDR_ERR_SUCCESS;
28860 : }
28861 :
28862 0 : _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_StartDocPrinter *r)
28863 : {
28864 0 : ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
28865 0 : if (r == NULL) { ndr_print_null(ndr); return; }
28866 0 : ndr->depth++;
28867 0 : if (flags & NDR_SET_VALUES) {
28868 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28869 : }
28870 0 : if (flags & NDR_IN) {
28871 0 : ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
28872 0 : ndr->depth++;
28873 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
28874 0 : ndr->depth++;
28875 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
28876 0 : ndr->depth--;
28877 0 : ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
28878 0 : ndr->depth++;
28879 0 : ndr_print_spoolss_DocumentInfoCtr(ndr, "info_ctr", r->in.info_ctr);
28880 0 : ndr->depth--;
28881 0 : ndr->depth--;
28882 : }
28883 0 : if (flags & NDR_OUT) {
28884 0 : ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
28885 0 : ndr->depth++;
28886 0 : ndr_print_ptr(ndr, "job_id", r->out.job_id);
28887 0 : ndr->depth++;
28888 0 : ndr_print_uint32(ndr, "job_id", *r->out.job_id);
28889 0 : ndr->depth--;
28890 0 : ndr_print_WERROR(ndr, "result", r->out.result);
28891 0 : ndr->depth--;
28892 : }
28893 0 : ndr->depth--;
28894 : }
28895 :
28896 3840 : static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_StartPagePrinter *r)
28897 : {
28898 3840 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28899 3840 : if (flags & NDR_IN) {
28900 1920 : if (r->in.handle == NULL) {
28901 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28902 : }
28903 1920 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28904 : }
28905 3840 : if (flags & NDR_OUT) {
28906 1920 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28907 : }
28908 3840 : return NDR_ERR_SUCCESS;
28909 : }
28910 :
28911 3840 : static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_StartPagePrinter *r)
28912 : {
28913 3840 : TALLOC_CTX *_mem_save_handle_0 = NULL;
28914 3840 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28915 3840 : if (flags & NDR_IN) {
28916 1920 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28917 1920 : NDR_PULL_ALLOC(ndr, r->in.handle);
28918 : }
28919 1920 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28920 1920 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28921 1920 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28922 1920 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28923 : }
28924 3840 : if (flags & NDR_OUT) {
28925 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
28926 : if (r->in.handle == NULL) {
28927 : NDR_PULL_ALLOC(ndr, r->in.handle);
28928 : NDR_ZERO_STRUCTP(r->in.handle);
28929 : }
28930 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
28931 1920 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28932 : }
28933 3840 : return NDR_ERR_SUCCESS;
28934 : }
28935 :
28936 0 : _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_StartPagePrinter *r)
28937 : {
28938 0 : ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
28939 0 : if (r == NULL) { ndr_print_null(ndr); return; }
28940 0 : ndr->depth++;
28941 0 : if (flags & NDR_SET_VALUES) {
28942 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28943 : }
28944 0 : if (flags & NDR_IN) {
28945 0 : ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
28946 0 : ndr->depth++;
28947 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
28948 0 : ndr->depth++;
28949 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
28950 0 : ndr->depth--;
28951 0 : ndr->depth--;
28952 : }
28953 0 : if (flags & NDR_OUT) {
28954 0 : ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
28955 0 : ndr->depth++;
28956 0 : ndr_print_WERROR(ndr, "result", r->out.result);
28957 0 : ndr->depth--;
28958 : }
28959 0 : ndr->depth--;
28960 : }
28961 :
28962 3840 : static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_WritePrinter *r)
28963 : {
28964 3840 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28965 3840 : if (flags & NDR_IN) {
28966 1920 : if (r->in.handle == NULL) {
28967 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28968 : }
28969 1920 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28970 1920 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
28971 1920 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
28972 : }
28973 3840 : if (flags & NDR_OUT) {
28974 1920 : if (r->out.num_written == NULL) {
28975 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28976 : }
28977 1920 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
28978 1920 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28979 : }
28980 3840 : return NDR_ERR_SUCCESS;
28981 : }
28982 :
28983 3840 : static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_WritePrinter *r)
28984 : {
28985 3840 : TALLOC_CTX *_mem_save_handle_0 = NULL;
28986 3840 : TALLOC_CTX *_mem_save_num_written_0 = NULL;
28987 3840 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28988 3840 : if (flags & NDR_IN) {
28989 1920 : NDR_ZERO_STRUCT(r->out);
28990 :
28991 1920 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28992 1920 : NDR_PULL_ALLOC(ndr, r->in.handle);
28993 : }
28994 1920 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28995 1920 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28996 1920 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28997 1920 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28998 1920 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
28999 1920 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
29000 1920 : NDR_PULL_ALLOC(ndr, r->out.num_written);
29001 1920 : NDR_ZERO_STRUCTP(r->out.num_written);
29002 : }
29003 3840 : if (flags & NDR_OUT) {
29004 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
29005 : if (r->in.handle == NULL) {
29006 : NDR_PULL_ALLOC(ndr, r->in.handle);
29007 : NDR_ZERO_STRUCTP(r->in.handle);
29008 : }
29009 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
29010 1920 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29011 0 : NDR_PULL_ALLOC(ndr, r->out.num_written);
29012 : }
29013 1920 : _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
29014 1920 : NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
29015 1920 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
29016 1920 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
29017 1920 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29018 : }
29019 3840 : return NDR_ERR_SUCCESS;
29020 : }
29021 :
29022 0 : _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_WritePrinter *r)
29023 : {
29024 0 : ndr_print_struct(ndr, name, "spoolss_WritePrinter");
29025 0 : if (r == NULL) { ndr_print_null(ndr); return; }
29026 0 : ndr->depth++;
29027 0 : if (flags & NDR_SET_VALUES) {
29028 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29029 : }
29030 0 : if (flags & NDR_IN) {
29031 0 : ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
29032 0 : ndr->depth++;
29033 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
29034 0 : ndr->depth++;
29035 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
29036 0 : ndr->depth--;
29037 0 : ndr_print_DATA_BLOB(ndr, "data", r->in.data);
29038 0 : ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
29039 0 : ndr->depth--;
29040 : }
29041 0 : if (flags & NDR_OUT) {
29042 0 : ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
29043 0 : ndr->depth++;
29044 0 : ndr_print_ptr(ndr, "num_written", r->out.num_written);
29045 0 : ndr->depth++;
29046 0 : ndr_print_uint32(ndr, "num_written", *r->out.num_written);
29047 0 : ndr->depth--;
29048 0 : ndr_print_WERROR(ndr, "result", r->out.result);
29049 0 : ndr->depth--;
29050 : }
29051 0 : ndr->depth--;
29052 : }
29053 :
29054 3840 : static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_EndPagePrinter *r)
29055 : {
29056 3840 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29057 3840 : if (flags & NDR_IN) {
29058 1920 : if (r->in.handle == NULL) {
29059 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29060 : }
29061 1920 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29062 : }
29063 3840 : if (flags & NDR_OUT) {
29064 1920 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29065 : }
29066 3840 : return NDR_ERR_SUCCESS;
29067 : }
29068 :
29069 3840 : static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_EndPagePrinter *r)
29070 : {
29071 3840 : TALLOC_CTX *_mem_save_handle_0 = NULL;
29072 3840 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29073 3840 : if (flags & NDR_IN) {
29074 1920 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29075 1920 : NDR_PULL_ALLOC(ndr, r->in.handle);
29076 : }
29077 1920 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29078 1920 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29079 1920 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29080 1920 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29081 : }
29082 3840 : if (flags & NDR_OUT) {
29083 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
29084 : if (r->in.handle == NULL) {
29085 : NDR_PULL_ALLOC(ndr, r->in.handle);
29086 : NDR_ZERO_STRUCTP(r->in.handle);
29087 : }
29088 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
29089 1920 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29090 : }
29091 3840 : return NDR_ERR_SUCCESS;
29092 : }
29093 :
29094 0 : _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EndPagePrinter *r)
29095 : {
29096 0 : ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
29097 0 : if (r == NULL) { ndr_print_null(ndr); return; }
29098 0 : ndr->depth++;
29099 0 : if (flags & NDR_SET_VALUES) {
29100 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29101 : }
29102 0 : if (flags & NDR_IN) {
29103 0 : ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
29104 0 : ndr->depth++;
29105 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
29106 0 : ndr->depth++;
29107 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
29108 0 : ndr->depth--;
29109 0 : ndr->depth--;
29110 : }
29111 0 : if (flags & NDR_OUT) {
29112 0 : ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
29113 0 : ndr->depth++;
29114 0 : ndr_print_WERROR(ndr, "result", r->out.result);
29115 0 : ndr->depth--;
29116 : }
29117 0 : ndr->depth--;
29118 : }
29119 :
29120 0 : static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AbortPrinter *r)
29121 : {
29122 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29123 0 : if (flags & NDR_IN) {
29124 0 : if (r->in.handle == NULL) {
29125 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29126 : }
29127 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29128 : }
29129 0 : if (flags & NDR_OUT) {
29130 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29131 : }
29132 0 : return NDR_ERR_SUCCESS;
29133 : }
29134 :
29135 0 : static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AbortPrinter *r)
29136 : {
29137 0 : TALLOC_CTX *_mem_save_handle_0 = NULL;
29138 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29139 0 : if (flags & NDR_IN) {
29140 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29141 0 : NDR_PULL_ALLOC(ndr, r->in.handle);
29142 : }
29143 0 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29144 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29145 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29146 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29147 : }
29148 0 : if (flags & NDR_OUT) {
29149 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
29150 : if (r->in.handle == NULL) {
29151 : NDR_PULL_ALLOC(ndr, r->in.handle);
29152 : NDR_ZERO_STRUCTP(r->in.handle);
29153 : }
29154 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
29155 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29156 : }
29157 0 : return NDR_ERR_SUCCESS;
29158 : }
29159 :
29160 0 : _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AbortPrinter *r)
29161 : {
29162 0 : ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
29163 0 : if (r == NULL) { ndr_print_null(ndr); return; }
29164 0 : ndr->depth++;
29165 0 : if (flags & NDR_SET_VALUES) {
29166 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29167 : }
29168 0 : if (flags & NDR_IN) {
29169 0 : ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
29170 0 : ndr->depth++;
29171 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
29172 0 : ndr->depth++;
29173 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
29174 0 : ndr->depth--;
29175 0 : ndr->depth--;
29176 : }
29177 0 : if (flags & NDR_OUT) {
29178 0 : ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
29179 0 : ndr->depth++;
29180 0 : ndr_print_WERROR(ndr, "result", r->out.result);
29181 0 : ndr->depth--;
29182 : }
29183 0 : ndr->depth--;
29184 : }
29185 :
29186 0 : static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_ReadPrinter *r)
29187 : {
29188 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29189 0 : if (flags & NDR_IN) {
29190 0 : if (r->in.handle == NULL) {
29191 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29192 : }
29193 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29194 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
29195 : }
29196 0 : if (flags & NDR_OUT) {
29197 0 : if (r->out.data == NULL) {
29198 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29199 : }
29200 0 : if (r->out._data_size == NULL) {
29201 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29202 : }
29203 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
29204 0 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
29205 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
29206 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29207 : }
29208 0 : return NDR_ERR_SUCCESS;
29209 : }
29210 :
29211 0 : static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_ReadPrinter *r)
29212 : {
29213 0 : uint32_t size_data_1 = 0;
29214 0 : TALLOC_CTX *_mem_save_handle_0 = NULL;
29215 0 : TALLOC_CTX *_mem_save__data_size_0 = NULL;
29216 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29217 0 : if (flags & NDR_IN) {
29218 0 : NDR_ZERO_STRUCT(r->out);
29219 :
29220 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29221 0 : NDR_PULL_ALLOC(ndr, r->in.handle);
29222 : }
29223 0 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29224 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29225 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29226 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29227 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
29228 0 : NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
29229 0 : memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
29230 0 : NDR_PULL_ALLOC(ndr, r->out._data_size);
29231 0 : NDR_ZERO_STRUCTP(r->out._data_size);
29232 : }
29233 0 : if (flags & NDR_OUT) {
29234 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
29235 : if (r->in.handle == NULL) {
29236 : NDR_PULL_ALLOC(ndr, r->in.handle);
29237 : NDR_ZERO_STRUCTP(r->in.handle);
29238 : }
29239 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
29240 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
29241 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.data, &size_data_1));
29242 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29243 0 : NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
29244 : }
29245 0 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
29246 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29247 0 : NDR_PULL_ALLOC(ndr, r->out._data_size);
29248 : }
29249 0 : _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
29250 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
29251 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
29252 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
29253 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29254 0 : if (r->out.data) {
29255 0 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.data, r->in.data_size));
29256 : }
29257 : }
29258 0 : return NDR_ERR_SUCCESS;
29259 : }
29260 :
29261 0 : _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_ReadPrinter *r)
29262 : {
29263 0 : ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
29264 0 : if (r == NULL) { ndr_print_null(ndr); return; }
29265 0 : ndr->depth++;
29266 0 : if (flags & NDR_SET_VALUES) {
29267 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29268 : }
29269 0 : if (flags & NDR_IN) {
29270 0 : ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
29271 0 : ndr->depth++;
29272 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
29273 0 : ndr->depth++;
29274 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
29275 0 : ndr->depth--;
29276 0 : ndr_print_uint32(ndr, "data_size", r->in.data_size);
29277 0 : ndr->depth--;
29278 : }
29279 0 : if (flags & NDR_OUT) {
29280 0 : ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
29281 0 : ndr->depth++;
29282 0 : ndr_print_ptr(ndr, "data", r->out.data);
29283 0 : ndr->depth++;
29284 0 : ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
29285 0 : ndr->depth--;
29286 0 : ndr_print_ptr(ndr, "_data_size", r->out._data_size);
29287 0 : ndr->depth++;
29288 0 : ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
29289 0 : ndr->depth--;
29290 0 : ndr_print_WERROR(ndr, "result", r->out.result);
29291 0 : ndr->depth--;
29292 : }
29293 0 : ndr->depth--;
29294 : }
29295 :
29296 1280 : static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_EndDocPrinter *r)
29297 : {
29298 1280 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29299 1280 : if (flags & NDR_IN) {
29300 640 : if (r->in.handle == NULL) {
29301 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29302 : }
29303 640 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29304 : }
29305 1280 : if (flags & NDR_OUT) {
29306 640 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29307 : }
29308 1280 : return NDR_ERR_SUCCESS;
29309 : }
29310 :
29311 1280 : static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_EndDocPrinter *r)
29312 : {
29313 1280 : TALLOC_CTX *_mem_save_handle_0 = NULL;
29314 1280 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29315 1280 : if (flags & NDR_IN) {
29316 640 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29317 640 : NDR_PULL_ALLOC(ndr, r->in.handle);
29318 : }
29319 640 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29320 640 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29321 640 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29322 640 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29323 : }
29324 1280 : if (flags & NDR_OUT) {
29325 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
29326 : if (r->in.handle == NULL) {
29327 : NDR_PULL_ALLOC(ndr, r->in.handle);
29328 : NDR_ZERO_STRUCTP(r->in.handle);
29329 : }
29330 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
29331 640 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29332 : }
29333 1280 : return NDR_ERR_SUCCESS;
29334 : }
29335 :
29336 0 : _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EndDocPrinter *r)
29337 : {
29338 0 : ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
29339 0 : if (r == NULL) { ndr_print_null(ndr); return; }
29340 0 : ndr->depth++;
29341 0 : if (flags & NDR_SET_VALUES) {
29342 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29343 : }
29344 0 : if (flags & NDR_IN) {
29345 0 : ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
29346 0 : ndr->depth++;
29347 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
29348 0 : ndr->depth++;
29349 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
29350 0 : ndr->depth--;
29351 0 : ndr->depth--;
29352 : }
29353 0 : if (flags & NDR_OUT) {
29354 0 : ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
29355 0 : ndr->depth++;
29356 0 : ndr_print_WERROR(ndr, "result", r->out.result);
29357 0 : ndr->depth--;
29358 : }
29359 0 : ndr->depth--;
29360 : }
29361 :
29362 32 : static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddJob *r)
29363 : {
29364 32 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29365 32 : if (flags & NDR_IN) {
29366 16 : if (r->in.handle == NULL) {
29367 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29368 : }
29369 16 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29370 16 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
29371 16 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
29372 16 : if (r->in.buffer) {
29373 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
29374 0 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
29375 : }
29376 16 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
29377 : }
29378 32 : if (flags & NDR_OUT) {
29379 16 : if (r->out.needed == NULL) {
29380 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29381 : }
29382 16 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
29383 16 : if (r->out.buffer) {
29384 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
29385 0 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
29386 : }
29387 16 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
29388 16 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29389 : }
29390 32 : return NDR_ERR_SUCCESS;
29391 : }
29392 :
29393 32 : static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddJob *r)
29394 : {
29395 0 : uint32_t _ptr_buffer;
29396 32 : uint32_t size_buffer_1 = 0;
29397 32 : TALLOC_CTX *_mem_save_handle_0 = NULL;
29398 32 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
29399 32 : TALLOC_CTX *_mem_save_needed_0 = NULL;
29400 32 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29401 32 : if (flags & NDR_IN) {
29402 16 : NDR_ZERO_STRUCT(r->out);
29403 :
29404 16 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29405 16 : NDR_PULL_ALLOC(ndr, r->in.handle);
29406 : }
29407 16 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29408 16 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29409 16 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29410 16 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29411 16 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
29412 16 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
29413 16 : if (_ptr_buffer) {
29414 0 : NDR_PULL_ALLOC(ndr, r->in.buffer);
29415 : } else {
29416 16 : r->in.buffer = NULL;
29417 : }
29418 16 : if (r->in.buffer) {
29419 0 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
29420 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
29421 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
29422 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.buffer, &size_buffer_1));
29423 0 : NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1);
29424 0 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1));
29425 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
29426 : }
29427 16 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
29428 16 : NDR_PULL_ALLOC(ndr, r->out.needed);
29429 16 : NDR_ZERO_STRUCTP(r->out.needed);
29430 16 : if (r->in.buffer) {
29431 0 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
29432 : }
29433 : }
29434 32 : if (flags & NDR_OUT) {
29435 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
29436 : if (r->in.handle == NULL) {
29437 : NDR_PULL_ALLOC(ndr, r->in.handle);
29438 : NDR_ZERO_STRUCTP(r->in.handle);
29439 : }
29440 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
29441 16 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
29442 16 : if (_ptr_buffer) {
29443 0 : NDR_PULL_ALLOC(ndr, r->out.buffer);
29444 : } else {
29445 16 : r->out.buffer = NULL;
29446 : }
29447 16 : if (r->out.buffer) {
29448 0 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
29449 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
29450 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
29451 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.buffer, &size_buffer_1));
29452 0 : NDR_PULL_ALLOC_N(ndr, r->out.buffer, size_buffer_1);
29453 0 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, size_buffer_1));
29454 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
29455 : }
29456 16 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29457 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
29458 : }
29459 16 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
29460 16 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
29461 16 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
29462 16 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
29463 16 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29464 16 : if (r->out.buffer) {
29465 0 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
29466 : }
29467 : }
29468 32 : return NDR_ERR_SUCCESS;
29469 : }
29470 :
29471 0 : _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddJob *r)
29472 : {
29473 0 : ndr_print_struct(ndr, name, "spoolss_AddJob");
29474 0 : if (r == NULL) { ndr_print_null(ndr); return; }
29475 0 : ndr->depth++;
29476 0 : if (flags & NDR_SET_VALUES) {
29477 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29478 : }
29479 0 : if (flags & NDR_IN) {
29480 0 : ndr_print_struct(ndr, "in", "spoolss_AddJob");
29481 0 : ndr->depth++;
29482 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
29483 0 : ndr->depth++;
29484 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
29485 0 : ndr->depth--;
29486 0 : ndr_print_uint32(ndr, "level", r->in.level);
29487 0 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
29488 0 : ndr->depth++;
29489 0 : if (r->in.buffer) {
29490 0 : ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
29491 : }
29492 0 : ndr->depth--;
29493 0 : ndr_print_uint32(ndr, "offered", r->in.offered);
29494 0 : ndr->depth--;
29495 : }
29496 0 : if (flags & NDR_OUT) {
29497 0 : ndr_print_struct(ndr, "out", "spoolss_AddJob");
29498 0 : ndr->depth++;
29499 0 : ndr_print_ptr(ndr, "buffer", r->out.buffer);
29500 0 : ndr->depth++;
29501 0 : if (r->out.buffer) {
29502 0 : ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
29503 : }
29504 0 : ndr->depth--;
29505 0 : ndr_print_ptr(ndr, "needed", r->out.needed);
29506 0 : ndr->depth++;
29507 0 : ndr_print_uint32(ndr, "needed", *r->out.needed);
29508 0 : ndr->depth--;
29509 0 : ndr_print_WERROR(ndr, "result", r->out.result);
29510 0 : ndr->depth--;
29511 : }
29512 0 : ndr->depth--;
29513 : }
29514 :
29515 0 : static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_ScheduleJob *r)
29516 : {
29517 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29518 0 : if (flags & NDR_IN) {
29519 0 : if (r->in.handle == NULL) {
29520 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29521 : }
29522 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29523 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
29524 : }
29525 0 : if (flags & NDR_OUT) {
29526 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29527 : }
29528 0 : return NDR_ERR_SUCCESS;
29529 : }
29530 :
29531 0 : static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_ScheduleJob *r)
29532 : {
29533 0 : TALLOC_CTX *_mem_save_handle_0 = NULL;
29534 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29535 0 : if (flags & NDR_IN) {
29536 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29537 0 : NDR_PULL_ALLOC(ndr, r->in.handle);
29538 : }
29539 0 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29540 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29541 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29542 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29543 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
29544 : }
29545 0 : if (flags & NDR_OUT) {
29546 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
29547 : if (r->in.handle == NULL) {
29548 : NDR_PULL_ALLOC(ndr, r->in.handle);
29549 : NDR_ZERO_STRUCTP(r->in.handle);
29550 : }
29551 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
29552 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29553 : }
29554 0 : return NDR_ERR_SUCCESS;
29555 : }
29556 :
29557 0 : _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_ScheduleJob *r)
29558 : {
29559 0 : ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
29560 0 : if (r == NULL) { ndr_print_null(ndr); return; }
29561 0 : ndr->depth++;
29562 0 : if (flags & NDR_SET_VALUES) {
29563 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29564 : }
29565 0 : if (flags & NDR_IN) {
29566 0 : ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
29567 0 : ndr->depth++;
29568 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
29569 0 : ndr->depth++;
29570 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
29571 0 : ndr->depth--;
29572 0 : ndr_print_uint32(ndr, "jobid", r->in.jobid);
29573 0 : ndr->depth--;
29574 : }
29575 0 : if (flags & NDR_OUT) {
29576 0 : ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
29577 0 : ndr->depth++;
29578 0 : ndr_print_WERROR(ndr, "result", r->out.result);
29579 0 : ndr->depth--;
29580 : }
29581 0 : ndr->depth--;
29582 : }
29583 :
29584 960 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterData(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetPrinterData *r)
29585 : {
29586 960 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29587 960 : if (flags & NDR_IN) {
29588 480 : if (r->in.handle == NULL) {
29589 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29590 : }
29591 480 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29592 480 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
29593 480 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29594 480 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
29595 480 : 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));
29596 480 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
29597 : }
29598 960 : if (flags & NDR_OUT) {
29599 480 : if (r->out.type == NULL) {
29600 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29601 : }
29602 480 : if (r->out.data == NULL) {
29603 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29604 : }
29605 480 : if (r->out.needed == NULL) {
29606 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29607 : }
29608 480 : NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
29609 480 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
29610 480 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.offered));
29611 480 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
29612 480 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29613 : }
29614 960 : return NDR_ERR_SUCCESS;
29615 : }
29616 :
29617 966 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterData(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetPrinterData *r)
29618 : {
29619 966 : uint32_t size_value_name_0 = 0;
29620 966 : uint32_t length_value_name_0 = 0;
29621 966 : uint32_t size_data_1 = 0;
29622 966 : TALLOC_CTX *_mem_save_handle_0 = NULL;
29623 966 : TALLOC_CTX *_mem_save_type_0 = NULL;
29624 966 : TALLOC_CTX *_mem_save_needed_0 = NULL;
29625 966 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29626 966 : if (flags & NDR_IN) {
29627 484 : NDR_ZERO_STRUCT(r->out);
29628 :
29629 484 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29630 484 : NDR_PULL_ALLOC(ndr, r->in.handle);
29631 : }
29632 484 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29633 484 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29634 484 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29635 484 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29636 484 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
29637 484 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
29638 484 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.value_name, &size_value_name_0));
29639 484 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.value_name, &length_value_name_0));
29640 484 : if (length_value_name_0 > size_value_name_0) {
29641 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_value_name_0, length_value_name_0);
29642 : }
29643 484 : NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
29644 484 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
29645 484 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
29646 484 : NDR_PULL_ALLOC(ndr, r->out.type);
29647 484 : NDR_ZERO_STRUCTP(r->out.type);
29648 484 : NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.offered);
29649 484 : memset(r->out.data, 0, (r->in.offered) * sizeof(*r->out.data));
29650 484 : NDR_PULL_ALLOC(ndr, r->out.needed);
29651 484 : NDR_ZERO_STRUCTP(r->out.needed);
29652 : }
29653 966 : if (flags & NDR_OUT) {
29654 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
29655 : if (r->in.handle == NULL) {
29656 : NDR_PULL_ALLOC(ndr, r->in.handle);
29657 : NDR_ZERO_STRUCTP(r->in.handle);
29658 : }
29659 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
29660 482 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29661 2 : NDR_PULL_ALLOC(ndr, r->out.type);
29662 : }
29663 482 : _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
29664 482 : NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
29665 482 : NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
29666 482 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
29667 482 : NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
29668 482 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.data, &size_data_1));
29669 482 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29670 2 : NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
29671 : }
29672 482 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
29673 482 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29674 2 : NDR_PULL_ALLOC(ndr, r->out.needed);
29675 : }
29676 482 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
29677 482 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
29678 482 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
29679 482 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
29680 482 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29681 482 : if (r->out.data) {
29682 482 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.data, r->in.offered));
29683 : }
29684 : }
29685 960 : return NDR_ERR_SUCCESS;
29686 : }
29687 :
29688 6 : _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetPrinterData *r)
29689 : {
29690 6 : ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
29691 6 : if (r == NULL) { ndr_print_null(ndr); return; }
29692 6 : ndr->depth++;
29693 6 : if (flags & NDR_SET_VALUES) {
29694 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29695 : }
29696 6 : if (flags & NDR_IN) {
29697 4 : ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
29698 4 : ndr->depth++;
29699 4 : ndr_print_ptr(ndr, "handle", r->in.handle);
29700 4 : ndr->depth++;
29701 4 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
29702 4 : ndr->depth--;
29703 4 : ndr_print_string(ndr, "value_name", r->in.value_name);
29704 4 : ndr_print_uint32(ndr, "offered", r->in.offered);
29705 4 : ndr->depth--;
29706 : }
29707 6 : if (flags & NDR_OUT) {
29708 2 : ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
29709 2 : ndr->depth++;
29710 2 : ndr_print_ptr(ndr, "type", r->out.type);
29711 2 : ndr->depth++;
29712 2 : ndr_print_winreg_Type(ndr, "type", *r->out.type);
29713 2 : ndr->depth--;
29714 2 : ndr_print_ptr(ndr, "data", r->out.data);
29715 2 : ndr->depth++;
29716 2 : ndr_print_array_uint8(ndr, "data", r->out.data, r->in.offered);
29717 2 : ndr->depth--;
29718 2 : ndr_print_ptr(ndr, "needed", r->out.needed);
29719 2 : ndr->depth++;
29720 2 : ndr_print_uint32(ndr, "needed", *r->out.needed);
29721 2 : ndr->depth--;
29722 2 : ndr_print_WERROR(ndr, "result", r->out.result);
29723 2 : ndr->depth--;
29724 : }
29725 6 : ndr->depth--;
29726 : }
29727 :
29728 336 : static enum ndr_err_code ndr_push_spoolss_SetPrinterData(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SetPrinterData *r)
29729 : {
29730 336 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29731 336 : if (flags & NDR_IN) {
29732 168 : if (r->in.handle == NULL) {
29733 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29734 : }
29735 168 : if (r->in.data == NULL) {
29736 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29737 : }
29738 168 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29739 168 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
29740 168 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29741 168 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
29742 168 : 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));
29743 168 : NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
29744 168 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
29745 168 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.offered));
29746 168 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
29747 : }
29748 336 : if (flags & NDR_OUT) {
29749 168 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29750 : }
29751 336 : return NDR_ERR_SUCCESS;
29752 : }
29753 :
29754 336 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SetPrinterData *r)
29755 : {
29756 336 : uint32_t size_value_name_0 = 0;
29757 336 : uint32_t length_value_name_0 = 0;
29758 336 : uint32_t size_data_1 = 0;
29759 336 : TALLOC_CTX *_mem_save_handle_0 = NULL;
29760 336 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29761 336 : if (flags & NDR_IN) {
29762 168 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29763 168 : NDR_PULL_ALLOC(ndr, r->in.handle);
29764 : }
29765 168 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29766 168 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29767 168 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29768 168 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29769 168 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
29770 168 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
29771 168 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.value_name, &size_value_name_0));
29772 168 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.value_name, &length_value_name_0));
29773 168 : if (length_value_name_0 > size_value_name_0) {
29774 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_value_name_0, length_value_name_0);
29775 : }
29776 168 : NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
29777 168 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
29778 168 : NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
29779 168 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
29780 168 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.data, &size_data_1));
29781 168 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29782 168 : NDR_PULL_ALLOC_N(ndr, r->in.data, size_data_1);
29783 : }
29784 168 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, size_data_1));
29785 168 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
29786 168 : if (r->in.data) {
29787 168 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.data, r->in.offered));
29788 : }
29789 : }
29790 336 : if (flags & NDR_OUT) {
29791 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
29792 : if (r->in.handle == NULL) {
29793 : NDR_PULL_ALLOC(ndr, r->in.handle);
29794 : NDR_ZERO_STRUCTP(r->in.handle);
29795 : }
29796 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
29797 168 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29798 : }
29799 336 : return NDR_ERR_SUCCESS;
29800 : }
29801 :
29802 0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SetPrinterData *r)
29803 : {
29804 0 : ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
29805 0 : if (r == NULL) { ndr_print_null(ndr); return; }
29806 0 : ndr->depth++;
29807 0 : if (flags & NDR_SET_VALUES) {
29808 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29809 : }
29810 0 : if (flags & NDR_IN) {
29811 0 : ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
29812 0 : ndr->depth++;
29813 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
29814 0 : ndr->depth++;
29815 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
29816 0 : ndr->depth--;
29817 0 : ndr_print_string(ndr, "value_name", r->in.value_name);
29818 0 : ndr_print_winreg_Type(ndr, "type", r->in.type);
29819 0 : ndr_print_ptr(ndr, "data", r->in.data);
29820 0 : ndr->depth++;
29821 0 : ndr_print_array_uint8(ndr, "data", r->in.data, r->in.offered);
29822 0 : ndr->depth--;
29823 0 : ndr_print_uint32(ndr, "offered", r->in.offered);
29824 0 : ndr->depth--;
29825 : }
29826 0 : if (flags & NDR_OUT) {
29827 0 : ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
29828 0 : ndr->depth++;
29829 0 : ndr_print_WERROR(ndr, "result", r->out.result);
29830 0 : ndr->depth--;
29831 : }
29832 0 : ndr->depth--;
29833 : }
29834 :
29835 0 : static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_WaitForPrinterChange *r)
29836 : {
29837 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29838 0 : if (flags & NDR_IN) {
29839 0 : }
29840 0 : if (flags & NDR_OUT) {
29841 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29842 : }
29843 0 : return NDR_ERR_SUCCESS;
29844 : }
29845 :
29846 0 : static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_WaitForPrinterChange *r)
29847 : {
29848 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29849 0 : if (flags & NDR_IN) {
29850 0 : }
29851 0 : if (flags & NDR_OUT) {
29852 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
29853 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
29854 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29855 : }
29856 0 : return NDR_ERR_SUCCESS;
29857 : }
29858 :
29859 0 : _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_WaitForPrinterChange *r)
29860 : {
29861 0 : ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
29862 0 : if (r == NULL) { ndr_print_null(ndr); return; }
29863 0 : ndr->depth++;
29864 0 : if (flags & NDR_SET_VALUES) {
29865 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29866 : }
29867 0 : if (flags & NDR_IN) {
29868 0 : ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
29869 0 : ndr->depth++;
29870 0 : ndr->depth--;
29871 : }
29872 0 : if (flags & NDR_OUT) {
29873 0 : ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
29874 0 : ndr->depth++;
29875 0 : ndr_print_WERROR(ndr, "result", r->out.result);
29876 0 : ndr->depth--;
29877 : }
29878 0 : ndr->depth--;
29879 : }
29880 :
29881 1240 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_ClosePrinter *r)
29882 : {
29883 1240 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29884 1240 : if (flags & NDR_IN) {
29885 620 : if (r->in.handle == NULL) {
29886 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29887 : }
29888 620 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29889 : }
29890 1240 : if (flags & NDR_OUT) {
29891 620 : if (r->out.handle == NULL) {
29892 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29893 : }
29894 620 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
29895 620 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29896 : }
29897 1240 : return NDR_ERR_SUCCESS;
29898 : }
29899 :
29900 1244 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_ClosePrinter *r)
29901 : {
29902 1244 : TALLOC_CTX *_mem_save_handle_0 = NULL;
29903 1244 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29904 1244 : if (flags & NDR_IN) {
29905 622 : NDR_ZERO_STRUCT(r->out);
29906 :
29907 622 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29908 622 : NDR_PULL_ALLOC(ndr, r->in.handle);
29909 : }
29910 622 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29911 622 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29912 622 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29913 622 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29914 622 : NDR_PULL_ALLOC(ndr, r->out.handle);
29915 622 : *r->out.handle = *r->in.handle;
29916 : }
29917 1244 : if (flags & NDR_OUT) {
29918 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
29919 : if (r->in.handle == NULL) {
29920 : NDR_PULL_ALLOC(ndr, r->in.handle);
29921 : NDR_ZERO_STRUCTP(r->in.handle);
29922 : }
29923 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
29924 622 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29925 36 : NDR_PULL_ALLOC(ndr, r->out.handle);
29926 : }
29927 622 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29928 622 : NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
29929 622 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
29930 622 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29931 622 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29932 : }
29933 1240 : return NDR_ERR_SUCCESS;
29934 : }
29935 :
29936 4 : _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_ClosePrinter *r)
29937 : {
29938 4 : ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
29939 4 : if (r == NULL) { ndr_print_null(ndr); return; }
29940 4 : ndr->depth++;
29941 4 : if (flags & NDR_SET_VALUES) {
29942 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29943 : }
29944 4 : if (flags & NDR_IN) {
29945 2 : ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
29946 2 : ndr->depth++;
29947 2 : ndr_print_ptr(ndr, "handle", r->in.handle);
29948 2 : ndr->depth++;
29949 2 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
29950 2 : ndr->depth--;
29951 2 : ndr->depth--;
29952 : }
29953 4 : if (flags & NDR_OUT) {
29954 2 : ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
29955 2 : ndr->depth++;
29956 2 : ndr_print_ptr(ndr, "handle", r->out.handle);
29957 2 : ndr->depth++;
29958 2 : ndr_print_policy_handle(ndr, "handle", r->out.handle);
29959 2 : ndr->depth--;
29960 2 : ndr_print_WERROR(ndr, "result", r->out.result);
29961 2 : ndr->depth--;
29962 : }
29963 4 : ndr->depth--;
29964 : }
29965 :
29966 1152 : static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddForm *r)
29967 : {
29968 1152 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29969 1152 : if (flags & NDR_IN) {
29970 576 : if (r->in.handle == NULL) {
29971 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29972 : }
29973 576 : if (r->in.info_ctr == NULL) {
29974 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29975 : }
29976 576 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29977 576 : NDR_CHECK(ndr_push_spoolss_AddFormInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
29978 : }
29979 1152 : if (flags & NDR_OUT) {
29980 576 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29981 : }
29982 1152 : return NDR_ERR_SUCCESS;
29983 : }
29984 :
29985 1152 : static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddForm *r)
29986 : {
29987 1152 : TALLOC_CTX *_mem_save_handle_0 = NULL;
29988 1152 : TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
29989 1152 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29990 1152 : if (flags & NDR_IN) {
29991 576 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29992 576 : NDR_PULL_ALLOC(ndr, r->in.handle);
29993 : }
29994 576 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29995 576 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29996 576 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29997 576 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29998 576 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29999 576 : NDR_PULL_ALLOC(ndr, r->in.info_ctr);
30000 : }
30001 576 : _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
30002 576 : NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
30003 576 : NDR_CHECK(ndr_pull_spoolss_AddFormInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
30004 576 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
30005 : }
30006 1152 : if (flags & NDR_OUT) {
30007 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
30008 : if (r->in.handle == NULL) {
30009 : NDR_PULL_ALLOC(ndr, r->in.handle);
30010 : NDR_ZERO_STRUCTP(r->in.handle);
30011 : }
30012 : if (r->in.info_ctr == NULL) {
30013 : NDR_PULL_ALLOC(ndr, r->in.info_ctr);
30014 : NDR_ZERO_STRUCTP(r->in.info_ctr);
30015 : }
30016 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
30017 576 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30018 : }
30019 1152 : return NDR_ERR_SUCCESS;
30020 : }
30021 :
30022 0 : _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddForm *r)
30023 : {
30024 0 : ndr_print_struct(ndr, name, "spoolss_AddForm");
30025 0 : if (r == NULL) { ndr_print_null(ndr); return; }
30026 0 : ndr->depth++;
30027 0 : if (flags & NDR_SET_VALUES) {
30028 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30029 : }
30030 0 : if (flags & NDR_IN) {
30031 0 : ndr_print_struct(ndr, "in", "spoolss_AddForm");
30032 0 : ndr->depth++;
30033 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
30034 0 : ndr->depth++;
30035 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
30036 0 : ndr->depth--;
30037 0 : ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
30038 0 : ndr->depth++;
30039 0 : ndr_print_spoolss_AddFormInfoCtr(ndr, "info_ctr", r->in.info_ctr);
30040 0 : ndr->depth--;
30041 0 : ndr->depth--;
30042 : }
30043 0 : if (flags & NDR_OUT) {
30044 0 : ndr_print_struct(ndr, "out", "spoolss_AddForm");
30045 0 : ndr->depth++;
30046 0 : ndr_print_WERROR(ndr, "result", r->out.result);
30047 0 : ndr->depth--;
30048 : }
30049 0 : ndr->depth--;
30050 : }
30051 :
30052 768 : static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeleteForm *r)
30053 : {
30054 768 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30055 768 : if (flags & NDR_IN) {
30056 384 : if (r->in.handle == NULL) {
30057 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30058 : }
30059 384 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
30060 384 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
30061 384 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30062 384 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
30063 384 : 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));
30064 : }
30065 768 : if (flags & NDR_OUT) {
30066 384 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30067 : }
30068 768 : return NDR_ERR_SUCCESS;
30069 : }
30070 :
30071 768 : static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeleteForm *r)
30072 : {
30073 768 : uint32_t size_form_name_0 = 0;
30074 768 : uint32_t length_form_name_0 = 0;
30075 768 : TALLOC_CTX *_mem_save_handle_0 = NULL;
30076 768 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30077 768 : if (flags & NDR_IN) {
30078 384 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30079 384 : NDR_PULL_ALLOC(ndr, r->in.handle);
30080 : }
30081 384 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
30082 384 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
30083 384 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
30084 384 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
30085 384 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
30086 384 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
30087 384 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.form_name, &size_form_name_0));
30088 384 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.form_name, &length_form_name_0));
30089 384 : if (length_form_name_0 > size_form_name_0) {
30090 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_form_name_0, length_form_name_0);
30091 : }
30092 384 : NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_0, sizeof(uint16_t)));
30093 384 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, length_form_name_0, sizeof(uint16_t), CH_UTF16));
30094 : }
30095 768 : if (flags & NDR_OUT) {
30096 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
30097 : if (r->in.handle == NULL) {
30098 : NDR_PULL_ALLOC(ndr, r->in.handle);
30099 : NDR_ZERO_STRUCTP(r->in.handle);
30100 : }
30101 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
30102 384 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30103 : }
30104 768 : return NDR_ERR_SUCCESS;
30105 : }
30106 :
30107 0 : _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeleteForm *r)
30108 : {
30109 0 : ndr_print_struct(ndr, name, "spoolss_DeleteForm");
30110 0 : if (r == NULL) { ndr_print_null(ndr); return; }
30111 0 : ndr->depth++;
30112 0 : if (flags & NDR_SET_VALUES) {
30113 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30114 : }
30115 0 : if (flags & NDR_IN) {
30116 0 : ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
30117 0 : ndr->depth++;
30118 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
30119 0 : ndr->depth++;
30120 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
30121 0 : ndr->depth--;
30122 0 : ndr_print_string(ndr, "form_name", r->in.form_name);
30123 0 : ndr->depth--;
30124 : }
30125 0 : if (flags & NDR_OUT) {
30126 0 : ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
30127 0 : ndr->depth++;
30128 0 : ndr_print_WERROR(ndr, "result", r->out.result);
30129 0 : ndr->depth--;
30130 : }
30131 0 : ndr->depth--;
30132 : }
30133 :
30134 10080 : static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetForm *r)
30135 : {
30136 10080 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30137 10080 : if (flags & NDR_IN) {
30138 5040 : if (r->in.handle == NULL) {
30139 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30140 : }
30141 5040 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
30142 5040 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
30143 5040 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30144 5040 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
30145 5040 : 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));
30146 5040 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
30147 5040 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
30148 5040 : if (r->in.buffer) {
30149 2520 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
30150 : }
30151 5040 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
30152 : }
30153 10080 : if (flags & NDR_OUT) {
30154 5040 : if (r->out.needed == NULL) {
30155 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30156 : }
30157 5040 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
30158 5040 : if (r->out.info) {
30159 : {
30160 0 : struct ndr_push *_ndr_info;
30161 2520 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
30162 2520 : NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
30163 2520 : NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
30164 2520 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
30165 : }
30166 : }
30167 5040 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
30168 5040 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30169 : }
30170 10080 : return NDR_ERR_SUCCESS;
30171 : }
30172 :
30173 10080 : static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetForm *r)
30174 : {
30175 10080 : uint32_t size_form_name_0 = 0;
30176 10080 : uint32_t length_form_name_0 = 0;
30177 0 : uint32_t _ptr_buffer;
30178 0 : uint32_t _ptr_info;
30179 10080 : TALLOC_CTX *_mem_save_handle_0 = NULL;
30180 10080 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
30181 10080 : TALLOC_CTX *_mem_save_info_0 = NULL;
30182 10080 : TALLOC_CTX *_mem_save_needed_0 = NULL;
30183 10080 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30184 10080 : if (flags & NDR_IN) {
30185 5040 : NDR_ZERO_STRUCT(r->out);
30186 :
30187 5040 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30188 5040 : NDR_PULL_ALLOC(ndr, r->in.handle);
30189 : }
30190 5040 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
30191 5040 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
30192 5040 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
30193 5040 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
30194 5040 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
30195 5040 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
30196 5040 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.form_name, &size_form_name_0));
30197 5040 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.form_name, &length_form_name_0));
30198 5040 : if (length_form_name_0 > size_form_name_0) {
30199 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_form_name_0, length_form_name_0);
30200 : }
30201 5040 : NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_0, sizeof(uint16_t)));
30202 5040 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, length_form_name_0, sizeof(uint16_t), CH_UTF16));
30203 5040 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
30204 5040 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
30205 5040 : if (_ptr_buffer) {
30206 2520 : NDR_PULL_ALLOC(ndr, r->in.buffer);
30207 : } else {
30208 2520 : r->in.buffer = NULL;
30209 : }
30210 5040 : if (r->in.buffer) {
30211 2520 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
30212 2520 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
30213 2520 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
30214 2520 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
30215 : }
30216 5040 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
30217 5040 : NDR_PULL_ALLOC(ndr, r->out.needed);
30218 5040 : NDR_ZERO_STRUCTP(r->out.needed);
30219 : }
30220 10080 : if (flags & NDR_OUT) {
30221 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
30222 : if (r->in.handle == NULL) {
30223 : NDR_PULL_ALLOC(ndr, r->in.handle);
30224 : NDR_ZERO_STRUCTP(r->in.handle);
30225 : }
30226 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
30227 5040 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
30228 5040 : if (_ptr_info) {
30229 2520 : NDR_PULL_ALLOC(ndr, r->out.info);
30230 : } else {
30231 2520 : r->out.info = NULL;
30232 : }
30233 5040 : if (r->out.info) {
30234 2520 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
30235 2520 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
30236 : {
30237 0 : struct ndr_pull *_ndr_info;
30238 2520 : ssize_t sub_size = r->in.offered;
30239 2520 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, sub_size));
30240 2520 : NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
30241 2520 : NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
30242 2520 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, sub_size));
30243 : }
30244 2520 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
30245 : }
30246 5040 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30247 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
30248 : }
30249 5040 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
30250 5040 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
30251 5040 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
30252 5040 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
30253 5040 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30254 : }
30255 10080 : return NDR_ERR_SUCCESS;
30256 : }
30257 :
30258 0 : _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetForm *r)
30259 : {
30260 0 : ndr_print_struct(ndr, name, "spoolss_GetForm");
30261 0 : if (r == NULL) { ndr_print_null(ndr); return; }
30262 0 : ndr->depth++;
30263 0 : if (flags & NDR_SET_VALUES) {
30264 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30265 : }
30266 0 : if (flags & NDR_IN) {
30267 0 : ndr_print_struct(ndr, "in", "spoolss_GetForm");
30268 0 : ndr->depth++;
30269 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
30270 0 : ndr->depth++;
30271 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
30272 0 : ndr->depth--;
30273 0 : ndr_print_string(ndr, "form_name", r->in.form_name);
30274 0 : ndr_print_uint32(ndr, "level", r->in.level);
30275 0 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
30276 0 : ndr->depth++;
30277 0 : if (r->in.buffer) {
30278 0 : ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
30279 : }
30280 0 : ndr->depth--;
30281 0 : ndr_print_uint32(ndr, "offered", r->in.offered);
30282 0 : ndr->depth--;
30283 : }
30284 0 : if (flags & NDR_OUT) {
30285 0 : ndr_print_struct(ndr, "out", "spoolss_GetForm");
30286 0 : ndr->depth++;
30287 0 : ndr_print_ptr(ndr, "info", r->out.info);
30288 0 : ndr->depth++;
30289 0 : if (r->out.info) {
30290 0 : ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
30291 0 : ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
30292 : }
30293 0 : ndr->depth--;
30294 0 : ndr_print_ptr(ndr, "needed", r->out.needed);
30295 0 : ndr->depth++;
30296 0 : ndr_print_uint32(ndr, "needed", *r->out.needed);
30297 0 : ndr->depth--;
30298 0 : ndr_print_WERROR(ndr, "result", r->out.result);
30299 0 : ndr->depth--;
30300 : }
30301 0 : ndr->depth--;
30302 : }
30303 :
30304 160 : static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SetForm *r)
30305 : {
30306 160 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30307 160 : if (flags & NDR_IN) {
30308 80 : if (r->in.handle == NULL) {
30309 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30310 : }
30311 80 : if (r->in.info_ctr == NULL) {
30312 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30313 : }
30314 80 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
30315 80 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
30316 80 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30317 80 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
30318 80 : 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));
30319 80 : NDR_CHECK(ndr_push_spoolss_AddFormInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
30320 : }
30321 160 : if (flags & NDR_OUT) {
30322 80 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30323 : }
30324 160 : return NDR_ERR_SUCCESS;
30325 : }
30326 :
30327 160 : static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SetForm *r)
30328 : {
30329 160 : uint32_t size_form_name_0 = 0;
30330 160 : uint32_t length_form_name_0 = 0;
30331 160 : TALLOC_CTX *_mem_save_handle_0 = NULL;
30332 160 : TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
30333 160 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30334 160 : if (flags & NDR_IN) {
30335 80 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30336 80 : NDR_PULL_ALLOC(ndr, r->in.handle);
30337 : }
30338 80 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
30339 80 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
30340 80 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
30341 80 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
30342 80 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
30343 80 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
30344 80 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.form_name, &size_form_name_0));
30345 80 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.form_name, &length_form_name_0));
30346 80 : if (length_form_name_0 > size_form_name_0) {
30347 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_form_name_0, length_form_name_0);
30348 : }
30349 80 : NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_0, sizeof(uint16_t)));
30350 80 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, length_form_name_0, sizeof(uint16_t), CH_UTF16));
30351 80 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30352 80 : NDR_PULL_ALLOC(ndr, r->in.info_ctr);
30353 : }
30354 80 : _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
30355 80 : NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
30356 80 : NDR_CHECK(ndr_pull_spoolss_AddFormInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
30357 80 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
30358 : }
30359 160 : if (flags & NDR_OUT) {
30360 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
30361 : if (r->in.handle == NULL) {
30362 : NDR_PULL_ALLOC(ndr, r->in.handle);
30363 : NDR_ZERO_STRUCTP(r->in.handle);
30364 : }
30365 : if (r->in.info_ctr == NULL) {
30366 : NDR_PULL_ALLOC(ndr, r->in.info_ctr);
30367 : NDR_ZERO_STRUCTP(r->in.info_ctr);
30368 : }
30369 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
30370 80 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30371 : }
30372 160 : return NDR_ERR_SUCCESS;
30373 : }
30374 :
30375 0 : _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SetForm *r)
30376 : {
30377 0 : ndr_print_struct(ndr, name, "spoolss_SetForm");
30378 0 : if (r == NULL) { ndr_print_null(ndr); return; }
30379 0 : ndr->depth++;
30380 0 : if (flags & NDR_SET_VALUES) {
30381 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30382 : }
30383 0 : if (flags & NDR_IN) {
30384 0 : ndr_print_struct(ndr, "in", "spoolss_SetForm");
30385 0 : ndr->depth++;
30386 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
30387 0 : ndr->depth++;
30388 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
30389 0 : ndr->depth--;
30390 0 : ndr_print_string(ndr, "form_name", r->in.form_name);
30391 0 : ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
30392 0 : ndr->depth++;
30393 0 : ndr_print_spoolss_AddFormInfoCtr(ndr, "info_ctr", r->in.info_ctr);
30394 0 : ndr->depth--;
30395 0 : ndr->depth--;
30396 : }
30397 0 : if (flags & NDR_OUT) {
30398 0 : ndr_print_struct(ndr, "out", "spoolss_SetForm");
30399 0 : ndr->depth++;
30400 0 : ndr_print_WERROR(ndr, "result", r->out.result);
30401 0 : ndr->depth--;
30402 : }
30403 0 : ndr->depth--;
30404 : }
30405 :
30406 1120 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumForms *r)
30407 : {
30408 1120 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30409 1120 : if (flags & NDR_IN) {
30410 560 : if (r->in.handle == NULL) {
30411 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30412 : }
30413 560 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
30414 560 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
30415 560 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
30416 560 : if (r->in.buffer) {
30417 268 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
30418 : }
30419 560 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
30420 : }
30421 1120 : if (flags & NDR_OUT) {
30422 560 : if (r->out.needed == NULL) {
30423 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30424 : }
30425 560 : if (r->out.count == NULL) {
30426 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30427 : }
30428 560 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
30429 560 : if (r->out.info) {
30430 268 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
30431 : }
30432 560 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
30433 560 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
30434 560 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30435 : }
30436 1120 : return NDR_ERR_SUCCESS;
30437 : }
30438 :
30439 1125 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumForms *r)
30440 : {
30441 5 : uint32_t _ptr_buffer;
30442 5 : uint32_t _ptr_info;
30443 1125 : TALLOC_CTX *_mem_save_handle_0 = NULL;
30444 1125 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
30445 1125 : TALLOC_CTX *_mem_save_info_0 = NULL;
30446 1125 : TALLOC_CTX *_mem_save_needed_0 = NULL;
30447 1125 : TALLOC_CTX *_mem_save_count_0 = NULL;
30448 1125 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30449 1125 : if (flags & NDR_IN) {
30450 562 : NDR_ZERO_STRUCT(r->out);
30451 :
30452 562 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30453 562 : NDR_PULL_ALLOC(ndr, r->in.handle);
30454 : }
30455 562 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
30456 562 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
30457 562 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
30458 562 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
30459 562 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
30460 562 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
30461 562 : if (_ptr_buffer) {
30462 268 : NDR_PULL_ALLOC(ndr, r->in.buffer);
30463 : } else {
30464 294 : r->in.buffer = NULL;
30465 : }
30466 562 : if (r->in.buffer) {
30467 268 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
30468 268 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
30469 268 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
30470 268 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
30471 : }
30472 562 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
30473 562 : NDR_PULL_ALLOC(ndr, r->out.needed);
30474 562 : NDR_ZERO_STRUCTP(r->out.needed);
30475 562 : NDR_PULL_ALLOC(ndr, r->out.count);
30476 562 : NDR_ZERO_STRUCTP(r->out.count);
30477 : }
30478 1125 : if (flags & NDR_OUT) {
30479 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
30480 : if (r->in.handle == NULL) {
30481 : NDR_PULL_ALLOC(ndr, r->in.handle);
30482 : NDR_ZERO_STRUCTP(r->in.handle);
30483 : }
30484 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
30485 563 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
30486 563 : if (_ptr_info) {
30487 269 : NDR_PULL_ALLOC(ndr, r->out.info);
30488 : } else {
30489 294 : r->out.info = NULL;
30490 : }
30491 563 : if (r->out.info) {
30492 269 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
30493 269 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
30494 269 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
30495 269 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
30496 : }
30497 563 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30498 3 : NDR_PULL_ALLOC(ndr, r->out.needed);
30499 : }
30500 563 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
30501 563 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
30502 563 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
30503 563 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
30504 563 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30505 3 : NDR_PULL_ALLOC(ndr, r->out.count);
30506 : }
30507 563 : _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
30508 563 : NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
30509 563 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
30510 563 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
30511 563 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30512 : }
30513 1120 : return NDR_ERR_SUCCESS;
30514 : }
30515 :
30516 804 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumForms *r)
30517 : {
30518 0 : uint32_t cntr_info_0;
30519 804 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30520 804 : if (flags & NDR_IN) {
30521 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
30522 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
30523 : }
30524 804 : if (flags & NDR_OUT) {
30525 95964 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
30526 95160 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
30527 95160 : NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
30528 : }
30529 95964 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
30530 95160 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
30531 95160 : NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
30532 : }
30533 : }
30534 804 : return NDR_ERR_SUCCESS;
30535 : }
30536 :
30537 269 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumForms *r)
30538 : {
30539 269 : uint32_t size_info_0 = 0;
30540 1 : uint32_t cntr_info_0;
30541 269 : TALLOC_CTX *_mem_save_info_0 = NULL;
30542 269 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30543 269 : if (flags & NDR_IN) {
30544 0 : NDR_ZERO_STRUCT(r->out);
30545 :
30546 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
30547 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
30548 : }
30549 269 : if (flags & NDR_OUT) {
30550 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
30551 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
30552 269 : size_info_0 = r->in.count;
30553 269 : NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
30554 269 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
30555 269 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
30556 32245 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
30557 31976 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
30558 31976 : NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
30559 : }
30560 32245 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
30561 31976 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
30562 31976 : NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
30563 : }
30564 269 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
30565 31989 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
30566 : }
30567 : }
30568 268 : return NDR_ERR_SUCCESS;
30569 : }
30570 :
30571 5 : _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumForms *r)
30572 : {
30573 5 : uint32_t cntr_info_2;
30574 5 : ndr_print_struct(ndr, name, "spoolss_EnumForms");
30575 5 : if (r == NULL) { ndr_print_null(ndr); return; }
30576 5 : ndr->depth++;
30577 5 : if (flags & NDR_SET_VALUES) {
30578 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30579 : }
30580 5 : if (flags & NDR_IN) {
30581 2 : ndr_print_struct(ndr, "in", "spoolss_EnumForms");
30582 2 : ndr->depth++;
30583 2 : ndr_print_ptr(ndr, "handle", r->in.handle);
30584 2 : ndr->depth++;
30585 2 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
30586 2 : ndr->depth--;
30587 2 : ndr_print_uint32(ndr, "level", r->in.level);
30588 2 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
30589 2 : ndr->depth++;
30590 2 : if (r->in.buffer) {
30591 0 : ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
30592 : }
30593 2 : ndr->depth--;
30594 2 : ndr_print_uint32(ndr, "offered", r->in.offered);
30595 2 : ndr->depth--;
30596 : }
30597 5 : if (flags & NDR_OUT) {
30598 3 : ndr_print_struct(ndr, "out", "spoolss_EnumForms");
30599 3 : ndr->depth++;
30600 3 : ndr_print_ptr(ndr, "count", r->out.count);
30601 3 : ndr->depth++;
30602 3 : ndr_print_uint32(ndr, "count", *r->out.count);
30603 3 : ndr->depth--;
30604 3 : ndr_print_ptr(ndr, "info", r->out.info);
30605 3 : ndr->depth++;
30606 3 : ndr_print_ptr(ndr, "info", *r->out.info);
30607 3 : ndr->depth++;
30608 3 : if (*r->out.info) {
30609 1 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
30610 1 : ndr->depth++;
30611 257 : for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
30612 256 : ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
30613 256 : ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
30614 : }
30615 1 : ndr->depth--;
30616 : }
30617 3 : ndr->depth--;
30618 3 : ndr->depth--;
30619 3 : ndr_print_ptr(ndr, "needed", r->out.needed);
30620 3 : ndr->depth++;
30621 3 : ndr_print_uint32(ndr, "needed", *r->out.needed);
30622 3 : ndr->depth--;
30623 3 : ndr_print_WERROR(ndr, "result", r->out.result);
30624 3 : ndr->depth--;
30625 : }
30626 5 : ndr->depth--;
30627 : }
30628 :
30629 48 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumPorts *r)
30630 : {
30631 48 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30632 48 : if (flags & NDR_IN) {
30633 24 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
30634 24 : if (r->in.servername) {
30635 24 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30636 24 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30637 24 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30638 24 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30639 : }
30640 24 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
30641 24 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
30642 24 : if (r->in.buffer) {
30643 12 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
30644 : }
30645 24 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
30646 : }
30647 48 : if (flags & NDR_OUT) {
30648 24 : if (r->out.needed == NULL) {
30649 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30650 : }
30651 24 : if (r->out.count == NULL) {
30652 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30653 : }
30654 24 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
30655 24 : if (r->out.info) {
30656 12 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
30657 : }
30658 24 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
30659 24 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
30660 24 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30661 : }
30662 48 : return NDR_ERR_SUCCESS;
30663 : }
30664 :
30665 48 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumPorts *r)
30666 : {
30667 0 : uint32_t _ptr_servername;
30668 48 : uint32_t size_servername_1 = 0;
30669 48 : uint32_t length_servername_1 = 0;
30670 0 : uint32_t _ptr_buffer;
30671 0 : uint32_t _ptr_info;
30672 48 : TALLOC_CTX *_mem_save_servername_0 = NULL;
30673 48 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
30674 48 : TALLOC_CTX *_mem_save_info_0 = NULL;
30675 48 : TALLOC_CTX *_mem_save_needed_0 = NULL;
30676 48 : TALLOC_CTX *_mem_save_count_0 = NULL;
30677 48 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30678 48 : if (flags & NDR_IN) {
30679 24 : NDR_ZERO_STRUCT(r->out);
30680 :
30681 24 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
30682 24 : if (_ptr_servername) {
30683 24 : NDR_PULL_ALLOC(ndr, r->in.servername);
30684 : } else {
30685 0 : r->in.servername = NULL;
30686 : }
30687 24 : if (r->in.servername) {
30688 24 : _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
30689 24 : NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
30690 24 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
30691 24 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
30692 24 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
30693 24 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
30694 24 : if (length_servername_1 > size_servername_1) {
30695 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
30696 : }
30697 24 : NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
30698 24 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
30699 24 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
30700 : }
30701 24 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
30702 24 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
30703 24 : if (_ptr_buffer) {
30704 12 : NDR_PULL_ALLOC(ndr, r->in.buffer);
30705 : } else {
30706 12 : r->in.buffer = NULL;
30707 : }
30708 24 : if (r->in.buffer) {
30709 12 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
30710 12 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
30711 12 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
30712 12 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
30713 : }
30714 24 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
30715 24 : NDR_PULL_ALLOC(ndr, r->out.needed);
30716 24 : NDR_ZERO_STRUCTP(r->out.needed);
30717 24 : NDR_PULL_ALLOC(ndr, r->out.count);
30718 24 : NDR_ZERO_STRUCTP(r->out.count);
30719 : }
30720 48 : if (flags & NDR_OUT) {
30721 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
30722 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
30723 24 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
30724 24 : if (_ptr_info) {
30725 12 : NDR_PULL_ALLOC(ndr, r->out.info);
30726 : } else {
30727 12 : r->out.info = NULL;
30728 : }
30729 24 : if (r->out.info) {
30730 12 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
30731 12 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
30732 12 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
30733 12 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
30734 : }
30735 24 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30736 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
30737 : }
30738 24 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
30739 24 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
30740 24 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
30741 24 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
30742 24 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30743 0 : NDR_PULL_ALLOC(ndr, r->out.count);
30744 : }
30745 24 : _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
30746 24 : NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
30747 24 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
30748 24 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
30749 24 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30750 : }
30751 48 : return NDR_ERR_SUCCESS;
30752 : }
30753 :
30754 36 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumPorts *r)
30755 : {
30756 0 : uint32_t cntr_info_0;
30757 36 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30758 36 : if (flags & NDR_IN) {
30759 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
30760 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
30761 : }
30762 36 : if (flags & NDR_OUT) {
30763 72 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
30764 36 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
30765 36 : NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
30766 : }
30767 72 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
30768 36 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
30769 36 : NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
30770 : }
30771 : }
30772 36 : return NDR_ERR_SUCCESS;
30773 : }
30774 :
30775 12 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumPorts *r)
30776 : {
30777 12 : uint32_t size_info_0 = 0;
30778 0 : uint32_t cntr_info_0;
30779 12 : TALLOC_CTX *_mem_save_info_0 = NULL;
30780 12 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30781 12 : if (flags & NDR_IN) {
30782 0 : NDR_ZERO_STRUCT(r->out);
30783 :
30784 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
30785 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
30786 : }
30787 12 : if (flags & NDR_OUT) {
30788 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
30789 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
30790 12 : size_info_0 = r->in.count;
30791 12 : NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
30792 12 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
30793 12 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
30794 24 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
30795 12 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
30796 12 : NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
30797 : }
30798 24 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
30799 12 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
30800 12 : NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
30801 : }
30802 12 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
30803 24 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
30804 : }
30805 : }
30806 12 : return NDR_ERR_SUCCESS;
30807 : }
30808 :
30809 0 : _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPorts *r)
30810 : {
30811 0 : uint32_t cntr_info_2;
30812 0 : ndr_print_struct(ndr, name, "spoolss_EnumPorts");
30813 0 : if (r == NULL) { ndr_print_null(ndr); return; }
30814 0 : ndr->depth++;
30815 0 : if (flags & NDR_SET_VALUES) {
30816 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30817 : }
30818 0 : if (flags & NDR_IN) {
30819 0 : ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
30820 0 : ndr->depth++;
30821 0 : ndr_print_ptr(ndr, "servername", r->in.servername);
30822 0 : ndr->depth++;
30823 0 : if (r->in.servername) {
30824 0 : ndr_print_string(ndr, "servername", r->in.servername);
30825 : }
30826 0 : ndr->depth--;
30827 0 : ndr_print_uint32(ndr, "level", r->in.level);
30828 0 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
30829 0 : ndr->depth++;
30830 0 : if (r->in.buffer) {
30831 0 : ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
30832 : }
30833 0 : ndr->depth--;
30834 0 : ndr_print_uint32(ndr, "offered", r->in.offered);
30835 0 : ndr->depth--;
30836 : }
30837 0 : if (flags & NDR_OUT) {
30838 0 : ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
30839 0 : ndr->depth++;
30840 0 : ndr_print_ptr(ndr, "count", r->out.count);
30841 0 : ndr->depth++;
30842 0 : ndr_print_uint32(ndr, "count", *r->out.count);
30843 0 : ndr->depth--;
30844 0 : ndr_print_ptr(ndr, "info", r->out.info);
30845 0 : ndr->depth++;
30846 0 : ndr_print_ptr(ndr, "info", *r->out.info);
30847 0 : ndr->depth++;
30848 0 : if (*r->out.info) {
30849 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
30850 0 : ndr->depth++;
30851 0 : for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
30852 0 : ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
30853 0 : ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
30854 : }
30855 0 : ndr->depth--;
30856 : }
30857 0 : ndr->depth--;
30858 0 : ndr->depth--;
30859 0 : ndr_print_ptr(ndr, "needed", r->out.needed);
30860 0 : ndr->depth++;
30861 0 : ndr_print_uint32(ndr, "needed", *r->out.needed);
30862 0 : ndr->depth--;
30863 0 : ndr_print_WERROR(ndr, "result", r->out.result);
30864 0 : ndr->depth--;
30865 : }
30866 0 : ndr->depth--;
30867 : }
30868 :
30869 32 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumMonitors *r)
30870 : {
30871 32 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30872 32 : if (flags & NDR_IN) {
30873 16 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
30874 16 : if (r->in.servername) {
30875 16 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30876 16 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30877 16 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30878 16 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30879 : }
30880 16 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
30881 16 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
30882 16 : if (r->in.buffer) {
30883 8 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
30884 : }
30885 16 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
30886 : }
30887 32 : if (flags & NDR_OUT) {
30888 16 : if (r->out.needed == NULL) {
30889 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30890 : }
30891 16 : if (r->out.count == NULL) {
30892 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30893 : }
30894 16 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
30895 16 : if (r->out.info) {
30896 8 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
30897 : }
30898 16 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
30899 16 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
30900 16 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30901 : }
30902 32 : return NDR_ERR_SUCCESS;
30903 : }
30904 :
30905 32 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumMonitors *r)
30906 : {
30907 0 : uint32_t _ptr_servername;
30908 32 : uint32_t size_servername_1 = 0;
30909 32 : uint32_t length_servername_1 = 0;
30910 0 : uint32_t _ptr_buffer;
30911 0 : uint32_t _ptr_info;
30912 32 : TALLOC_CTX *_mem_save_servername_0 = NULL;
30913 32 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
30914 32 : TALLOC_CTX *_mem_save_info_0 = NULL;
30915 32 : TALLOC_CTX *_mem_save_needed_0 = NULL;
30916 32 : TALLOC_CTX *_mem_save_count_0 = NULL;
30917 32 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30918 32 : if (flags & NDR_IN) {
30919 16 : NDR_ZERO_STRUCT(r->out);
30920 :
30921 16 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
30922 16 : if (_ptr_servername) {
30923 16 : NDR_PULL_ALLOC(ndr, r->in.servername);
30924 : } else {
30925 0 : r->in.servername = NULL;
30926 : }
30927 16 : if (r->in.servername) {
30928 16 : _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
30929 16 : NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
30930 16 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
30931 16 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
30932 16 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
30933 16 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
30934 16 : if (length_servername_1 > size_servername_1) {
30935 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
30936 : }
30937 16 : NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
30938 16 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
30939 16 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
30940 : }
30941 16 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
30942 16 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
30943 16 : if (_ptr_buffer) {
30944 8 : NDR_PULL_ALLOC(ndr, r->in.buffer);
30945 : } else {
30946 8 : r->in.buffer = NULL;
30947 : }
30948 16 : if (r->in.buffer) {
30949 8 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
30950 8 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
30951 8 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
30952 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
30953 : }
30954 16 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
30955 16 : NDR_PULL_ALLOC(ndr, r->out.needed);
30956 16 : NDR_ZERO_STRUCTP(r->out.needed);
30957 16 : NDR_PULL_ALLOC(ndr, r->out.count);
30958 16 : NDR_ZERO_STRUCTP(r->out.count);
30959 : }
30960 32 : if (flags & NDR_OUT) {
30961 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
30962 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
30963 16 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
30964 16 : if (_ptr_info) {
30965 8 : NDR_PULL_ALLOC(ndr, r->out.info);
30966 : } else {
30967 8 : r->out.info = NULL;
30968 : }
30969 16 : if (r->out.info) {
30970 8 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
30971 8 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
30972 8 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
30973 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
30974 : }
30975 16 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30976 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
30977 : }
30978 16 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
30979 16 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
30980 16 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
30981 16 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
30982 16 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30983 0 : NDR_PULL_ALLOC(ndr, r->out.count);
30984 : }
30985 16 : _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
30986 16 : NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
30987 16 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
30988 16 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
30989 16 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30990 : }
30991 32 : return NDR_ERR_SUCCESS;
30992 : }
30993 :
30994 24 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumMonitors *r)
30995 : {
30996 0 : uint32_t cntr_info_0;
30997 24 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30998 24 : if (flags & NDR_IN) {
30999 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
31000 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
31001 : }
31002 24 : if (flags & NDR_OUT) {
31003 72 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
31004 48 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
31005 48 : NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
31006 : }
31007 72 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
31008 48 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
31009 48 : NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
31010 : }
31011 : }
31012 24 : return NDR_ERR_SUCCESS;
31013 : }
31014 :
31015 8 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumMonitors *r)
31016 : {
31017 8 : uint32_t size_info_0 = 0;
31018 0 : uint32_t cntr_info_0;
31019 8 : TALLOC_CTX *_mem_save_info_0 = NULL;
31020 8 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31021 8 : if (flags & NDR_IN) {
31022 0 : NDR_ZERO_STRUCT(r->out);
31023 :
31024 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
31025 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
31026 : }
31027 8 : if (flags & NDR_OUT) {
31028 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
31029 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
31030 8 : size_info_0 = r->in.count;
31031 8 : NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
31032 8 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
31033 8 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
31034 24 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
31035 16 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
31036 16 : NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
31037 : }
31038 24 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
31039 16 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
31040 16 : NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
31041 : }
31042 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
31043 24 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
31044 : }
31045 : }
31046 8 : return NDR_ERR_SUCCESS;
31047 : }
31048 :
31049 0 : _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumMonitors *r)
31050 : {
31051 0 : uint32_t cntr_info_2;
31052 0 : ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
31053 0 : if (r == NULL) { ndr_print_null(ndr); return; }
31054 0 : ndr->depth++;
31055 0 : if (flags & NDR_SET_VALUES) {
31056 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31057 : }
31058 0 : if (flags & NDR_IN) {
31059 0 : ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
31060 0 : ndr->depth++;
31061 0 : ndr_print_ptr(ndr, "servername", r->in.servername);
31062 0 : ndr->depth++;
31063 0 : if (r->in.servername) {
31064 0 : ndr_print_string(ndr, "servername", r->in.servername);
31065 : }
31066 0 : ndr->depth--;
31067 0 : ndr_print_uint32(ndr, "level", r->in.level);
31068 0 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
31069 0 : ndr->depth++;
31070 0 : if (r->in.buffer) {
31071 0 : ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
31072 : }
31073 0 : ndr->depth--;
31074 0 : ndr_print_uint32(ndr, "offered", r->in.offered);
31075 0 : ndr->depth--;
31076 : }
31077 0 : if (flags & NDR_OUT) {
31078 0 : ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
31079 0 : ndr->depth++;
31080 0 : ndr_print_ptr(ndr, "count", r->out.count);
31081 0 : ndr->depth++;
31082 0 : ndr_print_uint32(ndr, "count", *r->out.count);
31083 0 : ndr->depth--;
31084 0 : ndr_print_ptr(ndr, "info", r->out.info);
31085 0 : ndr->depth++;
31086 0 : ndr_print_ptr(ndr, "info", *r->out.info);
31087 0 : ndr->depth++;
31088 0 : if (*r->out.info) {
31089 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
31090 0 : ndr->depth++;
31091 0 : for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
31092 0 : ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
31093 0 : ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
31094 : }
31095 0 : ndr->depth--;
31096 : }
31097 0 : ndr->depth--;
31098 0 : ndr->depth--;
31099 0 : ndr_print_ptr(ndr, "needed", r->out.needed);
31100 0 : ndr->depth++;
31101 0 : ndr_print_uint32(ndr, "needed", *r->out.needed);
31102 0 : ndr->depth--;
31103 0 : ndr_print_WERROR(ndr, "result", r->out.result);
31104 0 : ndr->depth--;
31105 : }
31106 0 : ndr->depth--;
31107 : }
31108 :
31109 8 : static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPort *r)
31110 : {
31111 8 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31112 8 : if (flags & NDR_IN) {
31113 4 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
31114 4 : if (r->in.server_name) {
31115 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
31116 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
31117 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
31118 4 : 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));
31119 : }
31120 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
31121 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
31122 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
31123 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
31124 4 : 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));
31125 : }
31126 8 : if (flags & NDR_OUT) {
31127 4 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31128 : }
31129 8 : return NDR_ERR_SUCCESS;
31130 : }
31131 :
31132 8 : static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPort *r)
31133 : {
31134 0 : uint32_t _ptr_server_name;
31135 8 : uint32_t size_server_name_1 = 0;
31136 8 : uint32_t length_server_name_1 = 0;
31137 8 : uint32_t size_monitor_name_0 = 0;
31138 8 : uint32_t length_monitor_name_0 = 0;
31139 8 : TALLOC_CTX *_mem_save_server_name_0 = NULL;
31140 8 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31141 8 : if (flags & NDR_IN) {
31142 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
31143 4 : if (_ptr_server_name) {
31144 4 : NDR_PULL_ALLOC(ndr, r->in.server_name);
31145 : } else {
31146 0 : r->in.server_name = NULL;
31147 : }
31148 4 : if (r->in.server_name) {
31149 4 : _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
31150 4 : NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
31151 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
31152 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
31153 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server_name, &size_server_name_1));
31154 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server_name, &length_server_name_1));
31155 4 : if (length_server_name_1 > size_server_name_1) {
31156 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_name_1, length_server_name_1);
31157 : }
31158 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
31159 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
31160 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
31161 : }
31162 4 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
31163 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
31164 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
31165 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.monitor_name, &size_monitor_name_0));
31166 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.monitor_name, &length_monitor_name_0));
31167 4 : if (length_monitor_name_0 > size_monitor_name_0) {
31168 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_monitor_name_0, length_monitor_name_0);
31169 : }
31170 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_0, sizeof(uint16_t)));
31171 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.monitor_name, length_monitor_name_0, sizeof(uint16_t), CH_UTF16));
31172 : }
31173 8 : if (flags & NDR_OUT) {
31174 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
31175 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
31176 4 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31177 : }
31178 8 : return NDR_ERR_SUCCESS;
31179 : }
31180 :
31181 0 : _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPort *r)
31182 : {
31183 0 : ndr_print_struct(ndr, name, "spoolss_AddPort");
31184 0 : if (r == NULL) { ndr_print_null(ndr); return; }
31185 0 : ndr->depth++;
31186 0 : if (flags & NDR_SET_VALUES) {
31187 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31188 : }
31189 0 : if (flags & NDR_IN) {
31190 0 : ndr_print_struct(ndr, "in", "spoolss_AddPort");
31191 0 : ndr->depth++;
31192 0 : ndr_print_ptr(ndr, "server_name", r->in.server_name);
31193 0 : ndr->depth++;
31194 0 : if (r->in.server_name) {
31195 0 : ndr_print_string(ndr, "server_name", r->in.server_name);
31196 : }
31197 0 : ndr->depth--;
31198 0 : ndr_print_uint32(ndr, "unknown", r->in.unknown);
31199 0 : ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
31200 0 : ndr->depth--;
31201 : }
31202 0 : if (flags & NDR_OUT) {
31203 0 : ndr_print_struct(ndr, "out", "spoolss_AddPort");
31204 0 : ndr->depth++;
31205 0 : ndr_print_WERROR(ndr, "result", r->out.result);
31206 0 : ndr->depth--;
31207 : }
31208 0 : ndr->depth--;
31209 : }
31210 :
31211 0 : static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_ConfigurePort *r)
31212 : {
31213 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31214 0 : if (flags & NDR_IN) {
31215 0 : }
31216 0 : if (flags & NDR_OUT) {
31217 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31218 : }
31219 0 : return NDR_ERR_SUCCESS;
31220 : }
31221 :
31222 0 : static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_ConfigurePort *r)
31223 : {
31224 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31225 0 : if (flags & NDR_IN) {
31226 0 : }
31227 0 : if (flags & NDR_OUT) {
31228 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
31229 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
31230 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31231 : }
31232 0 : return NDR_ERR_SUCCESS;
31233 : }
31234 :
31235 0 : _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_ConfigurePort *r)
31236 : {
31237 0 : ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
31238 0 : if (r == NULL) { ndr_print_null(ndr); return; }
31239 0 : ndr->depth++;
31240 0 : if (flags & NDR_SET_VALUES) {
31241 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31242 : }
31243 0 : if (flags & NDR_IN) {
31244 0 : ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
31245 0 : ndr->depth++;
31246 0 : ndr->depth--;
31247 : }
31248 0 : if (flags & NDR_OUT) {
31249 0 : ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
31250 0 : ndr->depth++;
31251 0 : ndr_print_WERROR(ndr, "result", r->out.result);
31252 0 : ndr->depth--;
31253 : }
31254 0 : ndr->depth--;
31255 : }
31256 :
31257 0 : static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePort *r)
31258 : {
31259 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31260 0 : if (flags & NDR_IN) {
31261 0 : if (r->in.port_name == NULL) {
31262 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31263 : }
31264 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
31265 0 : if (r->in.server_name) {
31266 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
31267 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
31268 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
31269 0 : 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));
31270 : }
31271 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.ptr));
31272 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.port_name, CH_UTF16)));
31273 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
31274 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.port_name, CH_UTF16)));
31275 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.port_name, ndr_charset_length(r->in.port_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
31276 : }
31277 0 : if (flags & NDR_OUT) {
31278 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31279 : }
31280 0 : return NDR_ERR_SUCCESS;
31281 : }
31282 :
31283 0 : static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePort *r)
31284 : {
31285 0 : uint32_t _ptr_server_name;
31286 0 : uint32_t size_server_name_1 = 0;
31287 0 : uint32_t length_server_name_1 = 0;
31288 0 : uint32_t size_port_name_1 = 0;
31289 0 : uint32_t length_port_name_1 = 0;
31290 0 : TALLOC_CTX *_mem_save_server_name_0 = NULL;
31291 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31292 0 : if (flags & NDR_IN) {
31293 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
31294 0 : if (_ptr_server_name) {
31295 0 : NDR_PULL_ALLOC(ndr, r->in.server_name);
31296 : } else {
31297 0 : r->in.server_name = NULL;
31298 : }
31299 0 : if (r->in.server_name) {
31300 0 : _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
31301 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
31302 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
31303 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
31304 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server_name, &size_server_name_1));
31305 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server_name, &length_server_name_1));
31306 0 : if (length_server_name_1 > size_server_name_1) {
31307 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_name_1, length_server_name_1);
31308 : }
31309 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
31310 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
31311 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
31312 : }
31313 0 : NDR_CHECK(ndr_pull_uint3264(ndr, NDR_SCALARS, &r->in.ptr));
31314 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.port_name));
31315 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.port_name));
31316 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.port_name, &size_port_name_1));
31317 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.port_name, &length_port_name_1));
31318 0 : if (length_port_name_1 > size_port_name_1) {
31319 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_port_name_1, length_port_name_1);
31320 : }
31321 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_port_name_1, sizeof(uint16_t)));
31322 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.port_name, length_port_name_1, sizeof(uint16_t), CH_UTF16));
31323 : }
31324 0 : if (flags & NDR_OUT) {
31325 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
31326 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
31327 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31328 : }
31329 0 : return NDR_ERR_SUCCESS;
31330 : }
31331 :
31332 0 : _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePort *r)
31333 : {
31334 0 : ndr_print_struct(ndr, name, "spoolss_DeletePort");
31335 0 : if (r == NULL) { ndr_print_null(ndr); return; }
31336 0 : ndr->depth++;
31337 0 : if (flags & NDR_SET_VALUES) {
31338 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31339 : }
31340 0 : if (flags & NDR_IN) {
31341 0 : ndr_print_struct(ndr, "in", "spoolss_DeletePort");
31342 0 : ndr->depth++;
31343 0 : ndr_print_ptr(ndr, "server_name", r->in.server_name);
31344 0 : ndr->depth++;
31345 0 : if (r->in.server_name) {
31346 0 : ndr_print_string(ndr, "server_name", r->in.server_name);
31347 : }
31348 0 : ndr->depth--;
31349 0 : ndr_print_uint3264(ndr, "ptr", r->in.ptr);
31350 0 : ndr_print_ptr(ndr, "port_name", r->in.port_name);
31351 0 : ndr->depth++;
31352 0 : ndr_print_string(ndr, "port_name", r->in.port_name);
31353 0 : ndr->depth--;
31354 0 : ndr->depth--;
31355 : }
31356 0 : if (flags & NDR_OUT) {
31357 0 : ndr_print_struct(ndr, "out", "spoolss_DeletePort");
31358 0 : ndr->depth++;
31359 0 : ndr_print_WERROR(ndr, "result", r->out.result);
31360 0 : ndr->depth--;
31361 : }
31362 0 : ndr->depth--;
31363 : }
31364 :
31365 0 : static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_CreatePrinterIC *r)
31366 : {
31367 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31368 0 : if (flags & NDR_IN) {
31369 0 : if (r->in.handle == NULL) {
31370 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31371 : }
31372 0 : if (r->in.devmode_ctr == NULL) {
31373 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31374 : }
31375 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
31376 0 : NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
31377 : }
31378 0 : if (flags & NDR_OUT) {
31379 0 : if (r->out.gdi_handle == NULL) {
31380 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31381 : }
31382 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
31383 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31384 : }
31385 0 : return NDR_ERR_SUCCESS;
31386 : }
31387 :
31388 0 : static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_CreatePrinterIC *r)
31389 : {
31390 0 : TALLOC_CTX *_mem_save_handle_0 = NULL;
31391 0 : TALLOC_CTX *_mem_save_gdi_handle_0 = NULL;
31392 0 : TALLOC_CTX *_mem_save_devmode_ctr_0 = NULL;
31393 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31394 0 : if (flags & NDR_IN) {
31395 0 : NDR_ZERO_STRUCT(r->out);
31396 :
31397 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31398 0 : NDR_PULL_ALLOC(ndr, r->in.handle);
31399 : }
31400 0 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
31401 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
31402 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
31403 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
31404 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31405 0 : NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
31406 : }
31407 0 : _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
31408 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
31409 0 : NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
31410 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
31411 0 : NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
31412 0 : NDR_ZERO_STRUCTP(r->out.gdi_handle);
31413 : }
31414 0 : if (flags & NDR_OUT) {
31415 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
31416 : if (r->in.handle == NULL) {
31417 : NDR_PULL_ALLOC(ndr, r->in.handle);
31418 : NDR_ZERO_STRUCTP(r->in.handle);
31419 : }
31420 : if (r->in.devmode_ctr == NULL) {
31421 : NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
31422 : NDR_ZERO_STRUCTP(r->in.devmode_ctr);
31423 : }
31424 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
31425 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31426 0 : NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
31427 : }
31428 0 : _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
31429 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
31430 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
31431 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
31432 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31433 : }
31434 0 : return NDR_ERR_SUCCESS;
31435 : }
31436 :
31437 0 : _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_CreatePrinterIC *r)
31438 : {
31439 0 : ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
31440 0 : if (r == NULL) { ndr_print_null(ndr); return; }
31441 0 : ndr->depth++;
31442 0 : if (flags & NDR_SET_VALUES) {
31443 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31444 : }
31445 0 : if (flags & NDR_IN) {
31446 0 : ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
31447 0 : ndr->depth++;
31448 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
31449 0 : ndr->depth++;
31450 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
31451 0 : ndr->depth--;
31452 0 : ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
31453 0 : ndr->depth++;
31454 0 : ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
31455 0 : ndr->depth--;
31456 0 : ndr->depth--;
31457 : }
31458 0 : if (flags & NDR_OUT) {
31459 0 : ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
31460 0 : ndr->depth++;
31461 0 : ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
31462 0 : ndr->depth++;
31463 0 : ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
31464 0 : ndr->depth--;
31465 0 : ndr_print_WERROR(ndr, "result", r->out.result);
31466 0 : ndr->depth--;
31467 : }
31468 0 : ndr->depth--;
31469 : }
31470 :
31471 0 : static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
31472 : {
31473 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31474 0 : if (flags & NDR_IN) {
31475 0 : if (r->in.gdi_handle == NULL) {
31476 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31477 : }
31478 0 : if (r->in.pIn == NULL) {
31479 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31480 : }
31481 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
31482 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.cIn));
31483 0 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.pIn, r->in.cIn));
31484 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.cIn));
31485 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.cOut));
31486 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.ul));
31487 : }
31488 0 : if (flags & NDR_OUT) {
31489 0 : if (r->out.pOut == NULL) {
31490 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31491 : }
31492 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.cOut));
31493 0 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.pOut, r->in.cOut));
31494 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31495 : }
31496 0 : return NDR_ERR_SUCCESS;
31497 : }
31498 :
31499 0 : static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
31500 : {
31501 0 : uint32_t size_pIn_1 = 0;
31502 0 : uint32_t size_pOut_1 = 0;
31503 0 : TALLOC_CTX *_mem_save_gdi_handle_0 = NULL;
31504 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31505 0 : if (flags & NDR_IN) {
31506 0 : NDR_ZERO_STRUCT(r->out);
31507 :
31508 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31509 0 : NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
31510 : }
31511 0 : _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
31512 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
31513 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
31514 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
31515 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.pIn));
31516 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.pIn, &size_pIn_1));
31517 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31518 0 : NDR_PULL_ALLOC_N(ndr, r->in.pIn, size_pIn_1);
31519 : }
31520 0 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.pIn, size_pIn_1));
31521 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.cIn));
31522 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.cOut));
31523 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.ul));
31524 0 : NDR_PULL_ALLOC_N(ndr, r->out.pOut, r->in.cOut);
31525 0 : memset(r->out.pOut, 0, (r->in.cOut) * sizeof(*r->out.pOut));
31526 0 : if (r->in.pIn) {
31527 0 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.pIn, r->in.cIn));
31528 : }
31529 : }
31530 0 : if (flags & NDR_OUT) {
31531 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
31532 : if (r->in.gdi_handle == NULL) {
31533 : NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
31534 : NDR_ZERO_STRUCTP(r->in.gdi_handle);
31535 : }
31536 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
31537 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->out.pOut));
31538 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.pOut, &size_pOut_1));
31539 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31540 0 : NDR_PULL_ALLOC_N(ndr, r->out.pOut, size_pOut_1);
31541 : }
31542 0 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.pOut, size_pOut_1));
31543 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31544 0 : if (r->out.pOut) {
31545 0 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.pOut, r->in.cOut));
31546 : }
31547 : }
31548 0 : return NDR_ERR_SUCCESS;
31549 : }
31550 :
31551 0 : _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
31552 : {
31553 0 : ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
31554 0 : if (r == NULL) { ndr_print_null(ndr); return; }
31555 0 : ndr->depth++;
31556 0 : if (flags & NDR_SET_VALUES) {
31557 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31558 : }
31559 0 : if (flags & NDR_IN) {
31560 0 : ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
31561 0 : ndr->depth++;
31562 0 : ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
31563 0 : ndr->depth++;
31564 0 : ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
31565 0 : ndr->depth--;
31566 0 : ndr_print_ptr(ndr, "pIn", r->in.pIn);
31567 0 : ndr->depth++;
31568 0 : ndr_print_array_uint8(ndr, "pIn", r->in.pIn, r->in.cIn);
31569 0 : ndr->depth--;
31570 0 : ndr_print_uint32(ndr, "cIn", r->in.cIn);
31571 0 : ndr_print_uint32(ndr, "cOut", r->in.cOut);
31572 0 : ndr_print_uint32(ndr, "ul", r->in.ul);
31573 0 : ndr->depth--;
31574 : }
31575 0 : if (flags & NDR_OUT) {
31576 0 : ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
31577 0 : ndr->depth++;
31578 0 : ndr_print_ptr(ndr, "pOut", r->out.pOut);
31579 0 : ndr->depth++;
31580 0 : ndr_print_array_uint8(ndr, "pOut", r->out.pOut, r->in.cOut);
31581 0 : ndr->depth--;
31582 0 : ndr_print_WERROR(ndr, "result", r->out.result);
31583 0 : ndr->depth--;
31584 : }
31585 0 : ndr->depth--;
31586 : }
31587 :
31588 0 : static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrinterIC *r)
31589 : {
31590 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31591 0 : if (flags & NDR_IN) {
31592 0 : if (r->in.gdi_handle == NULL) {
31593 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31594 : }
31595 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
31596 : }
31597 0 : if (flags & NDR_OUT) {
31598 0 : if (r->out.gdi_handle == NULL) {
31599 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31600 : }
31601 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
31602 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31603 : }
31604 0 : return NDR_ERR_SUCCESS;
31605 : }
31606 :
31607 0 : static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrinterIC *r)
31608 : {
31609 0 : TALLOC_CTX *_mem_save_gdi_handle_0 = NULL;
31610 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31611 0 : if (flags & NDR_IN) {
31612 0 : NDR_ZERO_STRUCT(r->out);
31613 :
31614 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31615 0 : NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
31616 : }
31617 0 : _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
31618 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
31619 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
31620 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
31621 0 : NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
31622 0 : *r->out.gdi_handle = *r->in.gdi_handle;
31623 : }
31624 0 : if (flags & NDR_OUT) {
31625 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
31626 : if (r->in.gdi_handle == NULL) {
31627 : NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
31628 : NDR_ZERO_STRUCTP(r->in.gdi_handle);
31629 : }
31630 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
31631 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31632 0 : NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
31633 : }
31634 0 : _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
31635 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
31636 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
31637 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
31638 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31639 : }
31640 0 : return NDR_ERR_SUCCESS;
31641 : }
31642 :
31643 0 : _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrinterIC *r)
31644 : {
31645 0 : ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
31646 0 : if (r == NULL) { ndr_print_null(ndr); return; }
31647 0 : ndr->depth++;
31648 0 : if (flags & NDR_SET_VALUES) {
31649 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31650 : }
31651 0 : if (flags & NDR_IN) {
31652 0 : ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
31653 0 : ndr->depth++;
31654 0 : ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
31655 0 : ndr->depth++;
31656 0 : ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
31657 0 : ndr->depth--;
31658 0 : ndr->depth--;
31659 : }
31660 0 : if (flags & NDR_OUT) {
31661 0 : ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
31662 0 : ndr->depth++;
31663 0 : ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
31664 0 : ndr->depth++;
31665 0 : ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
31666 0 : ndr->depth--;
31667 0 : ndr_print_WERROR(ndr, "result", r->out.result);
31668 0 : ndr->depth--;
31669 : }
31670 0 : ndr->depth--;
31671 : }
31672 :
31673 0 : static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPrinterConnection *r)
31674 : {
31675 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31676 0 : if (flags & NDR_IN) {
31677 0 : }
31678 0 : if (flags & NDR_OUT) {
31679 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31680 : }
31681 0 : return NDR_ERR_SUCCESS;
31682 : }
31683 :
31684 0 : static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPrinterConnection *r)
31685 : {
31686 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31687 0 : if (flags & NDR_IN) {
31688 0 : }
31689 0 : if (flags & NDR_OUT) {
31690 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
31691 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
31692 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31693 : }
31694 0 : return NDR_ERR_SUCCESS;
31695 : }
31696 :
31697 0 : _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPrinterConnection *r)
31698 : {
31699 0 : ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
31700 0 : if (r == NULL) { ndr_print_null(ndr); return; }
31701 0 : ndr->depth++;
31702 0 : if (flags & NDR_SET_VALUES) {
31703 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31704 : }
31705 0 : if (flags & NDR_IN) {
31706 0 : ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
31707 0 : ndr->depth++;
31708 0 : ndr->depth--;
31709 : }
31710 0 : if (flags & NDR_OUT) {
31711 0 : ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
31712 0 : ndr->depth++;
31713 0 : ndr_print_WERROR(ndr, "result", r->out.result);
31714 0 : ndr->depth--;
31715 : }
31716 0 : ndr->depth--;
31717 : }
31718 :
31719 0 : static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrinterConnection *r)
31720 : {
31721 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31722 0 : if (flags & NDR_IN) {
31723 0 : }
31724 0 : if (flags & NDR_OUT) {
31725 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31726 : }
31727 0 : return NDR_ERR_SUCCESS;
31728 : }
31729 :
31730 0 : static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrinterConnection *r)
31731 : {
31732 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31733 0 : if (flags & NDR_IN) {
31734 0 : }
31735 0 : if (flags & NDR_OUT) {
31736 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
31737 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
31738 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31739 : }
31740 0 : return NDR_ERR_SUCCESS;
31741 : }
31742 :
31743 0 : _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrinterConnection *r)
31744 : {
31745 0 : ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
31746 0 : if (r == NULL) { ndr_print_null(ndr); return; }
31747 0 : ndr->depth++;
31748 0 : if (flags & NDR_SET_VALUES) {
31749 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31750 : }
31751 0 : if (flags & NDR_IN) {
31752 0 : ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
31753 0 : ndr->depth++;
31754 0 : ndr->depth--;
31755 : }
31756 0 : if (flags & NDR_OUT) {
31757 0 : ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
31758 0 : ndr->depth++;
31759 0 : ndr_print_WERROR(ndr, "result", r->out.result);
31760 0 : ndr->depth--;
31761 : }
31762 0 : ndr->depth--;
31763 : }
31764 :
31765 0 : static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_PrinterMessageBox *r)
31766 : {
31767 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31768 0 : if (flags & NDR_IN) {
31769 0 : }
31770 0 : if (flags & NDR_OUT) {
31771 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31772 : }
31773 0 : return NDR_ERR_SUCCESS;
31774 : }
31775 :
31776 0 : static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_PrinterMessageBox *r)
31777 : {
31778 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31779 0 : if (flags & NDR_IN) {
31780 0 : }
31781 0 : if (flags & NDR_OUT) {
31782 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
31783 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
31784 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31785 : }
31786 0 : return NDR_ERR_SUCCESS;
31787 : }
31788 :
31789 0 : _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_PrinterMessageBox *r)
31790 : {
31791 0 : ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
31792 0 : if (r == NULL) { ndr_print_null(ndr); return; }
31793 0 : ndr->depth++;
31794 0 : if (flags & NDR_SET_VALUES) {
31795 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31796 : }
31797 0 : if (flags & NDR_IN) {
31798 0 : ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
31799 0 : ndr->depth++;
31800 0 : ndr->depth--;
31801 : }
31802 0 : if (flags & NDR_OUT) {
31803 0 : ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
31804 0 : ndr->depth++;
31805 0 : ndr_print_WERROR(ndr, "result", r->out.result);
31806 0 : ndr->depth--;
31807 : }
31808 0 : ndr->depth--;
31809 : }
31810 :
31811 0 : static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddMonitor *r)
31812 : {
31813 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31814 0 : if (flags & NDR_IN) {
31815 0 : }
31816 0 : if (flags & NDR_OUT) {
31817 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31818 : }
31819 0 : return NDR_ERR_SUCCESS;
31820 : }
31821 :
31822 0 : static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddMonitor *r)
31823 : {
31824 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31825 0 : if (flags & NDR_IN) {
31826 0 : }
31827 0 : if (flags & NDR_OUT) {
31828 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
31829 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
31830 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31831 : }
31832 0 : return NDR_ERR_SUCCESS;
31833 : }
31834 :
31835 0 : _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddMonitor *r)
31836 : {
31837 0 : ndr_print_struct(ndr, name, "spoolss_AddMonitor");
31838 0 : if (r == NULL) { ndr_print_null(ndr); return; }
31839 0 : ndr->depth++;
31840 0 : if (flags & NDR_SET_VALUES) {
31841 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31842 : }
31843 0 : if (flags & NDR_IN) {
31844 0 : ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
31845 0 : ndr->depth++;
31846 0 : ndr->depth--;
31847 : }
31848 0 : if (flags & NDR_OUT) {
31849 0 : ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
31850 0 : ndr->depth++;
31851 0 : ndr_print_WERROR(ndr, "result", r->out.result);
31852 0 : ndr->depth--;
31853 : }
31854 0 : ndr->depth--;
31855 : }
31856 :
31857 0 : static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeleteMonitor *r)
31858 : {
31859 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31860 0 : if (flags & NDR_IN) {
31861 0 : }
31862 0 : if (flags & NDR_OUT) {
31863 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31864 : }
31865 0 : return NDR_ERR_SUCCESS;
31866 : }
31867 :
31868 0 : static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeleteMonitor *r)
31869 : {
31870 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31871 0 : if (flags & NDR_IN) {
31872 0 : }
31873 0 : if (flags & NDR_OUT) {
31874 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
31875 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
31876 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31877 : }
31878 0 : return NDR_ERR_SUCCESS;
31879 : }
31880 :
31881 0 : _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeleteMonitor *r)
31882 : {
31883 0 : ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
31884 0 : if (r == NULL) { ndr_print_null(ndr); return; }
31885 0 : ndr->depth++;
31886 0 : if (flags & NDR_SET_VALUES) {
31887 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31888 : }
31889 0 : if (flags & NDR_IN) {
31890 0 : ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
31891 0 : ndr->depth++;
31892 0 : ndr->depth--;
31893 : }
31894 0 : if (flags & NDR_OUT) {
31895 0 : ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
31896 0 : ndr->depth++;
31897 0 : ndr_print_WERROR(ndr, "result", r->out.result);
31898 0 : ndr->depth--;
31899 : }
31900 0 : ndr->depth--;
31901 : }
31902 :
31903 0 : static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrintProcessor *r)
31904 : {
31905 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31906 0 : if (flags & NDR_IN) {
31907 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
31908 0 : if (r->in.server) {
31909 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
31910 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
31911 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
31912 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
31913 : }
31914 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
31915 0 : if (r->in.architecture) {
31916 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
31917 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
31918 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
31919 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
31920 : }
31921 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
31922 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
31923 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
31924 0 : 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));
31925 : }
31926 0 : if (flags & NDR_OUT) {
31927 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31928 : }
31929 0 : return NDR_ERR_SUCCESS;
31930 : }
31931 :
31932 0 : static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrintProcessor *r)
31933 : {
31934 0 : uint32_t _ptr_server;
31935 0 : uint32_t size_server_1 = 0;
31936 0 : uint32_t length_server_1 = 0;
31937 0 : uint32_t _ptr_architecture;
31938 0 : uint32_t size_architecture_1 = 0;
31939 0 : uint32_t length_architecture_1 = 0;
31940 0 : uint32_t size_print_processor_name_0 = 0;
31941 0 : uint32_t length_print_processor_name_0 = 0;
31942 0 : TALLOC_CTX *_mem_save_server_0 = NULL;
31943 0 : TALLOC_CTX *_mem_save_architecture_0 = NULL;
31944 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31945 0 : if (flags & NDR_IN) {
31946 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
31947 0 : if (_ptr_server) {
31948 0 : NDR_PULL_ALLOC(ndr, r->in.server);
31949 : } else {
31950 0 : r->in.server = NULL;
31951 : }
31952 0 : if (r->in.server) {
31953 0 : _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
31954 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
31955 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
31956 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
31957 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
31958 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
31959 0 : if (length_server_1 > size_server_1) {
31960 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
31961 : }
31962 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
31963 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
31964 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
31965 : }
31966 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
31967 0 : if (_ptr_architecture) {
31968 0 : NDR_PULL_ALLOC(ndr, r->in.architecture);
31969 : } else {
31970 0 : r->in.architecture = NULL;
31971 : }
31972 0 : if (r->in.architecture) {
31973 0 : _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
31974 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
31975 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
31976 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
31977 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.architecture, &size_architecture_1));
31978 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.architecture, &length_architecture_1));
31979 0 : if (length_architecture_1 > size_architecture_1) {
31980 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
31981 : }
31982 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
31983 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
31984 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
31985 : }
31986 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
31987 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
31988 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.print_processor_name, &size_print_processor_name_0));
31989 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.print_processor_name, &length_print_processor_name_0));
31990 0 : if (length_print_processor_name_0 > size_print_processor_name_0) {
31991 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_print_processor_name_0, length_print_processor_name_0);
31992 : }
31993 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_name_0, sizeof(uint16_t)));
31994 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, length_print_processor_name_0, sizeof(uint16_t), CH_UTF16));
31995 : }
31996 0 : if (flags & NDR_OUT) {
31997 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
31998 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
31999 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32000 : }
32001 0 : return NDR_ERR_SUCCESS;
32002 : }
32003 :
32004 0 : _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrintProcessor *r)
32005 : {
32006 0 : ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
32007 0 : if (r == NULL) { ndr_print_null(ndr); return; }
32008 0 : ndr->depth++;
32009 0 : if (flags & NDR_SET_VALUES) {
32010 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32011 : }
32012 0 : if (flags & NDR_IN) {
32013 0 : ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
32014 0 : ndr->depth++;
32015 0 : ndr_print_ptr(ndr, "server", r->in.server);
32016 0 : ndr->depth++;
32017 0 : if (r->in.server) {
32018 0 : ndr_print_string(ndr, "server", r->in.server);
32019 : }
32020 0 : ndr->depth--;
32021 0 : ndr_print_ptr(ndr, "architecture", r->in.architecture);
32022 0 : ndr->depth++;
32023 0 : if (r->in.architecture) {
32024 0 : ndr_print_string(ndr, "architecture", r->in.architecture);
32025 : }
32026 0 : ndr->depth--;
32027 0 : ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
32028 0 : ndr->depth--;
32029 : }
32030 0 : if (flags & NDR_OUT) {
32031 0 : ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
32032 0 : ndr->depth++;
32033 0 : ndr_print_WERROR(ndr, "result", r->out.result);
32034 0 : ndr->depth--;
32035 : }
32036 0 : ndr->depth--;
32037 : }
32038 :
32039 0 : static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPrintProvidor *r)
32040 : {
32041 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32042 0 : if (flags & NDR_IN) {
32043 0 : }
32044 0 : if (flags & NDR_OUT) {
32045 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32046 : }
32047 0 : return NDR_ERR_SUCCESS;
32048 : }
32049 :
32050 0 : static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPrintProvidor *r)
32051 : {
32052 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32053 0 : if (flags & NDR_IN) {
32054 0 : }
32055 0 : if (flags & NDR_OUT) {
32056 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
32057 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
32058 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32059 : }
32060 0 : return NDR_ERR_SUCCESS;
32061 : }
32062 :
32063 0 : _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPrintProvidor *r)
32064 : {
32065 0 : ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
32066 0 : if (r == NULL) { ndr_print_null(ndr); return; }
32067 0 : ndr->depth++;
32068 0 : if (flags & NDR_SET_VALUES) {
32069 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32070 : }
32071 0 : if (flags & NDR_IN) {
32072 0 : ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
32073 0 : ndr->depth++;
32074 0 : ndr->depth--;
32075 : }
32076 0 : if (flags & NDR_OUT) {
32077 0 : ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
32078 0 : ndr->depth++;
32079 0 : ndr_print_WERROR(ndr, "result", r->out.result);
32080 0 : ndr->depth--;
32081 : }
32082 0 : ndr->depth--;
32083 : }
32084 :
32085 0 : static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrintProvidor *r)
32086 : {
32087 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32088 0 : if (flags & NDR_IN) {
32089 0 : }
32090 0 : if (flags & NDR_OUT) {
32091 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32092 : }
32093 0 : return NDR_ERR_SUCCESS;
32094 : }
32095 :
32096 0 : static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrintProvidor *r)
32097 : {
32098 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32099 0 : if (flags & NDR_IN) {
32100 0 : }
32101 0 : if (flags & NDR_OUT) {
32102 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
32103 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
32104 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32105 : }
32106 0 : return NDR_ERR_SUCCESS;
32107 : }
32108 :
32109 0 : _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrintProvidor *r)
32110 : {
32111 0 : ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
32112 0 : if (r == NULL) { ndr_print_null(ndr); return; }
32113 0 : ndr->depth++;
32114 0 : if (flags & NDR_SET_VALUES) {
32115 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32116 : }
32117 0 : if (flags & NDR_IN) {
32118 0 : ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
32119 0 : ndr->depth++;
32120 0 : ndr->depth--;
32121 : }
32122 0 : if (flags & NDR_OUT) {
32123 0 : ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
32124 0 : ndr->depth++;
32125 0 : ndr_print_WERROR(ndr, "result", r->out.result);
32126 0 : ndr->depth--;
32127 : }
32128 0 : ndr->depth--;
32129 : }
32130 :
32131 88 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessorDataTypes(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumPrintProcessorDataTypes *r)
32132 : {
32133 88 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32134 88 : if (flags & NDR_IN) {
32135 44 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
32136 44 : if (r->in.servername) {
32137 44 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
32138 44 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
32139 44 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
32140 44 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
32141 : }
32142 44 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
32143 44 : if (r->in.print_processor_name) {
32144 40 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
32145 40 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
32146 40 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
32147 40 : 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));
32148 : }
32149 44 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
32150 44 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
32151 44 : if (r->in.buffer) {
32152 8 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
32153 : }
32154 44 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
32155 : }
32156 88 : if (flags & NDR_OUT) {
32157 44 : if (r->out.needed == NULL) {
32158 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32159 : }
32160 44 : if (r->out.count == NULL) {
32161 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32162 : }
32163 44 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
32164 44 : if (r->out.info) {
32165 8 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
32166 : }
32167 44 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
32168 44 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
32169 44 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32170 : }
32171 88 : return NDR_ERR_SUCCESS;
32172 : }
32173 :
32174 88 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessorDataTypes(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumPrintProcessorDataTypes *r)
32175 : {
32176 0 : uint32_t _ptr_servername;
32177 88 : uint32_t size_servername_1 = 0;
32178 88 : uint32_t length_servername_1 = 0;
32179 0 : uint32_t _ptr_print_processor_name;
32180 88 : uint32_t size_print_processor_name_1 = 0;
32181 88 : uint32_t length_print_processor_name_1 = 0;
32182 0 : uint32_t _ptr_buffer;
32183 0 : uint32_t _ptr_info;
32184 88 : TALLOC_CTX *_mem_save_servername_0 = NULL;
32185 88 : TALLOC_CTX *_mem_save_print_processor_name_0 = NULL;
32186 88 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
32187 88 : TALLOC_CTX *_mem_save_info_0 = NULL;
32188 88 : TALLOC_CTX *_mem_save_needed_0 = NULL;
32189 88 : TALLOC_CTX *_mem_save_count_0 = NULL;
32190 88 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32191 88 : if (flags & NDR_IN) {
32192 44 : NDR_ZERO_STRUCT(r->out);
32193 :
32194 44 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
32195 44 : if (_ptr_servername) {
32196 44 : NDR_PULL_ALLOC(ndr, r->in.servername);
32197 : } else {
32198 0 : r->in.servername = NULL;
32199 : }
32200 44 : if (r->in.servername) {
32201 44 : _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
32202 44 : NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
32203 44 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
32204 44 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
32205 44 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
32206 44 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
32207 44 : if (length_servername_1 > size_servername_1) {
32208 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
32209 : }
32210 44 : NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
32211 44 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
32212 44 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
32213 : }
32214 44 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
32215 44 : if (_ptr_print_processor_name) {
32216 40 : NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
32217 : } else {
32218 4 : r->in.print_processor_name = NULL;
32219 : }
32220 44 : if (r->in.print_processor_name) {
32221 40 : _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
32222 40 : NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
32223 40 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
32224 40 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
32225 40 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.print_processor_name, &size_print_processor_name_1));
32226 40 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.print_processor_name, &length_print_processor_name_1));
32227 40 : if (length_print_processor_name_1 > size_print_processor_name_1) {
32228 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_print_processor_name_1, length_print_processor_name_1);
32229 : }
32230 40 : NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_name_1, sizeof(uint16_t)));
32231 40 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, length_print_processor_name_1, sizeof(uint16_t), CH_UTF16));
32232 40 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
32233 : }
32234 44 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
32235 44 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
32236 44 : if (_ptr_buffer) {
32237 8 : NDR_PULL_ALLOC(ndr, r->in.buffer);
32238 : } else {
32239 36 : r->in.buffer = NULL;
32240 : }
32241 44 : if (r->in.buffer) {
32242 8 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
32243 8 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
32244 8 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
32245 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
32246 : }
32247 44 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
32248 44 : NDR_PULL_ALLOC(ndr, r->out.needed);
32249 44 : NDR_ZERO_STRUCTP(r->out.needed);
32250 44 : NDR_PULL_ALLOC(ndr, r->out.count);
32251 44 : NDR_ZERO_STRUCTP(r->out.count);
32252 : }
32253 88 : if (flags & NDR_OUT) {
32254 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
32255 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
32256 44 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
32257 44 : if (_ptr_info) {
32258 8 : NDR_PULL_ALLOC(ndr, r->out.info);
32259 : } else {
32260 36 : r->out.info = NULL;
32261 : }
32262 44 : if (r->out.info) {
32263 8 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
32264 8 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
32265 8 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
32266 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
32267 : }
32268 44 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32269 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
32270 : }
32271 44 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
32272 44 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
32273 44 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
32274 44 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
32275 44 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32276 0 : NDR_PULL_ALLOC(ndr, r->out.count);
32277 : }
32278 44 : _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
32279 44 : NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
32280 44 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
32281 44 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
32282 44 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32283 : }
32284 88 : return NDR_ERR_SUCCESS;
32285 : }
32286 :
32287 24 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessorDataTypes(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumPrintProcessorDataTypes *r)
32288 : {
32289 0 : uint32_t cntr_info_0;
32290 24 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32291 24 : if (flags & NDR_IN) {
32292 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
32293 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
32294 : }
32295 24 : if (flags & NDR_OUT) {
32296 48 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
32297 24 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
32298 24 : NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
32299 : }
32300 48 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
32301 24 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
32302 24 : NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
32303 : }
32304 : }
32305 24 : return NDR_ERR_SUCCESS;
32306 : }
32307 :
32308 8 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessorDataTypes(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumPrintProcessorDataTypes *r)
32309 : {
32310 8 : uint32_t size_info_0 = 0;
32311 0 : uint32_t cntr_info_0;
32312 8 : TALLOC_CTX *_mem_save_info_0 = NULL;
32313 8 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32314 8 : if (flags & NDR_IN) {
32315 0 : NDR_ZERO_STRUCT(r->out);
32316 :
32317 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
32318 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
32319 : }
32320 8 : if (flags & NDR_OUT) {
32321 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
32322 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
32323 8 : size_info_0 = r->in.count;
32324 8 : NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
32325 8 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
32326 8 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
32327 16 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
32328 8 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
32329 8 : NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
32330 : }
32331 16 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
32332 8 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
32333 8 : NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
32334 : }
32335 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
32336 16 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
32337 : }
32338 : }
32339 8 : return NDR_ERR_SUCCESS;
32340 : }
32341 :
32342 0 : _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessorDataTypes(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPrintProcessorDataTypes *r)
32343 : {
32344 0 : uint32_t cntr_info_2;
32345 0 : ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessorDataTypes");
32346 0 : if (r == NULL) { ndr_print_null(ndr); return; }
32347 0 : ndr->depth++;
32348 0 : if (flags & NDR_SET_VALUES) {
32349 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32350 : }
32351 0 : if (flags & NDR_IN) {
32352 0 : ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessorDataTypes");
32353 0 : ndr->depth++;
32354 0 : ndr_print_ptr(ndr, "servername", r->in.servername);
32355 0 : ndr->depth++;
32356 0 : if (r->in.servername) {
32357 0 : ndr_print_string(ndr, "servername", r->in.servername);
32358 : }
32359 0 : ndr->depth--;
32360 0 : ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
32361 0 : ndr->depth++;
32362 0 : if (r->in.print_processor_name) {
32363 0 : ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
32364 : }
32365 0 : ndr->depth--;
32366 0 : ndr_print_uint32(ndr, "level", r->in.level);
32367 0 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
32368 0 : ndr->depth++;
32369 0 : if (r->in.buffer) {
32370 0 : ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
32371 : }
32372 0 : ndr->depth--;
32373 0 : ndr_print_uint32(ndr, "offered", r->in.offered);
32374 0 : ndr->depth--;
32375 : }
32376 0 : if (flags & NDR_OUT) {
32377 0 : ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessorDataTypes");
32378 0 : ndr->depth++;
32379 0 : ndr_print_ptr(ndr, "count", r->out.count);
32380 0 : ndr->depth++;
32381 0 : ndr_print_uint32(ndr, "count", *r->out.count);
32382 0 : ndr->depth--;
32383 0 : ndr_print_ptr(ndr, "info", r->out.info);
32384 0 : ndr->depth++;
32385 0 : ndr_print_ptr(ndr, "info", *r->out.info);
32386 0 : ndr->depth++;
32387 0 : if (*r->out.info) {
32388 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
32389 0 : ndr->depth++;
32390 0 : for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
32391 0 : ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
32392 0 : ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
32393 : }
32394 0 : ndr->depth--;
32395 : }
32396 0 : ndr->depth--;
32397 0 : ndr->depth--;
32398 0 : ndr_print_ptr(ndr, "needed", r->out.needed);
32399 0 : ndr->depth++;
32400 0 : ndr_print_uint32(ndr, "needed", *r->out.needed);
32401 0 : ndr->depth--;
32402 0 : ndr_print_WERROR(ndr, "result", r->out.result);
32403 0 : ndr->depth--;
32404 : }
32405 0 : ndr->depth--;
32406 : }
32407 :
32408 0 : static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_ResetPrinter *r)
32409 : {
32410 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32411 0 : if (flags & NDR_IN) {
32412 0 : if (r->in.handle == NULL) {
32413 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32414 : }
32415 0 : if (r->in.devmode_ctr == NULL) {
32416 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32417 : }
32418 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
32419 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
32420 0 : if (r->in.data_type) {
32421 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
32422 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
32423 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
32424 0 : 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));
32425 : }
32426 0 : NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
32427 : }
32428 0 : if (flags & NDR_OUT) {
32429 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32430 : }
32431 0 : return NDR_ERR_SUCCESS;
32432 : }
32433 :
32434 0 : static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_ResetPrinter *r)
32435 : {
32436 0 : uint32_t _ptr_data_type;
32437 0 : uint32_t size_data_type_1 = 0;
32438 0 : uint32_t length_data_type_1 = 0;
32439 0 : TALLOC_CTX *_mem_save_handle_0 = NULL;
32440 0 : TALLOC_CTX *_mem_save_data_type_0 = NULL;
32441 0 : TALLOC_CTX *_mem_save_devmode_ctr_0 = NULL;
32442 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32443 0 : if (flags & NDR_IN) {
32444 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32445 0 : NDR_PULL_ALLOC(ndr, r->in.handle);
32446 : }
32447 0 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
32448 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
32449 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
32450 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
32451 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
32452 0 : if (_ptr_data_type) {
32453 0 : NDR_PULL_ALLOC(ndr, r->in.data_type);
32454 : } else {
32455 0 : r->in.data_type = NULL;
32456 : }
32457 0 : if (r->in.data_type) {
32458 0 : _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
32459 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
32460 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
32461 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
32462 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.data_type, &size_data_type_1));
32463 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.data_type, &length_data_type_1));
32464 0 : if (length_data_type_1 > size_data_type_1) {
32465 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_data_type_1, length_data_type_1);
32466 : }
32467 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
32468 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
32469 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
32470 : }
32471 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32472 0 : NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
32473 : }
32474 0 : _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
32475 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
32476 0 : NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
32477 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
32478 : }
32479 0 : if (flags & NDR_OUT) {
32480 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
32481 : if (r->in.handle == NULL) {
32482 : NDR_PULL_ALLOC(ndr, r->in.handle);
32483 : NDR_ZERO_STRUCTP(r->in.handle);
32484 : }
32485 : if (r->in.devmode_ctr == NULL) {
32486 : NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
32487 : NDR_ZERO_STRUCTP(r->in.devmode_ctr);
32488 : }
32489 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
32490 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32491 : }
32492 0 : return NDR_ERR_SUCCESS;
32493 : }
32494 :
32495 0 : _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_ResetPrinter *r)
32496 : {
32497 0 : ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
32498 0 : if (r == NULL) { ndr_print_null(ndr); return; }
32499 0 : ndr->depth++;
32500 0 : if (flags & NDR_SET_VALUES) {
32501 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32502 : }
32503 0 : if (flags & NDR_IN) {
32504 0 : ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
32505 0 : ndr->depth++;
32506 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
32507 0 : ndr->depth++;
32508 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
32509 0 : ndr->depth--;
32510 0 : ndr_print_ptr(ndr, "data_type", r->in.data_type);
32511 0 : ndr->depth++;
32512 0 : if (r->in.data_type) {
32513 0 : ndr_print_string(ndr, "data_type", r->in.data_type);
32514 : }
32515 0 : ndr->depth--;
32516 0 : ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
32517 0 : ndr->depth++;
32518 0 : ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
32519 0 : ndr->depth--;
32520 0 : ndr->depth--;
32521 : }
32522 0 : if (flags & NDR_OUT) {
32523 0 : ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
32524 0 : ndr->depth++;
32525 0 : ndr_print_WERROR(ndr, "result", r->out.result);
32526 0 : ndr->depth--;
32527 : }
32528 0 : ndr->depth--;
32529 : }
32530 :
32531 8 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetPrinterDriver2 *r)
32532 : {
32533 8 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32534 8 : if (flags & NDR_IN) {
32535 4 : if (r->in.handle == NULL) {
32536 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32537 : }
32538 4 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
32539 4 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
32540 4 : if (r->in.architecture) {
32541 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
32542 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
32543 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
32544 4 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
32545 : }
32546 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
32547 4 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
32548 4 : if (r->in.buffer) {
32549 4 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
32550 : }
32551 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
32552 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
32553 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
32554 : }
32555 8 : if (flags & NDR_OUT) {
32556 4 : if (r->out.needed == NULL) {
32557 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32558 : }
32559 4 : if (r->out.server_major_version == NULL) {
32560 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32561 : }
32562 4 : if (r->out.server_minor_version == NULL) {
32563 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32564 : }
32565 4 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
32566 4 : if (r->out.info) {
32567 : {
32568 0 : struct ndr_push *_ndr_info;
32569 0 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
32570 0 : NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
32571 0 : NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
32572 0 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
32573 : }
32574 : }
32575 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
32576 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
32577 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
32578 4 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32579 : }
32580 8 : return NDR_ERR_SUCCESS;
32581 : }
32582 :
32583 14 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetPrinterDriver2 *r)
32584 : {
32585 6 : uint32_t _ptr_architecture;
32586 14 : uint32_t size_architecture_1 = 0;
32587 14 : uint32_t length_architecture_1 = 0;
32588 6 : uint32_t _ptr_buffer;
32589 6 : uint32_t _ptr_info;
32590 14 : TALLOC_CTX *_mem_save_handle_0 = NULL;
32591 14 : TALLOC_CTX *_mem_save_architecture_0 = NULL;
32592 14 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
32593 14 : TALLOC_CTX *_mem_save_info_0 = NULL;
32594 14 : TALLOC_CTX *_mem_save_needed_0 = NULL;
32595 14 : TALLOC_CTX *_mem_save_server_major_version_0 = NULL;
32596 14 : TALLOC_CTX *_mem_save_server_minor_version_0 = NULL;
32597 14 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32598 14 : if (flags & NDR_IN) {
32599 8 : NDR_ZERO_STRUCT(r->out);
32600 :
32601 8 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32602 8 : NDR_PULL_ALLOC(ndr, r->in.handle);
32603 : }
32604 8 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
32605 8 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
32606 8 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
32607 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
32608 8 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
32609 8 : if (_ptr_architecture) {
32610 8 : NDR_PULL_ALLOC(ndr, r->in.architecture);
32611 : } else {
32612 0 : r->in.architecture = NULL;
32613 : }
32614 8 : if (r->in.architecture) {
32615 8 : _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
32616 8 : NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
32617 8 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
32618 8 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
32619 8 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.architecture, &size_architecture_1));
32620 8 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.architecture, &length_architecture_1));
32621 8 : if (length_architecture_1 > size_architecture_1) {
32622 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
32623 : }
32624 8 : NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
32625 8 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
32626 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
32627 : }
32628 8 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
32629 8 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
32630 8 : if (_ptr_buffer) {
32631 8 : NDR_PULL_ALLOC(ndr, r->in.buffer);
32632 : } else {
32633 0 : r->in.buffer = NULL;
32634 : }
32635 8 : if (r->in.buffer) {
32636 8 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
32637 8 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
32638 8 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
32639 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
32640 : }
32641 8 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
32642 8 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
32643 8 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
32644 8 : NDR_PULL_ALLOC(ndr, r->out.needed);
32645 8 : NDR_ZERO_STRUCTP(r->out.needed);
32646 8 : NDR_PULL_ALLOC(ndr, r->out.server_major_version);
32647 8 : NDR_ZERO_STRUCTP(r->out.server_major_version);
32648 8 : NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
32649 8 : NDR_ZERO_STRUCTP(r->out.server_minor_version);
32650 : }
32651 14 : if (flags & NDR_OUT) {
32652 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
32653 : if (r->in.handle == NULL) {
32654 : NDR_PULL_ALLOC(ndr, r->in.handle);
32655 : NDR_ZERO_STRUCTP(r->in.handle);
32656 : }
32657 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
32658 6 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
32659 6 : if (_ptr_info) {
32660 2 : NDR_PULL_ALLOC(ndr, r->out.info);
32661 : } else {
32662 4 : r->out.info = NULL;
32663 : }
32664 6 : if (r->out.info) {
32665 2 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
32666 2 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
32667 : {
32668 2 : struct ndr_pull *_ndr_info;
32669 2 : ssize_t sub_size = r->in.offered;
32670 2 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, sub_size));
32671 2 : NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
32672 2 : NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
32673 2 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, sub_size));
32674 : }
32675 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
32676 : }
32677 6 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32678 2 : NDR_PULL_ALLOC(ndr, r->out.needed);
32679 : }
32680 6 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
32681 6 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
32682 6 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
32683 6 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
32684 6 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32685 2 : NDR_PULL_ALLOC(ndr, r->out.server_major_version);
32686 : }
32687 6 : _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
32688 6 : NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
32689 6 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
32690 6 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
32691 6 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32692 2 : NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
32693 : }
32694 6 : _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
32695 6 : NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
32696 6 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
32697 6 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
32698 6 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32699 : }
32700 8 : return NDR_ERR_SUCCESS;
32701 : }
32702 :
32703 6 : _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetPrinterDriver2 *r)
32704 : {
32705 6 : ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
32706 6 : if (r == NULL) { ndr_print_null(ndr); return; }
32707 6 : ndr->depth++;
32708 6 : if (flags & NDR_SET_VALUES) {
32709 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32710 : }
32711 6 : if (flags & NDR_IN) {
32712 4 : ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
32713 4 : ndr->depth++;
32714 4 : ndr_print_ptr(ndr, "handle", r->in.handle);
32715 4 : ndr->depth++;
32716 4 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
32717 4 : ndr->depth--;
32718 4 : ndr_print_ptr(ndr, "architecture", r->in.architecture);
32719 4 : ndr->depth++;
32720 4 : if (r->in.architecture) {
32721 4 : ndr_print_string(ndr, "architecture", r->in.architecture);
32722 : }
32723 4 : ndr->depth--;
32724 4 : ndr_print_uint32(ndr, "level", r->in.level);
32725 4 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
32726 4 : ndr->depth++;
32727 4 : if (r->in.buffer) {
32728 4 : ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
32729 : }
32730 4 : ndr->depth--;
32731 4 : ndr_print_uint32(ndr, "offered", r->in.offered);
32732 4 : ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
32733 4 : ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
32734 4 : ndr->depth--;
32735 : }
32736 6 : if (flags & NDR_OUT) {
32737 2 : ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
32738 2 : ndr->depth++;
32739 2 : ndr_print_ptr(ndr, "info", r->out.info);
32740 2 : ndr->depth++;
32741 2 : if (r->out.info) {
32742 2 : ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
32743 2 : ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
32744 : }
32745 2 : ndr->depth--;
32746 2 : ndr_print_ptr(ndr, "needed", r->out.needed);
32747 2 : ndr->depth++;
32748 2 : ndr_print_uint32(ndr, "needed", *r->out.needed);
32749 2 : ndr->depth--;
32750 2 : ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
32751 2 : ndr->depth++;
32752 2 : ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
32753 2 : ndr->depth--;
32754 2 : ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
32755 2 : ndr->depth++;
32756 2 : ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
32757 2 : ndr->depth--;
32758 2 : ndr_print_WERROR(ndr, "result", r->out.result);
32759 2 : ndr->depth--;
32760 : }
32761 6 : ndr->depth--;
32762 : }
32763 :
32764 0 : static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
32765 : {
32766 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32767 0 : if (flags & NDR_IN) {
32768 0 : }
32769 0 : if (flags & NDR_OUT) {
32770 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32771 : }
32772 0 : return NDR_ERR_SUCCESS;
32773 : }
32774 :
32775 0 : static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_FindFirstPrinterChangeNotification *r)
32776 : {
32777 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32778 0 : if (flags & NDR_IN) {
32779 0 : }
32780 0 : if (flags & NDR_OUT) {
32781 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
32782 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
32783 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32784 : }
32785 0 : return NDR_ERR_SUCCESS;
32786 : }
32787 :
32788 0 : _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
32789 : {
32790 0 : ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
32791 0 : if (r == NULL) { ndr_print_null(ndr); return; }
32792 0 : ndr->depth++;
32793 0 : if (flags & NDR_SET_VALUES) {
32794 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32795 : }
32796 0 : if (flags & NDR_IN) {
32797 0 : ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
32798 0 : ndr->depth++;
32799 0 : ndr->depth--;
32800 : }
32801 0 : if (flags & NDR_OUT) {
32802 0 : ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
32803 0 : ndr->depth++;
32804 0 : ndr_print_WERROR(ndr, "result", r->out.result);
32805 0 : ndr->depth--;
32806 : }
32807 0 : ndr->depth--;
32808 : }
32809 :
32810 0 : static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_FindNextPrinterChangeNotification *r)
32811 : {
32812 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32813 0 : if (flags & NDR_IN) {
32814 0 : }
32815 0 : if (flags & NDR_OUT) {
32816 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32817 : }
32818 0 : return NDR_ERR_SUCCESS;
32819 : }
32820 :
32821 0 : static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_FindNextPrinterChangeNotification *r)
32822 : {
32823 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32824 0 : if (flags & NDR_IN) {
32825 0 : }
32826 0 : if (flags & NDR_OUT) {
32827 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
32828 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
32829 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32830 : }
32831 0 : return NDR_ERR_SUCCESS;
32832 : }
32833 :
32834 0 : _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_FindNextPrinterChangeNotification *r)
32835 : {
32836 0 : ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
32837 0 : if (r == NULL) { ndr_print_null(ndr); return; }
32838 0 : ndr->depth++;
32839 0 : if (flags & NDR_SET_VALUES) {
32840 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32841 : }
32842 0 : if (flags & NDR_IN) {
32843 0 : ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
32844 0 : ndr->depth++;
32845 0 : ndr->depth--;
32846 : }
32847 0 : if (flags & NDR_OUT) {
32848 0 : ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
32849 0 : ndr->depth++;
32850 0 : ndr_print_WERROR(ndr, "result", r->out.result);
32851 0 : ndr->depth--;
32852 : }
32853 0 : ndr->depth--;
32854 : }
32855 :
32856 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_FindClosePrinterNotify *r)
32857 : {
32858 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32859 0 : if (flags & NDR_IN) {
32860 0 : if (r->in.handle == NULL) {
32861 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32862 : }
32863 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
32864 : }
32865 0 : if (flags & NDR_OUT) {
32866 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32867 : }
32868 0 : return NDR_ERR_SUCCESS;
32869 : }
32870 :
32871 4 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_FindClosePrinterNotify *r)
32872 : {
32873 4 : TALLOC_CTX *_mem_save_handle_0 = NULL;
32874 4 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32875 4 : if (flags & NDR_IN) {
32876 2 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32877 2 : NDR_PULL_ALLOC(ndr, r->in.handle);
32878 : }
32879 2 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
32880 2 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
32881 2 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
32882 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
32883 : }
32884 4 : if (flags & NDR_OUT) {
32885 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
32886 : if (r->in.handle == NULL) {
32887 : NDR_PULL_ALLOC(ndr, r->in.handle);
32888 : NDR_ZERO_STRUCTP(r->in.handle);
32889 : }
32890 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
32891 2 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32892 : }
32893 0 : return NDR_ERR_SUCCESS;
32894 : }
32895 :
32896 4 : _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_FindClosePrinterNotify *r)
32897 : {
32898 4 : ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
32899 4 : if (r == NULL) { ndr_print_null(ndr); return; }
32900 4 : ndr->depth++;
32901 4 : if (flags & NDR_SET_VALUES) {
32902 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32903 : }
32904 4 : if (flags & NDR_IN) {
32905 2 : ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
32906 2 : ndr->depth++;
32907 2 : ndr_print_ptr(ndr, "handle", r->in.handle);
32908 2 : ndr->depth++;
32909 2 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
32910 2 : ndr->depth--;
32911 2 : ndr->depth--;
32912 : }
32913 4 : if (flags & NDR_OUT) {
32914 2 : ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
32915 2 : ndr->depth++;
32916 2 : ndr_print_WERROR(ndr, "result", r->out.result);
32917 2 : ndr->depth--;
32918 : }
32919 4 : ndr->depth--;
32920 : }
32921 :
32922 0 : static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
32923 : {
32924 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32925 0 : if (flags & NDR_IN) {
32926 0 : }
32927 0 : if (flags & NDR_OUT) {
32928 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32929 : }
32930 0 : return NDR_ERR_SUCCESS;
32931 : }
32932 :
32933 0 : static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
32934 : {
32935 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32936 0 : if (flags & NDR_IN) {
32937 0 : }
32938 0 : if (flags & NDR_OUT) {
32939 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
32940 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
32941 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32942 : }
32943 0 : return NDR_ERR_SUCCESS;
32944 : }
32945 :
32946 0 : _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
32947 : {
32948 0 : ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
32949 0 : if (r == NULL) { ndr_print_null(ndr); return; }
32950 0 : ndr->depth++;
32951 0 : if (flags & NDR_SET_VALUES) {
32952 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32953 : }
32954 0 : if (flags & NDR_IN) {
32955 0 : ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
32956 0 : ndr->depth++;
32957 0 : ndr->depth--;
32958 : }
32959 0 : if (flags & NDR_OUT) {
32960 0 : ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
32961 0 : ndr->depth++;
32962 0 : ndr_print_WERROR(ndr, "result", r->out.result);
32963 0 : ndr->depth--;
32964 : }
32965 0 : ndr->depth--;
32966 : }
32967 :
32968 4 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_ReplyOpenPrinter *r)
32969 : {
32970 4 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32971 4 : if (flags & NDR_IN) {
32972 2 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
32973 2 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
32974 2 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
32975 2 : 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));
32976 2 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
32977 2 : NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
32978 2 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
32979 2 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
32980 2 : if (r->in.buffer) {
32981 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
32982 0 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
32983 : }
32984 : }
32985 4 : if (flags & NDR_OUT) {
32986 2 : if (r->out.handle == NULL) {
32987 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32988 : }
32989 2 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
32990 2 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32991 : }
32992 4 : return NDR_ERR_SUCCESS;
32993 : }
32994 :
32995 8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_ReplyOpenPrinter *r)
32996 : {
32997 8 : uint32_t size_server_name_0 = 0;
32998 8 : uint32_t length_server_name_0 = 0;
32999 4 : uint32_t _ptr_buffer;
33000 8 : uint32_t size_buffer_1 = 0;
33001 8 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
33002 8 : TALLOC_CTX *_mem_save_handle_0 = NULL;
33003 8 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33004 8 : if (flags & NDR_IN) {
33005 4 : NDR_ZERO_STRUCT(r->out);
33006 :
33007 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
33008 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
33009 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server_name, &size_server_name_0));
33010 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server_name, &length_server_name_0));
33011 4 : if (length_server_name_0 > size_server_name_0) {
33012 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_name_0, length_server_name_0);
33013 : }
33014 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_0, sizeof(uint16_t)));
33015 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_0, sizeof(uint16_t), CH_UTF16));
33016 4 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
33017 4 : NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
33018 4 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
33019 4 : if (r->in.bufsize > 512) {
33020 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->in.bufsize), (uint32_t)(0), (uint32_t)(512));
33021 : }
33022 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
33023 4 : if (_ptr_buffer) {
33024 0 : NDR_PULL_ALLOC(ndr, r->in.buffer);
33025 : } else {
33026 4 : r->in.buffer = NULL;
33027 : }
33028 4 : if (r->in.buffer) {
33029 0 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
33030 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
33031 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
33032 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.buffer, &size_buffer_1));
33033 0 : NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1);
33034 0 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1));
33035 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
33036 : }
33037 4 : NDR_PULL_ALLOC(ndr, r->out.handle);
33038 4 : NDR_ZERO_STRUCTP(r->out.handle);
33039 4 : if (r->in.buffer) {
33040 0 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
33041 : }
33042 : }
33043 8 : if (flags & NDR_OUT) {
33044 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
33045 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
33046 4 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33047 4 : NDR_PULL_ALLOC(ndr, r->out.handle);
33048 : }
33049 4 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
33050 4 : NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
33051 4 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
33052 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
33053 4 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33054 : }
33055 4 : return NDR_ERR_SUCCESS;
33056 : }
33057 :
33058 8 : _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_ReplyOpenPrinter *r)
33059 : {
33060 8 : ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
33061 8 : if (r == NULL) { ndr_print_null(ndr); return; }
33062 8 : ndr->depth++;
33063 8 : if (flags & NDR_SET_VALUES) {
33064 2 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33065 : }
33066 8 : if (flags & NDR_IN) {
33067 4 : ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
33068 4 : ndr->depth++;
33069 4 : ndr_print_string(ndr, "server_name", r->in.server_name);
33070 4 : ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
33071 4 : ndr_print_winreg_Type(ndr, "type", r->in.type);
33072 4 : ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
33073 4 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
33074 4 : ndr->depth++;
33075 4 : if (r->in.buffer) {
33076 0 : ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
33077 : }
33078 4 : ndr->depth--;
33079 4 : ndr->depth--;
33080 : }
33081 8 : if (flags & NDR_OUT) {
33082 4 : ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
33083 4 : ndr->depth++;
33084 4 : ndr_print_ptr(ndr, "handle", r->out.handle);
33085 4 : ndr->depth++;
33086 4 : ndr_print_policy_handle(ndr, "handle", r->out.handle);
33087 4 : ndr->depth--;
33088 4 : ndr_print_WERROR(ndr, "result", r->out.result);
33089 4 : ndr->depth--;
33090 : }
33091 8 : ndr->depth--;
33092 : }
33093 :
33094 0 : static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_RouterReplyPrinter *r)
33095 : {
33096 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33097 0 : if (flags & NDR_IN) {
33098 0 : if (r->in.handle == NULL) {
33099 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33100 : }
33101 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33102 0 : NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
33103 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
33104 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
33105 0 : if (r->in.buffer) {
33106 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
33107 0 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
33108 : }
33109 : }
33110 0 : if (flags & NDR_OUT) {
33111 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33112 : }
33113 0 : return NDR_ERR_SUCCESS;
33114 : }
33115 :
33116 0 : static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_RouterReplyPrinter *r)
33117 : {
33118 0 : uint32_t _ptr_buffer;
33119 0 : uint32_t size_buffer_1 = 0;
33120 0 : TALLOC_CTX *_mem_save_handle_0 = NULL;
33121 0 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
33122 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33123 0 : if (flags & NDR_IN) {
33124 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33125 0 : NDR_PULL_ALLOC(ndr, r->in.handle);
33126 : }
33127 0 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
33128 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
33129 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33130 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
33131 0 : NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
33132 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
33133 0 : if (r->in.bufsize > 512) {
33134 0 : return ndr_pull_error(ndr, NDR_ERR_RANGE, "value (%"PRIu32") out of range (%"PRIu32" - %"PRIu32")", (uint32_t)(r->in.bufsize), (uint32_t)(0), (uint32_t)(512));
33135 : }
33136 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
33137 0 : if (_ptr_buffer) {
33138 0 : NDR_PULL_ALLOC(ndr, r->in.buffer);
33139 : } else {
33140 0 : r->in.buffer = NULL;
33141 : }
33142 0 : if (r->in.buffer) {
33143 0 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
33144 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
33145 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
33146 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.buffer, &size_buffer_1));
33147 0 : NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1);
33148 0 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1));
33149 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
33150 : }
33151 0 : if (r->in.buffer) {
33152 0 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
33153 : }
33154 : }
33155 0 : if (flags & NDR_OUT) {
33156 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
33157 : if (r->in.handle == NULL) {
33158 : NDR_PULL_ALLOC(ndr, r->in.handle);
33159 : NDR_ZERO_STRUCTP(r->in.handle);
33160 : }
33161 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
33162 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33163 : }
33164 0 : return NDR_ERR_SUCCESS;
33165 : }
33166 :
33167 0 : _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_RouterReplyPrinter *r)
33168 : {
33169 0 : ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
33170 0 : if (r == NULL) { ndr_print_null(ndr); return; }
33171 0 : ndr->depth++;
33172 0 : if (flags & NDR_SET_VALUES) {
33173 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33174 : }
33175 0 : if (flags & NDR_IN) {
33176 0 : ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
33177 0 : ndr->depth++;
33178 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
33179 0 : ndr->depth++;
33180 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
33181 0 : ndr->depth--;
33182 0 : ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
33183 0 : ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
33184 0 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
33185 0 : ndr->depth++;
33186 0 : if (r->in.buffer) {
33187 0 : ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
33188 : }
33189 0 : ndr->depth--;
33190 0 : ndr->depth--;
33191 : }
33192 0 : if (flags & NDR_OUT) {
33193 0 : ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
33194 0 : ndr->depth++;
33195 0 : ndr_print_WERROR(ndr, "result", r->out.result);
33196 0 : ndr->depth--;
33197 : }
33198 0 : ndr->depth--;
33199 : }
33200 :
33201 4 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_ReplyClosePrinter *r)
33202 : {
33203 4 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33204 4 : if (flags & NDR_IN) {
33205 2 : if (r->in.handle == NULL) {
33206 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33207 : }
33208 2 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33209 : }
33210 4 : if (flags & NDR_OUT) {
33211 2 : if (r->out.handle == NULL) {
33212 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33213 : }
33214 2 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
33215 2 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33216 : }
33217 4 : return NDR_ERR_SUCCESS;
33218 : }
33219 :
33220 8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_ReplyClosePrinter *r)
33221 : {
33222 8 : TALLOC_CTX *_mem_save_handle_0 = NULL;
33223 8 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33224 8 : if (flags & NDR_IN) {
33225 4 : NDR_ZERO_STRUCT(r->out);
33226 :
33227 4 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33228 4 : NDR_PULL_ALLOC(ndr, r->in.handle);
33229 : }
33230 4 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
33231 4 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
33232 4 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33233 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
33234 4 : NDR_PULL_ALLOC(ndr, r->out.handle);
33235 4 : *r->out.handle = *r->in.handle;
33236 : }
33237 8 : if (flags & NDR_OUT) {
33238 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
33239 : if (r->in.handle == NULL) {
33240 : NDR_PULL_ALLOC(ndr, r->in.handle);
33241 : NDR_ZERO_STRUCTP(r->in.handle);
33242 : }
33243 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
33244 4 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33245 4 : NDR_PULL_ALLOC(ndr, r->out.handle);
33246 : }
33247 4 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
33248 4 : NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
33249 4 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
33250 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
33251 4 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33252 : }
33253 4 : return NDR_ERR_SUCCESS;
33254 : }
33255 :
33256 8 : _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_ReplyClosePrinter *r)
33257 : {
33258 8 : ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
33259 8 : if (r == NULL) { ndr_print_null(ndr); return; }
33260 8 : ndr->depth++;
33261 8 : if (flags & NDR_SET_VALUES) {
33262 2 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33263 : }
33264 8 : if (flags & NDR_IN) {
33265 4 : ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
33266 4 : ndr->depth++;
33267 4 : ndr_print_ptr(ndr, "handle", r->in.handle);
33268 4 : ndr->depth++;
33269 4 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
33270 4 : ndr->depth--;
33271 4 : ndr->depth--;
33272 : }
33273 8 : if (flags & NDR_OUT) {
33274 4 : ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
33275 4 : ndr->depth++;
33276 4 : ndr_print_ptr(ndr, "handle", r->out.handle);
33277 4 : ndr->depth++;
33278 4 : ndr_print_policy_handle(ndr, "handle", r->out.handle);
33279 4 : ndr->depth--;
33280 4 : ndr_print_WERROR(ndr, "result", r->out.result);
33281 4 : ndr->depth--;
33282 : }
33283 8 : ndr->depth--;
33284 : }
33285 :
33286 0 : static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPortEx *r)
33287 : {
33288 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33289 0 : if (flags & NDR_IN) {
33290 0 : if (r->in.port_ctr == NULL) {
33291 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33292 : }
33293 0 : if (r->in.port_var_ctr == NULL) {
33294 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33295 : }
33296 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
33297 0 : if (r->in.servername) {
33298 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
33299 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
33300 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
33301 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
33302 : }
33303 0 : NDR_CHECK(ndr_push_spoolss_SetPortInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_ctr));
33304 0 : NDR_CHECK(ndr_push_spoolss_PortVarContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_var_ctr));
33305 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.monitor_name));
33306 0 : if (r->in.monitor_name) {
33307 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
33308 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
33309 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
33310 0 : 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));
33311 : }
33312 : }
33313 0 : if (flags & NDR_OUT) {
33314 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33315 : }
33316 0 : return NDR_ERR_SUCCESS;
33317 : }
33318 :
33319 0 : static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPortEx *r)
33320 : {
33321 0 : uint32_t _ptr_servername;
33322 0 : uint32_t size_servername_1 = 0;
33323 0 : uint32_t length_servername_1 = 0;
33324 0 : uint32_t _ptr_monitor_name;
33325 0 : uint32_t size_monitor_name_1 = 0;
33326 0 : uint32_t length_monitor_name_1 = 0;
33327 0 : TALLOC_CTX *_mem_save_servername_0 = NULL;
33328 0 : TALLOC_CTX *_mem_save_port_ctr_0 = NULL;
33329 0 : TALLOC_CTX *_mem_save_port_var_ctr_0 = NULL;
33330 0 : TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
33331 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33332 0 : if (flags & NDR_IN) {
33333 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
33334 0 : if (_ptr_servername) {
33335 0 : NDR_PULL_ALLOC(ndr, r->in.servername);
33336 : } else {
33337 0 : r->in.servername = NULL;
33338 : }
33339 0 : if (r->in.servername) {
33340 0 : _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
33341 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
33342 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
33343 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
33344 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
33345 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
33346 0 : if (length_servername_1 > size_servername_1) {
33347 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
33348 : }
33349 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
33350 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
33351 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
33352 : }
33353 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33354 0 : NDR_PULL_ALLOC(ndr, r->in.port_ctr);
33355 : }
33356 0 : _mem_save_port_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
33357 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.port_ctr, LIBNDR_FLAG_REF_ALLOC);
33358 0 : NDR_CHECK(ndr_pull_spoolss_SetPortInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_ctr));
33359 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_ctr_0, LIBNDR_FLAG_REF_ALLOC);
33360 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33361 0 : NDR_PULL_ALLOC(ndr, r->in.port_var_ctr);
33362 : }
33363 0 : _mem_save_port_var_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
33364 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.port_var_ctr, LIBNDR_FLAG_REF_ALLOC);
33365 0 : NDR_CHECK(ndr_pull_spoolss_PortVarContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_var_ctr));
33366 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_var_ctr_0, LIBNDR_FLAG_REF_ALLOC);
33367 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
33368 0 : if (_ptr_monitor_name) {
33369 0 : NDR_PULL_ALLOC(ndr, r->in.monitor_name);
33370 : } else {
33371 0 : r->in.monitor_name = NULL;
33372 : }
33373 0 : if (r->in.monitor_name) {
33374 0 : _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
33375 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.monitor_name, 0);
33376 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
33377 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
33378 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.monitor_name, &size_monitor_name_1));
33379 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.monitor_name, &length_monitor_name_1));
33380 0 : if (length_monitor_name_1 > size_monitor_name_1) {
33381 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_monitor_name_1, length_monitor_name_1);
33382 : }
33383 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
33384 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
33385 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
33386 : }
33387 : }
33388 0 : if (flags & NDR_OUT) {
33389 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
33390 : if (r->in.port_ctr == NULL) {
33391 : NDR_PULL_ALLOC(ndr, r->in.port_ctr);
33392 : NDR_ZERO_STRUCTP(r->in.port_ctr);
33393 : }
33394 : if (r->in.port_var_ctr == NULL) {
33395 : NDR_PULL_ALLOC(ndr, r->in.port_var_ctr);
33396 : NDR_ZERO_STRUCTP(r->in.port_var_ctr);
33397 : }
33398 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
33399 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33400 : }
33401 0 : return NDR_ERR_SUCCESS;
33402 : }
33403 :
33404 0 : _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPortEx *r)
33405 : {
33406 0 : ndr_print_struct(ndr, name, "spoolss_AddPortEx");
33407 0 : if (r == NULL) { ndr_print_null(ndr); return; }
33408 0 : ndr->depth++;
33409 0 : if (flags & NDR_SET_VALUES) {
33410 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33411 : }
33412 0 : if (flags & NDR_IN) {
33413 0 : ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
33414 0 : ndr->depth++;
33415 0 : ndr_print_ptr(ndr, "servername", r->in.servername);
33416 0 : ndr->depth++;
33417 0 : if (r->in.servername) {
33418 0 : ndr_print_string(ndr, "servername", r->in.servername);
33419 : }
33420 0 : ndr->depth--;
33421 0 : ndr_print_ptr(ndr, "port_ctr", r->in.port_ctr);
33422 0 : ndr->depth++;
33423 0 : ndr_print_spoolss_SetPortInfoContainer(ndr, "port_ctr", r->in.port_ctr);
33424 0 : ndr->depth--;
33425 0 : ndr_print_ptr(ndr, "port_var_ctr", r->in.port_var_ctr);
33426 0 : ndr->depth++;
33427 0 : ndr_print_spoolss_PortVarContainer(ndr, "port_var_ctr", r->in.port_var_ctr);
33428 0 : ndr->depth--;
33429 0 : ndr_print_ptr(ndr, "monitor_name", r->in.monitor_name);
33430 0 : ndr->depth++;
33431 0 : if (r->in.monitor_name) {
33432 0 : ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
33433 : }
33434 0 : ndr->depth--;
33435 0 : ndr->depth--;
33436 : }
33437 0 : if (flags & NDR_OUT) {
33438 0 : ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
33439 0 : ndr->depth++;
33440 0 : ndr_print_WERROR(ndr, "result", r->out.result);
33441 0 : ndr->depth--;
33442 : }
33443 0 : ndr->depth--;
33444 : }
33445 :
33446 0 : static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
33447 : {
33448 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33449 0 : if (flags & NDR_IN) {
33450 0 : }
33451 0 : if (flags & NDR_OUT) {
33452 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33453 : }
33454 0 : return NDR_ERR_SUCCESS;
33455 : }
33456 :
33457 0 : static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
33458 : {
33459 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33460 0 : if (flags & NDR_IN) {
33461 0 : }
33462 0 : if (flags & NDR_OUT) {
33463 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
33464 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
33465 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33466 : }
33467 0 : return NDR_ERR_SUCCESS;
33468 : }
33469 :
33470 0 : _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
33471 : {
33472 0 : ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
33473 0 : if (r == NULL) { ndr_print_null(ndr); return; }
33474 0 : ndr->depth++;
33475 0 : if (flags & NDR_SET_VALUES) {
33476 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33477 : }
33478 0 : if (flags & NDR_IN) {
33479 0 : ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
33480 0 : ndr->depth++;
33481 0 : ndr->depth--;
33482 : }
33483 0 : if (flags & NDR_OUT) {
33484 0 : ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
33485 0 : ndr->depth++;
33486 0 : ndr_print_WERROR(ndr, "result", r->out.result);
33487 0 : ndr->depth--;
33488 : }
33489 0 : ndr->depth--;
33490 : }
33491 :
33492 0 : static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SpoolerInit *r)
33493 : {
33494 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33495 0 : if (flags & NDR_IN) {
33496 0 : }
33497 0 : if (flags & NDR_OUT) {
33498 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33499 : }
33500 0 : return NDR_ERR_SUCCESS;
33501 : }
33502 :
33503 0 : static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SpoolerInit *r)
33504 : {
33505 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33506 0 : if (flags & NDR_IN) {
33507 0 : }
33508 0 : if (flags & NDR_OUT) {
33509 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
33510 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
33511 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33512 : }
33513 0 : return NDR_ERR_SUCCESS;
33514 : }
33515 :
33516 0 : _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SpoolerInit *r)
33517 : {
33518 0 : ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
33519 0 : if (r == NULL) { ndr_print_null(ndr); return; }
33520 0 : ndr->depth++;
33521 0 : if (flags & NDR_SET_VALUES) {
33522 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33523 : }
33524 0 : if (flags & NDR_IN) {
33525 0 : ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
33526 0 : ndr->depth++;
33527 0 : ndr->depth--;
33528 : }
33529 0 : if (flags & NDR_OUT) {
33530 0 : ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
33531 0 : ndr->depth++;
33532 0 : ndr_print_WERROR(ndr, "result", r->out.result);
33533 0 : ndr->depth--;
33534 : }
33535 0 : ndr->depth--;
33536 : }
33537 :
33538 0 : static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_ResetPrinterEx *r)
33539 : {
33540 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33541 0 : if (flags & NDR_IN) {
33542 0 : }
33543 0 : if (flags & NDR_OUT) {
33544 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33545 : }
33546 0 : return NDR_ERR_SUCCESS;
33547 : }
33548 :
33549 0 : static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_ResetPrinterEx *r)
33550 : {
33551 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33552 0 : if (flags & NDR_IN) {
33553 0 : }
33554 0 : if (flags & NDR_OUT) {
33555 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
33556 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
33557 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33558 : }
33559 0 : return NDR_ERR_SUCCESS;
33560 : }
33561 :
33562 0 : _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_ResetPrinterEx *r)
33563 : {
33564 0 : ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
33565 0 : if (r == NULL) { ndr_print_null(ndr); return; }
33566 0 : ndr->depth++;
33567 0 : if (flags & NDR_SET_VALUES) {
33568 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33569 : }
33570 0 : if (flags & NDR_IN) {
33571 0 : ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
33572 0 : ndr->depth++;
33573 0 : ndr->depth--;
33574 : }
33575 0 : if (flags & NDR_OUT) {
33576 0 : ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
33577 0 : ndr->depth++;
33578 0 : ndr_print_WERROR(ndr, "result", r->out.result);
33579 0 : ndr->depth--;
33580 : }
33581 0 : ndr->depth--;
33582 : }
33583 :
33584 4 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
33585 : {
33586 4 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33587 4 : if (flags & NDR_IN) {
33588 2 : if (r->in.handle == NULL) {
33589 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33590 : }
33591 2 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33592 2 : NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
33593 2 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
33594 2 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
33595 2 : if (r->in.local_machine) {
33596 2 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
33597 2 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
33598 2 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
33599 2 : 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));
33600 : }
33601 2 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
33602 2 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
33603 2 : if (r->in.notify_options) {
33604 2 : NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
33605 : }
33606 : }
33607 4 : if (flags & NDR_OUT) {
33608 2 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33609 : }
33610 4 : return NDR_ERR_SUCCESS;
33611 : }
33612 :
33613 8 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
33614 : {
33615 4 : uint32_t _ptr_local_machine;
33616 8 : uint32_t size_local_machine_1 = 0;
33617 8 : uint32_t length_local_machine_1 = 0;
33618 4 : uint32_t _ptr_notify_options;
33619 8 : TALLOC_CTX *_mem_save_handle_0 = NULL;
33620 8 : TALLOC_CTX *_mem_save_local_machine_0 = NULL;
33621 8 : TALLOC_CTX *_mem_save_notify_options_0 = NULL;
33622 8 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33623 8 : if (flags & NDR_IN) {
33624 4 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33625 4 : NDR_PULL_ALLOC(ndr, r->in.handle);
33626 : }
33627 4 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
33628 4 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
33629 4 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33630 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
33631 6 : NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
33632 4 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
33633 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
33634 4 : if (_ptr_local_machine) {
33635 4 : NDR_PULL_ALLOC(ndr, r->in.local_machine);
33636 : } else {
33637 0 : r->in.local_machine = NULL;
33638 : }
33639 4 : if (r->in.local_machine) {
33640 4 : _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
33641 4 : NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
33642 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
33643 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
33644 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.local_machine, &size_local_machine_1));
33645 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.local_machine, &length_local_machine_1));
33646 4 : if (length_local_machine_1 > size_local_machine_1) {
33647 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_local_machine_1, length_local_machine_1);
33648 : }
33649 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_local_machine_1, sizeof(uint16_t)));
33650 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.local_machine, length_local_machine_1, sizeof(uint16_t), CH_UTF16));
33651 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
33652 : }
33653 4 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
33654 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
33655 4 : if (_ptr_notify_options) {
33656 4 : NDR_PULL_ALLOC(ndr, r->in.notify_options);
33657 : } else {
33658 0 : r->in.notify_options = NULL;
33659 : }
33660 4 : if (r->in.notify_options) {
33661 4 : _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
33662 4 : NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
33663 4 : NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
33664 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
33665 : }
33666 : }
33667 8 : if (flags & NDR_OUT) {
33668 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
33669 : if (r->in.handle == NULL) {
33670 : NDR_PULL_ALLOC(ndr, r->in.handle);
33671 : NDR_ZERO_STRUCTP(r->in.handle);
33672 : }
33673 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
33674 4 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33675 : }
33676 4 : return NDR_ERR_SUCCESS;
33677 : }
33678 :
33679 4 : _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
33680 : {
33681 4 : ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
33682 4 : if (r == NULL) { ndr_print_null(ndr); return; }
33683 4 : ndr->depth++;
33684 4 : if (flags & NDR_SET_VALUES) {
33685 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33686 : }
33687 4 : if (flags & NDR_IN) {
33688 2 : ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
33689 2 : ndr->depth++;
33690 2 : ndr_print_ptr(ndr, "handle", r->in.handle);
33691 2 : ndr->depth++;
33692 2 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
33693 2 : ndr->depth--;
33694 2 : ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
33695 2 : ndr_print_uint32(ndr, "options", r->in.options);
33696 2 : ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
33697 2 : ndr->depth++;
33698 2 : if (r->in.local_machine) {
33699 2 : ndr_print_string(ndr, "local_machine", r->in.local_machine);
33700 : }
33701 2 : ndr->depth--;
33702 2 : ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
33703 2 : ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
33704 2 : ndr->depth++;
33705 2 : if (r->in.notify_options) {
33706 2 : ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
33707 : }
33708 2 : ndr->depth--;
33709 2 : ndr->depth--;
33710 : }
33711 4 : if (flags & NDR_OUT) {
33712 2 : ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
33713 2 : ndr->depth++;
33714 2 : ndr_print_WERROR(ndr, "result", r->out.result);
33715 2 : ndr->depth--;
33716 : }
33717 4 : ndr->depth--;
33718 : }
33719 :
33720 0 : static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_RouterReplyPrinterEx *r)
33721 : {
33722 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33723 0 : if (flags & NDR_IN) {
33724 0 : if (r->in.handle == NULL) {
33725 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33726 : }
33727 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33728 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
33729 0 : NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
33730 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
33731 0 : NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
33732 0 : NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
33733 : }
33734 0 : if (flags & NDR_OUT) {
33735 0 : if (r->out.reply_result == NULL) {
33736 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33737 : }
33738 0 : NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
33739 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33740 : }
33741 0 : return NDR_ERR_SUCCESS;
33742 : }
33743 :
33744 0 : static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_RouterReplyPrinterEx *r)
33745 : {
33746 0 : TALLOC_CTX *_mem_save_handle_0 = NULL;
33747 0 : TALLOC_CTX *_mem_save_reply_result_0 = NULL;
33748 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33749 0 : if (flags & NDR_IN) {
33750 0 : NDR_ZERO_STRUCT(r->out);
33751 :
33752 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33753 0 : NDR_PULL_ALLOC(ndr, r->in.handle);
33754 : }
33755 0 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
33756 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
33757 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33758 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
33759 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
33760 0 : NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
33761 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
33762 0 : NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
33763 0 : NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
33764 0 : NDR_PULL_ALLOC(ndr, r->out.reply_result);
33765 0 : NDR_ZERO_STRUCTP(r->out.reply_result);
33766 : }
33767 0 : if (flags & NDR_OUT) {
33768 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
33769 : if (r->in.handle == NULL) {
33770 : NDR_PULL_ALLOC(ndr, r->in.handle);
33771 : NDR_ZERO_STRUCTP(r->in.handle);
33772 : }
33773 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
33774 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33775 0 : NDR_PULL_ALLOC(ndr, r->out.reply_result);
33776 : }
33777 0 : _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
33778 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
33779 0 : NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
33780 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
33781 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33782 : }
33783 0 : return NDR_ERR_SUCCESS;
33784 : }
33785 :
33786 0 : _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_RouterReplyPrinterEx *r)
33787 : {
33788 0 : ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
33789 0 : if (r == NULL) { ndr_print_null(ndr); return; }
33790 0 : ndr->depth++;
33791 0 : if (flags & NDR_SET_VALUES) {
33792 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33793 : }
33794 0 : if (flags & NDR_IN) {
33795 0 : ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
33796 0 : ndr->depth++;
33797 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
33798 0 : ndr->depth++;
33799 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
33800 0 : ndr->depth--;
33801 0 : ndr_print_uint32(ndr, "color", r->in.color);
33802 0 : ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
33803 0 : ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
33804 0 : ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
33805 0 : ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
33806 0 : ndr->depth--;
33807 : }
33808 0 : if (flags & NDR_OUT) {
33809 0 : ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
33810 0 : ndr->depth++;
33811 0 : ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
33812 0 : ndr->depth++;
33813 0 : ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
33814 0 : ndr->depth--;
33815 0 : ndr_print_WERROR(ndr, "result", r->out.result);
33816 0 : ndr->depth--;
33817 : }
33818 0 : ndr->depth--;
33819 : }
33820 :
33821 8 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
33822 : {
33823 8 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33824 8 : if (flags & NDR_IN) {
33825 4 : if (r->in.handle == NULL) {
33826 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33827 : }
33828 4 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33829 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
33830 4 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
33831 4 : if (r->in.options) {
33832 2 : NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
33833 : }
33834 : }
33835 8 : if (flags & NDR_OUT) {
33836 4 : if (r->out.info == NULL) {
33837 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33838 : }
33839 4 : NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
33840 4 : if (*r->out.info) {
33841 4 : NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
33842 : }
33843 4 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33844 : }
33845 8 : return NDR_ERR_SUCCESS;
33846 : }
33847 :
33848 12 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
33849 : {
33850 4 : uint32_t _ptr_options;
33851 4 : uint32_t _ptr_info;
33852 12 : TALLOC_CTX *_mem_save_handle_0 = NULL;
33853 12 : TALLOC_CTX *_mem_save_options_0 = NULL;
33854 12 : TALLOC_CTX *_mem_save_info_0 = NULL;
33855 12 : TALLOC_CTX *_mem_save_info_1 = NULL;
33856 12 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33857 12 : if (flags & NDR_IN) {
33858 6 : NDR_ZERO_STRUCT(r->out);
33859 :
33860 6 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33861 6 : NDR_PULL_ALLOC(ndr, r->in.handle);
33862 : }
33863 6 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
33864 6 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
33865 6 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33866 6 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
33867 6 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
33868 6 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
33869 6 : if (_ptr_options) {
33870 4 : NDR_PULL_ALLOC(ndr, r->in.options);
33871 : } else {
33872 2 : r->in.options = NULL;
33873 : }
33874 6 : if (r->in.options) {
33875 4 : _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
33876 4 : NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
33877 4 : NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
33878 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
33879 : }
33880 6 : NDR_PULL_ALLOC(ndr, r->out.info);
33881 6 : NDR_ZERO_STRUCTP(r->out.info);
33882 : }
33883 12 : if (flags & NDR_OUT) {
33884 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
33885 : if (r->in.handle == NULL) {
33886 : NDR_PULL_ALLOC(ndr, r->in.handle);
33887 : NDR_ZERO_STRUCTP(r->in.handle);
33888 : }
33889 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
33890 6 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33891 2 : NDR_PULL_ALLOC(ndr, r->out.info);
33892 : }
33893 6 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
33894 6 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
33895 6 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
33896 6 : if (_ptr_info) {
33897 6 : NDR_PULL_ALLOC(ndr, *r->out.info);
33898 : } else {
33899 0 : *r->out.info = NULL;
33900 : }
33901 6 : if (*r->out.info) {
33902 6 : _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
33903 6 : NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
33904 6 : NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
33905 6 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
33906 : }
33907 6 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
33908 6 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33909 : }
33910 8 : return NDR_ERR_SUCCESS;
33911 : }
33912 :
33913 4 : _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
33914 : {
33915 4 : ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
33916 4 : if (r == NULL) { ndr_print_null(ndr); return; }
33917 4 : ndr->depth++;
33918 4 : if (flags & NDR_SET_VALUES) {
33919 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33920 : }
33921 4 : if (flags & NDR_IN) {
33922 2 : ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
33923 2 : ndr->depth++;
33924 2 : ndr_print_ptr(ndr, "handle", r->in.handle);
33925 2 : ndr->depth++;
33926 2 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
33927 2 : ndr->depth--;
33928 2 : ndr_print_uint32(ndr, "change_low", r->in.change_low);
33929 2 : ndr_print_ptr(ndr, "options", r->in.options);
33930 2 : ndr->depth++;
33931 2 : if (r->in.options) {
33932 2 : ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
33933 : }
33934 2 : ndr->depth--;
33935 2 : ndr->depth--;
33936 : }
33937 4 : if (flags & NDR_OUT) {
33938 2 : ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
33939 2 : ndr->depth++;
33940 2 : ndr_print_ptr(ndr, "info", r->out.info);
33941 2 : ndr->depth++;
33942 2 : ndr_print_ptr(ndr, "info", *r->out.info);
33943 2 : ndr->depth++;
33944 2 : if (*r->out.info) {
33945 2 : ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
33946 : }
33947 2 : ndr->depth--;
33948 2 : ndr->depth--;
33949 2 : ndr_print_WERROR(ndr, "result", r->out.result);
33950 2 : ndr->depth--;
33951 : }
33952 4 : ndr->depth--;
33953 : }
33954 :
33955 0 : static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_44 *r)
33956 : {
33957 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33958 0 : if (flags & NDR_IN) {
33959 0 : }
33960 0 : if (flags & NDR_OUT) {
33961 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33962 : }
33963 0 : return NDR_ERR_SUCCESS;
33964 : }
33965 :
33966 0 : static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_44 *r)
33967 : {
33968 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33969 0 : if (flags & NDR_IN) {
33970 0 : }
33971 0 : if (flags & NDR_OUT) {
33972 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
33973 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
33974 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33975 : }
33976 0 : return NDR_ERR_SUCCESS;
33977 : }
33978 :
33979 0 : _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_44 *r)
33980 : {
33981 0 : ndr_print_struct(ndr, name, "spoolss_44");
33982 0 : if (r == NULL) { ndr_print_null(ndr); return; }
33983 0 : ndr->depth++;
33984 0 : if (flags & NDR_SET_VALUES) {
33985 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33986 : }
33987 0 : if (flags & NDR_IN) {
33988 0 : ndr_print_struct(ndr, "in", "spoolss_44");
33989 0 : ndr->depth++;
33990 0 : ndr->depth--;
33991 : }
33992 0 : if (flags & NDR_OUT) {
33993 0 : ndr_print_struct(ndr, "out", "spoolss_44");
33994 0 : ndr->depth++;
33995 0 : ndr_print_WERROR(ndr, "result", r->out.result);
33996 0 : ndr->depth--;
33997 : }
33998 0 : ndr->depth--;
33999 : }
34000 :
34001 1588 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_OpenPrinterEx *r)
34002 : {
34003 1588 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34004 1588 : if (flags & NDR_IN) {
34005 794 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
34006 794 : if (r->in.printername) {
34007 794 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
34008 794 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34009 794 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
34010 794 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
34011 : }
34012 794 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
34013 794 : if (r->in.datatype) {
34014 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
34015 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34016 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
34017 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
34018 : }
34019 794 : NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
34020 794 : NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
34021 794 : NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel_ctr));
34022 : }
34023 1588 : if (flags & NDR_OUT) {
34024 794 : if (r->out.handle == NULL) {
34025 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34026 : }
34027 794 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
34028 794 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34029 : }
34030 1588 : return NDR_ERR_SUCCESS;
34031 : }
34032 :
34033 1596 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_OpenPrinterEx *r)
34034 : {
34035 8 : uint32_t _ptr_printername;
34036 1596 : uint32_t size_printername_1 = 0;
34037 1596 : uint32_t length_printername_1 = 0;
34038 8 : uint32_t _ptr_datatype;
34039 1596 : uint32_t size_datatype_1 = 0;
34040 1596 : uint32_t length_datatype_1 = 0;
34041 1596 : TALLOC_CTX *_mem_save_printername_0 = NULL;
34042 1596 : TALLOC_CTX *_mem_save_datatype_0 = NULL;
34043 1596 : TALLOC_CTX *_mem_save_handle_0 = NULL;
34044 1596 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34045 1596 : if (flags & NDR_IN) {
34046 800 : NDR_ZERO_STRUCT(r->out);
34047 :
34048 800 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
34049 800 : if (_ptr_printername) {
34050 800 : NDR_PULL_ALLOC(ndr, r->in.printername);
34051 : } else {
34052 0 : r->in.printername = NULL;
34053 : }
34054 800 : if (r->in.printername) {
34055 800 : _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
34056 800 : NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
34057 800 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
34058 800 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
34059 800 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.printername, &size_printername_1));
34060 800 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.printername, &length_printername_1));
34061 800 : if (length_printername_1 > size_printername_1) {
34062 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printername_1, length_printername_1);
34063 : }
34064 800 : NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
34065 800 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
34066 800 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
34067 : }
34068 800 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
34069 800 : if (_ptr_datatype) {
34070 0 : NDR_PULL_ALLOC(ndr, r->in.datatype);
34071 : } else {
34072 800 : r->in.datatype = NULL;
34073 : }
34074 800 : if (r->in.datatype) {
34075 0 : _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
34076 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
34077 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
34078 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
34079 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.datatype, &size_datatype_1));
34080 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.datatype, &length_datatype_1));
34081 0 : if (length_datatype_1 > size_datatype_1) {
34082 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_datatype_1, length_datatype_1);
34083 : }
34084 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
34085 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
34086 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
34087 : }
34088 800 : NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
34089 806 : NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
34090 800 : NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel_ctr));
34091 800 : NDR_PULL_ALLOC(ndr, r->out.handle);
34092 800 : NDR_ZERO_STRUCTP(r->out.handle);
34093 : }
34094 1596 : if (flags & NDR_OUT) {
34095 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
34096 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
34097 796 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34098 8 : NDR_PULL_ALLOC(ndr, r->out.handle);
34099 : }
34100 796 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
34101 796 : NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
34102 796 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
34103 796 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
34104 796 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34105 : }
34106 1588 : return NDR_ERR_SUCCESS;
34107 : }
34108 :
34109 8 : _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_OpenPrinterEx *r)
34110 : {
34111 8 : ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
34112 8 : if (r == NULL) { ndr_print_null(ndr); return; }
34113 8 : ndr->depth++;
34114 8 : if (flags & NDR_SET_VALUES) {
34115 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34116 : }
34117 8 : if (flags & NDR_IN) {
34118 6 : ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
34119 6 : ndr->depth++;
34120 6 : ndr_print_ptr(ndr, "printername", r->in.printername);
34121 6 : ndr->depth++;
34122 6 : if (r->in.printername) {
34123 6 : ndr_print_string(ndr, "printername", r->in.printername);
34124 : }
34125 6 : ndr->depth--;
34126 6 : ndr_print_ptr(ndr, "datatype", r->in.datatype);
34127 6 : ndr->depth++;
34128 6 : if (r->in.datatype) {
34129 0 : ndr_print_string(ndr, "datatype", r->in.datatype);
34130 : }
34131 6 : ndr->depth--;
34132 6 : ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
34133 6 : ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
34134 6 : ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", &r->in.userlevel_ctr);
34135 6 : ndr->depth--;
34136 : }
34137 8 : if (flags & NDR_OUT) {
34138 2 : ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
34139 2 : ndr->depth++;
34140 2 : ndr_print_ptr(ndr, "handle", r->out.handle);
34141 2 : ndr->depth++;
34142 2 : ndr_print_policy_handle(ndr, "handle", r->out.handle);
34143 2 : ndr->depth--;
34144 2 : ndr_print_WERROR(ndr, "result", r->out.result);
34145 2 : ndr->depth--;
34146 : }
34147 8 : ndr->depth--;
34148 : }
34149 :
34150 48 : static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPrinterEx *r)
34151 : {
34152 48 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34153 48 : if (flags & NDR_IN) {
34154 24 : if (r->in.info_ctr == NULL) {
34155 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34156 : }
34157 24 : if (r->in.devmode_ctr == NULL) {
34158 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34159 : }
34160 24 : if (r->in.secdesc_ctr == NULL) {
34161 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34162 : }
34163 24 : if (r->in.userlevel_ctr == NULL) {
34164 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34165 : }
34166 24 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
34167 24 : if (r->in.server) {
34168 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
34169 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34170 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
34171 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
34172 : }
34173 24 : NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
34174 24 : NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
34175 24 : NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
34176 24 : NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
34177 : }
34178 48 : if (flags & NDR_OUT) {
34179 24 : if (r->out.handle == NULL) {
34180 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34181 : }
34182 24 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
34183 24 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34184 : }
34185 48 : return NDR_ERR_SUCCESS;
34186 : }
34187 :
34188 48 : static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPrinterEx *r)
34189 : {
34190 0 : uint32_t _ptr_server;
34191 48 : uint32_t size_server_1 = 0;
34192 48 : uint32_t length_server_1 = 0;
34193 48 : TALLOC_CTX *_mem_save_server_0 = NULL;
34194 48 : TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
34195 48 : TALLOC_CTX *_mem_save_devmode_ctr_0 = NULL;
34196 48 : TALLOC_CTX *_mem_save_secdesc_ctr_0 = NULL;
34197 48 : TALLOC_CTX *_mem_save_userlevel_ctr_0 = NULL;
34198 48 : TALLOC_CTX *_mem_save_handle_0 = NULL;
34199 48 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34200 48 : if (flags & NDR_IN) {
34201 24 : NDR_ZERO_STRUCT(r->out);
34202 :
34203 24 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
34204 24 : if (_ptr_server) {
34205 0 : NDR_PULL_ALLOC(ndr, r->in.server);
34206 : } else {
34207 24 : r->in.server = NULL;
34208 : }
34209 24 : if (r->in.server) {
34210 0 : _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
34211 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
34212 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
34213 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
34214 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
34215 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
34216 0 : if (length_server_1 > size_server_1) {
34217 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
34218 : }
34219 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
34220 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
34221 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
34222 : }
34223 24 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34224 24 : NDR_PULL_ALLOC(ndr, r->in.info_ctr);
34225 : }
34226 24 : _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
34227 24 : NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
34228 24 : NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
34229 24 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
34230 24 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34231 24 : NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
34232 : }
34233 24 : _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
34234 24 : NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
34235 24 : NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
34236 24 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
34237 24 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34238 24 : NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
34239 : }
34240 24 : _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
34241 24 : NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
34242 24 : NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
34243 24 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
34244 24 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34245 24 : NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
34246 : }
34247 24 : _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
34248 24 : NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
34249 24 : NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
34250 24 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
34251 24 : NDR_PULL_ALLOC(ndr, r->out.handle);
34252 24 : NDR_ZERO_STRUCTP(r->out.handle);
34253 : }
34254 48 : if (flags & NDR_OUT) {
34255 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
34256 : if (r->in.info_ctr == NULL) {
34257 : NDR_PULL_ALLOC(ndr, r->in.info_ctr);
34258 : NDR_ZERO_STRUCTP(r->in.info_ctr);
34259 : }
34260 : if (r->in.devmode_ctr == NULL) {
34261 : NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
34262 : NDR_ZERO_STRUCTP(r->in.devmode_ctr);
34263 : }
34264 : if (r->in.secdesc_ctr == NULL) {
34265 : NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
34266 : NDR_ZERO_STRUCTP(r->in.secdesc_ctr);
34267 : }
34268 : if (r->in.userlevel_ctr == NULL) {
34269 : NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
34270 : NDR_ZERO_STRUCTP(r->in.userlevel_ctr);
34271 : }
34272 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
34273 24 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34274 0 : NDR_PULL_ALLOC(ndr, r->out.handle);
34275 : }
34276 24 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
34277 24 : NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
34278 24 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
34279 24 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
34280 24 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34281 : }
34282 48 : return NDR_ERR_SUCCESS;
34283 : }
34284 :
34285 0 : _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPrinterEx *r)
34286 : {
34287 0 : ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
34288 0 : if (r == NULL) { ndr_print_null(ndr); return; }
34289 0 : ndr->depth++;
34290 0 : if (flags & NDR_SET_VALUES) {
34291 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34292 : }
34293 0 : if (flags & NDR_IN) {
34294 0 : ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
34295 0 : ndr->depth++;
34296 0 : ndr_print_ptr(ndr, "server", r->in.server);
34297 0 : ndr->depth++;
34298 0 : if (r->in.server) {
34299 0 : ndr_print_string(ndr, "server", r->in.server);
34300 : }
34301 0 : ndr->depth--;
34302 0 : ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
34303 0 : ndr->depth++;
34304 0 : ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
34305 0 : ndr->depth--;
34306 0 : ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
34307 0 : ndr->depth++;
34308 0 : ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
34309 0 : ndr->depth--;
34310 0 : ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
34311 0 : ndr->depth++;
34312 0 : ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
34313 0 : ndr->depth--;
34314 0 : ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
34315 0 : ndr->depth++;
34316 0 : ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
34317 0 : ndr->depth--;
34318 0 : ndr->depth--;
34319 : }
34320 0 : if (flags & NDR_OUT) {
34321 0 : ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
34322 0 : ndr->depth++;
34323 0 : ndr_print_ptr(ndr, "handle", r->out.handle);
34324 0 : ndr->depth++;
34325 0 : ndr_print_policy_handle(ndr, "handle", r->out.handle);
34326 0 : ndr->depth--;
34327 0 : ndr_print_WERROR(ndr, "result", r->out.result);
34328 0 : ndr->depth--;
34329 : }
34330 0 : ndr->depth--;
34331 : }
34332 :
34333 0 : static enum ndr_err_code ndr_push_spoolss_SetPort(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SetPort *r)
34334 : {
34335 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34336 0 : if (flags & NDR_IN) {
34337 0 : if (r->in.port_ctr == NULL) {
34338 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34339 : }
34340 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
34341 0 : if (r->in.servername) {
34342 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
34343 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34344 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
34345 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
34346 : }
34347 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.port_name));
34348 0 : if (r->in.port_name) {
34349 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.port_name, CH_UTF16)));
34350 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34351 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.port_name, CH_UTF16)));
34352 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.port_name, ndr_charset_length(r->in.port_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
34353 : }
34354 0 : NDR_CHECK(ndr_push_spoolss_SetPortInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_ctr));
34355 : }
34356 0 : if (flags & NDR_OUT) {
34357 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34358 : }
34359 0 : return NDR_ERR_SUCCESS;
34360 : }
34361 :
34362 0 : static enum ndr_err_code ndr_pull_spoolss_SetPort(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SetPort *r)
34363 : {
34364 0 : uint32_t _ptr_servername;
34365 0 : uint32_t size_servername_1 = 0;
34366 0 : uint32_t length_servername_1 = 0;
34367 0 : uint32_t _ptr_port_name;
34368 0 : uint32_t size_port_name_1 = 0;
34369 0 : uint32_t length_port_name_1 = 0;
34370 0 : TALLOC_CTX *_mem_save_servername_0 = NULL;
34371 0 : TALLOC_CTX *_mem_save_port_name_0 = NULL;
34372 0 : TALLOC_CTX *_mem_save_port_ctr_0 = NULL;
34373 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34374 0 : if (flags & NDR_IN) {
34375 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
34376 0 : if (_ptr_servername) {
34377 0 : NDR_PULL_ALLOC(ndr, r->in.servername);
34378 : } else {
34379 0 : r->in.servername = NULL;
34380 : }
34381 0 : if (r->in.servername) {
34382 0 : _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
34383 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
34384 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
34385 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
34386 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
34387 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
34388 0 : if (length_servername_1 > size_servername_1) {
34389 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
34390 : }
34391 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
34392 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
34393 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
34394 : }
34395 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
34396 0 : if (_ptr_port_name) {
34397 0 : NDR_PULL_ALLOC(ndr, r->in.port_name);
34398 : } else {
34399 0 : r->in.port_name = NULL;
34400 : }
34401 0 : if (r->in.port_name) {
34402 0 : _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
34403 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.port_name, 0);
34404 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.port_name));
34405 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.port_name));
34406 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.port_name, &size_port_name_1));
34407 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.port_name, &length_port_name_1));
34408 0 : if (length_port_name_1 > size_port_name_1) {
34409 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_port_name_1, length_port_name_1);
34410 : }
34411 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_port_name_1, sizeof(uint16_t)));
34412 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.port_name, length_port_name_1, sizeof(uint16_t), CH_UTF16));
34413 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
34414 : }
34415 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34416 0 : NDR_PULL_ALLOC(ndr, r->in.port_ctr);
34417 : }
34418 0 : _mem_save_port_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
34419 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.port_ctr, LIBNDR_FLAG_REF_ALLOC);
34420 0 : NDR_CHECK(ndr_pull_spoolss_SetPortInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_ctr));
34421 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_ctr_0, LIBNDR_FLAG_REF_ALLOC);
34422 : }
34423 0 : if (flags & NDR_OUT) {
34424 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
34425 : if (r->in.port_ctr == NULL) {
34426 : NDR_PULL_ALLOC(ndr, r->in.port_ctr);
34427 : NDR_ZERO_STRUCTP(r->in.port_ctr);
34428 : }
34429 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
34430 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34431 : }
34432 0 : return NDR_ERR_SUCCESS;
34433 : }
34434 :
34435 0 : _PUBLIC_ void ndr_print_spoolss_SetPort(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SetPort *r)
34436 : {
34437 0 : ndr_print_struct(ndr, name, "spoolss_SetPort");
34438 0 : if (r == NULL) { ndr_print_null(ndr); return; }
34439 0 : ndr->depth++;
34440 0 : if (flags & NDR_SET_VALUES) {
34441 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34442 : }
34443 0 : if (flags & NDR_IN) {
34444 0 : ndr_print_struct(ndr, "in", "spoolss_SetPort");
34445 0 : ndr->depth++;
34446 0 : ndr_print_ptr(ndr, "servername", r->in.servername);
34447 0 : ndr->depth++;
34448 0 : if (r->in.servername) {
34449 0 : ndr_print_string(ndr, "servername", r->in.servername);
34450 : }
34451 0 : ndr->depth--;
34452 0 : ndr_print_ptr(ndr, "port_name", r->in.port_name);
34453 0 : ndr->depth++;
34454 0 : if (r->in.port_name) {
34455 0 : ndr_print_string(ndr, "port_name", r->in.port_name);
34456 : }
34457 0 : ndr->depth--;
34458 0 : ndr_print_ptr(ndr, "port_ctr", r->in.port_ctr);
34459 0 : ndr->depth++;
34460 0 : ndr_print_spoolss_SetPortInfoContainer(ndr, "port_ctr", r->in.port_ctr);
34461 0 : ndr->depth--;
34462 0 : ndr->depth--;
34463 : }
34464 0 : if (flags & NDR_OUT) {
34465 0 : ndr_print_struct(ndr, "out", "spoolss_SetPort");
34466 0 : ndr->depth++;
34467 0 : ndr_print_WERROR(ndr, "result", r->out.result);
34468 0 : ndr->depth--;
34469 : }
34470 0 : ndr->depth--;
34471 : }
34472 :
34473 304 : static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_EnumPrinterData *r)
34474 : {
34475 304 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34476 304 : if (flags & NDR_IN) {
34477 152 : if (r->in.handle == NULL) {
34478 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34479 : }
34480 152 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
34481 152 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
34482 152 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
34483 152 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
34484 : }
34485 304 : if (flags & NDR_OUT) {
34486 152 : if (r->out.value_needed == NULL) {
34487 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34488 : }
34489 152 : if (r->out.type == NULL) {
34490 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34491 : }
34492 152 : if (r->out.data == NULL) {
34493 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34494 : }
34495 152 : if (r->out.data_needed == NULL) {
34496 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34497 : }
34498 152 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
34499 152 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
34500 152 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
34501 152 : NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
34502 : {
34503 152 : libndr_flags _flags_save_uint8 = ndr->flags;
34504 152 : ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
34505 152 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
34506 152 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
34507 152 : ndr->flags = _flags_save_uint8;
34508 : }
34509 152 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
34510 152 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34511 : }
34512 304 : return NDR_ERR_SUCCESS;
34513 : }
34514 :
34515 304 : static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_EnumPrinterData *r)
34516 : {
34517 304 : uint32_t size_value_name_0 = 0;
34518 304 : uint32_t size_data_1 = 0;
34519 304 : TALLOC_CTX *_mem_save_handle_0 = NULL;
34520 304 : TALLOC_CTX *_mem_save_value_needed_0 = NULL;
34521 304 : TALLOC_CTX *_mem_save_type_0 = NULL;
34522 304 : TALLOC_CTX *_mem_save_data_needed_0 = NULL;
34523 304 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34524 304 : if (flags & NDR_IN) {
34525 152 : NDR_ZERO_STRUCT(r->out);
34526 :
34527 152 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34528 152 : NDR_PULL_ALLOC(ndr, r->in.handle);
34529 : }
34530 152 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
34531 152 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
34532 152 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
34533 152 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
34534 152 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
34535 152 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
34536 152 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
34537 152 : NDR_PULL_ALLOC(ndr, r->out.value_needed);
34538 152 : NDR_ZERO_STRUCTP(r->out.value_needed);
34539 152 : NDR_PULL_ALLOC(ndr, r->out.type);
34540 152 : NDR_ZERO_STRUCTP(r->out.type);
34541 152 : NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
34542 152 : memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
34543 152 : NDR_PULL_ALLOC(ndr, r->out.data_needed);
34544 152 : NDR_ZERO_STRUCTP(r->out.data_needed);
34545 : }
34546 304 : if (flags & NDR_OUT) {
34547 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
34548 : if (r->in.handle == NULL) {
34549 : NDR_PULL_ALLOC(ndr, r->in.handle);
34550 : NDR_ZERO_STRUCTP(r->in.handle);
34551 : }
34552 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
34553 152 : NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
34554 152 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.value_name, &size_value_name_0));
34555 152 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.value_name, size_value_name_0, sizeof(uint16_t), CH_UTF16));
34556 152 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34557 0 : NDR_PULL_ALLOC(ndr, r->out.value_needed);
34558 : }
34559 152 : _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
34560 152 : NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
34561 152 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
34562 152 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
34563 152 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34564 0 : NDR_PULL_ALLOC(ndr, r->out.type);
34565 : }
34566 152 : _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
34567 152 : NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
34568 152 : NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
34569 152 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
34570 : {
34571 152 : libndr_flags _flags_save_uint8 = ndr->flags;
34572 152 : ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
34573 152 : NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
34574 152 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.data, &size_data_1));
34575 152 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34576 0 : NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
34577 : }
34578 152 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
34579 152 : ndr->flags = _flags_save_uint8;
34580 : }
34581 152 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34582 0 : NDR_PULL_ALLOC(ndr, r->out.data_needed);
34583 : }
34584 152 : _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
34585 152 : NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
34586 152 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
34587 152 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
34588 152 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34589 152 : if (r->out.value_name) {
34590 152 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
34591 : }
34592 152 : if (r->out.data) {
34593 152 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
34594 : }
34595 : }
34596 304 : return NDR_ERR_SUCCESS;
34597 : }
34598 :
34599 0 : _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPrinterData *r)
34600 : {
34601 0 : ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
34602 0 : if (r == NULL) { ndr_print_null(ndr); return; }
34603 0 : ndr->depth++;
34604 0 : if (flags & NDR_SET_VALUES) {
34605 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34606 : }
34607 0 : if (flags & NDR_IN) {
34608 0 : ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
34609 0 : ndr->depth++;
34610 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
34611 0 : ndr->depth++;
34612 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
34613 0 : ndr->depth--;
34614 0 : ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
34615 0 : ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
34616 0 : ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
34617 0 : ndr->depth--;
34618 : }
34619 0 : if (flags & NDR_OUT) {
34620 0 : ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
34621 0 : ndr->depth++;
34622 0 : ndr_print_string(ndr, "value_name", r->out.value_name);
34623 0 : ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
34624 0 : ndr->depth++;
34625 0 : ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
34626 0 : ndr->depth--;
34627 0 : ndr_print_ptr(ndr, "type", r->out.type);
34628 0 : ndr->depth++;
34629 0 : ndr_print_winreg_Type(ndr, "type", *r->out.type);
34630 0 : ndr->depth--;
34631 : {
34632 0 : libndr_flags _flags_save_uint8 = ndr->flags;
34633 0 : ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
34634 0 : ndr_print_ptr(ndr, "data", r->out.data);
34635 0 : ndr->depth++;
34636 0 : ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
34637 0 : ndr->depth--;
34638 0 : ndr->flags = _flags_save_uint8;
34639 : }
34640 0 : ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
34641 0 : ndr->depth++;
34642 0 : ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
34643 0 : ndr->depth--;
34644 0 : ndr_print_WERROR(ndr, "result", r->out.result);
34645 0 : ndr->depth--;
34646 : }
34647 0 : ndr->depth--;
34648 : }
34649 :
34650 336 : static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrinterData *r)
34651 : {
34652 336 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34653 336 : if (flags & NDR_IN) {
34654 168 : if (r->in.handle == NULL) {
34655 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34656 : }
34657 168 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
34658 168 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
34659 168 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34660 168 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
34661 168 : 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));
34662 : }
34663 336 : if (flags & NDR_OUT) {
34664 168 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34665 : }
34666 336 : return NDR_ERR_SUCCESS;
34667 : }
34668 :
34669 336 : static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrinterData *r)
34670 : {
34671 336 : uint32_t size_value_name_0 = 0;
34672 336 : uint32_t length_value_name_0 = 0;
34673 336 : TALLOC_CTX *_mem_save_handle_0 = NULL;
34674 336 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34675 336 : if (flags & NDR_IN) {
34676 168 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34677 168 : NDR_PULL_ALLOC(ndr, r->in.handle);
34678 : }
34679 168 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
34680 168 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
34681 168 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
34682 168 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
34683 168 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
34684 168 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
34685 168 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.value_name, &size_value_name_0));
34686 168 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.value_name, &length_value_name_0));
34687 168 : if (length_value_name_0 > size_value_name_0) {
34688 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_value_name_0, length_value_name_0);
34689 : }
34690 168 : NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
34691 168 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
34692 : }
34693 336 : if (flags & NDR_OUT) {
34694 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
34695 : if (r->in.handle == NULL) {
34696 : NDR_PULL_ALLOC(ndr, r->in.handle);
34697 : NDR_ZERO_STRUCTP(r->in.handle);
34698 : }
34699 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
34700 168 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34701 : }
34702 336 : return NDR_ERR_SUCCESS;
34703 : }
34704 :
34705 0 : _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrinterData *r)
34706 : {
34707 0 : ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
34708 0 : if (r == NULL) { ndr_print_null(ndr); return; }
34709 0 : ndr->depth++;
34710 0 : if (flags & NDR_SET_VALUES) {
34711 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34712 : }
34713 0 : if (flags & NDR_IN) {
34714 0 : ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
34715 0 : ndr->depth++;
34716 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
34717 0 : ndr->depth++;
34718 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
34719 0 : ndr->depth--;
34720 0 : ndr_print_string(ndr, "value_name", r->in.value_name);
34721 0 : ndr->depth--;
34722 : }
34723 0 : if (flags & NDR_OUT) {
34724 0 : ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
34725 0 : ndr->depth++;
34726 0 : ndr_print_WERROR(ndr, "result", r->out.result);
34727 0 : ndr->depth--;
34728 : }
34729 0 : ndr->depth--;
34730 : }
34731 :
34732 0 : static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_4a *r)
34733 : {
34734 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34735 0 : if (flags & NDR_IN) {
34736 0 : }
34737 0 : if (flags & NDR_OUT) {
34738 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34739 : }
34740 0 : return NDR_ERR_SUCCESS;
34741 : }
34742 :
34743 0 : static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_4a *r)
34744 : {
34745 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34746 0 : if (flags & NDR_IN) {
34747 0 : }
34748 0 : if (flags & NDR_OUT) {
34749 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
34750 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
34751 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34752 : }
34753 0 : return NDR_ERR_SUCCESS;
34754 : }
34755 :
34756 0 : _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_4a *r)
34757 : {
34758 0 : ndr_print_struct(ndr, name, "spoolss_4a");
34759 0 : if (r == NULL) { ndr_print_null(ndr); return; }
34760 0 : ndr->depth++;
34761 0 : if (flags & NDR_SET_VALUES) {
34762 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34763 : }
34764 0 : if (flags & NDR_IN) {
34765 0 : ndr_print_struct(ndr, "in", "spoolss_4a");
34766 0 : ndr->depth++;
34767 0 : ndr->depth--;
34768 : }
34769 0 : if (flags & NDR_OUT) {
34770 0 : ndr_print_struct(ndr, "out", "spoolss_4a");
34771 0 : ndr->depth++;
34772 0 : ndr_print_WERROR(ndr, "result", r->out.result);
34773 0 : ndr->depth--;
34774 : }
34775 0 : ndr->depth--;
34776 : }
34777 :
34778 0 : static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_4b *r)
34779 : {
34780 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34781 0 : if (flags & NDR_IN) {
34782 0 : }
34783 0 : if (flags & NDR_OUT) {
34784 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34785 : }
34786 0 : return NDR_ERR_SUCCESS;
34787 : }
34788 :
34789 0 : static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_4b *r)
34790 : {
34791 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34792 0 : if (flags & NDR_IN) {
34793 0 : }
34794 0 : if (flags & NDR_OUT) {
34795 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
34796 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
34797 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34798 : }
34799 0 : return NDR_ERR_SUCCESS;
34800 : }
34801 :
34802 0 : _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_4b *r)
34803 : {
34804 0 : ndr_print_struct(ndr, name, "spoolss_4b");
34805 0 : if (r == NULL) { ndr_print_null(ndr); return; }
34806 0 : ndr->depth++;
34807 0 : if (flags & NDR_SET_VALUES) {
34808 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34809 : }
34810 0 : if (flags & NDR_IN) {
34811 0 : ndr_print_struct(ndr, "in", "spoolss_4b");
34812 0 : ndr->depth++;
34813 0 : ndr->depth--;
34814 : }
34815 0 : if (flags & NDR_OUT) {
34816 0 : ndr_print_struct(ndr, "out", "spoolss_4b");
34817 0 : ndr->depth++;
34818 0 : ndr_print_WERROR(ndr, "result", r->out.result);
34819 0 : ndr->depth--;
34820 : }
34821 0 : ndr->depth--;
34822 : }
34823 :
34824 0 : static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_4c *r)
34825 : {
34826 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34827 0 : if (flags & NDR_IN) {
34828 0 : }
34829 0 : if (flags & NDR_OUT) {
34830 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34831 : }
34832 0 : return NDR_ERR_SUCCESS;
34833 : }
34834 :
34835 0 : static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_4c *r)
34836 : {
34837 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34838 0 : if (flags & NDR_IN) {
34839 0 : }
34840 0 : if (flags & NDR_OUT) {
34841 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
34842 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
34843 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34844 : }
34845 0 : return NDR_ERR_SUCCESS;
34846 : }
34847 :
34848 0 : _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_4c *r)
34849 : {
34850 0 : ndr_print_struct(ndr, name, "spoolss_4c");
34851 0 : if (r == NULL) { ndr_print_null(ndr); return; }
34852 0 : ndr->depth++;
34853 0 : if (flags & NDR_SET_VALUES) {
34854 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34855 : }
34856 0 : if (flags & NDR_IN) {
34857 0 : ndr_print_struct(ndr, "in", "spoolss_4c");
34858 0 : ndr->depth++;
34859 0 : ndr->depth--;
34860 : }
34861 0 : if (flags & NDR_OUT) {
34862 0 : ndr_print_struct(ndr, "out", "spoolss_4c");
34863 0 : ndr->depth++;
34864 0 : ndr_print_WERROR(ndr, "result", r->out.result);
34865 0 : ndr->depth--;
34866 : }
34867 0 : ndr->depth--;
34868 : }
34869 :
34870 2400 : static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SetPrinterDataEx *r)
34871 : {
34872 2400 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34873 2400 : if (flags & NDR_IN) {
34874 1200 : if (r->in.handle == NULL) {
34875 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34876 : }
34877 1200 : if (r->in.data == NULL) {
34878 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34879 : }
34880 1200 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
34881 1200 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
34882 1200 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34883 1200 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
34884 1200 : 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));
34885 1200 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
34886 1200 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34887 1200 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
34888 1200 : 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));
34889 1200 : NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
34890 1200 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
34891 1200 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.offered));
34892 1200 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
34893 : }
34894 2400 : if (flags & NDR_OUT) {
34895 1200 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34896 : }
34897 2400 : return NDR_ERR_SUCCESS;
34898 : }
34899 :
34900 2400 : static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SetPrinterDataEx *r)
34901 : {
34902 2400 : uint32_t size_key_name_0 = 0;
34903 2400 : uint32_t length_key_name_0 = 0;
34904 2400 : uint32_t size_value_name_0 = 0;
34905 2400 : uint32_t length_value_name_0 = 0;
34906 2400 : uint32_t size_data_1 = 0;
34907 2400 : TALLOC_CTX *_mem_save_handle_0 = NULL;
34908 2400 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34909 2400 : if (flags & NDR_IN) {
34910 1200 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34911 1200 : NDR_PULL_ALLOC(ndr, r->in.handle);
34912 : }
34913 1200 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
34914 1200 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
34915 1200 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
34916 1200 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
34917 1200 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
34918 1200 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
34919 1200 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.key_name, &size_key_name_0));
34920 1200 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.key_name, &length_key_name_0));
34921 1200 : if (length_key_name_0 > size_key_name_0) {
34922 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_key_name_0, length_key_name_0);
34923 : }
34924 1200 : NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
34925 1200 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
34926 1200 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
34927 1200 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
34928 1200 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.value_name, &size_value_name_0));
34929 1200 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.value_name, &length_value_name_0));
34930 1200 : if (length_value_name_0 > size_value_name_0) {
34931 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_value_name_0, length_value_name_0);
34932 : }
34933 1200 : NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
34934 1200 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
34935 1200 : NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
34936 1200 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
34937 1200 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.data, &size_data_1));
34938 1200 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34939 1200 : NDR_PULL_ALLOC_N(ndr, r->in.data, size_data_1);
34940 : }
34941 1200 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, size_data_1));
34942 1200 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
34943 1200 : if (r->in.data) {
34944 1200 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.data, r->in.offered));
34945 : }
34946 : }
34947 2400 : if (flags & NDR_OUT) {
34948 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
34949 : if (r->in.handle == NULL) {
34950 : NDR_PULL_ALLOC(ndr, r->in.handle);
34951 : NDR_ZERO_STRUCTP(r->in.handle);
34952 : }
34953 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
34954 1200 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34955 : }
34956 2400 : return NDR_ERR_SUCCESS;
34957 : }
34958 :
34959 0 : _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SetPrinterDataEx *r)
34960 : {
34961 0 : ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
34962 0 : if (r == NULL) { ndr_print_null(ndr); return; }
34963 0 : ndr->depth++;
34964 0 : if (flags & NDR_SET_VALUES) {
34965 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34966 : }
34967 0 : if (flags & NDR_IN) {
34968 0 : ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
34969 0 : ndr->depth++;
34970 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
34971 0 : ndr->depth++;
34972 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
34973 0 : ndr->depth--;
34974 0 : ndr_print_string(ndr, "key_name", r->in.key_name);
34975 0 : ndr_print_string(ndr, "value_name", r->in.value_name);
34976 0 : ndr_print_winreg_Type(ndr, "type", r->in.type);
34977 0 : ndr_print_ptr(ndr, "data", r->in.data);
34978 0 : ndr->depth++;
34979 0 : ndr_print_array_uint8(ndr, "data", r->in.data, r->in.offered);
34980 0 : ndr->depth--;
34981 0 : ndr_print_uint32(ndr, "offered", r->in.offered);
34982 0 : ndr->depth--;
34983 : }
34984 0 : if (flags & NDR_OUT) {
34985 0 : ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
34986 0 : ndr->depth++;
34987 0 : ndr_print_WERROR(ndr, "result", r->out.result);
34988 0 : ndr->depth--;
34989 : }
34990 0 : ndr->depth--;
34991 : }
34992 :
34993 5400 : static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetPrinterDataEx *r)
34994 : {
34995 5400 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34996 5400 : if (flags & NDR_IN) {
34997 2700 : if (r->in.handle == NULL) {
34998 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34999 : }
35000 2700 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
35001 2700 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
35002 2700 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35003 2700 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
35004 2700 : 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));
35005 2700 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
35006 2700 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35007 2700 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
35008 2700 : 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));
35009 2700 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
35010 : }
35011 5400 : if (flags & NDR_OUT) {
35012 2700 : if (r->out.type == NULL) {
35013 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35014 : }
35015 2700 : if (r->out.data == NULL) {
35016 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35017 : }
35018 2700 : if (r->out.needed == NULL) {
35019 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35020 : }
35021 2700 : NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
35022 2700 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
35023 2700 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.offered));
35024 2700 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
35025 2700 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35026 : }
35027 5400 : return NDR_ERR_SUCCESS;
35028 : }
35029 :
35030 5400 : static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetPrinterDataEx *r)
35031 : {
35032 5400 : uint32_t size_key_name_0 = 0;
35033 5400 : uint32_t length_key_name_0 = 0;
35034 5400 : uint32_t size_value_name_0 = 0;
35035 5400 : uint32_t length_value_name_0 = 0;
35036 5400 : uint32_t size_data_1 = 0;
35037 5400 : TALLOC_CTX *_mem_save_handle_0 = NULL;
35038 5400 : TALLOC_CTX *_mem_save_type_0 = NULL;
35039 5400 : TALLOC_CTX *_mem_save_needed_0 = NULL;
35040 5400 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35041 5400 : if (flags & NDR_IN) {
35042 2700 : NDR_ZERO_STRUCT(r->out);
35043 :
35044 2700 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35045 2700 : NDR_PULL_ALLOC(ndr, r->in.handle);
35046 : }
35047 2700 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
35048 2700 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
35049 2700 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
35050 2700 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
35051 2700 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
35052 2700 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
35053 2700 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.key_name, &size_key_name_0));
35054 2700 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.key_name, &length_key_name_0));
35055 2700 : if (length_key_name_0 > size_key_name_0) {
35056 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_key_name_0, length_key_name_0);
35057 : }
35058 2700 : NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
35059 2700 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
35060 2700 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
35061 2700 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
35062 2700 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.value_name, &size_value_name_0));
35063 2700 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.value_name, &length_value_name_0));
35064 2700 : if (length_value_name_0 > size_value_name_0) {
35065 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_value_name_0, length_value_name_0);
35066 : }
35067 2700 : NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
35068 2700 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
35069 2700 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
35070 2700 : NDR_PULL_ALLOC(ndr, r->out.type);
35071 2700 : NDR_ZERO_STRUCTP(r->out.type);
35072 2700 : NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.offered);
35073 2700 : memset(r->out.data, 0, (r->in.offered) * sizeof(*r->out.data));
35074 2700 : NDR_PULL_ALLOC(ndr, r->out.needed);
35075 2700 : NDR_ZERO_STRUCTP(r->out.needed);
35076 : }
35077 5400 : if (flags & NDR_OUT) {
35078 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
35079 : if (r->in.handle == NULL) {
35080 : NDR_PULL_ALLOC(ndr, r->in.handle);
35081 : NDR_ZERO_STRUCTP(r->in.handle);
35082 : }
35083 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
35084 2700 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35085 0 : NDR_PULL_ALLOC(ndr, r->out.type);
35086 : }
35087 2700 : _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
35088 2700 : NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
35089 2700 : NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
35090 2700 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
35091 2700 : NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
35092 2700 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.data, &size_data_1));
35093 2700 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35094 0 : NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
35095 : }
35096 2700 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
35097 2700 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35098 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
35099 : }
35100 2700 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
35101 2700 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
35102 2700 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
35103 2700 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
35104 2700 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35105 2700 : if (r->out.data) {
35106 2700 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.data, r->in.offered));
35107 : }
35108 : }
35109 5400 : return NDR_ERR_SUCCESS;
35110 : }
35111 :
35112 0 : _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetPrinterDataEx *r)
35113 : {
35114 0 : ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
35115 0 : if (r == NULL) { ndr_print_null(ndr); return; }
35116 0 : ndr->depth++;
35117 0 : if (flags & NDR_SET_VALUES) {
35118 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35119 : }
35120 0 : if (flags & NDR_IN) {
35121 0 : ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
35122 0 : ndr->depth++;
35123 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
35124 0 : ndr->depth++;
35125 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
35126 0 : ndr->depth--;
35127 0 : ndr_print_string(ndr, "key_name", r->in.key_name);
35128 0 : ndr_print_string(ndr, "value_name", r->in.value_name);
35129 0 : ndr_print_uint32(ndr, "offered", r->in.offered);
35130 0 : ndr->depth--;
35131 : }
35132 0 : if (flags & NDR_OUT) {
35133 0 : ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
35134 0 : ndr->depth++;
35135 0 : ndr_print_ptr(ndr, "type", r->out.type);
35136 0 : ndr->depth++;
35137 0 : ndr_print_winreg_Type(ndr, "type", *r->out.type);
35138 0 : ndr->depth--;
35139 0 : ndr_print_ptr(ndr, "data", r->out.data);
35140 0 : ndr->depth++;
35141 0 : ndr_print_array_uint8(ndr, "data", r->out.data, r->in.offered);
35142 0 : ndr->depth--;
35143 0 : ndr_print_ptr(ndr, "needed", r->out.needed);
35144 0 : ndr->depth++;
35145 0 : ndr_print_uint32(ndr, "needed", *r->out.needed);
35146 0 : ndr->depth--;
35147 0 : ndr_print_WERROR(ndr, "result", r->out.result);
35148 0 : ndr->depth--;
35149 : }
35150 0 : ndr->depth--;
35151 : }
35152 :
35153 5192 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumPrinterDataEx *r)
35154 : {
35155 5192 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35156 5192 : if (flags & NDR_IN) {
35157 2596 : if (r->in.handle == NULL) {
35158 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35159 : }
35160 2596 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
35161 2596 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
35162 2596 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35163 2596 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
35164 2596 : 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));
35165 2596 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
35166 : }
35167 5192 : if (flags & NDR_OUT) {
35168 2596 : if (r->out.needed == NULL) {
35169 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35170 : }
35171 2596 : if (r->out.count == NULL) {
35172 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35173 : }
35174 2596 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
35175 2596 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
35176 2596 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
35177 2596 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35178 : }
35179 5192 : return NDR_ERR_SUCCESS;
35180 : }
35181 :
35182 5200 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumPrinterDataEx *r)
35183 : {
35184 5200 : uint32_t size_key_name_0 = 0;
35185 5200 : uint32_t length_key_name_0 = 0;
35186 5200 : TALLOC_CTX *_mem_save_handle_0 = NULL;
35187 5200 : TALLOC_CTX *_mem_save_needed_0 = NULL;
35188 5200 : TALLOC_CTX *_mem_save_count_0 = NULL;
35189 5200 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35190 5200 : if (flags & NDR_IN) {
35191 2600 : NDR_ZERO_STRUCT(r->out);
35192 :
35193 2600 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35194 2600 : NDR_PULL_ALLOC(ndr, r->in.handle);
35195 : }
35196 2600 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
35197 2600 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
35198 2600 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
35199 2600 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
35200 2600 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
35201 2600 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
35202 2600 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.key_name, &size_key_name_0));
35203 2600 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.key_name, &length_key_name_0));
35204 2600 : if (length_key_name_0 > size_key_name_0) {
35205 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_key_name_0, length_key_name_0);
35206 : }
35207 2600 : NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
35208 2600 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
35209 2600 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
35210 2600 : NDR_PULL_ALLOC(ndr, r->out.needed);
35211 2600 : NDR_ZERO_STRUCTP(r->out.needed);
35212 2600 : NDR_PULL_ALLOC(ndr, r->out.count);
35213 2600 : NDR_ZERO_STRUCTP(r->out.count);
35214 : }
35215 5200 : if (flags & NDR_OUT) {
35216 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
35217 : if (r->in.handle == NULL) {
35218 : NDR_PULL_ALLOC(ndr, r->in.handle);
35219 : NDR_ZERO_STRUCTP(r->in.handle);
35220 : }
35221 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
35222 2600 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
35223 2600 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35224 4 : NDR_PULL_ALLOC(ndr, r->out.needed);
35225 : }
35226 2600 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
35227 2600 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
35228 2600 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
35229 2600 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
35230 2600 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35231 4 : NDR_PULL_ALLOC(ndr, r->out.count);
35232 : }
35233 2600 : _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
35234 2600 : NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
35235 2600 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
35236 2600 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
35237 2600 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35238 : }
35239 5192 : return NDR_ERR_SUCCESS;
35240 : }
35241 :
35242 4192 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumPrinterDataEx *r)
35243 : {
35244 0 : uint32_t cntr_info_0;
35245 4192 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35246 4192 : if (flags & NDR_IN) {
35247 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
35248 : }
35249 4192 : if (flags & NDR_OUT) {
35250 9736 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
35251 5544 : NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
35252 : }
35253 9736 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
35254 5544 : NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
35255 : }
35256 : }
35257 4192 : return NDR_ERR_SUCCESS;
35258 : }
35259 :
35260 1262 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumPrinterDataEx *r)
35261 : {
35262 1262 : uint32_t size_info_0 = 0;
35263 2 : uint32_t cntr_info_0;
35264 1262 : TALLOC_CTX *_mem_save_info_0 = NULL;
35265 1262 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35266 1262 : if (flags & NDR_IN) {
35267 0 : NDR_ZERO_STRUCT(r->out);
35268 :
35269 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
35270 : }
35271 1262 : if (flags & NDR_OUT) {
35272 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
35273 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
35274 1262 : size_info_0 = r->in.count;
35275 1262 : NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
35276 1262 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
35277 1262 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
35278 2936 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
35279 1674 : NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
35280 : }
35281 2936 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
35282 1674 : NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
35283 : }
35284 1262 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
35285 2886 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
35286 : }
35287 : }
35288 1260 : return NDR_ERR_SUCCESS;
35289 : }
35290 :
35291 8 : _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPrinterDataEx *r)
35292 : {
35293 8 : uint32_t cntr_info_2;
35294 8 : ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
35295 8 : if (r == NULL) { ndr_print_null(ndr); return; }
35296 8 : ndr->depth++;
35297 8 : if (flags & NDR_SET_VALUES) {
35298 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35299 : }
35300 8 : if (flags & NDR_IN) {
35301 4 : ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
35302 4 : ndr->depth++;
35303 4 : ndr_print_ptr(ndr, "handle", r->in.handle);
35304 4 : ndr->depth++;
35305 4 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
35306 4 : ndr->depth--;
35307 4 : ndr_print_string(ndr, "key_name", r->in.key_name);
35308 4 : ndr_print_uint32(ndr, "offered", r->in.offered);
35309 4 : ndr->depth--;
35310 : }
35311 8 : if (flags & NDR_OUT) {
35312 4 : ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
35313 4 : ndr->depth++;
35314 4 : ndr_print_ptr(ndr, "count", r->out.count);
35315 4 : ndr->depth++;
35316 4 : ndr_print_uint32(ndr, "count", *r->out.count);
35317 4 : ndr->depth--;
35318 4 : ndr_print_ptr(ndr, "info", r->out.info);
35319 4 : ndr->depth++;
35320 4 : ndr_print_ptr(ndr, "info", *r->out.info);
35321 4 : ndr->depth++;
35322 4 : if (*r->out.info) {
35323 2 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
35324 2 : ndr->depth++;
35325 52 : for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
35326 50 : ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
35327 : }
35328 2 : ndr->depth--;
35329 : }
35330 4 : ndr->depth--;
35331 4 : ndr->depth--;
35332 4 : ndr_print_ptr(ndr, "needed", r->out.needed);
35333 4 : ndr->depth++;
35334 4 : ndr_print_uint32(ndr, "needed", *r->out.needed);
35335 4 : ndr->depth--;
35336 4 : ndr_print_WERROR(ndr, "result", r->out.result);
35337 4 : ndr->depth--;
35338 : }
35339 8 : ndr->depth--;
35340 : }
35341 :
35342 6768 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_EnumPrinterKey *r)
35343 : {
35344 6768 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35345 6768 : if (flags & NDR_IN) {
35346 3384 : if (r->in.handle == NULL) {
35347 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35348 : }
35349 3384 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
35350 3384 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
35351 3384 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35352 3384 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
35353 3384 : 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));
35354 3384 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
35355 : }
35356 6768 : if (flags & NDR_OUT) {
35357 3384 : if (r->out._ndr_size == NULL) {
35358 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35359 : }
35360 3384 : if (r->out.key_buffer == NULL) {
35361 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35362 : }
35363 3384 : if (r->out.needed == NULL) {
35364 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35365 : }
35366 3384 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
35367 : {
35368 0 : struct ndr_push *_ndr_key_buffer;
35369 3384 : NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
35370 3384 : NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
35371 3384 : NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
35372 3384 : NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
35373 : }
35374 3384 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
35375 3384 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35376 : }
35377 6768 : return NDR_ERR_SUCCESS;
35378 : }
35379 :
35380 6776 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_EnumPrinterKey *r)
35381 : {
35382 6776 : uint32_t size_key_name_0 = 0;
35383 6776 : uint32_t length_key_name_0 = 0;
35384 6776 : TALLOC_CTX *_mem_save_handle_0 = NULL;
35385 6776 : TALLOC_CTX *_mem_save__ndr_size_0 = NULL;
35386 6776 : TALLOC_CTX *_mem_save_key_buffer_0 = NULL;
35387 6776 : TALLOC_CTX *_mem_save_needed_0 = NULL;
35388 6776 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35389 6776 : if (flags & NDR_IN) {
35390 3388 : NDR_ZERO_STRUCT(r->out);
35391 :
35392 3388 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35393 3388 : NDR_PULL_ALLOC(ndr, r->in.handle);
35394 : }
35395 3388 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
35396 3388 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
35397 3388 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
35398 3388 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
35399 3388 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
35400 3388 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
35401 3388 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.key_name, &size_key_name_0));
35402 3388 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.key_name, &length_key_name_0));
35403 3388 : if (length_key_name_0 > size_key_name_0) {
35404 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_key_name_0, length_key_name_0);
35405 : }
35406 3388 : NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
35407 3388 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
35408 3388 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
35409 3388 : NDR_PULL_ALLOC(ndr, r->out._ndr_size);
35410 3388 : NDR_ZERO_STRUCTP(r->out._ndr_size);
35411 3388 : NDR_PULL_ALLOC(ndr, r->out.key_buffer);
35412 3388 : NDR_ZERO_STRUCTP(r->out.key_buffer);
35413 3388 : NDR_PULL_ALLOC(ndr, r->out.needed);
35414 3388 : NDR_ZERO_STRUCTP(r->out.needed);
35415 : }
35416 6776 : if (flags & NDR_OUT) {
35417 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
35418 : if (r->in.handle == NULL) {
35419 : NDR_PULL_ALLOC(ndr, r->in.handle);
35420 : NDR_ZERO_STRUCTP(r->in.handle);
35421 : }
35422 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
35423 3388 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35424 4 : NDR_PULL_ALLOC(ndr, r->out._ndr_size);
35425 : }
35426 3388 : _mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
35427 3388 : NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
35428 3388 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
35429 3388 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
35430 3388 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35431 4 : NDR_PULL_ALLOC(ndr, r->out.key_buffer);
35432 : }
35433 3388 : _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
35434 3388 : NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
35435 : {
35436 4 : struct ndr_pull *_ndr_key_buffer;
35437 3388 : ssize_t sub_size = *r->out._ndr_size * 2;
35438 3388 : NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, sub_size));
35439 3388 : NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
35440 3388 : NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
35441 3388 : NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, sub_size));
35442 : }
35443 3388 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
35444 3388 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35445 4 : NDR_PULL_ALLOC(ndr, r->out.needed);
35446 : }
35447 3388 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
35448 3388 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
35449 3388 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
35450 3388 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
35451 3388 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35452 : }
35453 6768 : return NDR_ERR_SUCCESS;
35454 : }
35455 :
35456 8 : _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPrinterKey *r)
35457 : {
35458 8 : ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
35459 8 : if (r == NULL) { ndr_print_null(ndr); return; }
35460 8 : ndr->depth++;
35461 8 : if (flags & NDR_SET_VALUES) {
35462 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35463 : }
35464 8 : if (flags & NDR_IN) {
35465 4 : ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
35466 4 : ndr->depth++;
35467 4 : ndr_print_ptr(ndr, "handle", r->in.handle);
35468 4 : ndr->depth++;
35469 4 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
35470 4 : ndr->depth--;
35471 4 : ndr_print_string(ndr, "key_name", r->in.key_name);
35472 4 : ndr_print_uint32(ndr, "offered", r->in.offered);
35473 4 : ndr->depth--;
35474 : }
35475 8 : if (flags & NDR_OUT) {
35476 4 : ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
35477 4 : ndr->depth++;
35478 4 : ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
35479 4 : ndr->depth++;
35480 4 : ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
35481 4 : ndr->depth--;
35482 4 : ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
35483 4 : ndr->depth++;
35484 4 : ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
35485 4 : ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
35486 4 : ndr->depth--;
35487 4 : ndr_print_ptr(ndr, "needed", r->out.needed);
35488 4 : ndr->depth++;
35489 4 : ndr_print_uint32(ndr, "needed", *r->out.needed);
35490 4 : ndr->depth--;
35491 4 : ndr_print_WERROR(ndr, "result", r->out.result);
35492 4 : ndr->depth--;
35493 : }
35494 8 : ndr->depth--;
35495 : }
35496 :
35497 2400 : static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrinterDataEx *r)
35498 : {
35499 2400 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35500 2400 : if (flags & NDR_IN) {
35501 1200 : if (r->in.handle == NULL) {
35502 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35503 : }
35504 1200 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
35505 1200 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
35506 1200 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35507 1200 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
35508 1200 : 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));
35509 1200 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
35510 1200 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35511 1200 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
35512 1200 : 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));
35513 : }
35514 2400 : if (flags & NDR_OUT) {
35515 1200 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35516 : }
35517 2400 : return NDR_ERR_SUCCESS;
35518 : }
35519 :
35520 2400 : static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrinterDataEx *r)
35521 : {
35522 2400 : uint32_t size_key_name_0 = 0;
35523 2400 : uint32_t length_key_name_0 = 0;
35524 2400 : uint32_t size_value_name_0 = 0;
35525 2400 : uint32_t length_value_name_0 = 0;
35526 2400 : TALLOC_CTX *_mem_save_handle_0 = NULL;
35527 2400 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35528 2400 : if (flags & NDR_IN) {
35529 1200 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35530 1200 : NDR_PULL_ALLOC(ndr, r->in.handle);
35531 : }
35532 1200 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
35533 1200 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
35534 1200 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
35535 1200 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
35536 1200 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
35537 1200 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
35538 1200 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.key_name, &size_key_name_0));
35539 1200 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.key_name, &length_key_name_0));
35540 1200 : if (length_key_name_0 > size_key_name_0) {
35541 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_key_name_0, length_key_name_0);
35542 : }
35543 1200 : NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
35544 1200 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
35545 1200 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
35546 1200 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
35547 1200 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.value_name, &size_value_name_0));
35548 1200 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.value_name, &length_value_name_0));
35549 1200 : if (length_value_name_0 > size_value_name_0) {
35550 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_value_name_0, length_value_name_0);
35551 : }
35552 1200 : NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
35553 1200 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
35554 : }
35555 2400 : if (flags & NDR_OUT) {
35556 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
35557 : if (r->in.handle == NULL) {
35558 : NDR_PULL_ALLOC(ndr, r->in.handle);
35559 : NDR_ZERO_STRUCTP(r->in.handle);
35560 : }
35561 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
35562 1200 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35563 : }
35564 2400 : return NDR_ERR_SUCCESS;
35565 : }
35566 :
35567 0 : _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrinterDataEx *r)
35568 : {
35569 0 : ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
35570 0 : if (r == NULL) { ndr_print_null(ndr); return; }
35571 0 : ndr->depth++;
35572 0 : if (flags & NDR_SET_VALUES) {
35573 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35574 : }
35575 0 : if (flags & NDR_IN) {
35576 0 : ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
35577 0 : ndr->depth++;
35578 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
35579 0 : ndr->depth++;
35580 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
35581 0 : ndr->depth--;
35582 0 : ndr_print_string(ndr, "key_name", r->in.key_name);
35583 0 : ndr_print_string(ndr, "value_name", r->in.value_name);
35584 0 : ndr->depth--;
35585 : }
35586 0 : if (flags & NDR_OUT) {
35587 0 : ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
35588 0 : ndr->depth++;
35589 0 : ndr_print_WERROR(ndr, "result", r->out.result);
35590 0 : ndr->depth--;
35591 : }
35592 0 : ndr->depth--;
35593 : }
35594 :
35595 432 : static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrinterKey *r)
35596 : {
35597 432 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35598 432 : if (flags & NDR_IN) {
35599 216 : if (r->in.handle == NULL) {
35600 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35601 : }
35602 216 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
35603 216 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
35604 216 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35605 216 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
35606 216 : 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));
35607 : }
35608 432 : if (flags & NDR_OUT) {
35609 216 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35610 : }
35611 432 : return NDR_ERR_SUCCESS;
35612 : }
35613 :
35614 432 : static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrinterKey *r)
35615 : {
35616 432 : uint32_t size_key_name_0 = 0;
35617 432 : uint32_t length_key_name_0 = 0;
35618 432 : TALLOC_CTX *_mem_save_handle_0 = NULL;
35619 432 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35620 432 : if (flags & NDR_IN) {
35621 216 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35622 216 : NDR_PULL_ALLOC(ndr, r->in.handle);
35623 : }
35624 216 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
35625 216 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
35626 216 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
35627 216 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
35628 216 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
35629 216 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
35630 216 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.key_name, &size_key_name_0));
35631 216 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.key_name, &length_key_name_0));
35632 216 : if (length_key_name_0 > size_key_name_0) {
35633 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_key_name_0, length_key_name_0);
35634 : }
35635 216 : NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
35636 216 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
35637 : }
35638 432 : if (flags & NDR_OUT) {
35639 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
35640 : if (r->in.handle == NULL) {
35641 : NDR_PULL_ALLOC(ndr, r->in.handle);
35642 : NDR_ZERO_STRUCTP(r->in.handle);
35643 : }
35644 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
35645 216 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35646 : }
35647 432 : return NDR_ERR_SUCCESS;
35648 : }
35649 :
35650 0 : _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrinterKey *r)
35651 : {
35652 0 : ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
35653 0 : if (r == NULL) { ndr_print_null(ndr); return; }
35654 0 : ndr->depth++;
35655 0 : if (flags & NDR_SET_VALUES) {
35656 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35657 : }
35658 0 : if (flags & NDR_IN) {
35659 0 : ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
35660 0 : ndr->depth++;
35661 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
35662 0 : ndr->depth++;
35663 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
35664 0 : ndr->depth--;
35665 0 : ndr_print_string(ndr, "key_name", r->in.key_name);
35666 0 : ndr->depth--;
35667 : }
35668 0 : if (flags & NDR_OUT) {
35669 0 : ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
35670 0 : ndr->depth++;
35671 0 : ndr_print_WERROR(ndr, "result", r->out.result);
35672 0 : ndr->depth--;
35673 : }
35674 0 : ndr->depth--;
35675 : }
35676 :
35677 0 : static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_53 *r)
35678 : {
35679 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35680 0 : if (flags & NDR_IN) {
35681 0 : }
35682 0 : if (flags & NDR_OUT) {
35683 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35684 : }
35685 0 : return NDR_ERR_SUCCESS;
35686 : }
35687 :
35688 0 : static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_53 *r)
35689 : {
35690 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35691 0 : if (flags & NDR_IN) {
35692 0 : }
35693 0 : if (flags & NDR_OUT) {
35694 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
35695 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
35696 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35697 : }
35698 0 : return NDR_ERR_SUCCESS;
35699 : }
35700 :
35701 0 : _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_53 *r)
35702 : {
35703 0 : ndr_print_struct(ndr, name, "spoolss_53");
35704 0 : if (r == NULL) { ndr_print_null(ndr); return; }
35705 0 : ndr->depth++;
35706 0 : if (flags & NDR_SET_VALUES) {
35707 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35708 : }
35709 0 : if (flags & NDR_IN) {
35710 0 : ndr_print_struct(ndr, "in", "spoolss_53");
35711 0 : ndr->depth++;
35712 0 : ndr->depth--;
35713 : }
35714 0 : if (flags & NDR_OUT) {
35715 0 : ndr_print_struct(ndr, "out", "spoolss_53");
35716 0 : ndr->depth++;
35717 0 : ndr_print_WERROR(ndr, "result", r->out.result);
35718 0 : ndr->depth--;
35719 : }
35720 0 : ndr->depth--;
35721 : }
35722 :
35723 0 : static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePrinterDriverEx *r)
35724 : {
35725 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35726 0 : if (flags & NDR_IN) {
35727 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
35728 0 : if (r->in.server) {
35729 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
35730 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35731 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
35732 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
35733 : }
35734 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
35735 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35736 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
35737 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
35738 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
35739 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35740 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
35741 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
35742 0 : NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
35743 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
35744 : }
35745 0 : if (flags & NDR_OUT) {
35746 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35747 : }
35748 0 : return NDR_ERR_SUCCESS;
35749 : }
35750 :
35751 0 : static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePrinterDriverEx *r)
35752 : {
35753 0 : uint32_t _ptr_server;
35754 0 : uint32_t size_server_1 = 0;
35755 0 : uint32_t length_server_1 = 0;
35756 0 : uint32_t size_architecture_0 = 0;
35757 0 : uint32_t length_architecture_0 = 0;
35758 0 : uint32_t size_driver_0 = 0;
35759 0 : uint32_t length_driver_0 = 0;
35760 0 : TALLOC_CTX *_mem_save_server_0 = NULL;
35761 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35762 0 : if (flags & NDR_IN) {
35763 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
35764 0 : if (_ptr_server) {
35765 0 : NDR_PULL_ALLOC(ndr, r->in.server);
35766 : } else {
35767 0 : r->in.server = NULL;
35768 : }
35769 0 : if (r->in.server) {
35770 0 : _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
35771 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
35772 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
35773 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
35774 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
35775 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
35776 0 : if (length_server_1 > size_server_1) {
35777 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
35778 : }
35779 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
35780 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
35781 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
35782 : }
35783 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
35784 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
35785 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.architecture, &size_architecture_0));
35786 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.architecture, &length_architecture_0));
35787 0 : if (length_architecture_0 > size_architecture_0) {
35788 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_0, length_architecture_0);
35789 : }
35790 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_0, sizeof(uint16_t)));
35791 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_0, sizeof(uint16_t), CH_UTF16));
35792 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
35793 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
35794 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.driver, &size_driver_0));
35795 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.driver, &length_driver_0));
35796 0 : if (length_driver_0 > size_driver_0) {
35797 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_driver_0, length_driver_0);
35798 : }
35799 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_0, sizeof(uint16_t)));
35800 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, length_driver_0, sizeof(uint16_t), CH_UTF16));
35801 0 : NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
35802 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
35803 : }
35804 0 : if (flags & NDR_OUT) {
35805 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
35806 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
35807 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35808 : }
35809 0 : return NDR_ERR_SUCCESS;
35810 : }
35811 :
35812 0 : _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePrinterDriverEx *r)
35813 : {
35814 0 : ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
35815 0 : if (r == NULL) { ndr_print_null(ndr); return; }
35816 0 : ndr->depth++;
35817 0 : if (flags & NDR_SET_VALUES) {
35818 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35819 : }
35820 0 : if (flags & NDR_IN) {
35821 0 : ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
35822 0 : ndr->depth++;
35823 0 : ndr_print_ptr(ndr, "server", r->in.server);
35824 0 : ndr->depth++;
35825 0 : if (r->in.server) {
35826 0 : ndr_print_string(ndr, "server", r->in.server);
35827 : }
35828 0 : ndr->depth--;
35829 0 : ndr_print_string(ndr, "architecture", r->in.architecture);
35830 0 : ndr_print_string(ndr, "driver", r->in.driver);
35831 0 : ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
35832 0 : ndr_print_uint32(ndr, "version", r->in.version);
35833 0 : ndr->depth--;
35834 : }
35835 0 : if (flags & NDR_OUT) {
35836 0 : ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
35837 0 : ndr->depth++;
35838 0 : ndr_print_WERROR(ndr, "result", r->out.result);
35839 0 : ndr->depth--;
35840 : }
35841 0 : ndr->depth--;
35842 : }
35843 :
35844 4 : static enum ndr_err_code ndr_push_spoolss_AddPerMachineConnection(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPerMachineConnection *r)
35845 : {
35846 4 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35847 4 : if (flags & NDR_IN) {
35848 4 : if (r->in.printername == NULL) {
35849 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35850 : }
35851 4 : if (r->in.printserver == NULL) {
35852 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35853 : }
35854 4 : if (r->in.provider == NULL) {
35855 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35856 : }
35857 4 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
35858 4 : if (r->in.server) {
35859 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
35860 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35861 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
35862 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
35863 : }
35864 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
35865 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35866 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
35867 4 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
35868 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printserver, CH_UTF16)));
35869 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35870 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printserver, CH_UTF16)));
35871 4 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printserver, ndr_charset_length(r->in.printserver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
35872 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.provider, CH_UTF16)));
35873 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35874 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.provider, CH_UTF16)));
35875 4 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.provider, ndr_charset_length(r->in.provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
35876 : }
35877 4 : if (flags & NDR_OUT) {
35878 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35879 : }
35880 4 : return NDR_ERR_SUCCESS;
35881 : }
35882 :
35883 4 : static enum ndr_err_code ndr_pull_spoolss_AddPerMachineConnection(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPerMachineConnection *r)
35884 : {
35885 0 : uint32_t _ptr_server;
35886 4 : uint32_t size_server_1 = 0;
35887 4 : uint32_t length_server_1 = 0;
35888 4 : uint32_t size_printername_1 = 0;
35889 4 : uint32_t length_printername_1 = 0;
35890 4 : uint32_t size_printserver_1 = 0;
35891 4 : uint32_t length_printserver_1 = 0;
35892 4 : uint32_t size_provider_1 = 0;
35893 4 : uint32_t length_provider_1 = 0;
35894 4 : TALLOC_CTX *_mem_save_server_0 = NULL;
35895 4 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35896 4 : if (flags & NDR_IN) {
35897 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
35898 4 : if (_ptr_server) {
35899 0 : NDR_PULL_ALLOC(ndr, r->in.server);
35900 : } else {
35901 4 : r->in.server = NULL;
35902 : }
35903 4 : if (r->in.server) {
35904 0 : _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
35905 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
35906 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
35907 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
35908 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
35909 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
35910 0 : if (length_server_1 > size_server_1) {
35911 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
35912 : }
35913 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
35914 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
35915 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
35916 : }
35917 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
35918 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
35919 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.printername, &size_printername_1));
35920 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.printername, &length_printername_1));
35921 4 : if (length_printername_1 > size_printername_1) {
35922 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printername_1, length_printername_1);
35923 : }
35924 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
35925 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
35926 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printserver));
35927 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printserver));
35928 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.printserver, &size_printserver_1));
35929 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.printserver, &length_printserver_1));
35930 4 : if (length_printserver_1 > size_printserver_1) {
35931 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printserver_1, length_printserver_1);
35932 : }
35933 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_printserver_1, sizeof(uint16_t)));
35934 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printserver, length_printserver_1, sizeof(uint16_t), CH_UTF16));
35935 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.provider));
35936 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.provider));
35937 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.provider, &size_provider_1));
35938 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.provider, &length_provider_1));
35939 4 : if (length_provider_1 > size_provider_1) {
35940 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_provider_1, length_provider_1);
35941 : }
35942 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_provider_1, sizeof(uint16_t)));
35943 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.provider, length_provider_1, sizeof(uint16_t), CH_UTF16));
35944 : }
35945 4 : if (flags & NDR_OUT) {
35946 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
35947 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
35948 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35949 : }
35950 4 : return NDR_ERR_SUCCESS;
35951 : }
35952 :
35953 0 : _PUBLIC_ void ndr_print_spoolss_AddPerMachineConnection(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPerMachineConnection *r)
35954 : {
35955 0 : ndr_print_struct(ndr, name, "spoolss_AddPerMachineConnection");
35956 0 : if (r == NULL) { ndr_print_null(ndr); return; }
35957 0 : ndr->depth++;
35958 0 : if (flags & NDR_SET_VALUES) {
35959 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35960 : }
35961 0 : if (flags & NDR_IN) {
35962 0 : ndr_print_struct(ndr, "in", "spoolss_AddPerMachineConnection");
35963 0 : ndr->depth++;
35964 0 : ndr_print_ptr(ndr, "server", r->in.server);
35965 0 : ndr->depth++;
35966 0 : if (r->in.server) {
35967 0 : ndr_print_string(ndr, "server", r->in.server);
35968 : }
35969 0 : ndr->depth--;
35970 0 : ndr_print_ptr(ndr, "printername", r->in.printername);
35971 0 : ndr->depth++;
35972 0 : ndr_print_string(ndr, "printername", r->in.printername);
35973 0 : ndr->depth--;
35974 0 : ndr_print_ptr(ndr, "printserver", r->in.printserver);
35975 0 : ndr->depth++;
35976 0 : ndr_print_string(ndr, "printserver", r->in.printserver);
35977 0 : ndr->depth--;
35978 0 : ndr_print_ptr(ndr, "provider", r->in.provider);
35979 0 : ndr->depth++;
35980 0 : ndr_print_string(ndr, "provider", r->in.provider);
35981 0 : ndr->depth--;
35982 0 : ndr->depth--;
35983 : }
35984 0 : if (flags & NDR_OUT) {
35985 0 : ndr_print_struct(ndr, "out", "spoolss_AddPerMachineConnection");
35986 0 : ndr->depth++;
35987 0 : ndr_print_WERROR(ndr, "result", r->out.result);
35988 0 : ndr->depth--;
35989 : }
35990 0 : ndr->depth--;
35991 : }
35992 :
35993 0 : static enum ndr_err_code ndr_push_spoolss_DeletePerMachineConnection(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeletePerMachineConnection *r)
35994 : {
35995 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35996 0 : if (flags & NDR_IN) {
35997 0 : if (r->in.printername == NULL) {
35998 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35999 : }
36000 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
36001 0 : if (r->in.server) {
36002 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
36003 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
36004 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
36005 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
36006 : }
36007 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
36008 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
36009 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
36010 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
36011 : }
36012 0 : if (flags & NDR_OUT) {
36013 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36014 : }
36015 0 : return NDR_ERR_SUCCESS;
36016 : }
36017 :
36018 0 : static enum ndr_err_code ndr_pull_spoolss_DeletePerMachineConnection(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeletePerMachineConnection *r)
36019 : {
36020 0 : uint32_t _ptr_server;
36021 0 : uint32_t size_server_1 = 0;
36022 0 : uint32_t length_server_1 = 0;
36023 0 : uint32_t size_printername_1 = 0;
36024 0 : uint32_t length_printername_1 = 0;
36025 0 : TALLOC_CTX *_mem_save_server_0 = NULL;
36026 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36027 0 : if (flags & NDR_IN) {
36028 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
36029 0 : if (_ptr_server) {
36030 0 : NDR_PULL_ALLOC(ndr, r->in.server);
36031 : } else {
36032 0 : r->in.server = NULL;
36033 : }
36034 0 : if (r->in.server) {
36035 0 : _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
36036 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
36037 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
36038 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
36039 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
36040 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
36041 0 : if (length_server_1 > size_server_1) {
36042 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
36043 : }
36044 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
36045 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
36046 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
36047 : }
36048 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
36049 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
36050 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.printername, &size_printername_1));
36051 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.printername, &length_printername_1));
36052 0 : if (length_printername_1 > size_printername_1) {
36053 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_printername_1, length_printername_1);
36054 : }
36055 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
36056 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
36057 : }
36058 0 : if (flags & NDR_OUT) {
36059 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
36060 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
36061 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36062 : }
36063 0 : return NDR_ERR_SUCCESS;
36064 : }
36065 :
36066 0 : _PUBLIC_ void ndr_print_spoolss_DeletePerMachineConnection(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeletePerMachineConnection *r)
36067 : {
36068 0 : ndr_print_struct(ndr, name, "spoolss_DeletePerMachineConnection");
36069 0 : if (r == NULL) { ndr_print_null(ndr); return; }
36070 0 : ndr->depth++;
36071 0 : if (flags & NDR_SET_VALUES) {
36072 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36073 : }
36074 0 : if (flags & NDR_IN) {
36075 0 : ndr_print_struct(ndr, "in", "spoolss_DeletePerMachineConnection");
36076 0 : ndr->depth++;
36077 0 : ndr_print_ptr(ndr, "server", r->in.server);
36078 0 : ndr->depth++;
36079 0 : if (r->in.server) {
36080 0 : ndr_print_string(ndr, "server", r->in.server);
36081 : }
36082 0 : ndr->depth--;
36083 0 : ndr_print_ptr(ndr, "printername", r->in.printername);
36084 0 : ndr->depth++;
36085 0 : ndr_print_string(ndr, "printername", r->in.printername);
36086 0 : ndr->depth--;
36087 0 : ndr->depth--;
36088 : }
36089 0 : if (flags & NDR_OUT) {
36090 0 : ndr_print_struct(ndr, "out", "spoolss_DeletePerMachineConnection");
36091 0 : ndr->depth++;
36092 0 : ndr_print_WERROR(ndr, "result", r->out.result);
36093 0 : ndr->depth--;
36094 : }
36095 0 : ndr->depth--;
36096 : }
36097 :
36098 0 : _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPerMachineConnections(struct ndr_push *ndr, ndr_flags_type flags, const struct _spoolss_EnumPerMachineConnections *r)
36099 : {
36100 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36101 0 : if (flags & NDR_IN) {
36102 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
36103 0 : if (r->in.server) {
36104 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
36105 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
36106 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
36107 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
36108 : }
36109 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
36110 0 : if (r->in.buffer) {
36111 0 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
36112 : }
36113 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
36114 : }
36115 0 : if (flags & NDR_OUT) {
36116 0 : if (r->out.needed == NULL) {
36117 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36118 : }
36119 0 : if (r->out.count == NULL) {
36120 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36121 : }
36122 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
36123 0 : if (r->out.info) {
36124 0 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
36125 : }
36126 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
36127 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
36128 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36129 : }
36130 0 : return NDR_ERR_SUCCESS;
36131 : }
36132 :
36133 0 : _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPerMachineConnections(struct ndr_pull *ndr, ndr_flags_type flags, struct _spoolss_EnumPerMachineConnections *r)
36134 : {
36135 0 : uint32_t _ptr_server;
36136 0 : uint32_t size_server_1 = 0;
36137 0 : uint32_t length_server_1 = 0;
36138 0 : uint32_t _ptr_buffer;
36139 0 : uint32_t _ptr_info;
36140 0 : TALLOC_CTX *_mem_save_server_0 = NULL;
36141 0 : TALLOC_CTX *_mem_save_buffer_0 = NULL;
36142 0 : TALLOC_CTX *_mem_save_info_0 = NULL;
36143 0 : TALLOC_CTX *_mem_save_needed_0 = NULL;
36144 0 : TALLOC_CTX *_mem_save_count_0 = NULL;
36145 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36146 0 : if (flags & NDR_IN) {
36147 0 : NDR_ZERO_STRUCT(r->out);
36148 :
36149 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
36150 0 : if (_ptr_server) {
36151 0 : NDR_PULL_ALLOC(ndr, r->in.server);
36152 : } else {
36153 0 : r->in.server = NULL;
36154 : }
36155 0 : if (r->in.server) {
36156 0 : _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
36157 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
36158 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
36159 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
36160 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.server, &size_server_1));
36161 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.server, &length_server_1));
36162 0 : if (length_server_1 > size_server_1) {
36163 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_server_1, length_server_1);
36164 : }
36165 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
36166 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
36167 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
36168 : }
36169 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
36170 0 : if (_ptr_buffer) {
36171 0 : NDR_PULL_ALLOC(ndr, r->in.buffer);
36172 : } else {
36173 0 : r->in.buffer = NULL;
36174 : }
36175 0 : if (r->in.buffer) {
36176 0 : _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
36177 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
36178 0 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
36179 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
36180 : }
36181 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
36182 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
36183 0 : NDR_ZERO_STRUCTP(r->out.needed);
36184 0 : NDR_PULL_ALLOC(ndr, r->out.count);
36185 0 : NDR_ZERO_STRUCTP(r->out.count);
36186 : }
36187 0 : if (flags & NDR_OUT) {
36188 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
36189 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
36190 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
36191 0 : if (_ptr_info) {
36192 0 : NDR_PULL_ALLOC(ndr, r->out.info);
36193 : } else {
36194 0 : r->out.info = NULL;
36195 : }
36196 0 : if (r->out.info) {
36197 0 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
36198 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
36199 0 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
36200 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
36201 : }
36202 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36203 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
36204 : }
36205 0 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
36206 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
36207 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
36208 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
36209 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36210 0 : NDR_PULL_ALLOC(ndr, r->out.count);
36211 : }
36212 0 : _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
36213 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
36214 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
36215 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
36216 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36217 : }
36218 0 : return NDR_ERR_SUCCESS;
36219 : }
36220 :
36221 0 : _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPerMachineConnections(struct ndr_push *ndr, ndr_flags_type flags, const struct __spoolss_EnumPerMachineConnections *r)
36222 : {
36223 0 : uint32_t cntr_info_0;
36224 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36225 0 : if (flags & NDR_IN) {
36226 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
36227 : }
36228 0 : if (flags & NDR_OUT) {
36229 0 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
36230 0 : NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
36231 : }
36232 0 : for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
36233 0 : NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
36234 : }
36235 : }
36236 0 : return NDR_ERR_SUCCESS;
36237 : }
36238 :
36239 0 : _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPerMachineConnections(struct ndr_pull *ndr, ndr_flags_type flags, struct __spoolss_EnumPerMachineConnections *r)
36240 : {
36241 0 : uint32_t size_info_0 = 0;
36242 0 : uint32_t cntr_info_0;
36243 0 : TALLOC_CTX *_mem_save_info_0 = NULL;
36244 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36245 0 : if (flags & NDR_IN) {
36246 0 : NDR_ZERO_STRUCT(r->out);
36247 :
36248 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
36249 : }
36250 0 : if (flags & NDR_OUT) {
36251 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
36252 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
36253 0 : size_info_0 = r->in.count;
36254 0 : NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
36255 0 : _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
36256 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
36257 0 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
36258 0 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
36259 : }
36260 0 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
36261 0 : NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
36262 : }
36263 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
36264 0 : for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
36265 : }
36266 : }
36267 0 : return NDR_ERR_SUCCESS;
36268 : }
36269 :
36270 0 : _PUBLIC_ void ndr_print_spoolss_EnumPerMachineConnections(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumPerMachineConnections *r)
36271 : {
36272 0 : uint32_t cntr_info_2;
36273 0 : ndr_print_struct(ndr, name, "spoolss_EnumPerMachineConnections");
36274 0 : if (r == NULL) { ndr_print_null(ndr); return; }
36275 0 : ndr->depth++;
36276 0 : if (flags & NDR_SET_VALUES) {
36277 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36278 : }
36279 0 : if (flags & NDR_IN) {
36280 0 : ndr_print_struct(ndr, "in", "spoolss_EnumPerMachineConnections");
36281 0 : ndr->depth++;
36282 0 : ndr_print_ptr(ndr, "server", r->in.server);
36283 0 : ndr->depth++;
36284 0 : if (r->in.server) {
36285 0 : ndr_print_string(ndr, "server", r->in.server);
36286 : }
36287 0 : ndr->depth--;
36288 0 : ndr_print_ptr(ndr, "buffer", r->in.buffer);
36289 0 : ndr->depth++;
36290 0 : if (r->in.buffer) {
36291 0 : ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
36292 : }
36293 0 : ndr->depth--;
36294 0 : ndr_print_uint32(ndr, "offered", r->in.offered);
36295 0 : ndr->depth--;
36296 : }
36297 0 : if (flags & NDR_OUT) {
36298 0 : ndr_print_struct(ndr, "out", "spoolss_EnumPerMachineConnections");
36299 0 : ndr->depth++;
36300 0 : ndr_print_ptr(ndr, "count", r->out.count);
36301 0 : ndr->depth++;
36302 0 : ndr_print_uint32(ndr, "count", *r->out.count);
36303 0 : ndr->depth--;
36304 0 : ndr_print_ptr(ndr, "info", r->out.info);
36305 0 : ndr->depth++;
36306 0 : ndr_print_ptr(ndr, "info", *r->out.info);
36307 0 : ndr->depth++;
36308 0 : if (*r->out.info) {
36309 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "info", (uint32_t)(*r->out.count));
36310 0 : ndr->depth++;
36311 0 : for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
36312 0 : ndr_print_spoolss_PrinterInfo4(ndr, "info", &(*r->out.info)[cntr_info_2]);
36313 : }
36314 0 : ndr->depth--;
36315 : }
36316 0 : ndr->depth--;
36317 0 : ndr->depth--;
36318 0 : ndr_print_ptr(ndr, "needed", r->out.needed);
36319 0 : ndr->depth++;
36320 0 : ndr_print_uint32(ndr, "needed", *r->out.needed);
36321 0 : ndr->depth--;
36322 0 : ndr_print_WERROR(ndr, "result", r->out.result);
36323 0 : ndr->depth--;
36324 : }
36325 0 : ndr->depth--;
36326 : }
36327 :
36328 0 : static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_XcvData *r)
36329 : {
36330 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36331 0 : if (flags & NDR_IN) {
36332 0 : if (r->in.handle == NULL) {
36333 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36334 : }
36335 0 : if (r->in.status_code == NULL) {
36336 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36337 : }
36338 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
36339 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
36340 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
36341 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
36342 0 : 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));
36343 0 : NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
36344 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
36345 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
36346 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
36347 : }
36348 0 : if (flags & NDR_OUT) {
36349 0 : if (r->out.out_data == NULL) {
36350 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36351 : }
36352 0 : if (r->out.needed == NULL) {
36353 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36354 : }
36355 0 : if (r->out.status_code == NULL) {
36356 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36357 : }
36358 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
36359 0 : NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
36360 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
36361 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
36362 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36363 : }
36364 0 : return NDR_ERR_SUCCESS;
36365 : }
36366 :
36367 0 : static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_XcvData *r)
36368 : {
36369 0 : uint32_t size_function_name_0 = 0;
36370 0 : uint32_t length_function_name_0 = 0;
36371 0 : uint32_t size_out_data_1 = 0;
36372 0 : TALLOC_CTX *_mem_save_handle_0 = NULL;
36373 0 : TALLOC_CTX *_mem_save_needed_0 = NULL;
36374 0 : TALLOC_CTX *_mem_save_status_code_0 = NULL;
36375 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36376 0 : if (flags & NDR_IN) {
36377 0 : NDR_ZERO_STRUCT(r->out);
36378 :
36379 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36380 0 : NDR_PULL_ALLOC(ndr, r->in.handle);
36381 : }
36382 0 : _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
36383 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
36384 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
36385 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
36386 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
36387 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
36388 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.function_name, &size_function_name_0));
36389 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.function_name, &length_function_name_0));
36390 0 : if (length_function_name_0 > size_function_name_0) {
36391 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_function_name_0, length_function_name_0);
36392 : }
36393 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_function_name_0, sizeof(uint16_t)));
36394 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.function_name, length_function_name_0, sizeof(uint16_t), CH_UTF16));
36395 0 : NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
36396 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
36397 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
36398 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36399 0 : NDR_PULL_ALLOC(ndr, r->in.status_code);
36400 : }
36401 0 : _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
36402 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
36403 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
36404 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
36405 0 : NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
36406 0 : memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
36407 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
36408 0 : NDR_ZERO_STRUCTP(r->out.needed);
36409 0 : NDR_PULL_ALLOC(ndr, r->out.status_code);
36410 0 : *r->out.status_code = *r->in.status_code;
36411 : }
36412 0 : if (flags & NDR_OUT) {
36413 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
36414 : if (r->in.handle == NULL) {
36415 : NDR_PULL_ALLOC(ndr, r->in.handle);
36416 : NDR_ZERO_STRUCTP(r->in.handle);
36417 : }
36418 : if (r->in.status_code == NULL) {
36419 : NDR_PULL_ALLOC(ndr, r->in.status_code);
36420 : NDR_ZERO_STRUCTP(r->in.status_code);
36421 : }
36422 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
36423 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
36424 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.out_data, &size_out_data_1));
36425 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36426 0 : NDR_PULL_ALLOC_N(ndr, r->out.out_data, size_out_data_1);
36427 : }
36428 0 : NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, size_out_data_1));
36429 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36430 0 : NDR_PULL_ALLOC(ndr, r->out.needed);
36431 : }
36432 0 : _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
36433 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
36434 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
36435 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
36436 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36437 0 : NDR_PULL_ALLOC(ndr, r->out.status_code);
36438 : }
36439 0 : _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
36440 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
36441 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
36442 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
36443 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36444 0 : if (r->out.out_data) {
36445 0 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
36446 : }
36447 : }
36448 0 : return NDR_ERR_SUCCESS;
36449 : }
36450 :
36451 0 : _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_XcvData *r)
36452 : {
36453 0 : ndr_print_struct(ndr, name, "spoolss_XcvData");
36454 0 : if (r == NULL) { ndr_print_null(ndr); return; }
36455 0 : ndr->depth++;
36456 0 : if (flags & NDR_SET_VALUES) {
36457 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36458 : }
36459 0 : if (flags & NDR_IN) {
36460 0 : ndr_print_struct(ndr, "in", "spoolss_XcvData");
36461 0 : ndr->depth++;
36462 0 : ndr_print_ptr(ndr, "handle", r->in.handle);
36463 0 : ndr->depth++;
36464 0 : ndr_print_policy_handle(ndr, "handle", r->in.handle);
36465 0 : ndr->depth--;
36466 0 : ndr_print_string(ndr, "function_name", r->in.function_name);
36467 0 : ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
36468 0 : ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
36469 0 : ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
36470 0 : ndr_print_ptr(ndr, "status_code", r->in.status_code);
36471 0 : ndr->depth++;
36472 0 : ndr_print_uint32(ndr, "status_code", *r->in.status_code);
36473 0 : ndr->depth--;
36474 0 : ndr->depth--;
36475 : }
36476 0 : if (flags & NDR_OUT) {
36477 0 : ndr_print_struct(ndr, "out", "spoolss_XcvData");
36478 0 : ndr->depth++;
36479 0 : ndr_print_ptr(ndr, "out_data", r->out.out_data);
36480 0 : ndr->depth++;
36481 0 : ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
36482 0 : ndr->depth--;
36483 0 : ndr_print_ptr(ndr, "needed", r->out.needed);
36484 0 : ndr->depth++;
36485 0 : ndr_print_uint32(ndr, "needed", *r->out.needed);
36486 0 : ndr->depth--;
36487 0 : ndr_print_ptr(ndr, "status_code", r->out.status_code);
36488 0 : ndr->depth++;
36489 0 : ndr_print_uint32(ndr, "status_code", *r->out.status_code);
36490 0 : ndr->depth--;
36491 0 : ndr_print_WERROR(ndr, "result", r->out.result);
36492 0 : ndr->depth--;
36493 : }
36494 0 : ndr->depth--;
36495 : }
36496 :
36497 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_AddPrinterDriverEx *r)
36498 : {
36499 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36500 0 : if (flags & NDR_IN) {
36501 0 : if (r->in.info_ctr == NULL) {
36502 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36503 : }
36504 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
36505 0 : if (r->in.servername) {
36506 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
36507 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
36508 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
36509 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
36510 : }
36511 0 : NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
36512 0 : NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
36513 : }
36514 0 : if (flags & NDR_OUT) {
36515 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36516 : }
36517 0 : return NDR_ERR_SUCCESS;
36518 : }
36519 :
36520 2 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_AddPrinterDriverEx *r)
36521 : {
36522 2 : uint32_t _ptr_servername;
36523 2 : uint32_t size_servername_1 = 0;
36524 2 : uint32_t length_servername_1 = 0;
36525 2 : TALLOC_CTX *_mem_save_servername_0 = NULL;
36526 2 : TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
36527 2 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36528 2 : if (flags & NDR_IN) {
36529 2 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
36530 2 : if (_ptr_servername) {
36531 2 : NDR_PULL_ALLOC(ndr, r->in.servername);
36532 : } else {
36533 0 : r->in.servername = NULL;
36534 : }
36535 2 : if (r->in.servername) {
36536 2 : _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
36537 2 : NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
36538 2 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
36539 2 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
36540 2 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
36541 2 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
36542 2 : if (length_servername_1 > size_servername_1) {
36543 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
36544 : }
36545 2 : NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
36546 2 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
36547 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
36548 : }
36549 2 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36550 2 : NDR_PULL_ALLOC(ndr, r->in.info_ctr);
36551 : }
36552 2 : _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
36553 2 : NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
36554 2 : NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
36555 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
36556 4 : NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
36557 : }
36558 2 : if (flags & NDR_OUT) {
36559 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
36560 : if (r->in.info_ctr == NULL) {
36561 : NDR_PULL_ALLOC(ndr, r->in.info_ctr);
36562 : NDR_ZERO_STRUCTP(r->in.info_ctr);
36563 : }
36564 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
36565 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36566 : }
36567 0 : return NDR_ERR_SUCCESS;
36568 : }
36569 :
36570 2 : _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_AddPrinterDriverEx *r)
36571 : {
36572 2 : ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
36573 2 : if (r == NULL) { ndr_print_null(ndr); return; }
36574 2 : ndr->depth++;
36575 2 : if (flags & NDR_SET_VALUES) {
36576 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36577 : }
36578 2 : if (flags & NDR_IN) {
36579 2 : ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
36580 2 : ndr->depth++;
36581 2 : ndr_print_ptr(ndr, "servername", r->in.servername);
36582 2 : ndr->depth++;
36583 2 : if (r->in.servername) {
36584 2 : ndr_print_string(ndr, "servername", r->in.servername);
36585 : }
36586 2 : ndr->depth--;
36587 2 : ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
36588 2 : ndr->depth++;
36589 2 : ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
36590 2 : ndr->depth--;
36591 2 : ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
36592 2 : ndr->depth--;
36593 : }
36594 2 : if (flags & NDR_OUT) {
36595 0 : ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
36596 0 : ndr->depth++;
36597 0 : ndr_print_WERROR(ndr, "result", r->out.result);
36598 0 : ndr->depth--;
36599 : }
36600 2 : ndr->depth--;
36601 : }
36602 :
36603 0 : static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_5a *r)
36604 : {
36605 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36606 0 : if (flags & NDR_IN) {
36607 0 : }
36608 0 : if (flags & NDR_OUT) {
36609 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36610 : }
36611 0 : return NDR_ERR_SUCCESS;
36612 : }
36613 :
36614 0 : static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_5a *r)
36615 : {
36616 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36617 0 : if (flags & NDR_IN) {
36618 0 : }
36619 0 : if (flags & NDR_OUT) {
36620 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
36621 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
36622 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36623 : }
36624 0 : return NDR_ERR_SUCCESS;
36625 : }
36626 :
36627 0 : _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_5a *r)
36628 : {
36629 0 : ndr_print_struct(ndr, name, "spoolss_5a");
36630 0 : if (r == NULL) { ndr_print_null(ndr); return; }
36631 0 : ndr->depth++;
36632 0 : if (flags & NDR_SET_VALUES) {
36633 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36634 : }
36635 0 : if (flags & NDR_IN) {
36636 0 : ndr_print_struct(ndr, "in", "spoolss_5a");
36637 0 : ndr->depth++;
36638 0 : ndr->depth--;
36639 : }
36640 0 : if (flags & NDR_OUT) {
36641 0 : ndr_print_struct(ndr, "out", "spoolss_5a");
36642 0 : ndr->depth++;
36643 0 : ndr_print_WERROR(ndr, "result", r->out.result);
36644 0 : ndr->depth--;
36645 : }
36646 0 : ndr->depth--;
36647 : }
36648 :
36649 0 : static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_5b *r)
36650 : {
36651 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36652 0 : if (flags & NDR_IN) {
36653 0 : }
36654 0 : if (flags & NDR_OUT) {
36655 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36656 : }
36657 0 : return NDR_ERR_SUCCESS;
36658 : }
36659 :
36660 0 : static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_5b *r)
36661 : {
36662 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36663 0 : if (flags & NDR_IN) {
36664 0 : }
36665 0 : if (flags & NDR_OUT) {
36666 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
36667 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
36668 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36669 : }
36670 0 : return NDR_ERR_SUCCESS;
36671 : }
36672 :
36673 0 : _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_5b *r)
36674 : {
36675 0 : ndr_print_struct(ndr, name, "spoolss_5b");
36676 0 : if (r == NULL) { ndr_print_null(ndr); return; }
36677 0 : ndr->depth++;
36678 0 : if (flags & NDR_SET_VALUES) {
36679 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36680 : }
36681 0 : if (flags & NDR_IN) {
36682 0 : ndr_print_struct(ndr, "in", "spoolss_5b");
36683 0 : ndr->depth++;
36684 0 : ndr->depth--;
36685 : }
36686 0 : if (flags & NDR_OUT) {
36687 0 : ndr_print_struct(ndr, "out", "spoolss_5b");
36688 0 : ndr->depth++;
36689 0 : ndr_print_WERROR(ndr, "result", r->out.result);
36690 0 : ndr->depth--;
36691 : }
36692 0 : ndr->depth--;
36693 : }
36694 :
36695 0 : static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_5c *r)
36696 : {
36697 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36698 0 : if (flags & NDR_IN) {
36699 0 : }
36700 0 : if (flags & NDR_OUT) {
36701 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36702 : }
36703 0 : return NDR_ERR_SUCCESS;
36704 : }
36705 :
36706 0 : static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_5c *r)
36707 : {
36708 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36709 0 : if (flags & NDR_IN) {
36710 0 : }
36711 0 : if (flags & NDR_OUT) {
36712 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
36713 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
36714 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36715 : }
36716 0 : return NDR_ERR_SUCCESS;
36717 : }
36718 :
36719 0 : _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_5c *r)
36720 : {
36721 0 : ndr_print_struct(ndr, name, "spoolss_5c");
36722 0 : if (r == NULL) { ndr_print_null(ndr); return; }
36723 0 : ndr->depth++;
36724 0 : if (flags & NDR_SET_VALUES) {
36725 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36726 : }
36727 0 : if (flags & NDR_IN) {
36728 0 : ndr_print_struct(ndr, "in", "spoolss_5c");
36729 0 : ndr->depth++;
36730 0 : ndr->depth--;
36731 : }
36732 0 : if (flags & NDR_OUT) {
36733 0 : ndr_print_struct(ndr, "out", "spoolss_5c");
36734 0 : ndr->depth++;
36735 0 : ndr_print_WERROR(ndr, "result", r->out.result);
36736 0 : ndr->depth--;
36737 : }
36738 0 : ndr->depth--;
36739 : }
36740 :
36741 0 : static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_5d *r)
36742 : {
36743 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36744 0 : if (flags & NDR_IN) {
36745 0 : }
36746 0 : if (flags & NDR_OUT) {
36747 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36748 : }
36749 0 : return NDR_ERR_SUCCESS;
36750 : }
36751 :
36752 0 : static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_5d *r)
36753 : {
36754 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36755 0 : if (flags & NDR_IN) {
36756 0 : }
36757 0 : if (flags & NDR_OUT) {
36758 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
36759 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
36760 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36761 : }
36762 0 : return NDR_ERR_SUCCESS;
36763 : }
36764 :
36765 0 : _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_5d *r)
36766 : {
36767 0 : ndr_print_struct(ndr, name, "spoolss_5d");
36768 0 : if (r == NULL) { ndr_print_null(ndr); return; }
36769 0 : ndr->depth++;
36770 0 : if (flags & NDR_SET_VALUES) {
36771 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36772 : }
36773 0 : if (flags & NDR_IN) {
36774 0 : ndr_print_struct(ndr, "in", "spoolss_5d");
36775 0 : ndr->depth++;
36776 0 : ndr->depth--;
36777 : }
36778 0 : if (flags & NDR_OUT) {
36779 0 : ndr_print_struct(ndr, "out", "spoolss_5d");
36780 0 : ndr->depth++;
36781 0 : ndr_print_WERROR(ndr, "result", r->out.result);
36782 0 : ndr->depth--;
36783 : }
36784 0 : ndr->depth--;
36785 : }
36786 :
36787 0 : static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_5e *r)
36788 : {
36789 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36790 0 : if (flags & NDR_IN) {
36791 0 : }
36792 0 : if (flags & NDR_OUT) {
36793 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36794 : }
36795 0 : return NDR_ERR_SUCCESS;
36796 : }
36797 :
36798 0 : static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_5e *r)
36799 : {
36800 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36801 0 : if (flags & NDR_IN) {
36802 0 : }
36803 0 : if (flags & NDR_OUT) {
36804 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
36805 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
36806 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36807 : }
36808 0 : return NDR_ERR_SUCCESS;
36809 : }
36810 :
36811 0 : _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_5e *r)
36812 : {
36813 0 : ndr_print_struct(ndr, name, "spoolss_5e");
36814 0 : if (r == NULL) { ndr_print_null(ndr); return; }
36815 0 : ndr->depth++;
36816 0 : if (flags & NDR_SET_VALUES) {
36817 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36818 : }
36819 0 : if (flags & NDR_IN) {
36820 0 : ndr_print_struct(ndr, "in", "spoolss_5e");
36821 0 : ndr->depth++;
36822 0 : ndr->depth--;
36823 : }
36824 0 : if (flags & NDR_OUT) {
36825 0 : ndr_print_struct(ndr, "out", "spoolss_5e");
36826 0 : ndr->depth++;
36827 0 : ndr_print_WERROR(ndr, "result", r->out.result);
36828 0 : ndr->depth--;
36829 : }
36830 0 : ndr->depth--;
36831 : }
36832 :
36833 0 : static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_5f *r)
36834 : {
36835 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36836 0 : if (flags & NDR_IN) {
36837 0 : }
36838 0 : if (flags & NDR_OUT) {
36839 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36840 : }
36841 0 : return NDR_ERR_SUCCESS;
36842 : }
36843 :
36844 0 : static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_5f *r)
36845 : {
36846 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36847 0 : if (flags & NDR_IN) {
36848 0 : }
36849 0 : if (flags & NDR_OUT) {
36850 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
36851 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
36852 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36853 : }
36854 0 : return NDR_ERR_SUCCESS;
36855 : }
36856 :
36857 0 : _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_5f *r)
36858 : {
36859 0 : ndr_print_struct(ndr, name, "spoolss_5f");
36860 0 : if (r == NULL) { ndr_print_null(ndr); return; }
36861 0 : ndr->depth++;
36862 0 : if (flags & NDR_SET_VALUES) {
36863 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36864 : }
36865 0 : if (flags & NDR_IN) {
36866 0 : ndr_print_struct(ndr, "in", "spoolss_5f");
36867 0 : ndr->depth++;
36868 0 : ndr->depth--;
36869 : }
36870 0 : if (flags & NDR_OUT) {
36871 0 : ndr_print_struct(ndr, "out", "spoolss_5f");
36872 0 : ndr->depth++;
36873 0 : ndr_print_WERROR(ndr, "result", r->out.result);
36874 0 : ndr->depth--;
36875 : }
36876 0 : ndr->depth--;
36877 : }
36878 :
36879 0 : static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_60 *r)
36880 : {
36881 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36882 0 : if (flags & NDR_IN) {
36883 0 : }
36884 0 : if (flags & NDR_OUT) {
36885 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36886 : }
36887 0 : return NDR_ERR_SUCCESS;
36888 : }
36889 :
36890 0 : static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_60 *r)
36891 : {
36892 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36893 0 : if (flags & NDR_IN) {
36894 0 : }
36895 0 : if (flags & NDR_OUT) {
36896 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
36897 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
36898 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36899 : }
36900 0 : return NDR_ERR_SUCCESS;
36901 : }
36902 :
36903 0 : _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_60 *r)
36904 : {
36905 0 : ndr_print_struct(ndr, name, "spoolss_60");
36906 0 : if (r == NULL) { ndr_print_null(ndr); return; }
36907 0 : ndr->depth++;
36908 0 : if (flags & NDR_SET_VALUES) {
36909 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36910 : }
36911 0 : if (flags & NDR_IN) {
36912 0 : ndr_print_struct(ndr, "in", "spoolss_60");
36913 0 : ndr->depth++;
36914 0 : ndr->depth--;
36915 : }
36916 0 : if (flags & NDR_OUT) {
36917 0 : ndr_print_struct(ndr, "out", "spoolss_60");
36918 0 : ndr->depth++;
36919 0 : ndr_print_WERROR(ndr, "result", r->out.result);
36920 0 : ndr->depth--;
36921 : }
36922 0 : ndr->depth--;
36923 : }
36924 :
36925 0 : static enum ndr_err_code ndr_push_spoolss_SendRecvBidiData(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SendRecvBidiData *r)
36926 : {
36927 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36928 0 : if (flags & NDR_IN) {
36929 0 : if (r->in.pReqData == NULL) {
36930 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36931 : }
36932 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, &r->in.hPrinter));
36933 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.pAction));
36934 0 : if (r->in.pAction) {
36935 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pAction, CH_UTF16)));
36936 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
36937 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pAction, CH_UTF16)));
36938 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.pAction, ndr_charset_length(r->in.pAction, CH_UTF16), sizeof(uint16_t), CH_UTF16));
36939 : }
36940 0 : NDR_CHECK(ndr_push_RPC_BIDI_REQUEST_CONTAINER(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pReqData));
36941 : }
36942 0 : if (flags & NDR_OUT) {
36943 0 : if (r->out.ppRespData == NULL) {
36944 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36945 : }
36946 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppRespData));
36947 0 : if (*r->out.ppRespData) {
36948 0 : NDR_CHECK(ndr_push_RPC_BIDI_RESPONSE_CONTAINER(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppRespData));
36949 : }
36950 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36951 : }
36952 0 : return NDR_ERR_SUCCESS;
36953 : }
36954 :
36955 0 : static enum ndr_err_code ndr_pull_spoolss_SendRecvBidiData(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SendRecvBidiData *r)
36956 : {
36957 0 : uint32_t _ptr_pAction;
36958 0 : uint32_t size_pAction_1 = 0;
36959 0 : uint32_t length_pAction_1 = 0;
36960 0 : uint32_t _ptr_ppRespData;
36961 0 : TALLOC_CTX *_mem_save_pAction_0 = NULL;
36962 0 : TALLOC_CTX *_mem_save_pReqData_0 = NULL;
36963 0 : TALLOC_CTX *_mem_save_ppRespData_0 = NULL;
36964 0 : TALLOC_CTX *_mem_save_ppRespData_1 = NULL;
36965 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36966 0 : if (flags & NDR_IN) {
36967 0 : NDR_ZERO_STRUCT(r->out);
36968 :
36969 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, &r->in.hPrinter));
36970 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pAction));
36971 0 : if (_ptr_pAction) {
36972 0 : NDR_PULL_ALLOC(ndr, r->in.pAction);
36973 : } else {
36974 0 : r->in.pAction = NULL;
36975 : }
36976 0 : if (r->in.pAction) {
36977 0 : _mem_save_pAction_0 = NDR_PULL_GET_MEM_CTX(ndr);
36978 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.pAction, 0);
36979 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.pAction));
36980 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.pAction));
36981 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.pAction, &size_pAction_1));
36982 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.pAction, &length_pAction_1));
36983 0 : if (length_pAction_1 > size_pAction_1) {
36984 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pAction_1, length_pAction_1);
36985 : }
36986 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pAction_1, sizeof(uint16_t)));
36987 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.pAction, length_pAction_1, sizeof(uint16_t), CH_UTF16));
36988 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pAction_0, 0);
36989 : }
36990 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36991 0 : NDR_PULL_ALLOC(ndr, r->in.pReqData);
36992 : }
36993 0 : _mem_save_pReqData_0 = NDR_PULL_GET_MEM_CTX(ndr);
36994 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.pReqData, LIBNDR_FLAG_REF_ALLOC);
36995 0 : NDR_CHECK(ndr_pull_RPC_BIDI_REQUEST_CONTAINER(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pReqData));
36996 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pReqData_0, LIBNDR_FLAG_REF_ALLOC);
36997 0 : NDR_PULL_ALLOC(ndr, r->out.ppRespData);
36998 0 : NDR_ZERO_STRUCTP(r->out.ppRespData);
36999 : }
37000 0 : if (flags & NDR_OUT) {
37001 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
37002 : if (r->in.pReqData == NULL) {
37003 : NDR_PULL_ALLOC(ndr, r->in.pReqData);
37004 : NDR_ZERO_STRUCTP(r->in.pReqData);
37005 : }
37006 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
37007 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
37008 0 : NDR_PULL_ALLOC(ndr, r->out.ppRespData);
37009 : }
37010 0 : _mem_save_ppRespData_0 = NDR_PULL_GET_MEM_CTX(ndr);
37011 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.ppRespData, LIBNDR_FLAG_REF_ALLOC);
37012 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppRespData));
37013 0 : if (_ptr_ppRespData) {
37014 0 : NDR_PULL_ALLOC(ndr, *r->out.ppRespData);
37015 : } else {
37016 0 : *r->out.ppRespData = NULL;
37017 : }
37018 0 : if (*r->out.ppRespData) {
37019 0 : _mem_save_ppRespData_1 = NDR_PULL_GET_MEM_CTX(ndr);
37020 0 : NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppRespData, 0);
37021 0 : NDR_CHECK(ndr_pull_RPC_BIDI_RESPONSE_CONTAINER(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppRespData));
37022 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppRespData_1, 0);
37023 : }
37024 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppRespData_0, LIBNDR_FLAG_REF_ALLOC);
37025 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
37026 : }
37027 0 : return NDR_ERR_SUCCESS;
37028 : }
37029 :
37030 0 : _PUBLIC_ void ndr_print_spoolss_SendRecvBidiData(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SendRecvBidiData *r)
37031 : {
37032 0 : ndr_print_struct(ndr, name, "spoolss_SendRecvBidiData");
37033 0 : if (r == NULL) { ndr_print_null(ndr); return; }
37034 0 : ndr->depth++;
37035 0 : if (flags & NDR_SET_VALUES) {
37036 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
37037 : }
37038 0 : if (flags & NDR_IN) {
37039 0 : ndr_print_struct(ndr, "in", "spoolss_SendRecvBidiData");
37040 0 : ndr->depth++;
37041 0 : ndr_print_policy_handle(ndr, "hPrinter", &r->in.hPrinter);
37042 0 : ndr_print_ptr(ndr, "pAction", r->in.pAction);
37043 0 : ndr->depth++;
37044 0 : if (r->in.pAction) {
37045 0 : ndr_print_string(ndr, "pAction", r->in.pAction);
37046 : }
37047 0 : ndr->depth--;
37048 0 : ndr_print_ptr(ndr, "pReqData", r->in.pReqData);
37049 0 : ndr->depth++;
37050 0 : ndr_print_RPC_BIDI_REQUEST_CONTAINER(ndr, "pReqData", r->in.pReqData);
37051 0 : ndr->depth--;
37052 0 : ndr->depth--;
37053 : }
37054 0 : if (flags & NDR_OUT) {
37055 0 : ndr_print_struct(ndr, "out", "spoolss_SendRecvBidiData");
37056 0 : ndr->depth++;
37057 0 : ndr_print_ptr(ndr, "ppRespData", r->out.ppRespData);
37058 0 : ndr->depth++;
37059 0 : ndr_print_ptr(ndr, "ppRespData", *r->out.ppRespData);
37060 0 : ndr->depth++;
37061 0 : if (*r->out.ppRespData) {
37062 0 : ndr_print_RPC_BIDI_RESPONSE_CONTAINER(ndr, "ppRespData", *r->out.ppRespData);
37063 : }
37064 0 : ndr->depth--;
37065 0 : ndr->depth--;
37066 0 : ndr_print_WERROR(ndr, "result", r->out.result);
37067 0 : ndr->depth--;
37068 : }
37069 0 : ndr->depth--;
37070 : }
37071 :
37072 0 : static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_62 *r)
37073 : {
37074 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
37075 0 : if (flags & NDR_IN) {
37076 0 : }
37077 0 : if (flags & NDR_OUT) {
37078 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
37079 : }
37080 0 : return NDR_ERR_SUCCESS;
37081 : }
37082 :
37083 0 : static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_62 *r)
37084 : {
37085 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
37086 0 : if (flags & NDR_IN) {
37087 0 : }
37088 0 : if (flags & NDR_OUT) {
37089 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
37090 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
37091 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
37092 : }
37093 0 : return NDR_ERR_SUCCESS;
37094 : }
37095 :
37096 0 : _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_62 *r)
37097 : {
37098 0 : ndr_print_struct(ndr, name, "spoolss_62");
37099 0 : if (r == NULL) { ndr_print_null(ndr); return; }
37100 0 : ndr->depth++;
37101 0 : if (flags & NDR_SET_VALUES) {
37102 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
37103 : }
37104 0 : if (flags & NDR_IN) {
37105 0 : ndr_print_struct(ndr, "in", "spoolss_62");
37106 0 : ndr->depth++;
37107 0 : ndr->depth--;
37108 : }
37109 0 : if (flags & NDR_OUT) {
37110 0 : ndr_print_struct(ndr, "out", "spoolss_62");
37111 0 : ndr->depth++;
37112 0 : ndr_print_WERROR(ndr, "result", r->out.result);
37113 0 : ndr->depth--;
37114 : }
37115 0 : ndr->depth--;
37116 : }
37117 :
37118 0 : static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_63 *r)
37119 : {
37120 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
37121 0 : if (flags & NDR_IN) {
37122 0 : }
37123 0 : if (flags & NDR_OUT) {
37124 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
37125 : }
37126 0 : return NDR_ERR_SUCCESS;
37127 : }
37128 :
37129 0 : static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_63 *r)
37130 : {
37131 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
37132 0 : if (flags & NDR_IN) {
37133 0 : }
37134 0 : if (flags & NDR_OUT) {
37135 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
37136 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
37137 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
37138 : }
37139 0 : return NDR_ERR_SUCCESS;
37140 : }
37141 :
37142 0 : _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_63 *r)
37143 : {
37144 0 : ndr_print_struct(ndr, name, "spoolss_63");
37145 0 : if (r == NULL) { ndr_print_null(ndr); return; }
37146 0 : ndr->depth++;
37147 0 : if (flags & NDR_SET_VALUES) {
37148 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
37149 : }
37150 0 : if (flags & NDR_IN) {
37151 0 : ndr_print_struct(ndr, "in", "spoolss_63");
37152 0 : ndr->depth++;
37153 0 : ndr->depth--;
37154 : }
37155 0 : if (flags & NDR_OUT) {
37156 0 : ndr_print_struct(ndr, "out", "spoolss_63");
37157 0 : ndr->depth++;
37158 0 : ndr_print_WERROR(ndr, "result", r->out.result);
37159 0 : ndr->depth--;
37160 : }
37161 0 : ndr->depth--;
37162 : }
37163 :
37164 0 : static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_64 *r)
37165 : {
37166 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
37167 0 : if (flags & NDR_IN) {
37168 0 : }
37169 0 : if (flags & NDR_OUT) {
37170 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
37171 : }
37172 0 : return NDR_ERR_SUCCESS;
37173 : }
37174 :
37175 0 : static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_64 *r)
37176 : {
37177 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
37178 0 : if (flags & NDR_IN) {
37179 0 : }
37180 0 : if (flags & NDR_OUT) {
37181 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
37182 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
37183 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
37184 : }
37185 0 : return NDR_ERR_SUCCESS;
37186 : }
37187 :
37188 0 : _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_64 *r)
37189 : {
37190 0 : ndr_print_struct(ndr, name, "spoolss_64");
37191 0 : if (r == NULL) { ndr_print_null(ndr); return; }
37192 0 : ndr->depth++;
37193 0 : if (flags & NDR_SET_VALUES) {
37194 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
37195 : }
37196 0 : if (flags & NDR_IN) {
37197 0 : ndr_print_struct(ndr, "in", "spoolss_64");
37198 0 : ndr->depth++;
37199 0 : ndr->depth--;
37200 : }
37201 0 : if (flags & NDR_OUT) {
37202 0 : ndr_print_struct(ndr, "out", "spoolss_64");
37203 0 : ndr->depth++;
37204 0 : ndr_print_WERROR(ndr, "result", r->out.result);
37205 0 : ndr->depth--;
37206 : }
37207 0 : ndr->depth--;
37208 : }
37209 :
37210 0 : static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_65 *r)
37211 : {
37212 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
37213 0 : if (flags & NDR_IN) {
37214 0 : }
37215 0 : if (flags & NDR_OUT) {
37216 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
37217 : }
37218 0 : return NDR_ERR_SUCCESS;
37219 : }
37220 :
37221 0 : static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_65 *r)
37222 : {
37223 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
37224 0 : if (flags & NDR_IN) {
37225 0 : }
37226 0 : if (flags & NDR_OUT) {
37227 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
37228 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
37229 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
37230 : }
37231 0 : return NDR_ERR_SUCCESS;
37232 : }
37233 :
37234 0 : _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_65 *r)
37235 : {
37236 0 : ndr_print_struct(ndr, name, "spoolss_65");
37237 0 : if (r == NULL) { ndr_print_null(ndr); return; }
37238 0 : ndr->depth++;
37239 0 : if (flags & NDR_SET_VALUES) {
37240 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
37241 : }
37242 0 : if (flags & NDR_IN) {
37243 0 : ndr_print_struct(ndr, "in", "spoolss_65");
37244 0 : ndr->depth++;
37245 0 : ndr->depth--;
37246 : }
37247 0 : if (flags & NDR_OUT) {
37248 0 : ndr_print_struct(ndr, "out", "spoolss_65");
37249 0 : ndr->depth++;
37250 0 : ndr_print_WERROR(ndr, "result", r->out.result);
37251 0 : ndr->depth--;
37252 : }
37253 0 : ndr->depth--;
37254 : }
37255 :
37256 8 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetCorePrinterDrivers *r)
37257 : {
37258 0 : uint32_t cntr_core_driver_dependencies_1;
37259 0 : uint32_t cntr_core_printer_drivers_1;
37260 8 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
37261 8 : if (flags & NDR_IN) {
37262 8 : if (r->in.architecture == NULL) {
37263 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
37264 : }
37265 8 : if (r->in.core_driver_dependencies == NULL) {
37266 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
37267 : }
37268 8 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
37269 8 : if (r->in.servername) {
37270 8 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
37271 8 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
37272 8 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
37273 8 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
37274 : }
37275 8 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
37276 8 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
37277 8 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
37278 8 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
37279 8 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
37280 8 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
37281 8 : for (cntr_core_driver_dependencies_1 = 0; cntr_core_driver_dependencies_1 < (r->in.core_driver_size); cntr_core_driver_dependencies_1++) {
37282 0 : NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->in.core_driver_dependencies[cntr_core_driver_dependencies_1]));
37283 : }
37284 8 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
37285 : }
37286 8 : if (flags & NDR_OUT) {
37287 0 : if (r->out.core_printer_drivers == NULL) {
37288 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
37289 : }
37290 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
37291 0 : for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < (r->in.core_printer_driver_count); cntr_core_printer_drivers_1++) {
37292 0 : NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
37293 : }
37294 0 : NDR_CHECK(ndr_push_HRESULT(ndr, NDR_SCALARS, r->out.result));
37295 : }
37296 8 : return NDR_ERR_SUCCESS;
37297 : }
37298 :
37299 22 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetCorePrinterDrivers *r)
37300 : {
37301 14 : uint32_t _ptr_servername;
37302 22 : uint32_t size_servername_1 = 0;
37303 22 : uint32_t length_servername_1 = 0;
37304 22 : uint32_t size_architecture_1 = 0;
37305 22 : uint32_t length_architecture_1 = 0;
37306 22 : uint32_t size_core_driver_dependencies_1 = 0;
37307 14 : uint32_t cntr_core_driver_dependencies_1;
37308 22 : uint32_t size_core_printer_drivers_1 = 0;
37309 14 : uint32_t cntr_core_printer_drivers_1;
37310 22 : TALLOC_CTX *_mem_save_servername_0 = NULL;
37311 22 : TALLOC_CTX *_mem_save_core_driver_dependencies_1 = NULL;
37312 22 : TALLOC_CTX *_mem_save_core_printer_drivers_1 = NULL;
37313 22 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
37314 22 : if (flags & NDR_IN) {
37315 18 : NDR_ZERO_STRUCT(r->out);
37316 :
37317 18 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
37318 18 : if (_ptr_servername) {
37319 18 : NDR_PULL_ALLOC(ndr, r->in.servername);
37320 : } else {
37321 0 : r->in.servername = NULL;
37322 : }
37323 18 : if (r->in.servername) {
37324 18 : _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
37325 18 : NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
37326 18 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
37327 18 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
37328 18 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
37329 18 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
37330 18 : if (length_servername_1 > size_servername_1) {
37331 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
37332 : }
37333 18 : NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
37334 18 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
37335 18 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
37336 : }
37337 18 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
37338 18 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
37339 18 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.architecture, &size_architecture_1));
37340 18 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.architecture, &length_architecture_1));
37341 18 : if (length_architecture_1 > size_architecture_1) {
37342 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
37343 : }
37344 18 : NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
37345 18 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
37346 18 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
37347 18 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
37348 18 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.core_driver_dependencies, &size_core_driver_dependencies_1));
37349 18 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
37350 18 : NDR_PULL_ALLOC_N(ndr, r->in.core_driver_dependencies, size_core_driver_dependencies_1);
37351 : }
37352 18 : _mem_save_core_driver_dependencies_1 = NDR_PULL_GET_MEM_CTX(ndr);
37353 18 : NDR_PULL_SET_MEM_CTX(ndr, r->in.core_driver_dependencies, 0);
37354 548 : for (cntr_core_driver_dependencies_1 = 0; cntr_core_driver_dependencies_1 < (size_core_driver_dependencies_1); cntr_core_driver_dependencies_1++) {
37355 530 : NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->in.core_driver_dependencies[cntr_core_driver_dependencies_1]));
37356 : }
37357 18 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_1, 0);
37358 18 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
37359 18 : NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
37360 18 : memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
37361 18 : if (r->in.core_driver_dependencies) {
37362 18 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
37363 : }
37364 : }
37365 22 : if (flags & NDR_OUT) {
37366 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
37367 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
37368 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
37369 4 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.core_printer_drivers, &size_core_printer_drivers_1));
37370 4 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
37371 4 : NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, size_core_printer_drivers_1);
37372 : }
37373 4 : _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
37374 4 : NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
37375 8 : for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < (size_core_printer_drivers_1); cntr_core_printer_drivers_1++) {
37376 4 : NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
37377 : }
37378 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
37379 4 : NDR_CHECK(ndr_pull_HRESULT(ndr, NDR_SCALARS, &r->out.result));
37380 4 : if (r->out.core_printer_drivers) {
37381 4 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
37382 : }
37383 : }
37384 8 : return NDR_ERR_SUCCESS;
37385 : }
37386 :
37387 14 : _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetCorePrinterDrivers *r)
37388 : {
37389 14 : uint32_t cntr_core_driver_dependencies_1;
37390 14 : uint32_t cntr_core_printer_drivers_1;
37391 14 : ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
37392 14 : if (r == NULL) { ndr_print_null(ndr); return; }
37393 14 : ndr->depth++;
37394 14 : if (flags & NDR_SET_VALUES) {
37395 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
37396 : }
37397 14 : if (flags & NDR_IN) {
37398 10 : ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
37399 10 : ndr->depth++;
37400 10 : ndr_print_ptr(ndr, "servername", r->in.servername);
37401 10 : ndr->depth++;
37402 10 : if (r->in.servername) {
37403 10 : ndr_print_string(ndr, "servername", r->in.servername);
37404 : }
37405 10 : ndr->depth--;
37406 10 : ndr_print_ptr(ndr, "architecture", r->in.architecture);
37407 10 : ndr->depth++;
37408 10 : ndr_print_string(ndr, "architecture", r->in.architecture);
37409 10 : ndr->depth--;
37410 10 : ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
37411 10 : ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
37412 10 : ndr->depth++;
37413 10 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "core_driver_dependencies", (uint32_t)(r->in.core_driver_size));
37414 10 : ndr->depth++;
37415 540 : for (cntr_core_driver_dependencies_1 = 0; cntr_core_driver_dependencies_1 < (r->in.core_driver_size); cntr_core_driver_dependencies_1++) {
37416 530 : ndr_print_uint16(ndr, "core_driver_dependencies", r->in.core_driver_dependencies[cntr_core_driver_dependencies_1]);
37417 : }
37418 10 : ndr->depth--;
37419 10 : ndr->depth--;
37420 10 : ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
37421 10 : ndr->depth--;
37422 : }
37423 14 : if (flags & NDR_OUT) {
37424 4 : ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
37425 4 : ndr->depth++;
37426 4 : ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
37427 4 : ndr->depth++;
37428 4 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "core_printer_drivers", (uint32_t)(r->in.core_printer_driver_count));
37429 4 : ndr->depth++;
37430 8 : for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < (r->in.core_printer_driver_count); cntr_core_printer_drivers_1++) {
37431 4 : ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
37432 : }
37433 4 : ndr->depth--;
37434 4 : ndr->depth--;
37435 4 : ndr_print_HRESULT(ndr, "result", r->out.result);
37436 4 : ndr->depth--;
37437 : }
37438 14 : ndr->depth--;
37439 : }
37440 :
37441 0 : static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_67 *r)
37442 : {
37443 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
37444 0 : if (flags & NDR_IN) {
37445 0 : }
37446 0 : if (flags & NDR_OUT) {
37447 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
37448 : }
37449 0 : return NDR_ERR_SUCCESS;
37450 : }
37451 :
37452 0 : static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_67 *r)
37453 : {
37454 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
37455 0 : if (flags & NDR_IN) {
37456 0 : }
37457 0 : if (flags & NDR_OUT) {
37458 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
37459 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
37460 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
37461 : }
37462 0 : return NDR_ERR_SUCCESS;
37463 : }
37464 :
37465 0 : _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_67 *r)
37466 : {
37467 0 : ndr_print_struct(ndr, name, "spoolss_67");
37468 0 : if (r == NULL) { ndr_print_null(ndr); return; }
37469 0 : ndr->depth++;
37470 0 : if (flags & NDR_SET_VALUES) {
37471 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
37472 : }
37473 0 : if (flags & NDR_IN) {
37474 0 : ndr_print_struct(ndr, "in", "spoolss_67");
37475 0 : ndr->depth++;
37476 0 : ndr->depth--;
37477 : }
37478 0 : if (flags & NDR_OUT) {
37479 0 : ndr_print_struct(ndr, "out", "spoolss_67");
37480 0 : ndr->depth++;
37481 0 : ndr_print_WERROR(ndr, "result", r->out.result);
37482 0 : ndr->depth--;
37483 : }
37484 0 : ndr->depth--;
37485 : }
37486 :
37487 4 : static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetPrinterDriverPackagePath *r)
37488 : {
37489 4 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
37490 4 : if (flags & NDR_IN) {
37491 4 : if (r->in.architecture == NULL) {
37492 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
37493 : }
37494 4 : if (r->in.package_id == NULL) {
37495 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
37496 : }
37497 4 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
37498 4 : if (r->in.servername) {
37499 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
37500 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
37501 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
37502 4 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
37503 : }
37504 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
37505 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
37506 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
37507 4 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
37508 4 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
37509 4 : if (r->in.language) {
37510 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
37511 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
37512 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
37513 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
37514 : }
37515 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
37516 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
37517 4 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
37518 4 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.package_id, ndr_charset_length(r->in.package_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
37519 4 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
37520 4 : if (r->in.driver_package_cab) {
37521 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
37522 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
37523 : }
37524 4 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
37525 : }
37526 4 : if (flags & NDR_OUT) {
37527 0 : if (r->out.required == NULL) {
37528 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
37529 : }
37530 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
37531 0 : if (r->out.driver_package_cab) {
37532 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
37533 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
37534 : }
37535 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
37536 0 : NDR_CHECK(ndr_push_HRESULT(ndr, NDR_SCALARS, r->out.result));
37537 : }
37538 4 : return NDR_ERR_SUCCESS;
37539 : }
37540 :
37541 4 : static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetPrinterDriverPackagePath *r)
37542 : {
37543 0 : uint32_t _ptr_servername;
37544 4 : uint32_t size_servername_1 = 0;
37545 4 : uint32_t length_servername_1 = 0;
37546 4 : uint32_t size_architecture_1 = 0;
37547 4 : uint32_t length_architecture_1 = 0;
37548 0 : uint32_t _ptr_language;
37549 4 : uint32_t size_language_1 = 0;
37550 4 : uint32_t length_language_1 = 0;
37551 4 : uint32_t size_package_id_1 = 0;
37552 4 : uint32_t length_package_id_1 = 0;
37553 0 : uint32_t _ptr_driver_package_cab;
37554 4 : uint32_t size_driver_package_cab_1 = 0;
37555 4 : TALLOC_CTX *_mem_save_servername_0 = NULL;
37556 4 : TALLOC_CTX *_mem_save_language_0 = NULL;
37557 4 : TALLOC_CTX *_mem_save_driver_package_cab_0 = NULL;
37558 4 : TALLOC_CTX *_mem_save_required_0 = NULL;
37559 4 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
37560 4 : if (flags & NDR_IN) {
37561 4 : NDR_ZERO_STRUCT(r->out);
37562 :
37563 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
37564 4 : if (_ptr_servername) {
37565 4 : NDR_PULL_ALLOC(ndr, r->in.servername);
37566 : } else {
37567 0 : r->in.servername = NULL;
37568 : }
37569 4 : if (r->in.servername) {
37570 4 : _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
37571 4 : NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
37572 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
37573 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
37574 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.servername, &size_servername_1));
37575 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.servername, &length_servername_1));
37576 4 : if (length_servername_1 > size_servername_1) {
37577 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_servername_1, length_servername_1);
37578 : }
37579 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
37580 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
37581 4 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
37582 : }
37583 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
37584 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
37585 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.architecture, &size_architecture_1));
37586 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.architecture, &length_architecture_1));
37587 4 : if (length_architecture_1 > size_architecture_1) {
37588 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_architecture_1, length_architecture_1);
37589 : }
37590 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
37591 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
37592 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
37593 4 : if (_ptr_language) {
37594 0 : NDR_PULL_ALLOC(ndr, r->in.language);
37595 : } else {
37596 4 : r->in.language = NULL;
37597 : }
37598 4 : if (r->in.language) {
37599 0 : _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
37600 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
37601 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
37602 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
37603 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.language, &size_language_1));
37604 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.language, &length_language_1));
37605 0 : if (length_language_1 > size_language_1) {
37606 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_language_1, length_language_1);
37607 : }
37608 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_language_1, sizeof(uint16_t)));
37609 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, length_language_1, sizeof(uint16_t), CH_UTF16));
37610 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
37611 : }
37612 4 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
37613 4 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
37614 4 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.package_id, &size_package_id_1));
37615 4 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.package_id, &length_package_id_1));
37616 4 : if (length_package_id_1 > size_package_id_1) {
37617 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_package_id_1, length_package_id_1);
37618 : }
37619 4 : NDR_CHECK(ndr_check_string_terminator(ndr, length_package_id_1, sizeof(uint16_t)));
37620 4 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.package_id, length_package_id_1, sizeof(uint16_t), CH_UTF16));
37621 4 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
37622 4 : if (_ptr_driver_package_cab) {
37623 0 : NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
37624 : } else {
37625 4 : r->in.driver_package_cab = NULL;
37626 : }
37627 4 : if (r->in.driver_package_cab) {
37628 0 : _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
37629 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
37630 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
37631 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->in.driver_package_cab, &size_driver_package_cab_1));
37632 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver_package_cab, size_driver_package_cab_1, sizeof(uint16_t), CH_UTF16));
37633 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
37634 : }
37635 4 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
37636 4 : NDR_PULL_ALLOC(ndr, r->out.required);
37637 4 : NDR_ZERO_STRUCTP(r->out.required);
37638 4 : if (r->in.driver_package_cab) {
37639 0 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
37640 : }
37641 : }
37642 4 : if (flags & NDR_OUT) {
37643 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
37644 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
37645 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
37646 0 : if (_ptr_driver_package_cab) {
37647 0 : NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
37648 : } else {
37649 0 : r->out.driver_package_cab = NULL;
37650 : }
37651 0 : if (r->out.driver_package_cab) {
37652 0 : _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
37653 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
37654 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
37655 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)&r->out.driver_package_cab, &size_driver_package_cab_1));
37656 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.driver_package_cab, size_driver_package_cab_1, sizeof(uint16_t), CH_UTF16));
37657 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
37658 : }
37659 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
37660 0 : NDR_PULL_ALLOC(ndr, r->out.required);
37661 : }
37662 0 : _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
37663 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
37664 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
37665 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
37666 0 : NDR_CHECK(ndr_pull_HRESULT(ndr, NDR_SCALARS, &r->out.result));
37667 0 : if (r->out.driver_package_cab) {
37668 0 : NDR_CHECK(ndr_check_steal_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
37669 : }
37670 : }
37671 4 : return NDR_ERR_SUCCESS;
37672 : }
37673 :
37674 0 : _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetPrinterDriverPackagePath *r)
37675 : {
37676 0 : ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
37677 0 : if (r == NULL) { ndr_print_null(ndr); return; }
37678 0 : ndr->depth++;
37679 0 : if (flags & NDR_SET_VALUES) {
37680 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
37681 : }
37682 0 : if (flags & NDR_IN) {
37683 0 : ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
37684 0 : ndr->depth++;
37685 0 : ndr_print_ptr(ndr, "servername", r->in.servername);
37686 0 : ndr->depth++;
37687 0 : if (r->in.servername) {
37688 0 : ndr_print_string(ndr, "servername", r->in.servername);
37689 : }
37690 0 : ndr->depth--;
37691 0 : ndr_print_ptr(ndr, "architecture", r->in.architecture);
37692 0 : ndr->depth++;
37693 0 : ndr_print_string(ndr, "architecture", r->in.architecture);
37694 0 : ndr->depth--;
37695 0 : ndr_print_ptr(ndr, "language", r->in.language);
37696 0 : ndr->depth++;
37697 0 : if (r->in.language) {
37698 0 : ndr_print_string(ndr, "language", r->in.language);
37699 : }
37700 0 : ndr->depth--;
37701 0 : ndr_print_ptr(ndr, "package_id", r->in.package_id);
37702 0 : ndr->depth++;
37703 0 : ndr_print_string(ndr, "package_id", r->in.package_id);
37704 0 : ndr->depth--;
37705 0 : ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
37706 0 : ndr->depth++;
37707 0 : if (r->in.driver_package_cab) {
37708 0 : ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
37709 : }
37710 0 : ndr->depth--;
37711 0 : ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
37712 0 : ndr->depth--;
37713 : }
37714 0 : if (flags & NDR_OUT) {
37715 0 : ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
37716 0 : ndr->depth++;
37717 0 : ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
37718 0 : ndr->depth++;
37719 0 : if (r->out.driver_package_cab) {
37720 0 : ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
37721 : }
37722 0 : ndr->depth--;
37723 0 : ndr_print_ptr(ndr, "required", r->out.required);
37724 0 : ndr->depth++;
37725 0 : ndr_print_uint32(ndr, "required", *r->out.required);
37726 0 : ndr->depth--;
37727 0 : ndr_print_HRESULT(ndr, "result", r->out.result);
37728 0 : ndr->depth--;
37729 : }
37730 0 : ndr->depth--;
37731 : }
37732 :
37733 0 : static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_69 *r)
37734 : {
37735 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
37736 0 : if (flags & NDR_IN) {
37737 0 : }
37738 0 : if (flags & NDR_OUT) {
37739 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
37740 : }
37741 0 : return NDR_ERR_SUCCESS;
37742 : }
37743 :
37744 0 : static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_69 *r)
37745 : {
37746 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
37747 0 : if (flags & NDR_IN) {
37748 0 : }
37749 0 : if (flags & NDR_OUT) {
37750 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
37751 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
37752 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
37753 : }
37754 0 : return NDR_ERR_SUCCESS;
37755 : }
37756 :
37757 0 : _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_69 *r)
37758 : {
37759 0 : ndr_print_struct(ndr, name, "spoolss_69");
37760 0 : if (r == NULL) { ndr_print_null(ndr); return; }
37761 0 : ndr->depth++;
37762 0 : if (flags & NDR_SET_VALUES) {
37763 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
37764 : }
37765 0 : if (flags & NDR_IN) {
37766 0 : ndr_print_struct(ndr, "in", "spoolss_69");
37767 0 : ndr->depth++;
37768 0 : ndr->depth--;
37769 : }
37770 0 : if (flags & NDR_OUT) {
37771 0 : ndr_print_struct(ndr, "out", "spoolss_69");
37772 0 : ndr->depth++;
37773 0 : ndr_print_WERROR(ndr, "result", r->out.result);
37774 0 : ndr->depth--;
37775 : }
37776 0 : ndr->depth--;
37777 : }
37778 :
37779 0 : static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_6a *r)
37780 : {
37781 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
37782 0 : if (flags & NDR_IN) {
37783 0 : }
37784 0 : if (flags & NDR_OUT) {
37785 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
37786 : }
37787 0 : return NDR_ERR_SUCCESS;
37788 : }
37789 :
37790 0 : static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_6a *r)
37791 : {
37792 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
37793 0 : if (flags & NDR_IN) {
37794 0 : }
37795 0 : if (flags & NDR_OUT) {
37796 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
37797 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
37798 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
37799 : }
37800 0 : return NDR_ERR_SUCCESS;
37801 : }
37802 :
37803 0 : _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_6a *r)
37804 : {
37805 0 : ndr_print_struct(ndr, name, "spoolss_6a");
37806 0 : if (r == NULL) { ndr_print_null(ndr); return; }
37807 0 : ndr->depth++;
37808 0 : if (flags & NDR_SET_VALUES) {
37809 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
37810 : }
37811 0 : if (flags & NDR_IN) {
37812 0 : ndr_print_struct(ndr, "in", "spoolss_6a");
37813 0 : ndr->depth++;
37814 0 : ndr->depth--;
37815 : }
37816 0 : if (flags & NDR_OUT) {
37817 0 : ndr_print_struct(ndr, "out", "spoolss_6a");
37818 0 : ndr->depth++;
37819 0 : ndr_print_WERROR(ndr, "result", r->out.result);
37820 0 : ndr->depth--;
37821 : }
37822 0 : ndr->depth--;
37823 : }
37824 :
37825 0 : static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_6b *r)
37826 : {
37827 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
37828 0 : if (flags & NDR_IN) {
37829 0 : }
37830 0 : if (flags & NDR_OUT) {
37831 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
37832 : }
37833 0 : return NDR_ERR_SUCCESS;
37834 : }
37835 :
37836 0 : static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_6b *r)
37837 : {
37838 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
37839 0 : if (flags & NDR_IN) {
37840 0 : }
37841 0 : if (flags & NDR_OUT) {
37842 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
37843 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
37844 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
37845 : }
37846 0 : return NDR_ERR_SUCCESS;
37847 : }
37848 :
37849 0 : _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_6b *r)
37850 : {
37851 0 : ndr_print_struct(ndr, name, "spoolss_6b");
37852 0 : if (r == NULL) { ndr_print_null(ndr); return; }
37853 0 : ndr->depth++;
37854 0 : if (flags & NDR_SET_VALUES) {
37855 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
37856 : }
37857 0 : if (flags & NDR_IN) {
37858 0 : ndr_print_struct(ndr, "in", "spoolss_6b");
37859 0 : ndr->depth++;
37860 0 : ndr->depth--;
37861 : }
37862 0 : if (flags & NDR_OUT) {
37863 0 : ndr_print_struct(ndr, "out", "spoolss_6b");
37864 0 : ndr->depth++;
37865 0 : ndr_print_WERROR(ndr, "result", r->out.result);
37866 0 : ndr->depth--;
37867 : }
37868 0 : ndr->depth--;
37869 : }
37870 :
37871 0 : static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_6c *r)
37872 : {
37873 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
37874 0 : if (flags & NDR_IN) {
37875 0 : }
37876 0 : if (flags & NDR_OUT) {
37877 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
37878 : }
37879 0 : return NDR_ERR_SUCCESS;
37880 : }
37881 :
37882 0 : static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_6c *r)
37883 : {
37884 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
37885 0 : if (flags & NDR_IN) {
37886 0 : }
37887 0 : if (flags & NDR_OUT) {
37888 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
37889 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
37890 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
37891 : }
37892 0 : return NDR_ERR_SUCCESS;
37893 : }
37894 :
37895 0 : _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_6c *r)
37896 : {
37897 0 : ndr_print_struct(ndr, name, "spoolss_6c");
37898 0 : if (r == NULL) { ndr_print_null(ndr); return; }
37899 0 : ndr->depth++;
37900 0 : if (flags & NDR_SET_VALUES) {
37901 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
37902 : }
37903 0 : if (flags & NDR_IN) {
37904 0 : ndr_print_struct(ndr, "in", "spoolss_6c");
37905 0 : ndr->depth++;
37906 0 : ndr->depth--;
37907 : }
37908 0 : if (flags & NDR_OUT) {
37909 0 : ndr_print_struct(ndr, "out", "spoolss_6c");
37910 0 : ndr->depth++;
37911 0 : ndr_print_WERROR(ndr, "result", r->out.result);
37912 0 : ndr->depth--;
37913 : }
37914 0 : ndr->depth--;
37915 : }
37916 :
37917 0 : static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_6d *r)
37918 : {
37919 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
37920 0 : if (flags & NDR_IN) {
37921 0 : }
37922 0 : if (flags & NDR_OUT) {
37923 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
37924 : }
37925 0 : return NDR_ERR_SUCCESS;
37926 : }
37927 :
37928 0 : static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_6d *r)
37929 : {
37930 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
37931 0 : if (flags & NDR_IN) {
37932 0 : }
37933 0 : if (flags & NDR_OUT) {
37934 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
37935 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
37936 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
37937 : }
37938 0 : return NDR_ERR_SUCCESS;
37939 : }
37940 :
37941 0 : _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_6d *r)
37942 : {
37943 0 : ndr_print_struct(ndr, name, "spoolss_6d");
37944 0 : if (r == NULL) { ndr_print_null(ndr); return; }
37945 0 : ndr->depth++;
37946 0 : if (flags & NDR_SET_VALUES) {
37947 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
37948 : }
37949 0 : if (flags & NDR_IN) {
37950 0 : ndr_print_struct(ndr, "in", "spoolss_6d");
37951 0 : ndr->depth++;
37952 0 : ndr->depth--;
37953 : }
37954 0 : if (flags & NDR_OUT) {
37955 0 : ndr_print_struct(ndr, "out", "spoolss_6d");
37956 0 : ndr->depth++;
37957 0 : ndr_print_WERROR(ndr, "result", r->out.result);
37958 0 : ndr->depth--;
37959 : }
37960 0 : ndr->depth--;
37961 : }
37962 :
37963 0 : static enum ndr_err_code ndr_push_spoolss_GetJobNamedPropertyValue(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_GetJobNamedPropertyValue *r)
37964 : {
37965 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
37966 0 : if (flags & NDR_IN) {
37967 0 : if (r->in.hPrinter == NULL) {
37968 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
37969 : }
37970 0 : if (r->in.pszName == NULL) {
37971 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
37972 : }
37973 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
37974 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.JobId));
37975 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pszName, CH_UTF16)));
37976 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
37977 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pszName, CH_UTF16)));
37978 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.pszName, ndr_charset_length(r->in.pszName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
37979 : }
37980 0 : if (flags & NDR_OUT) {
37981 0 : if (r->out.pValue == NULL) {
37982 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
37983 : }
37984 0 : NDR_CHECK(ndr_push_spoolss_PrintPropertyValue(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.pValue));
37985 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
37986 : }
37987 0 : return NDR_ERR_SUCCESS;
37988 : }
37989 :
37990 0 : static enum ndr_err_code ndr_pull_spoolss_GetJobNamedPropertyValue(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_GetJobNamedPropertyValue *r)
37991 : {
37992 0 : uint32_t size_pszName_1 = 0;
37993 0 : uint32_t length_pszName_1 = 0;
37994 0 : TALLOC_CTX *_mem_save_hPrinter_0 = NULL;
37995 0 : TALLOC_CTX *_mem_save_pValue_0 = NULL;
37996 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
37997 0 : if (flags & NDR_IN) {
37998 0 : NDR_ZERO_STRUCT(r->out);
37999 :
38000 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
38001 0 : NDR_PULL_ALLOC(ndr, r->in.hPrinter);
38002 : }
38003 0 : _mem_save_hPrinter_0 = NDR_PULL_GET_MEM_CTX(ndr);
38004 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.hPrinter, LIBNDR_FLAG_REF_ALLOC);
38005 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
38006 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hPrinter_0, LIBNDR_FLAG_REF_ALLOC);
38007 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.JobId));
38008 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.pszName));
38009 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.pszName));
38010 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.pszName, &size_pszName_1));
38011 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.pszName, &length_pszName_1));
38012 0 : if (length_pszName_1 > size_pszName_1) {
38013 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pszName_1, length_pszName_1);
38014 : }
38015 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pszName_1, sizeof(uint16_t)));
38016 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.pszName, length_pszName_1, sizeof(uint16_t), CH_UTF16));
38017 0 : NDR_PULL_ALLOC(ndr, r->out.pValue);
38018 0 : NDR_ZERO_STRUCTP(r->out.pValue);
38019 : }
38020 0 : if (flags & NDR_OUT) {
38021 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
38022 : if (r->in.hPrinter == NULL) {
38023 : NDR_PULL_ALLOC(ndr, r->in.hPrinter);
38024 : NDR_ZERO_STRUCTP(r->in.hPrinter);
38025 : }
38026 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
38027 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
38028 0 : NDR_PULL_ALLOC(ndr, r->out.pValue);
38029 : }
38030 0 : _mem_save_pValue_0 = NDR_PULL_GET_MEM_CTX(ndr);
38031 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.pValue, LIBNDR_FLAG_REF_ALLOC);
38032 0 : NDR_CHECK(ndr_pull_spoolss_PrintPropertyValue(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.pValue));
38033 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pValue_0, LIBNDR_FLAG_REF_ALLOC);
38034 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
38035 : }
38036 0 : return NDR_ERR_SUCCESS;
38037 : }
38038 :
38039 0 : _PUBLIC_ void ndr_print_spoolss_GetJobNamedPropertyValue(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_GetJobNamedPropertyValue *r)
38040 : {
38041 0 : ndr_print_struct(ndr, name, "spoolss_GetJobNamedPropertyValue");
38042 0 : if (r == NULL) { ndr_print_null(ndr); return; }
38043 0 : ndr->depth++;
38044 0 : if (flags & NDR_SET_VALUES) {
38045 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
38046 : }
38047 0 : if (flags & NDR_IN) {
38048 0 : ndr_print_struct(ndr, "in", "spoolss_GetJobNamedPropertyValue");
38049 0 : ndr->depth++;
38050 0 : ndr_print_ptr(ndr, "hPrinter", r->in.hPrinter);
38051 0 : ndr->depth++;
38052 0 : ndr_print_policy_handle(ndr, "hPrinter", r->in.hPrinter);
38053 0 : ndr->depth--;
38054 0 : ndr_print_uint32(ndr, "JobId", r->in.JobId);
38055 0 : ndr_print_ptr(ndr, "pszName", r->in.pszName);
38056 0 : ndr->depth++;
38057 0 : ndr_print_string(ndr, "pszName", r->in.pszName);
38058 0 : ndr->depth--;
38059 0 : ndr->depth--;
38060 : }
38061 0 : if (flags & NDR_OUT) {
38062 0 : ndr_print_struct(ndr, "out", "spoolss_GetJobNamedPropertyValue");
38063 0 : ndr->depth++;
38064 0 : ndr_print_ptr(ndr, "pValue", r->out.pValue);
38065 0 : ndr->depth++;
38066 0 : ndr_print_spoolss_PrintPropertyValue(ndr, "pValue", r->out.pValue);
38067 0 : ndr->depth--;
38068 0 : ndr_print_WERROR(ndr, "result", r->out.result);
38069 0 : ndr->depth--;
38070 : }
38071 0 : ndr->depth--;
38072 : }
38073 :
38074 0 : _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobNamedProperty(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_SetJobNamedProperty *r)
38075 : {
38076 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
38077 0 : if (flags & NDR_IN) {
38078 0 : if (r->in.hPrinter == NULL) {
38079 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
38080 : }
38081 0 : if (r->in.pProperty == NULL) {
38082 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
38083 : }
38084 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
38085 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.JobId));
38086 0 : NDR_CHECK(ndr_push_spoolss_PrintNamedProperty(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pProperty));
38087 : }
38088 0 : if (flags & NDR_OUT) {
38089 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
38090 : }
38091 0 : return NDR_ERR_SUCCESS;
38092 : }
38093 :
38094 2 : _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobNamedProperty(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_SetJobNamedProperty *r)
38095 : {
38096 2 : TALLOC_CTX *_mem_save_hPrinter_0 = NULL;
38097 2 : TALLOC_CTX *_mem_save_pProperty_0 = NULL;
38098 2 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
38099 2 : if (flags & NDR_IN) {
38100 2 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
38101 2 : NDR_PULL_ALLOC(ndr, r->in.hPrinter);
38102 : }
38103 2 : _mem_save_hPrinter_0 = NDR_PULL_GET_MEM_CTX(ndr);
38104 2 : NDR_PULL_SET_MEM_CTX(ndr, r->in.hPrinter, LIBNDR_FLAG_REF_ALLOC);
38105 2 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
38106 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hPrinter_0, LIBNDR_FLAG_REF_ALLOC);
38107 2 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.JobId));
38108 2 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
38109 2 : NDR_PULL_ALLOC(ndr, r->in.pProperty);
38110 : }
38111 2 : _mem_save_pProperty_0 = NDR_PULL_GET_MEM_CTX(ndr);
38112 2 : NDR_PULL_SET_MEM_CTX(ndr, r->in.pProperty, LIBNDR_FLAG_REF_ALLOC);
38113 2 : NDR_CHECK(ndr_pull_spoolss_PrintNamedProperty(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pProperty));
38114 2 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pProperty_0, LIBNDR_FLAG_REF_ALLOC);
38115 : }
38116 2 : if (flags & NDR_OUT) {
38117 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
38118 : if (r->in.hPrinter == NULL) {
38119 : NDR_PULL_ALLOC(ndr, r->in.hPrinter);
38120 : NDR_ZERO_STRUCTP(r->in.hPrinter);
38121 : }
38122 : if (r->in.pProperty == NULL) {
38123 : NDR_PULL_ALLOC(ndr, r->in.pProperty);
38124 : NDR_ZERO_STRUCTP(r->in.pProperty);
38125 : }
38126 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
38127 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
38128 : }
38129 0 : return NDR_ERR_SUCCESS;
38130 : }
38131 :
38132 2 : _PUBLIC_ void ndr_print_spoolss_SetJobNamedProperty(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_SetJobNamedProperty *r)
38133 : {
38134 2 : ndr_print_struct(ndr, name, "spoolss_SetJobNamedProperty");
38135 2 : if (r == NULL) { ndr_print_null(ndr); return; }
38136 2 : ndr->depth++;
38137 2 : if (flags & NDR_SET_VALUES) {
38138 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
38139 : }
38140 2 : if (flags & NDR_IN) {
38141 2 : ndr_print_struct(ndr, "in", "spoolss_SetJobNamedProperty");
38142 2 : ndr->depth++;
38143 2 : ndr_print_ptr(ndr, "hPrinter", r->in.hPrinter);
38144 2 : ndr->depth++;
38145 2 : ndr_print_policy_handle(ndr, "hPrinter", r->in.hPrinter);
38146 2 : ndr->depth--;
38147 2 : ndr_print_uint32(ndr, "JobId", r->in.JobId);
38148 2 : ndr_print_ptr(ndr, "pProperty", r->in.pProperty);
38149 2 : ndr->depth++;
38150 2 : ndr_print_spoolss_PrintNamedProperty(ndr, "pProperty", r->in.pProperty);
38151 2 : ndr->depth--;
38152 2 : ndr->depth--;
38153 : }
38154 2 : if (flags & NDR_OUT) {
38155 0 : ndr_print_struct(ndr, "out", "spoolss_SetJobNamedProperty");
38156 0 : ndr->depth++;
38157 0 : ndr_print_WERROR(ndr, "result", r->out.result);
38158 0 : ndr->depth--;
38159 : }
38160 2 : ndr->depth--;
38161 : }
38162 :
38163 0 : static enum ndr_err_code ndr_push_spoolss_DeleteJobNamedProperty(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_DeleteJobNamedProperty *r)
38164 : {
38165 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
38166 0 : if (flags & NDR_IN) {
38167 0 : if (r->in.hPrinter == NULL) {
38168 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
38169 : }
38170 0 : if (r->in.pszName == NULL) {
38171 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
38172 : }
38173 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
38174 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.JobId));
38175 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pszName, CH_UTF16)));
38176 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
38177 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pszName, CH_UTF16)));
38178 0 : NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.pszName, ndr_charset_length(r->in.pszName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
38179 : }
38180 0 : if (flags & NDR_OUT) {
38181 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
38182 : }
38183 0 : return NDR_ERR_SUCCESS;
38184 : }
38185 :
38186 0 : static enum ndr_err_code ndr_pull_spoolss_DeleteJobNamedProperty(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_DeleteJobNamedProperty *r)
38187 : {
38188 0 : uint32_t size_pszName_1 = 0;
38189 0 : uint32_t length_pszName_1 = 0;
38190 0 : TALLOC_CTX *_mem_save_hPrinter_0 = NULL;
38191 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
38192 0 : if (flags & NDR_IN) {
38193 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
38194 0 : NDR_PULL_ALLOC(ndr, r->in.hPrinter);
38195 : }
38196 0 : _mem_save_hPrinter_0 = NDR_PULL_GET_MEM_CTX(ndr);
38197 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.hPrinter, LIBNDR_FLAG_REF_ALLOC);
38198 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
38199 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hPrinter_0, LIBNDR_FLAG_REF_ALLOC);
38200 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.JobId));
38201 0 : NDR_CHECK(ndr_pull_array_size(ndr, &r->in.pszName));
38202 0 : NDR_CHECK(ndr_pull_array_length(ndr, &r->in.pszName));
38203 0 : NDR_CHECK(ndr_steal_array_size(ndr, (void*)&r->in.pszName, &size_pszName_1));
38204 0 : NDR_CHECK(ndr_steal_array_length(ndr, (void*)&r->in.pszName, &length_pszName_1));
38205 0 : if (length_pszName_1 > size_pszName_1) {
38206 0 : return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %"PRIu32": should exceed array length %"PRIu32"", size_pszName_1, length_pszName_1);
38207 : }
38208 0 : NDR_CHECK(ndr_check_string_terminator(ndr, length_pszName_1, sizeof(uint16_t)));
38209 0 : NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.pszName, length_pszName_1, sizeof(uint16_t), CH_UTF16));
38210 : }
38211 0 : if (flags & NDR_OUT) {
38212 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
38213 : if (r->in.hPrinter == NULL) {
38214 : NDR_PULL_ALLOC(ndr, r->in.hPrinter);
38215 : NDR_ZERO_STRUCTP(r->in.hPrinter);
38216 : }
38217 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
38218 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
38219 : }
38220 0 : return NDR_ERR_SUCCESS;
38221 : }
38222 :
38223 0 : _PUBLIC_ void ndr_print_spoolss_DeleteJobNamedProperty(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_DeleteJobNamedProperty *r)
38224 : {
38225 0 : ndr_print_struct(ndr, name, "spoolss_DeleteJobNamedProperty");
38226 0 : if (r == NULL) { ndr_print_null(ndr); return; }
38227 0 : ndr->depth++;
38228 0 : if (flags & NDR_SET_VALUES) {
38229 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
38230 : }
38231 0 : if (flags & NDR_IN) {
38232 0 : ndr_print_struct(ndr, "in", "spoolss_DeleteJobNamedProperty");
38233 0 : ndr->depth++;
38234 0 : ndr_print_ptr(ndr, "hPrinter", r->in.hPrinter);
38235 0 : ndr->depth++;
38236 0 : ndr_print_policy_handle(ndr, "hPrinter", r->in.hPrinter);
38237 0 : ndr->depth--;
38238 0 : ndr_print_uint32(ndr, "JobId", r->in.JobId);
38239 0 : ndr_print_ptr(ndr, "pszName", r->in.pszName);
38240 0 : ndr->depth++;
38241 0 : ndr_print_string(ndr, "pszName", r->in.pszName);
38242 0 : ndr->depth--;
38243 0 : ndr->depth--;
38244 : }
38245 0 : if (flags & NDR_OUT) {
38246 0 : ndr_print_struct(ndr, "out", "spoolss_DeleteJobNamedProperty");
38247 0 : ndr->depth++;
38248 0 : ndr_print_WERROR(ndr, "result", r->out.result);
38249 0 : ndr->depth--;
38250 : }
38251 0 : ndr->depth--;
38252 : }
38253 :
38254 0 : static enum ndr_err_code ndr_push_spoolss_EnumJobNamedProperties(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_EnumJobNamedProperties *r)
38255 : {
38256 0 : uint32_t cntr_ppProperties_2;
38257 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
38258 0 : if (flags & NDR_IN) {
38259 0 : if (r->in.hPrinter == NULL) {
38260 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
38261 : }
38262 0 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
38263 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.JobId));
38264 : }
38265 0 : if (flags & NDR_OUT) {
38266 0 : if (r->out.pcProperties == NULL) {
38267 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
38268 : }
38269 0 : if (r->out.ppProperties == NULL) {
38270 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
38271 : }
38272 0 : NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.pcProperties));
38273 0 : NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppProperties));
38274 0 : if (*r->out.ppProperties) {
38275 0 : NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.pcProperties));
38276 0 : for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (*r->out.pcProperties); cntr_ppProperties_2++) {
38277 0 : NDR_CHECK(ndr_push_spoolss_PrintNamedProperty(ndr, NDR_SCALARS, &(*r->out.ppProperties)[cntr_ppProperties_2]));
38278 : }
38279 0 : for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (*r->out.pcProperties); cntr_ppProperties_2++) {
38280 0 : NDR_CHECK(ndr_push_spoolss_PrintNamedProperty(ndr, NDR_BUFFERS, &(*r->out.ppProperties)[cntr_ppProperties_2]));
38281 : }
38282 : }
38283 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
38284 : }
38285 0 : return NDR_ERR_SUCCESS;
38286 : }
38287 :
38288 0 : static enum ndr_err_code ndr_pull_spoolss_EnumJobNamedProperties(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_EnumJobNamedProperties *r)
38289 : {
38290 0 : uint32_t _ptr_ppProperties;
38291 0 : uint32_t size_ppProperties_2 = 0;
38292 0 : uint32_t cntr_ppProperties_2;
38293 0 : TALLOC_CTX *_mem_save_hPrinter_0 = NULL;
38294 0 : TALLOC_CTX *_mem_save_pcProperties_0 = NULL;
38295 0 : TALLOC_CTX *_mem_save_ppProperties_0 = NULL;
38296 0 : TALLOC_CTX *_mem_save_ppProperties_1 = NULL;
38297 0 : TALLOC_CTX *_mem_save_ppProperties_2 = NULL;
38298 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
38299 0 : if (flags & NDR_IN) {
38300 0 : NDR_ZERO_STRUCT(r->out);
38301 :
38302 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
38303 0 : NDR_PULL_ALLOC(ndr, r->in.hPrinter);
38304 : }
38305 0 : _mem_save_hPrinter_0 = NDR_PULL_GET_MEM_CTX(ndr);
38306 0 : NDR_PULL_SET_MEM_CTX(ndr, r->in.hPrinter, LIBNDR_FLAG_REF_ALLOC);
38307 0 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
38308 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hPrinter_0, LIBNDR_FLAG_REF_ALLOC);
38309 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.JobId));
38310 0 : NDR_PULL_ALLOC(ndr, r->out.pcProperties);
38311 0 : NDR_ZERO_STRUCTP(r->out.pcProperties);
38312 0 : NDR_PULL_ALLOC(ndr, r->out.ppProperties);
38313 0 : NDR_ZERO_STRUCTP(r->out.ppProperties);
38314 : }
38315 0 : if (flags & NDR_OUT) {
38316 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
38317 : if (r->in.hPrinter == NULL) {
38318 : NDR_PULL_ALLOC(ndr, r->in.hPrinter);
38319 : NDR_ZERO_STRUCTP(r->in.hPrinter);
38320 : }
38321 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
38322 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
38323 0 : NDR_PULL_ALLOC(ndr, r->out.pcProperties);
38324 : }
38325 0 : _mem_save_pcProperties_0 = NDR_PULL_GET_MEM_CTX(ndr);
38326 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.pcProperties, LIBNDR_FLAG_REF_ALLOC);
38327 0 : NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.pcProperties));
38328 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pcProperties_0, LIBNDR_FLAG_REF_ALLOC);
38329 0 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
38330 0 : NDR_PULL_ALLOC(ndr, r->out.ppProperties);
38331 : }
38332 0 : _mem_save_ppProperties_0 = NDR_PULL_GET_MEM_CTX(ndr);
38333 0 : NDR_PULL_SET_MEM_CTX(ndr, r->out.ppProperties, LIBNDR_FLAG_REF_ALLOC);
38334 0 : NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppProperties));
38335 0 : if (_ptr_ppProperties) {
38336 0 : NDR_PULL_ALLOC(ndr, *r->out.ppProperties);
38337 : } else {
38338 0 : *r->out.ppProperties = NULL;
38339 : }
38340 0 : if (*r->out.ppProperties) {
38341 0 : _mem_save_ppProperties_1 = NDR_PULL_GET_MEM_CTX(ndr);
38342 0 : NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppProperties, 0);
38343 0 : NDR_CHECK(ndr_pull_array_size(ndr, r->out.ppProperties));
38344 0 : NDR_CHECK(ndr_get_array_size(ndr, (void*)r->out.ppProperties, &size_ppProperties_2));
38345 0 : NDR_PULL_ALLOC_N(ndr, *r->out.ppProperties, size_ppProperties_2);
38346 0 : _mem_save_ppProperties_2 = NDR_PULL_GET_MEM_CTX(ndr);
38347 0 : NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppProperties, 0);
38348 0 : for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (size_ppProperties_2); cntr_ppProperties_2++) {
38349 0 : NDR_CHECK(ndr_pull_spoolss_PrintNamedProperty(ndr, NDR_SCALARS, &(*r->out.ppProperties)[cntr_ppProperties_2]));
38350 : }
38351 0 : for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (size_ppProperties_2); cntr_ppProperties_2++) {
38352 0 : NDR_CHECK(ndr_pull_spoolss_PrintNamedProperty(ndr, NDR_BUFFERS, &(*r->out.ppProperties)[cntr_ppProperties_2]));
38353 : }
38354 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppProperties_2, 0);
38355 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppProperties_1, 0);
38356 : }
38357 0 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppProperties_0, LIBNDR_FLAG_REF_ALLOC);
38358 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
38359 0 : if (*r->out.ppProperties) {
38360 0 : NDR_CHECK(ndr_check_array_size(ndr, (void*)r->out.ppProperties, *r->out.pcProperties));
38361 : }
38362 0 : for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (size_ppProperties_2); cntr_ppProperties_2++) {
38363 0 : }
38364 : }
38365 0 : return NDR_ERR_SUCCESS;
38366 : }
38367 :
38368 0 : _PUBLIC_ void ndr_print_spoolss_EnumJobNamedProperties(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_EnumJobNamedProperties *r)
38369 : {
38370 0 : uint32_t cntr_ppProperties_2;
38371 0 : ndr_print_struct(ndr, name, "spoolss_EnumJobNamedProperties");
38372 0 : if (r == NULL) { ndr_print_null(ndr); return; }
38373 0 : ndr->depth++;
38374 0 : if (flags & NDR_SET_VALUES) {
38375 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
38376 : }
38377 0 : if (flags & NDR_IN) {
38378 0 : ndr_print_struct(ndr, "in", "spoolss_EnumJobNamedProperties");
38379 0 : ndr->depth++;
38380 0 : ndr_print_ptr(ndr, "hPrinter", r->in.hPrinter);
38381 0 : ndr->depth++;
38382 0 : ndr_print_policy_handle(ndr, "hPrinter", r->in.hPrinter);
38383 0 : ndr->depth--;
38384 0 : ndr_print_uint32(ndr, "JobId", r->in.JobId);
38385 0 : ndr->depth--;
38386 : }
38387 0 : if (flags & NDR_OUT) {
38388 0 : ndr_print_struct(ndr, "out", "spoolss_EnumJobNamedProperties");
38389 0 : ndr->depth++;
38390 0 : ndr_print_ptr(ndr, "pcProperties", r->out.pcProperties);
38391 0 : ndr->depth++;
38392 0 : ndr_print_uint32(ndr, "pcProperties", *r->out.pcProperties);
38393 0 : ndr->depth--;
38394 0 : ndr_print_ptr(ndr, "ppProperties", r->out.ppProperties);
38395 0 : ndr->depth++;
38396 0 : ndr_print_ptr(ndr, "ppProperties", *r->out.ppProperties);
38397 0 : ndr->depth++;
38398 0 : if (*r->out.ppProperties) {
38399 0 : ndr->print(ndr, "%s: ARRAY(%"PRIu32")", "ppProperties", (uint32_t)(*r->out.pcProperties));
38400 0 : ndr->depth++;
38401 0 : for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (*r->out.pcProperties); cntr_ppProperties_2++) {
38402 0 : ndr_print_spoolss_PrintNamedProperty(ndr, "ppProperties", &(*r->out.ppProperties)[cntr_ppProperties_2]);
38403 : }
38404 0 : ndr->depth--;
38405 : }
38406 0 : ndr->depth--;
38407 0 : ndr->depth--;
38408 0 : ndr_print_WERROR(ndr, "result", r->out.result);
38409 0 : ndr->depth--;
38410 : }
38411 0 : ndr->depth--;
38412 : }
38413 :
38414 0 : static enum ndr_err_code ndr_push_spoolss_72(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_72 *r)
38415 : {
38416 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
38417 0 : if (flags & NDR_IN) {
38418 0 : }
38419 0 : if (flags & NDR_OUT) {
38420 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
38421 : }
38422 0 : return NDR_ERR_SUCCESS;
38423 : }
38424 :
38425 0 : static enum ndr_err_code ndr_pull_spoolss_72(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_72 *r)
38426 : {
38427 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
38428 0 : if (flags & NDR_IN) {
38429 0 : }
38430 0 : if (flags & NDR_OUT) {
38431 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
38432 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
38433 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
38434 : }
38435 0 : return NDR_ERR_SUCCESS;
38436 : }
38437 :
38438 0 : _PUBLIC_ void ndr_print_spoolss_72(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_72 *r)
38439 : {
38440 0 : ndr_print_struct(ndr, name, "spoolss_72");
38441 0 : if (r == NULL) { ndr_print_null(ndr); return; }
38442 0 : ndr->depth++;
38443 0 : if (flags & NDR_SET_VALUES) {
38444 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
38445 : }
38446 0 : if (flags & NDR_IN) {
38447 0 : ndr_print_struct(ndr, "in", "spoolss_72");
38448 0 : ndr->depth++;
38449 0 : ndr->depth--;
38450 : }
38451 0 : if (flags & NDR_OUT) {
38452 0 : ndr_print_struct(ndr, "out", "spoolss_72");
38453 0 : ndr->depth++;
38454 0 : ndr_print_WERROR(ndr, "result", r->out.result);
38455 0 : ndr->depth--;
38456 : }
38457 0 : ndr->depth--;
38458 : }
38459 :
38460 0 : static enum ndr_err_code ndr_push_spoolss_73(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_73 *r)
38461 : {
38462 0 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
38463 0 : if (flags & NDR_IN) {
38464 0 : }
38465 0 : if (flags & NDR_OUT) {
38466 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
38467 : }
38468 0 : return NDR_ERR_SUCCESS;
38469 : }
38470 :
38471 0 : static enum ndr_err_code ndr_pull_spoolss_73(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_73 *r)
38472 : {
38473 0 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
38474 0 : if (flags & NDR_IN) {
38475 0 : }
38476 0 : if (flags & NDR_OUT) {
38477 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
38478 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
38479 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
38480 : }
38481 0 : return NDR_ERR_SUCCESS;
38482 : }
38483 :
38484 0 : _PUBLIC_ void ndr_print_spoolss_73(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_73 *r)
38485 : {
38486 0 : ndr_print_struct(ndr, name, "spoolss_73");
38487 0 : if (r == NULL) { ndr_print_null(ndr); return; }
38488 0 : ndr->depth++;
38489 0 : if (flags & NDR_SET_VALUES) {
38490 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
38491 : }
38492 0 : if (flags & NDR_IN) {
38493 0 : ndr_print_struct(ndr, "in", "spoolss_73");
38494 0 : ndr->depth++;
38495 0 : ndr->depth--;
38496 : }
38497 0 : if (flags & NDR_OUT) {
38498 0 : ndr_print_struct(ndr, "out", "spoolss_73");
38499 0 : ndr->depth++;
38500 0 : ndr_print_WERROR(ndr, "result", r->out.result);
38501 0 : ndr->depth--;
38502 : }
38503 0 : ndr->depth--;
38504 : }
38505 :
38506 8 : static enum ndr_err_code ndr_push_spoolss_LogJobInfoForBranchOffice(struct ndr_push *ndr, ndr_flags_type flags, const struct spoolss_LogJobInfoForBranchOffice *r)
38507 : {
38508 8 : NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
38509 8 : if (flags & NDR_IN) {
38510 8 : if (r->in.hPrinter == NULL) {
38511 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
38512 : }
38513 8 : if (r->in.pBranchOfficeJobDataContainer == NULL) {
38514 0 : return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
38515 : }
38516 8 : NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
38517 8 : NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pBranchOfficeJobDataContainer));
38518 : }
38519 8 : if (flags & NDR_OUT) {
38520 0 : NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
38521 : }
38522 8 : return NDR_ERR_SUCCESS;
38523 : }
38524 :
38525 8 : static enum ndr_err_code ndr_pull_spoolss_LogJobInfoForBranchOffice(struct ndr_pull *ndr, ndr_flags_type flags, struct spoolss_LogJobInfoForBranchOffice *r)
38526 : {
38527 8 : TALLOC_CTX *_mem_save_hPrinter_0 = NULL;
38528 8 : TALLOC_CTX *_mem_save_pBranchOfficeJobDataContainer_0 = NULL;
38529 8 : NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
38530 8 : if (flags & NDR_IN) {
38531 8 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
38532 8 : NDR_PULL_ALLOC(ndr, r->in.hPrinter);
38533 : }
38534 8 : _mem_save_hPrinter_0 = NDR_PULL_GET_MEM_CTX(ndr);
38535 8 : NDR_PULL_SET_MEM_CTX(ndr, r->in.hPrinter, LIBNDR_FLAG_REF_ALLOC);
38536 8 : NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
38537 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hPrinter_0, LIBNDR_FLAG_REF_ALLOC);
38538 8 : if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
38539 8 : NDR_PULL_ALLOC(ndr, r->in.pBranchOfficeJobDataContainer);
38540 : }
38541 8 : _mem_save_pBranchOfficeJobDataContainer_0 = NDR_PULL_GET_MEM_CTX(ndr);
38542 8 : NDR_PULL_SET_MEM_CTX(ndr, r->in.pBranchOfficeJobDataContainer, LIBNDR_FLAG_REF_ALLOC);
38543 8 : NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pBranchOfficeJobDataContainer));
38544 8 : NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pBranchOfficeJobDataContainer_0, LIBNDR_FLAG_REF_ALLOC);
38545 : }
38546 8 : if (flags & NDR_OUT) {
38547 : #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION
38548 : if (r->in.hPrinter == NULL) {
38549 : NDR_PULL_ALLOC(ndr, r->in.hPrinter);
38550 : NDR_ZERO_STRUCTP(r->in.hPrinter);
38551 : }
38552 : if (r->in.pBranchOfficeJobDataContainer == NULL) {
38553 : NDR_PULL_ALLOC(ndr, r->in.pBranchOfficeJobDataContainer);
38554 : NDR_ZERO_STRUCTP(r->in.pBranchOfficeJobDataContainer);
38555 : }
38556 : #endif /* FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION */
38557 0 : NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
38558 : }
38559 8 : return NDR_ERR_SUCCESS;
38560 : }
38561 :
38562 0 : _PUBLIC_ void ndr_print_spoolss_LogJobInfoForBranchOffice(struct ndr_print *ndr, const char *name, ndr_flags_type flags, const struct spoolss_LogJobInfoForBranchOffice *r)
38563 : {
38564 0 : ndr_print_struct(ndr, name, "spoolss_LogJobInfoForBranchOffice");
38565 0 : if (r == NULL) { ndr_print_null(ndr); return; }
38566 0 : ndr->depth++;
38567 0 : if (flags & NDR_SET_VALUES) {
38568 0 : ndr->flags |= LIBNDR_PRINT_SET_VALUES;
38569 : }
38570 0 : if (flags & NDR_IN) {
38571 0 : ndr_print_struct(ndr, "in", "spoolss_LogJobInfoForBranchOffice");
38572 0 : ndr->depth++;
38573 0 : ndr_print_ptr(ndr, "hPrinter", r->in.hPrinter);
38574 0 : ndr->depth++;
38575 0 : ndr_print_policy_handle(ndr, "hPrinter", r->in.hPrinter);
38576 0 : ndr->depth--;
38577 0 : ndr_print_ptr(ndr, "pBranchOfficeJobDataContainer", r->in.pBranchOfficeJobDataContainer);
38578 0 : ndr->depth++;
38579 0 : ndr_print_spoolss_BranchOfficeJobDataContainer(ndr, "pBranchOfficeJobDataContainer", r->in.pBranchOfficeJobDataContainer);
38580 0 : ndr->depth--;
38581 0 : ndr->depth--;
38582 : }
38583 0 : if (flags & NDR_OUT) {
38584 0 : ndr_print_struct(ndr, "out", "spoolss_LogJobInfoForBranchOffice");
38585 0 : ndr->depth++;
38586 0 : ndr_print_WERROR(ndr, "result", r->out.result);
38587 0 : ndr->depth--;
38588 : }
38589 0 : ndr->depth--;
38590 : }
38591 :
38592 : #ifndef SKIP_NDR_TABLE_spoolss
38593 : static const struct ndr_interface_public_struct spoolss_public_structs[] = {
38594 : {
38595 : .name = "spoolss_TimeCtr",
38596 : .struct_size = sizeof(struct spoolss_TimeCtr ),
38597 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_TimeCtr,
38598 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_TimeCtr,
38599 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_TimeCtr,
38600 : },
38601 : {
38602 : .name = "spoolss_PrinterInfo0",
38603 : .struct_size = sizeof(struct spoolss_PrinterInfo0 ),
38604 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterInfo0,
38605 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterInfo0,
38606 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterInfo0,
38607 : },
38608 : {
38609 : .name = "spoolss_UNIDRVEXTRA",
38610 : .struct_size = sizeof(struct spoolss_UNIDRVEXTRA ),
38611 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_UNIDRVEXTRA,
38612 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_UNIDRVEXTRA,
38613 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_UNIDRVEXTRA,
38614 : },
38615 : {
38616 : .name = "spoolss_DeviceMode",
38617 : .struct_size = sizeof(struct spoolss_DeviceMode ),
38618 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DeviceMode,
38619 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeviceMode,
38620 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DeviceMode,
38621 : },
38622 : {
38623 : .name = "spoolss_PrinterInfo1",
38624 : .struct_size = sizeof(struct spoolss_PrinterInfo1 ),
38625 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterInfo1,
38626 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterInfo1,
38627 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterInfo1,
38628 : },
38629 : {
38630 : .name = "spoolss_PrinterInfo2",
38631 : .struct_size = sizeof(struct spoolss_PrinterInfo2 ),
38632 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterInfo2,
38633 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterInfo2,
38634 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterInfo2,
38635 : },
38636 : {
38637 : .name = "spoolss_PrinterInfo3",
38638 : .struct_size = sizeof(struct spoolss_PrinterInfo3 ),
38639 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterInfo3,
38640 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterInfo3,
38641 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterInfo3,
38642 : },
38643 : {
38644 : .name = "spoolss_PrinterInfo4",
38645 : .struct_size = sizeof(struct spoolss_PrinterInfo4 ),
38646 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterInfo4,
38647 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterInfo4,
38648 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterInfo4,
38649 : },
38650 : {
38651 : .name = "spoolss_PrinterInfo5",
38652 : .struct_size = sizeof(struct spoolss_PrinterInfo5 ),
38653 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterInfo5,
38654 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterInfo5,
38655 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterInfo5,
38656 : },
38657 : {
38658 : .name = "spoolss_PrinterInfo6",
38659 : .struct_size = sizeof(struct spoolss_PrinterInfo6 ),
38660 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterInfo6,
38661 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterInfo6,
38662 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterInfo6,
38663 : },
38664 : {
38665 : .name = "spoolss_PrinterInfo7",
38666 : .struct_size = sizeof(struct spoolss_PrinterInfo7 ),
38667 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterInfo7,
38668 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterInfo7,
38669 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterInfo7,
38670 : },
38671 : {
38672 : .name = "spoolss_DevmodeContainer",
38673 : .struct_size = sizeof(struct spoolss_DevmodeContainer ),
38674 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DevmodeContainer,
38675 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DevmodeContainer,
38676 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DevmodeContainer,
38677 : },
38678 : {
38679 : .name = "spoolss_JobInfo1",
38680 : .struct_size = sizeof(struct spoolss_JobInfo1 ),
38681 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_JobInfo1,
38682 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_JobInfo1,
38683 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_JobInfo1,
38684 : },
38685 : {
38686 : .name = "spoolss_JobInfo2",
38687 : .struct_size = sizeof(struct spoolss_JobInfo2 ),
38688 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_JobInfo2,
38689 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_JobInfo2,
38690 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_JobInfo2,
38691 : },
38692 : {
38693 : .name = "spoolss_JobInfo3",
38694 : .struct_size = sizeof(struct spoolss_JobInfo3 ),
38695 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_JobInfo3,
38696 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_JobInfo3,
38697 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_JobInfo3,
38698 : },
38699 : {
38700 : .name = "spoolss_JobInfo4",
38701 : .struct_size = sizeof(struct spoolss_JobInfo4 ),
38702 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_JobInfo4,
38703 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_JobInfo4,
38704 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_JobInfo4,
38705 : },
38706 : {
38707 : .name = "spoolss_JobInfoContainer",
38708 : .struct_size = sizeof(struct spoolss_JobInfoContainer ),
38709 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_JobInfoContainer,
38710 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_JobInfoContainer,
38711 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_JobInfoContainer,
38712 : },
38713 : {
38714 : .name = "spoolss_SetPrinterInfoCtr",
38715 : .struct_size = sizeof(struct spoolss_SetPrinterInfoCtr ),
38716 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterInfoCtr,
38717 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterInfoCtr,
38718 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_SetPrinterInfoCtr,
38719 : },
38720 : {
38721 : .name = "spoolss_StringArray",
38722 : .struct_size = sizeof(struct spoolss_StringArray ),
38723 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_StringArray,
38724 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_StringArray,
38725 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_StringArray,
38726 : },
38727 : {
38728 : .name = "spoolss_AddDriverInfoCtr",
38729 : .struct_size = sizeof(struct spoolss_AddDriverInfoCtr ),
38730 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_AddDriverInfoCtr,
38731 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddDriverInfoCtr,
38732 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_AddDriverInfoCtr,
38733 : },
38734 : {
38735 : .name = "spoolss_DriverInfo1",
38736 : .struct_size = sizeof(struct spoolss_DriverInfo1 ),
38737 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo1,
38738 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo1,
38739 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo1,
38740 : },
38741 : {
38742 : .name = "spoolss_DriverInfo2",
38743 : .struct_size = sizeof(struct spoolss_DriverInfo2 ),
38744 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo2,
38745 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo2,
38746 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo2,
38747 : },
38748 : {
38749 : .name = "spoolss_DriverInfo3",
38750 : .struct_size = sizeof(struct spoolss_DriverInfo3 ),
38751 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo3,
38752 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo3,
38753 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo3,
38754 : },
38755 : {
38756 : .name = "spoolss_DriverInfo4",
38757 : .struct_size = sizeof(struct spoolss_DriverInfo4 ),
38758 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo4,
38759 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo4,
38760 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo4,
38761 : },
38762 : {
38763 : .name = "spoolss_DriverInfo5",
38764 : .struct_size = sizeof(struct spoolss_DriverInfo5 ),
38765 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo5,
38766 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo5,
38767 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo5,
38768 : },
38769 : {
38770 : .name = "spoolss_DriverInfo6",
38771 : .struct_size = sizeof(struct spoolss_DriverInfo6 ),
38772 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo6,
38773 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo6,
38774 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo6,
38775 : },
38776 : {
38777 : .name = "spoolss_DriverInfo7",
38778 : .struct_size = sizeof(struct spoolss_DriverInfo7 ),
38779 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo7,
38780 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo7,
38781 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo7,
38782 : },
38783 : {
38784 : .name = "spoolss_DriverInfo8",
38785 : .struct_size = sizeof(struct spoolss_DriverInfo8 ),
38786 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo8,
38787 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo8,
38788 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo8,
38789 : },
38790 : {
38791 : .name = "spoolss_DriverFileInfo",
38792 : .struct_size = sizeof(struct spoolss_DriverFileInfo ),
38793 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverFileInfo,
38794 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverFileInfo,
38795 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverFileInfo,
38796 : },
38797 : {
38798 : .name = "spoolss_DriverInfo101",
38799 : .struct_size = sizeof(struct spoolss_DriverInfo101 ),
38800 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverInfo101,
38801 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverInfo101,
38802 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverInfo101,
38803 : },
38804 : {
38805 : .name = "spoolss_DriverDirectoryInfo1",
38806 : .struct_size = sizeof(struct spoolss_DriverDirectoryInfo1 ),
38807 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DriverDirectoryInfo1,
38808 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DriverDirectoryInfo1,
38809 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DriverDirectoryInfo1,
38810 : },
38811 : {
38812 : .name = "spoolss_PrintProcessorInfo1",
38813 : .struct_size = sizeof(struct spoolss_PrintProcessorInfo1 ),
38814 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrintProcessorInfo1,
38815 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrintProcessorInfo1,
38816 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrintProcessorInfo1,
38817 : },
38818 : {
38819 : .name = "spoolss_PrintProcessorDirectoryInfo1",
38820 : .struct_size = sizeof(struct spoolss_PrintProcessorDirectoryInfo1 ),
38821 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrintProcessorDirectoryInfo1,
38822 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrintProcessorDirectoryInfo1,
38823 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrintProcessorDirectoryInfo1,
38824 : },
38825 : {
38826 : .name = "spoolss_DocumentInfoCtr",
38827 : .struct_size = sizeof(struct spoolss_DocumentInfoCtr ),
38828 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_DocumentInfoCtr,
38829 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_DocumentInfoCtr,
38830 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_DocumentInfoCtr,
38831 : },
38832 : {
38833 : .name = "spoolss_OSVersion",
38834 : .struct_size = sizeof(struct spoolss_OSVersion ),
38835 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_OSVersion,
38836 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_OSVersion,
38837 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_OSVersion,
38838 : },
38839 : {
38840 : .name = "spoolss_OSVersionEx",
38841 : .struct_size = sizeof(struct spoolss_OSVersionEx ),
38842 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_OSVersionEx,
38843 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_OSVersionEx,
38844 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_OSVersionEx,
38845 : },
38846 : {
38847 : .name = "spoolss_FormInfo1",
38848 : .struct_size = sizeof(struct spoolss_FormInfo1 ),
38849 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_FormInfo1,
38850 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_FormInfo1,
38851 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_FormInfo1,
38852 : },
38853 : {
38854 : .name = "spoolss_FormInfo2",
38855 : .struct_size = sizeof(struct spoolss_FormInfo2 ),
38856 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_FormInfo2,
38857 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_FormInfo2,
38858 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_FormInfo2,
38859 : },
38860 : {
38861 : .name = "spoolss_AddFormInfoCtr",
38862 : .struct_size = sizeof(struct spoolss_AddFormInfoCtr ),
38863 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_AddFormInfoCtr,
38864 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddFormInfoCtr,
38865 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_AddFormInfoCtr,
38866 : },
38867 : {
38868 : .name = "spoolss_PortInfo1",
38869 : .struct_size = sizeof(struct spoolss_PortInfo1 ),
38870 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PortInfo1,
38871 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PortInfo1,
38872 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PortInfo1,
38873 : },
38874 : {
38875 : .name = "spoolss_PortInfo2",
38876 : .struct_size = sizeof(struct spoolss_PortInfo2 ),
38877 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PortInfo2,
38878 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PortInfo2,
38879 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PortInfo2,
38880 : },
38881 : {
38882 : .name = "spoolss_PortInfo3",
38883 : .struct_size = sizeof(struct spoolss_PortInfo3 ),
38884 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PortInfo3,
38885 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PortInfo3,
38886 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PortInfo3,
38887 : },
38888 : {
38889 : .name = "spoolss_PortInfoFF",
38890 : .struct_size = sizeof(struct spoolss_PortInfoFF ),
38891 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PortInfoFF,
38892 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PortInfoFF,
38893 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PortInfoFF,
38894 : },
38895 : {
38896 : .name = "spoolss_MonitorInfo1",
38897 : .struct_size = sizeof(struct spoolss_MonitorInfo1 ),
38898 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_MonitorInfo1,
38899 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_MonitorInfo1,
38900 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_MonitorInfo1,
38901 : },
38902 : {
38903 : .name = "spoolss_MonitorInfo2",
38904 : .struct_size = sizeof(struct spoolss_MonitorInfo2 ),
38905 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_MonitorInfo2,
38906 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_MonitorInfo2,
38907 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_MonitorInfo2,
38908 : },
38909 : {
38910 : .name = "spoolss_SetPortInfo1",
38911 : .struct_size = sizeof(struct spoolss_SetPortInfo1 ),
38912 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_SetPortInfo1,
38913 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPortInfo1,
38914 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_SetPortInfo1,
38915 : },
38916 : {
38917 : .name = "spoolss_SetPortInfo2",
38918 : .struct_size = sizeof(struct spoolss_SetPortInfo2 ),
38919 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_SetPortInfo2,
38920 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPortInfo2,
38921 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_SetPortInfo2,
38922 : },
38923 : {
38924 : .name = "spoolss_SetPortInfo3",
38925 : .struct_size = sizeof(struct spoolss_SetPortInfo3 ),
38926 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_SetPortInfo3,
38927 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPortInfo3,
38928 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_SetPortInfo3,
38929 : },
38930 : {
38931 : .name = "spoolss_SetPortInfoFF",
38932 : .struct_size = sizeof(struct spoolss_SetPortInfoFF ),
38933 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_SetPortInfoFF,
38934 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPortInfoFF,
38935 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_SetPortInfoFF,
38936 : },
38937 : {
38938 : .name = "spoolss_SetPortInfoContainer",
38939 : .struct_size = sizeof(struct spoolss_SetPortInfoContainer ),
38940 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_SetPortInfoContainer,
38941 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPortInfoContainer,
38942 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_SetPortInfoContainer,
38943 : },
38944 : {
38945 : .name = "UNIVERSAL_FONT_ID_ctr",
38946 : .struct_size = sizeof(struct UNIVERSAL_FONT_ID_ctr ),
38947 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_UNIVERSAL_FONT_ID_ctr,
38948 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_UNIVERSAL_FONT_ID_ctr,
38949 : .ndr_print = (ndr_print_function_t) ndr_print_flags_UNIVERSAL_FONT_ID_ctr,
38950 : },
38951 : {
38952 : .name = "spoolss_MonitorContainer",
38953 : .struct_size = sizeof(struct spoolss_MonitorContainer ),
38954 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_MonitorContainer,
38955 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_MonitorContainer,
38956 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_MonitorContainer,
38957 : },
38958 : {
38959 : .name = "spoolss_PrintProcDataTypesInfo1",
38960 : .struct_size = sizeof(struct spoolss_PrintProcDataTypesInfo1 ),
38961 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrintProcDataTypesInfo1,
38962 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrintProcDataTypesInfo1,
38963 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrintProcDataTypesInfo1,
38964 : },
38965 : {
38966 : .name = "spoolss_PortVarContainer",
38967 : .struct_size = sizeof(struct spoolss_PortVarContainer ),
38968 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PortVarContainer,
38969 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PortVarContainer,
38970 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PortVarContainer,
38971 : },
38972 : {
38973 : .name = "spoolss_NotifyOption",
38974 : .struct_size = sizeof(struct spoolss_NotifyOption ),
38975 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_NotifyOption,
38976 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_NotifyOption,
38977 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_NotifyOption,
38978 : },
38979 : {
38980 : .name = "spoolss_NotifyInfo",
38981 : .struct_size = sizeof(struct spoolss_NotifyInfo ),
38982 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_NotifyInfo,
38983 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_NotifyInfo,
38984 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_NotifyInfo,
38985 : },
38986 : {
38987 : .name = "spoolss_UserLevelCtr",
38988 : .struct_size = sizeof(struct spoolss_UserLevelCtr ),
38989 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_UserLevelCtr,
38990 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_UserLevelCtr,
38991 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_UserLevelCtr,
38992 : },
38993 : {
38994 : .name = "spoolss_PrinterEnumValues",
38995 : .struct_size = sizeof(struct spoolss_PrinterEnumValues ),
38996 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterEnumValues,
38997 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterEnumValues,
38998 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrinterEnumValues,
38999 : },
39000 : {
39001 : .name = "spoolss_PortData1",
39002 : .struct_size = sizeof(struct spoolss_PortData1 ),
39003 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PortData1,
39004 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PortData1,
39005 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PortData1,
39006 : },
39007 : {
39008 : .name = "spoolss_PortData2",
39009 : .struct_size = sizeof(struct spoolss_PortData2 ),
39010 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PortData2,
39011 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PortData2,
39012 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PortData2,
39013 : },
39014 : {
39015 : .name = "spoolss_MonitorUi",
39016 : .struct_size = sizeof(struct spoolss_MonitorUi ),
39017 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_MonitorUi,
39018 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_MonitorUi,
39019 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_MonitorUi,
39020 : },
39021 : {
39022 : .name = "RPC_BIDI_REQUEST_CONTAINER",
39023 : .struct_size = sizeof(struct RPC_BIDI_REQUEST_CONTAINER ),
39024 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_RPC_BIDI_REQUEST_CONTAINER,
39025 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_RPC_BIDI_REQUEST_CONTAINER,
39026 : .ndr_print = (ndr_print_function_t) ndr_print_flags_RPC_BIDI_REQUEST_CONTAINER,
39027 : },
39028 : {
39029 : .name = "RPC_BIDI_RESPONSE_CONTAINER",
39030 : .struct_size = sizeof(struct RPC_BIDI_RESPONSE_CONTAINER ),
39031 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_RPC_BIDI_RESPONSE_CONTAINER,
39032 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_RPC_BIDI_RESPONSE_CONTAINER,
39033 : .ndr_print = (ndr_print_function_t) ndr_print_flags_RPC_BIDI_RESPONSE_CONTAINER,
39034 : },
39035 : {
39036 : .name = "spoolss_CorePrinterDriver",
39037 : .struct_size = sizeof(struct spoolss_CorePrinterDriver ),
39038 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_CorePrinterDriver,
39039 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_CorePrinterDriver,
39040 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_CorePrinterDriver,
39041 : },
39042 : {
39043 : .name = "spoolss_PrintPropertyValue",
39044 : .struct_size = sizeof(struct spoolss_PrintPropertyValue ),
39045 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrintPropertyValue,
39046 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrintPropertyValue,
39047 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrintPropertyValue,
39048 : },
39049 : {
39050 : .name = "spoolss_PrintNamedProperty",
39051 : .struct_size = sizeof(struct spoolss_PrintNamedProperty ),
39052 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_PrintNamedProperty,
39053 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrintNamedProperty,
39054 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_PrintNamedProperty,
39055 : },
39056 : {
39057 : .name = "spoolss_BranchOfficeJobDataContainer",
39058 : .struct_size = sizeof(struct spoolss_BranchOfficeJobDataContainer ),
39059 : .ndr_push = (ndr_push_flags_fn_t) ndr_push_spoolss_BranchOfficeJobDataContainer,
39060 : .ndr_pull = (ndr_pull_flags_fn_t) ndr_pull_spoolss_BranchOfficeJobDataContainer,
39061 : .ndr_print = (ndr_print_function_t) ndr_print_flags_spoolss_BranchOfficeJobDataContainer,
39062 : },
39063 : { .name = NULL }
39064 : };
39065 :
39066 : static const struct ndr_interface_call spoolss_calls[] = {
39067 : {
39068 : "spoolss_EnumPrinters",
39069 : sizeof(struct spoolss_EnumPrinters),
39070 : (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
39071 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
39072 : (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
39073 : { 0, NULL },
39074 : { 0, NULL },
39075 : },
39076 : {
39077 : "spoolss_OpenPrinter",
39078 : sizeof(struct spoolss_OpenPrinter),
39079 : (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
39080 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
39081 : (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
39082 : { 0, NULL },
39083 : { 0, NULL },
39084 : },
39085 : {
39086 : "spoolss_SetJob",
39087 : sizeof(struct spoolss_SetJob),
39088 : (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
39089 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
39090 : (ndr_print_function_t) ndr_print_spoolss_SetJob,
39091 : { 0, NULL },
39092 : { 0, NULL },
39093 : },
39094 : {
39095 : "spoolss_GetJob",
39096 : sizeof(struct spoolss_GetJob),
39097 : (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
39098 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
39099 : (ndr_print_function_t) ndr_print_spoolss_GetJob,
39100 : { 0, NULL },
39101 : { 0, NULL },
39102 : },
39103 : {
39104 : "spoolss_EnumJobs",
39105 : sizeof(struct spoolss_EnumJobs),
39106 : (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
39107 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
39108 : (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
39109 : { 0, NULL },
39110 : { 0, NULL },
39111 : },
39112 : {
39113 : "spoolss_AddPrinter",
39114 : sizeof(struct spoolss_AddPrinter),
39115 : (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
39116 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
39117 : (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
39118 : { 0, NULL },
39119 : { 0, NULL },
39120 : },
39121 : {
39122 : "spoolss_DeletePrinter",
39123 : sizeof(struct spoolss_DeletePrinter),
39124 : (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
39125 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
39126 : (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
39127 : { 0, NULL },
39128 : { 0, NULL },
39129 : },
39130 : {
39131 : "spoolss_SetPrinter",
39132 : sizeof(struct spoolss_SetPrinter),
39133 : (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
39134 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
39135 : (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
39136 : { 0, NULL },
39137 : { 0, NULL },
39138 : },
39139 : {
39140 : "spoolss_GetPrinter",
39141 : sizeof(struct spoolss_GetPrinter),
39142 : (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
39143 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
39144 : (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
39145 : { 0, NULL },
39146 : { 0, NULL },
39147 : },
39148 : {
39149 : "spoolss_AddPrinterDriver",
39150 : sizeof(struct spoolss_AddPrinterDriver),
39151 : (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
39152 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
39153 : (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
39154 : { 0, NULL },
39155 : { 0, NULL },
39156 : },
39157 : {
39158 : "spoolss_EnumPrinterDrivers",
39159 : sizeof(struct spoolss_EnumPrinterDrivers),
39160 : (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
39161 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
39162 : (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
39163 : { 0, NULL },
39164 : { 0, NULL },
39165 : },
39166 : {
39167 : "spoolss_GetPrinterDriver",
39168 : sizeof(struct spoolss_GetPrinterDriver),
39169 : (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
39170 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
39171 : (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
39172 : { 0, NULL },
39173 : { 0, NULL },
39174 : },
39175 : {
39176 : "spoolss_GetPrinterDriverDirectory",
39177 : sizeof(struct spoolss_GetPrinterDriverDirectory),
39178 : (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
39179 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
39180 : (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
39181 : { 0, NULL },
39182 : { 0, NULL },
39183 : },
39184 : {
39185 : "spoolss_DeletePrinterDriver",
39186 : sizeof(struct spoolss_DeletePrinterDriver),
39187 : (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
39188 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
39189 : (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
39190 : { 0, NULL },
39191 : { 0, NULL },
39192 : },
39193 : {
39194 : "spoolss_AddPrintProcessor",
39195 : sizeof(struct spoolss_AddPrintProcessor),
39196 : (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
39197 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
39198 : (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
39199 : { 0, NULL },
39200 : { 0, NULL },
39201 : },
39202 : {
39203 : "spoolss_EnumPrintProcessors",
39204 : sizeof(struct spoolss_EnumPrintProcessors),
39205 : (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
39206 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
39207 : (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
39208 : { 0, NULL },
39209 : { 0, NULL },
39210 : },
39211 : {
39212 : "spoolss_GetPrintProcessorDirectory",
39213 : sizeof(struct spoolss_GetPrintProcessorDirectory),
39214 : (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
39215 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
39216 : (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
39217 : { 0, NULL },
39218 : { 0, NULL },
39219 : },
39220 : {
39221 : "spoolss_StartDocPrinter",
39222 : sizeof(struct spoolss_StartDocPrinter),
39223 : (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
39224 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
39225 : (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
39226 : { 0, NULL },
39227 : { 0, NULL },
39228 : },
39229 : {
39230 : "spoolss_StartPagePrinter",
39231 : sizeof(struct spoolss_StartPagePrinter),
39232 : (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
39233 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
39234 : (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
39235 : { 0, NULL },
39236 : { 0, NULL },
39237 : },
39238 : {
39239 : "spoolss_WritePrinter",
39240 : sizeof(struct spoolss_WritePrinter),
39241 : (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
39242 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
39243 : (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
39244 : { 0, NULL },
39245 : { 0, NULL },
39246 : },
39247 : {
39248 : "spoolss_EndPagePrinter",
39249 : sizeof(struct spoolss_EndPagePrinter),
39250 : (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
39251 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
39252 : (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
39253 : { 0, NULL },
39254 : { 0, NULL },
39255 : },
39256 : {
39257 : "spoolss_AbortPrinter",
39258 : sizeof(struct spoolss_AbortPrinter),
39259 : (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
39260 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
39261 : (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
39262 : { 0, NULL },
39263 : { 0, NULL },
39264 : },
39265 : {
39266 : "spoolss_ReadPrinter",
39267 : sizeof(struct spoolss_ReadPrinter),
39268 : (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
39269 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
39270 : (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
39271 : { 0, NULL },
39272 : { 0, NULL },
39273 : },
39274 : {
39275 : "spoolss_EndDocPrinter",
39276 : sizeof(struct spoolss_EndDocPrinter),
39277 : (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
39278 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
39279 : (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
39280 : { 0, NULL },
39281 : { 0, NULL },
39282 : },
39283 : {
39284 : "spoolss_AddJob",
39285 : sizeof(struct spoolss_AddJob),
39286 : (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
39287 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
39288 : (ndr_print_function_t) ndr_print_spoolss_AddJob,
39289 : { 0, NULL },
39290 : { 0, NULL },
39291 : },
39292 : {
39293 : "spoolss_ScheduleJob",
39294 : sizeof(struct spoolss_ScheduleJob),
39295 : (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
39296 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
39297 : (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
39298 : { 0, NULL },
39299 : { 0, NULL },
39300 : },
39301 : {
39302 : "spoolss_GetPrinterData",
39303 : sizeof(struct spoolss_GetPrinterData),
39304 : (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
39305 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
39306 : (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
39307 : { 0, NULL },
39308 : { 0, NULL },
39309 : },
39310 : {
39311 : "spoolss_SetPrinterData",
39312 : sizeof(struct spoolss_SetPrinterData),
39313 : (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
39314 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
39315 : (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
39316 : { 0, NULL },
39317 : { 0, NULL },
39318 : },
39319 : {
39320 : "spoolss_WaitForPrinterChange",
39321 : sizeof(struct spoolss_WaitForPrinterChange),
39322 : (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
39323 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
39324 : (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
39325 : { 0, NULL },
39326 : { 0, NULL },
39327 : },
39328 : {
39329 : "spoolss_ClosePrinter",
39330 : sizeof(struct spoolss_ClosePrinter),
39331 : (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
39332 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
39333 : (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
39334 : { 0, NULL },
39335 : { 0, NULL },
39336 : },
39337 : {
39338 : "spoolss_AddForm",
39339 : sizeof(struct spoolss_AddForm),
39340 : (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
39341 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
39342 : (ndr_print_function_t) ndr_print_spoolss_AddForm,
39343 : { 0, NULL },
39344 : { 0, NULL },
39345 : },
39346 : {
39347 : "spoolss_DeleteForm",
39348 : sizeof(struct spoolss_DeleteForm),
39349 : (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
39350 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
39351 : (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
39352 : { 0, NULL },
39353 : { 0, NULL },
39354 : },
39355 : {
39356 : "spoolss_GetForm",
39357 : sizeof(struct spoolss_GetForm),
39358 : (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
39359 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
39360 : (ndr_print_function_t) ndr_print_spoolss_GetForm,
39361 : { 0, NULL },
39362 : { 0, NULL },
39363 : },
39364 : {
39365 : "spoolss_SetForm",
39366 : sizeof(struct spoolss_SetForm),
39367 : (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
39368 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
39369 : (ndr_print_function_t) ndr_print_spoolss_SetForm,
39370 : { 0, NULL },
39371 : { 0, NULL },
39372 : },
39373 : {
39374 : "spoolss_EnumForms",
39375 : sizeof(struct spoolss_EnumForms),
39376 : (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
39377 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
39378 : (ndr_print_function_t) ndr_print_spoolss_EnumForms,
39379 : { 0, NULL },
39380 : { 0, NULL },
39381 : },
39382 : {
39383 : "spoolss_EnumPorts",
39384 : sizeof(struct spoolss_EnumPorts),
39385 : (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
39386 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
39387 : (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
39388 : { 0, NULL },
39389 : { 0, NULL },
39390 : },
39391 : {
39392 : "spoolss_EnumMonitors",
39393 : sizeof(struct spoolss_EnumMonitors),
39394 : (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
39395 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
39396 : (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
39397 : { 0, NULL },
39398 : { 0, NULL },
39399 : },
39400 : {
39401 : "spoolss_AddPort",
39402 : sizeof(struct spoolss_AddPort),
39403 : (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
39404 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
39405 : (ndr_print_function_t) ndr_print_spoolss_AddPort,
39406 : { 0, NULL },
39407 : { 0, NULL },
39408 : },
39409 : {
39410 : "spoolss_ConfigurePort",
39411 : sizeof(struct spoolss_ConfigurePort),
39412 : (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
39413 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
39414 : (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
39415 : { 0, NULL },
39416 : { 0, NULL },
39417 : },
39418 : {
39419 : "spoolss_DeletePort",
39420 : sizeof(struct spoolss_DeletePort),
39421 : (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
39422 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
39423 : (ndr_print_function_t) ndr_print_spoolss_DeletePort,
39424 : { 0, NULL },
39425 : { 0, NULL },
39426 : },
39427 : {
39428 : "spoolss_CreatePrinterIC",
39429 : sizeof(struct spoolss_CreatePrinterIC),
39430 : (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
39431 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
39432 : (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
39433 : { 0, NULL },
39434 : { 0, NULL },
39435 : },
39436 : {
39437 : "spoolss_PlayGDIScriptOnPrinterIC",
39438 : sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
39439 : (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
39440 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
39441 : (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
39442 : { 0, NULL },
39443 : { 0, NULL },
39444 : },
39445 : {
39446 : "spoolss_DeletePrinterIC",
39447 : sizeof(struct spoolss_DeletePrinterIC),
39448 : (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
39449 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
39450 : (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
39451 : { 0, NULL },
39452 : { 0, NULL },
39453 : },
39454 : {
39455 : "spoolss_AddPrinterConnection",
39456 : sizeof(struct spoolss_AddPrinterConnection),
39457 : (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
39458 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
39459 : (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
39460 : { 0, NULL },
39461 : { 0, NULL },
39462 : },
39463 : {
39464 : "spoolss_DeletePrinterConnection",
39465 : sizeof(struct spoolss_DeletePrinterConnection),
39466 : (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
39467 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
39468 : (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
39469 : { 0, NULL },
39470 : { 0, NULL },
39471 : },
39472 : {
39473 : "spoolss_PrinterMessageBox",
39474 : sizeof(struct spoolss_PrinterMessageBox),
39475 : (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
39476 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
39477 : (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
39478 : { 0, NULL },
39479 : { 0, NULL },
39480 : },
39481 : {
39482 : "spoolss_AddMonitor",
39483 : sizeof(struct spoolss_AddMonitor),
39484 : (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
39485 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
39486 : (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
39487 : { 0, NULL },
39488 : { 0, NULL },
39489 : },
39490 : {
39491 : "spoolss_DeleteMonitor",
39492 : sizeof(struct spoolss_DeleteMonitor),
39493 : (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
39494 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
39495 : (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
39496 : { 0, NULL },
39497 : { 0, NULL },
39498 : },
39499 : {
39500 : "spoolss_DeletePrintProcessor",
39501 : sizeof(struct spoolss_DeletePrintProcessor),
39502 : (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
39503 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
39504 : (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
39505 : { 0, NULL },
39506 : { 0, NULL },
39507 : },
39508 : {
39509 : "spoolss_AddPrintProvidor",
39510 : sizeof(struct spoolss_AddPrintProvidor),
39511 : (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
39512 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
39513 : (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
39514 : { 0, NULL },
39515 : { 0, NULL },
39516 : },
39517 : {
39518 : "spoolss_DeletePrintProvidor",
39519 : sizeof(struct spoolss_DeletePrintProvidor),
39520 : (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
39521 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
39522 : (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
39523 : { 0, NULL },
39524 : { 0, NULL },
39525 : },
39526 : {
39527 : "spoolss_EnumPrintProcessorDataTypes",
39528 : sizeof(struct spoolss_EnumPrintProcessorDataTypes),
39529 : (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessorDataTypes,
39530 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessorDataTypes,
39531 : (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessorDataTypes,
39532 : { 0, NULL },
39533 : { 0, NULL },
39534 : },
39535 : {
39536 : "spoolss_ResetPrinter",
39537 : sizeof(struct spoolss_ResetPrinter),
39538 : (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
39539 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
39540 : (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
39541 : { 0, NULL },
39542 : { 0, NULL },
39543 : },
39544 : {
39545 : "spoolss_GetPrinterDriver2",
39546 : sizeof(struct spoolss_GetPrinterDriver2),
39547 : (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
39548 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
39549 : (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
39550 : { 0, NULL },
39551 : { 0, NULL },
39552 : },
39553 : {
39554 : "spoolss_FindFirstPrinterChangeNotification",
39555 : sizeof(struct spoolss_FindFirstPrinterChangeNotification),
39556 : (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
39557 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
39558 : (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
39559 : { 0, NULL },
39560 : { 0, NULL },
39561 : },
39562 : {
39563 : "spoolss_FindNextPrinterChangeNotification",
39564 : sizeof(struct spoolss_FindNextPrinterChangeNotification),
39565 : (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
39566 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
39567 : (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
39568 : { 0, NULL },
39569 : { 0, NULL },
39570 : },
39571 : {
39572 : "spoolss_FindClosePrinterNotify",
39573 : sizeof(struct spoolss_FindClosePrinterNotify),
39574 : (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
39575 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
39576 : (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
39577 : { 0, NULL },
39578 : { 0, NULL },
39579 : },
39580 : {
39581 : "spoolss_RouterFindFirstPrinterChangeNotificationOld",
39582 : sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
39583 : (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
39584 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
39585 : (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
39586 : { 0, NULL },
39587 : { 0, NULL },
39588 : },
39589 : {
39590 : "spoolss_ReplyOpenPrinter",
39591 : sizeof(struct spoolss_ReplyOpenPrinter),
39592 : (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
39593 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
39594 : (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
39595 : { 0, NULL },
39596 : { 0, NULL },
39597 : },
39598 : {
39599 : "spoolss_RouterReplyPrinter",
39600 : sizeof(struct spoolss_RouterReplyPrinter),
39601 : (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
39602 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
39603 : (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
39604 : { 0, NULL },
39605 : { 0, NULL },
39606 : },
39607 : {
39608 : "spoolss_ReplyClosePrinter",
39609 : sizeof(struct spoolss_ReplyClosePrinter),
39610 : (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
39611 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
39612 : (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
39613 : { 0, NULL },
39614 : { 0, NULL },
39615 : },
39616 : {
39617 : "spoolss_AddPortEx",
39618 : sizeof(struct spoolss_AddPortEx),
39619 : (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
39620 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
39621 : (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
39622 : { 0, NULL },
39623 : { 0, NULL },
39624 : },
39625 : {
39626 : "spoolss_RouterFindFirstPrinterChangeNotification",
39627 : sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
39628 : (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
39629 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
39630 : (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
39631 : { 0, NULL },
39632 : { 0, NULL },
39633 : },
39634 : {
39635 : "spoolss_SpoolerInit",
39636 : sizeof(struct spoolss_SpoolerInit),
39637 : (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
39638 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
39639 : (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
39640 : { 0, NULL },
39641 : { 0, NULL },
39642 : },
39643 : {
39644 : "spoolss_ResetPrinterEx",
39645 : sizeof(struct spoolss_ResetPrinterEx),
39646 : (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
39647 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
39648 : (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
39649 : { 0, NULL },
39650 : { 0, NULL },
39651 : },
39652 : {
39653 : "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
39654 : sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
39655 : (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
39656 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
39657 : (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
39658 : { 0, NULL },
39659 : { 0, NULL },
39660 : },
39661 : {
39662 : "spoolss_RouterReplyPrinterEx",
39663 : sizeof(struct spoolss_RouterReplyPrinterEx),
39664 : (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
39665 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
39666 : (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
39667 : { 0, NULL },
39668 : { 0, NULL },
39669 : },
39670 : {
39671 : "spoolss_RouterRefreshPrinterChangeNotify",
39672 : sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
39673 : (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
39674 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
39675 : (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
39676 : { 0, NULL },
39677 : { 0, NULL },
39678 : },
39679 : {
39680 : "spoolss_44",
39681 : sizeof(struct spoolss_44),
39682 : (ndr_push_flags_fn_t) ndr_push_spoolss_44,
39683 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
39684 : (ndr_print_function_t) ndr_print_spoolss_44,
39685 : { 0, NULL },
39686 : { 0, NULL },
39687 : },
39688 : {
39689 : "spoolss_OpenPrinterEx",
39690 : sizeof(struct spoolss_OpenPrinterEx),
39691 : (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
39692 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
39693 : (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
39694 : { 0, NULL },
39695 : { 0, NULL },
39696 : },
39697 : {
39698 : "spoolss_AddPrinterEx",
39699 : sizeof(struct spoolss_AddPrinterEx),
39700 : (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
39701 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
39702 : (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
39703 : { 0, NULL },
39704 : { 0, NULL },
39705 : },
39706 : {
39707 : "spoolss_SetPort",
39708 : sizeof(struct spoolss_SetPort),
39709 : (ndr_push_flags_fn_t) ndr_push_spoolss_SetPort,
39710 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPort,
39711 : (ndr_print_function_t) ndr_print_spoolss_SetPort,
39712 : { 0, NULL },
39713 : { 0, NULL },
39714 : },
39715 : {
39716 : "spoolss_EnumPrinterData",
39717 : sizeof(struct spoolss_EnumPrinterData),
39718 : (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
39719 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
39720 : (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
39721 : { 0, NULL },
39722 : { 0, NULL },
39723 : },
39724 : {
39725 : "spoolss_DeletePrinterData",
39726 : sizeof(struct spoolss_DeletePrinterData),
39727 : (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
39728 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
39729 : (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
39730 : { 0, NULL },
39731 : { 0, NULL },
39732 : },
39733 : {
39734 : "spoolss_4a",
39735 : sizeof(struct spoolss_4a),
39736 : (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
39737 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
39738 : (ndr_print_function_t) ndr_print_spoolss_4a,
39739 : { 0, NULL },
39740 : { 0, NULL },
39741 : },
39742 : {
39743 : "spoolss_4b",
39744 : sizeof(struct spoolss_4b),
39745 : (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
39746 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
39747 : (ndr_print_function_t) ndr_print_spoolss_4b,
39748 : { 0, NULL },
39749 : { 0, NULL },
39750 : },
39751 : {
39752 : "spoolss_4c",
39753 : sizeof(struct spoolss_4c),
39754 : (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
39755 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
39756 : (ndr_print_function_t) ndr_print_spoolss_4c,
39757 : { 0, NULL },
39758 : { 0, NULL },
39759 : },
39760 : {
39761 : "spoolss_SetPrinterDataEx",
39762 : sizeof(struct spoolss_SetPrinterDataEx),
39763 : (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
39764 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
39765 : (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
39766 : { 0, NULL },
39767 : { 0, NULL },
39768 : },
39769 : {
39770 : "spoolss_GetPrinterDataEx",
39771 : sizeof(struct spoolss_GetPrinterDataEx),
39772 : (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
39773 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
39774 : (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
39775 : { 0, NULL },
39776 : { 0, NULL },
39777 : },
39778 : {
39779 : "spoolss_EnumPrinterDataEx",
39780 : sizeof(struct spoolss_EnumPrinterDataEx),
39781 : (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
39782 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
39783 : (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
39784 : { 0, NULL },
39785 : { 0, NULL },
39786 : },
39787 : {
39788 : "spoolss_EnumPrinterKey",
39789 : sizeof(struct spoolss_EnumPrinterKey),
39790 : (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
39791 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
39792 : (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
39793 : { 0, NULL },
39794 : { 0, NULL },
39795 : },
39796 : {
39797 : "spoolss_DeletePrinterDataEx",
39798 : sizeof(struct spoolss_DeletePrinterDataEx),
39799 : (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
39800 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
39801 : (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
39802 : { 0, NULL },
39803 : { 0, NULL },
39804 : },
39805 : {
39806 : "spoolss_DeletePrinterKey",
39807 : sizeof(struct spoolss_DeletePrinterKey),
39808 : (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
39809 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
39810 : (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
39811 : { 0, NULL },
39812 : { 0, NULL },
39813 : },
39814 : {
39815 : "spoolss_53",
39816 : sizeof(struct spoolss_53),
39817 : (ndr_push_flags_fn_t) ndr_push_spoolss_53,
39818 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
39819 : (ndr_print_function_t) ndr_print_spoolss_53,
39820 : { 0, NULL },
39821 : { 0, NULL },
39822 : },
39823 : {
39824 : "spoolss_DeletePrinterDriverEx",
39825 : sizeof(struct spoolss_DeletePrinterDriverEx),
39826 : (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
39827 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
39828 : (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
39829 : { 0, NULL },
39830 : { 0, NULL },
39831 : },
39832 : {
39833 : "spoolss_AddPerMachineConnection",
39834 : sizeof(struct spoolss_AddPerMachineConnection),
39835 : (ndr_push_flags_fn_t) ndr_push_spoolss_AddPerMachineConnection,
39836 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPerMachineConnection,
39837 : (ndr_print_function_t) ndr_print_spoolss_AddPerMachineConnection,
39838 : { 0, NULL },
39839 : { 0, NULL },
39840 : },
39841 : {
39842 : "spoolss_DeletePerMachineConnection",
39843 : sizeof(struct spoolss_DeletePerMachineConnection),
39844 : (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePerMachineConnection,
39845 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePerMachineConnection,
39846 : (ndr_print_function_t) ndr_print_spoolss_DeletePerMachineConnection,
39847 : { 0, NULL },
39848 : { 0, NULL },
39849 : },
39850 : {
39851 : "spoolss_EnumPerMachineConnections",
39852 : sizeof(struct spoolss_EnumPerMachineConnections),
39853 : (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPerMachineConnections,
39854 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPerMachineConnections,
39855 : (ndr_print_function_t) ndr_print_spoolss_EnumPerMachineConnections,
39856 : { 0, NULL },
39857 : { 0, NULL },
39858 : },
39859 : {
39860 : "spoolss_XcvData",
39861 : sizeof(struct spoolss_XcvData),
39862 : (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
39863 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
39864 : (ndr_print_function_t) ndr_print_spoolss_XcvData,
39865 : { 0, NULL },
39866 : { 0, NULL },
39867 : },
39868 : {
39869 : "spoolss_AddPrinterDriverEx",
39870 : sizeof(struct spoolss_AddPrinterDriverEx),
39871 : (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
39872 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
39873 : (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
39874 : { 0, NULL },
39875 : { 0, NULL },
39876 : },
39877 : {
39878 : "spoolss_5a",
39879 : sizeof(struct spoolss_5a),
39880 : (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
39881 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
39882 : (ndr_print_function_t) ndr_print_spoolss_5a,
39883 : { 0, NULL },
39884 : { 0, NULL },
39885 : },
39886 : {
39887 : "spoolss_5b",
39888 : sizeof(struct spoolss_5b),
39889 : (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
39890 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
39891 : (ndr_print_function_t) ndr_print_spoolss_5b,
39892 : { 0, NULL },
39893 : { 0, NULL },
39894 : },
39895 : {
39896 : "spoolss_5c",
39897 : sizeof(struct spoolss_5c),
39898 : (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
39899 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
39900 : (ndr_print_function_t) ndr_print_spoolss_5c,
39901 : { 0, NULL },
39902 : { 0, NULL },
39903 : },
39904 : {
39905 : "spoolss_5d",
39906 : sizeof(struct spoolss_5d),
39907 : (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
39908 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
39909 : (ndr_print_function_t) ndr_print_spoolss_5d,
39910 : { 0, NULL },
39911 : { 0, NULL },
39912 : },
39913 : {
39914 : "spoolss_5e",
39915 : sizeof(struct spoolss_5e),
39916 : (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
39917 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
39918 : (ndr_print_function_t) ndr_print_spoolss_5e,
39919 : { 0, NULL },
39920 : { 0, NULL },
39921 : },
39922 : {
39923 : "spoolss_5f",
39924 : sizeof(struct spoolss_5f),
39925 : (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
39926 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
39927 : (ndr_print_function_t) ndr_print_spoolss_5f,
39928 : { 0, NULL },
39929 : { 0, NULL },
39930 : },
39931 : {
39932 : "spoolss_60",
39933 : sizeof(struct spoolss_60),
39934 : (ndr_push_flags_fn_t) ndr_push_spoolss_60,
39935 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
39936 : (ndr_print_function_t) ndr_print_spoolss_60,
39937 : { 0, NULL },
39938 : { 0, NULL },
39939 : },
39940 : {
39941 : "spoolss_SendRecvBidiData",
39942 : sizeof(struct spoolss_SendRecvBidiData),
39943 : (ndr_push_flags_fn_t) ndr_push_spoolss_SendRecvBidiData,
39944 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_SendRecvBidiData,
39945 : (ndr_print_function_t) ndr_print_spoolss_SendRecvBidiData,
39946 : { 0, NULL },
39947 : { 0, NULL },
39948 : },
39949 : {
39950 : "spoolss_62",
39951 : sizeof(struct spoolss_62),
39952 : (ndr_push_flags_fn_t) ndr_push_spoolss_62,
39953 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
39954 : (ndr_print_function_t) ndr_print_spoolss_62,
39955 : { 0, NULL },
39956 : { 0, NULL },
39957 : },
39958 : {
39959 : "spoolss_63",
39960 : sizeof(struct spoolss_63),
39961 : (ndr_push_flags_fn_t) ndr_push_spoolss_63,
39962 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
39963 : (ndr_print_function_t) ndr_print_spoolss_63,
39964 : { 0, NULL },
39965 : { 0, NULL },
39966 : },
39967 : {
39968 : "spoolss_64",
39969 : sizeof(struct spoolss_64),
39970 : (ndr_push_flags_fn_t) ndr_push_spoolss_64,
39971 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
39972 : (ndr_print_function_t) ndr_print_spoolss_64,
39973 : { 0, NULL },
39974 : { 0, NULL },
39975 : },
39976 : {
39977 : "spoolss_65",
39978 : sizeof(struct spoolss_65),
39979 : (ndr_push_flags_fn_t) ndr_push_spoolss_65,
39980 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
39981 : (ndr_print_function_t) ndr_print_spoolss_65,
39982 : { 0, NULL },
39983 : { 0, NULL },
39984 : },
39985 : {
39986 : "spoolss_GetCorePrinterDrivers",
39987 : sizeof(struct spoolss_GetCorePrinterDrivers),
39988 : (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
39989 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
39990 : (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
39991 : { 0, NULL },
39992 : { 0, NULL },
39993 : },
39994 : {
39995 : "spoolss_67",
39996 : sizeof(struct spoolss_67),
39997 : (ndr_push_flags_fn_t) ndr_push_spoolss_67,
39998 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
39999 : (ndr_print_function_t) ndr_print_spoolss_67,
40000 : { 0, NULL },
40001 : { 0, NULL },
40002 : },
40003 : {
40004 : "spoolss_GetPrinterDriverPackagePath",
40005 : sizeof(struct spoolss_GetPrinterDriverPackagePath),
40006 : (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
40007 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
40008 : (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
40009 : { 0, NULL },
40010 : { 0, NULL },
40011 : },
40012 : {
40013 : "spoolss_69",
40014 : sizeof(struct spoolss_69),
40015 : (ndr_push_flags_fn_t) ndr_push_spoolss_69,
40016 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
40017 : (ndr_print_function_t) ndr_print_spoolss_69,
40018 : { 0, NULL },
40019 : { 0, NULL },
40020 : },
40021 : {
40022 : "spoolss_6a",
40023 : sizeof(struct spoolss_6a),
40024 : (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
40025 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
40026 : (ndr_print_function_t) ndr_print_spoolss_6a,
40027 : { 0, NULL },
40028 : { 0, NULL },
40029 : },
40030 : {
40031 : "spoolss_6b",
40032 : sizeof(struct spoolss_6b),
40033 : (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
40034 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
40035 : (ndr_print_function_t) ndr_print_spoolss_6b,
40036 : { 0, NULL },
40037 : { 0, NULL },
40038 : },
40039 : {
40040 : "spoolss_6c",
40041 : sizeof(struct spoolss_6c),
40042 : (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
40043 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
40044 : (ndr_print_function_t) ndr_print_spoolss_6c,
40045 : { 0, NULL },
40046 : { 0, NULL },
40047 : },
40048 : {
40049 : "spoolss_6d",
40050 : sizeof(struct spoolss_6d),
40051 : (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
40052 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
40053 : (ndr_print_function_t) ndr_print_spoolss_6d,
40054 : { 0, NULL },
40055 : { 0, NULL },
40056 : },
40057 : {
40058 : "spoolss_GetJobNamedPropertyValue",
40059 : sizeof(struct spoolss_GetJobNamedPropertyValue),
40060 : (ndr_push_flags_fn_t) ndr_push_spoolss_GetJobNamedPropertyValue,
40061 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJobNamedPropertyValue,
40062 : (ndr_print_function_t) ndr_print_spoolss_GetJobNamedPropertyValue,
40063 : { 0, NULL },
40064 : { 0, NULL },
40065 : },
40066 : {
40067 : "spoolss_SetJobNamedProperty",
40068 : sizeof(struct spoolss_SetJobNamedProperty),
40069 : (ndr_push_flags_fn_t) ndr_push_spoolss_SetJobNamedProperty,
40070 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJobNamedProperty,
40071 : (ndr_print_function_t) ndr_print_spoolss_SetJobNamedProperty,
40072 : { 0, NULL },
40073 : { 0, NULL },
40074 : },
40075 : {
40076 : "spoolss_DeleteJobNamedProperty",
40077 : sizeof(struct spoolss_DeleteJobNamedProperty),
40078 : (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteJobNamedProperty,
40079 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteJobNamedProperty,
40080 : (ndr_print_function_t) ndr_print_spoolss_DeleteJobNamedProperty,
40081 : { 0, NULL },
40082 : { 0, NULL },
40083 : },
40084 : {
40085 : "spoolss_EnumJobNamedProperties",
40086 : sizeof(struct spoolss_EnumJobNamedProperties),
40087 : (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobNamedProperties,
40088 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobNamedProperties,
40089 : (ndr_print_function_t) ndr_print_spoolss_EnumJobNamedProperties,
40090 : { 0, NULL },
40091 : { 0, NULL },
40092 : },
40093 : {
40094 : "spoolss_72",
40095 : sizeof(struct spoolss_72),
40096 : (ndr_push_flags_fn_t) ndr_push_spoolss_72,
40097 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_72,
40098 : (ndr_print_function_t) ndr_print_spoolss_72,
40099 : { 0, NULL },
40100 : { 0, NULL },
40101 : },
40102 : {
40103 : "spoolss_73",
40104 : sizeof(struct spoolss_73),
40105 : (ndr_push_flags_fn_t) ndr_push_spoolss_73,
40106 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_73,
40107 : (ndr_print_function_t) ndr_print_spoolss_73,
40108 : { 0, NULL },
40109 : { 0, NULL },
40110 : },
40111 : {
40112 : "spoolss_LogJobInfoForBranchOffice",
40113 : sizeof(struct spoolss_LogJobInfoForBranchOffice),
40114 : (ndr_push_flags_fn_t) ndr_push_spoolss_LogJobInfoForBranchOffice,
40115 : (ndr_pull_flags_fn_t) ndr_pull_spoolss_LogJobInfoForBranchOffice,
40116 : (ndr_print_function_t) ndr_print_spoolss_LogJobInfoForBranchOffice,
40117 : { 0, NULL },
40118 : { 0, NULL },
40119 : },
40120 : { .name = NULL }
40121 : };
40122 :
40123 : static const char * const spoolss_endpoint_strings[] = {
40124 : "ncacn_np:[\\pipe\\spoolss]",
40125 : "ncalrpc:",
40126 : };
40127 :
40128 : static const struct ndr_interface_string_array spoolss_endpoints = {
40129 : .count = 2,
40130 : .names = spoolss_endpoint_strings
40131 : };
40132 :
40133 : static const char * const spoolss_authservice_strings[] = {
40134 : "host",
40135 : };
40136 :
40137 : static const struct ndr_interface_string_array spoolss_authservices = {
40138 : .count = 1,
40139 : .names = spoolss_authservice_strings
40140 : };
40141 :
40142 :
40143 : const struct ndr_interface_table ndr_table_spoolss = {
40144 : .name = "spoolss",
40145 : .syntax_id = {
40146 : {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
40147 : NDR_SPOOLSS_VERSION
40148 : },
40149 : .helpstring = NDR_SPOOLSS_HELPSTRING,
40150 : .num_calls = 117,
40151 : .calls = spoolss_calls,
40152 : .num_public_structs = 67,
40153 : .public_structs = spoolss_public_structs,
40154 : .endpoints = &spoolss_endpoints,
40155 : .authservices = &spoolss_authservices
40156 : };
40157 :
40158 : #endif /* SKIP_NDR_TABLE_spoolss */
|