1 /* parser auto-generated by pidl */
4 #include "../librpc/gen_ndr/ndr_spoolss.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_security.h"
8 #include "librpc/gen_ndr/ndr_winreg.h"
9 static enum ndr_err_code
ndr_push_spoolss_Time(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_Time
*r
)
11 if (ndr_flags
& NDR_SCALARS
) {
12 NDR_CHECK(ndr_push_align(ndr
, 2));
13 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->year
));
14 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->month
));
15 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->day_of_week
));
16 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->day
));
17 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->hour
));
18 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->minute
));
19 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->second
));
20 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->millisecond
));
22 if (ndr_flags
& NDR_BUFFERS
) {
24 return NDR_ERR_SUCCESS
;
27 static enum ndr_err_code
ndr_pull_spoolss_Time(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Time
*r
)
29 if (ndr_flags
& NDR_SCALARS
) {
30 NDR_CHECK(ndr_pull_align(ndr
, 2));
31 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->year
));
32 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->month
));
33 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->day_of_week
));
34 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->day
));
35 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->hour
));
36 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->minute
));
37 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->second
));
38 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->millisecond
));
40 if (ndr_flags
& NDR_BUFFERS
) {
42 return NDR_ERR_SUCCESS
;
45 _PUBLIC_
void ndr_print_spoolss_Time(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Time
*r
)
47 ndr_print_struct(ndr
, name
, "spoolss_Time");
49 ndr_print_uint16(ndr
, "year", r
->year
);
50 ndr_print_uint16(ndr
, "month", r
->month
);
51 ndr_print_uint16(ndr
, "day_of_week", r
->day_of_week
);
52 ndr_print_uint16(ndr
, "day", r
->day
);
53 ndr_print_uint16(ndr
, "hour", r
->hour
);
54 ndr_print_uint16(ndr
, "minute", r
->minute
);
55 ndr_print_uint16(ndr
, "second", r
->second
);
56 ndr_print_uint16(ndr
, "millisecond", r
->millisecond
);
60 static size_t ndr_size_spoolss_Time(const struct spoolss_Time
*r
, struct smb_iconv_convenience
*ic
, int flags
)
62 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_Time
, ic
);
65 static enum ndr_err_code
ndr_push_spoolss_TimeCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_TimeCtr
*r
)
67 if (ndr_flags
& NDR_SCALARS
) {
68 NDR_CHECK(ndr_push_align(ndr
, 4));
69 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_Time(r
->time
, ndr
->iconv_convenience
, ndr
->flags
)));
70 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->time
));
72 if (ndr_flags
& NDR_BUFFERS
) {
74 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, r
->time
));
77 return NDR_ERR_SUCCESS
;
80 static enum ndr_err_code
ndr_pull_spoolss_TimeCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_TimeCtr
*r
)
83 TALLOC_CTX
*_mem_save_time_0
;
84 if (ndr_flags
& NDR_SCALARS
) {
85 NDR_CHECK(ndr_pull_align(ndr
, 4));
86 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
87 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_time
));
89 NDR_PULL_ALLOC(ndr
, r
->time
);
94 if (ndr_flags
& NDR_BUFFERS
) {
96 _mem_save_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
97 NDR_PULL_SET_MEM_CTX(ndr
, r
->time
, 0);
98 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, r
->time
));
99 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_time_0
, 0);
102 return NDR_ERR_SUCCESS
;
105 _PUBLIC_
void ndr_print_spoolss_TimeCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_TimeCtr
*r
)
107 ndr_print_struct(ndr
, name
, "spoolss_TimeCtr");
109 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_Time(r
->time
, ndr
->iconv_convenience
, ndr
->flags
):r
->size
);
110 ndr_print_ptr(ndr
, "time", r
->time
);
113 ndr_print_spoolss_Time(ndr
, "time", r
->time
);
119 static enum ndr_err_code
ndr_push_spoolss_ProcessorArchitecture(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_ProcessorArchitecture r
)
121 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
122 return NDR_ERR_SUCCESS
;
125 static enum ndr_err_code
ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_ProcessorArchitecture
*r
)
128 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
130 return NDR_ERR_SUCCESS
;
133 _PUBLIC_
void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print
*ndr
, const char *name
, enum spoolss_ProcessorArchitecture r
)
135 const char *val
= NULL
;
138 case PROCESSOR_ARCHITECTURE_INTEL
: val
= "PROCESSOR_ARCHITECTURE_INTEL"; break;
139 case PROCESSOR_ARCHITECTURE_IA64
: val
= "PROCESSOR_ARCHITECTURE_IA64"; break;
140 case PROCESSOR_ARCHITECTURE_AMD64
: val
= "PROCESSOR_ARCHITECTURE_AMD64"; break;
142 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
145 static enum ndr_err_code
ndr_push_spoolss_ProcessorType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_ProcessorType r
)
147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
148 return NDR_ERR_SUCCESS
;
151 static enum ndr_err_code
ndr_pull_spoolss_ProcessorType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_ProcessorType
*r
)
154 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
156 return NDR_ERR_SUCCESS
;
159 _PUBLIC_
void ndr_print_spoolss_ProcessorType(struct ndr_print
*ndr
, const char *name
, enum spoolss_ProcessorType r
)
161 const char *val
= NULL
;
164 case PROCESSOR_INTEL_386
: val
= "PROCESSOR_INTEL_386"; break;
165 case PROCESSOR_INTEL_486
: val
= "PROCESSOR_INTEL_486"; break;
166 case PROCESSOR_INTEL_PENTIUM
: val
= "PROCESSOR_INTEL_PENTIUM"; break;
167 case PROCESSOR_INTEL_IA64
: val
= "PROCESSOR_INTEL_IA64"; break;
168 case PROCESSOR_AMD_X8664
: val
= "PROCESSOR_AMD_X8664"; break;
170 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
173 static enum ndr_err_code
ndr_push_spoolss_MajorVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_MajorVersion r
)
175 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
176 return NDR_ERR_SUCCESS
;
179 static enum ndr_err_code
ndr_pull_spoolss_MajorVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_MajorVersion
*r
)
182 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
184 return NDR_ERR_SUCCESS
;
187 _PUBLIC_
void ndr_print_spoolss_MajorVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_MajorVersion r
)
189 const char *val
= NULL
;
192 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME
: val
= "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
193 case SPOOLSS_MAJOR_VERSION_2000_2003_XP
: val
= "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
194 case SPOOLSS_MAJOR_VERSION_2008_VISTA
: val
= "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
196 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
199 static enum ndr_err_code
ndr_push_spoolss_MinorVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_MinorVersion r
)
201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
202 return NDR_ERR_SUCCESS
;
205 static enum ndr_err_code
ndr_pull_spoolss_MinorVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_MinorVersion
*r
)
208 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
210 return NDR_ERR_SUCCESS
;
213 _PUBLIC_
void ndr_print_spoolss_MinorVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_MinorVersion r
)
215 const char *val
= NULL
;
218 case SPOOLSS_MINOR_VERSION_0
: val
= "SPOOLSS_MINOR_VERSION_0"; break;
219 case SPOOLSS_MINOR_VERSION_XP
: val
= "SPOOLSS_MINOR_VERSION_XP"; break;
220 case SPOOLSS_MINOR_VERSION_2003_XP64
: val
= "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
221 case SPOOLSS_MINOR_VERSION_98
: val
= "SPOOLSS_MINOR_VERSION_98"; break;
222 case SPOOLSS_MINOR_VERSION_ME
: val
= "SPOOLSS_MINOR_VERSION_ME"; break;
224 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
227 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo0
*r
)
229 if (ndr_flags
& NDR_SCALARS
) {
230 NDR_CHECK(ndr_push_align(ndr
, 4));
232 uint32_t _flags_save_string
= ndr
->flags
;
233 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
234 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
235 ndr
->flags
= _flags_save_string
;
238 uint32_t _flags_save_string
= ndr
->flags
;
239 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
240 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
241 ndr
->flags
= _flags_save_string
;
243 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
246 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
247 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
248 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
249 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
250 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
251 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
252 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
253 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
254 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
255 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
256 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_error
));
257 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
258 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
259 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
260 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
261 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
262 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->status
));
263 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
264 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
265 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
266 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
267 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
268 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
269 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
271 if (ndr_flags
& NDR_BUFFERS
) {
273 uint32_t _flags_save_string
= ndr
->flags
;
274 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
275 if (r
->printername
) {
276 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
277 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
279 ndr
->flags
= _flags_save_string
;
282 uint32_t _flags_save_string
= ndr
->flags
;
283 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
285 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
286 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
288 ndr
->flags
= _flags_save_string
;
291 return NDR_ERR_SUCCESS
;
294 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo0
*r
)
296 uint32_t _ptr_printername
;
297 TALLOC_CTX
*_mem_save_printername_0
;
298 uint32_t _ptr_servername
;
299 TALLOC_CTX
*_mem_save_servername_0
;
300 if (ndr_flags
& NDR_SCALARS
) {
301 NDR_CHECK(ndr_pull_align(ndr
, 4));
303 uint32_t _flags_save_string
= ndr
->flags
;
304 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
305 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
306 if (_ptr_printername
) {
307 NDR_PULL_ALLOC(ndr
, r
->printername
);
308 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
310 r
->printername
= NULL
;
312 ndr
->flags
= _flags_save_string
;
315 uint32_t _flags_save_string
= ndr
->flags
;
316 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
317 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
318 if (_ptr_servername
) {
319 NDR_PULL_ALLOC(ndr
, r
->servername
);
320 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
322 r
->servername
= NULL
;
324 ndr
->flags
= _flags_save_string
;
326 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
327 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
328 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
329 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
330 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
331 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
332 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
333 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
334 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
335 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
336 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
337 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
338 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
339 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_error
));
340 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
341 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
342 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
343 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
344 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
345 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->status
));
346 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
347 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
348 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
349 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
350 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
351 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
352 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
354 if (ndr_flags
& NDR_BUFFERS
) {
356 uint32_t _flags_save_string
= ndr
->flags
;
357 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
358 if (r
->printername
) {
359 uint32_t _relative_save_offset
;
360 _relative_save_offset
= ndr
->offset
;
361 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
362 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
363 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
364 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
365 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
366 ndr
->offset
= _relative_save_offset
;
368 ndr
->flags
= _flags_save_string
;
371 uint32_t _flags_save_string
= ndr
->flags
;
372 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
374 uint32_t _relative_save_offset
;
375 _relative_save_offset
= ndr
->offset
;
376 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
377 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
378 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
379 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
380 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
381 ndr
->offset
= _relative_save_offset
;
383 ndr
->flags
= _flags_save_string
;
386 return NDR_ERR_SUCCESS
;
389 _PUBLIC_
void ndr_print_spoolss_PrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo0
*r
)
391 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo0");
393 ndr_print_ptr(ndr
, "printername", r
->printername
);
395 if (r
->printername
) {
396 ndr_print_string(ndr
, "printername", r
->printername
);
399 ndr_print_ptr(ndr
, "servername", r
->servername
);
402 ndr_print_string(ndr
, "servername", r
->servername
);
405 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
406 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
407 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
408 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
409 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
410 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
411 ndr_print_uint32(ndr
, "version", r
->version
);
412 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
413 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
414 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
415 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
416 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
417 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
418 ndr_print_uint32(ndr
, "job_error", r
->job_error
);
419 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
420 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
421 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
422 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
423 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
424 ndr_print_uint32(ndr
, "status", r
->status
);
425 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
426 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
427 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
428 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
429 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
430 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
431 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
435 static enum ndr_err_code
ndr_push_spoolss_DeviceModeFields(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
437 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
438 return NDR_ERR_SUCCESS
;
441 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeFields(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
444 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
446 return NDR_ERR_SUCCESS
;
449 _PUBLIC_
void ndr_print_spoolss_DeviceModeFields(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
451 ndr_print_uint32(ndr
, name
, r
);
453 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION
, r
);
454 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE
, r
);
455 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH
, r
);
456 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH
, r
);
457 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE
, r
);
458 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION
, r
);
459 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP
, r
);
460 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES
, r
);
461 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE
, r
);
462 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY
, r
);
463 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR
, r
);
464 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX
, r
);
465 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION
, r
);
466 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION
, r
);
467 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE
, r
);
468 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME
, r
);
469 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS
, r
);
470 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL
, r
);
471 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH
, r
);
472 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT
, r
);
473 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS
, r
);
474 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY
, r
);
475 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD
, r
);
476 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT
, r
);
477 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE
, r
);
478 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE
, r
);
479 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH
, r
);
480 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT
, r
);
484 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeviceMode(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceMode
*r
)
486 if (ndr_flags
& NDR_SCALARS
) {
487 NDR_CHECK(ndr_push_align(ndr
, 4));
488 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->devicename
, 32, sizeof(uint16_t), CH_UTF16
));
489 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->specversion
));
490 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverversion
));
491 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
492 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverextra_data
.length
));
493 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, r
->fields
));
494 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->orientation
));
495 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->papersize
));
496 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperlength
));
497 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperwidth
));
498 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->scale
));
499 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->copies
));
500 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->defaultsource
));
501 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->printquality
));
502 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->color
));
503 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->duplex
));
504 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->yresolution
));
505 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ttoption
));
506 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->collate
));
507 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, 32, sizeof(uint16_t), CH_UTF16
));
508 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logpixels
));
509 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bitsperpel
));
510 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelswidth
));
511 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelsheight
));
512 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayflags
));
513 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayfrequency
));
514 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->icmmethod
));
515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->icmintent
));
516 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->mediatype
));
517 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dithertype
));
518 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved1
));
519 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
520 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningwidth
));
521 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningheight
));
523 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
524 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
526 struct ndr_push
*_ndr_driverextra_data
;
527 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
528 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, r
->driverextra_data
));
529 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
531 ndr
->flags
= _flags_save_DATA_BLOB
;
534 if (ndr_flags
& NDR_BUFFERS
) {
536 return NDR_ERR_SUCCESS
;
539 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeviceMode(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceMode
*r
)
541 if (ndr_flags
& NDR_SCALARS
) {
542 NDR_CHECK(ndr_pull_align(ndr
, 4));
543 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->devicename
, 32, sizeof(uint16_t), CH_UTF16
));
544 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->specversion
));
545 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->driverversion
));
546 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
547 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->__driverextra_length
));
548 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, &r
->fields
));
549 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->orientation
));
550 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->papersize
));
551 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperlength
));
552 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperwidth
));
553 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->scale
));
554 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->copies
));
555 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->defaultsource
));
556 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->printquality
));
557 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->color
));
558 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->duplex
));
559 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->yresolution
));
560 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ttoption
));
561 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->collate
));
562 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, 32, sizeof(uint16_t), CH_UTF16
));
563 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logpixels
));
564 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bitsperpel
));
565 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelswidth
));
566 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelsheight
));
567 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayflags
));
568 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayfrequency
));
569 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->icmmethod
));
570 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->icmintent
));
571 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->mediatype
));
572 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dithertype
));
573 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved1
));
574 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
575 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningwidth
));
576 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningheight
));
578 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
579 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
581 struct ndr_pull
*_ndr_driverextra_data
;
582 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->__driverextra_length
));
583 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, &r
->driverextra_data
));
584 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->__driverextra_length
));
586 ndr
->flags
= _flags_save_DATA_BLOB
;
589 if (ndr_flags
& NDR_BUFFERS
) {
591 return NDR_ERR_SUCCESS
;
594 _PUBLIC_
void ndr_print_spoolss_DeviceMode(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceMode
*r
)
596 ndr_print_struct(ndr
, name
, "spoolss_DeviceMode");
598 ndr_print_string(ndr
, "devicename", r
->devicename
);
599 ndr_print_uint16(ndr
, "specversion", r
->specversion
);
600 ndr_print_uint16(ndr
, "driverversion", r
->driverversion
);
601 ndr_print_uint16(ndr
, "size", r
->size
);
602 ndr_print_uint16(ndr
, "__driverextra_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->driverextra_data
.length
:r
->__driverextra_length
);
603 ndr_print_spoolss_DeviceModeFields(ndr
, "fields", r
->fields
);
604 ndr_print_uint16(ndr
, "orientation", r
->orientation
);
605 ndr_print_uint16(ndr
, "papersize", r
->papersize
);
606 ndr_print_uint16(ndr
, "paperlength", r
->paperlength
);
607 ndr_print_uint16(ndr
, "paperwidth", r
->paperwidth
);
608 ndr_print_uint16(ndr
, "scale", r
->scale
);
609 ndr_print_uint16(ndr
, "copies", r
->copies
);
610 ndr_print_uint16(ndr
, "defaultsource", r
->defaultsource
);
611 ndr_print_uint16(ndr
, "printquality", r
->printquality
);
612 ndr_print_uint16(ndr
, "color", r
->color
);
613 ndr_print_uint16(ndr
, "duplex", r
->duplex
);
614 ndr_print_uint16(ndr
, "yresolution", r
->yresolution
);
615 ndr_print_uint16(ndr
, "ttoption", r
->ttoption
);
616 ndr_print_uint16(ndr
, "collate", r
->collate
);
617 ndr_print_string(ndr
, "formname", r
->formname
);
618 ndr_print_uint16(ndr
, "logpixels", r
->logpixels
);
619 ndr_print_uint32(ndr
, "bitsperpel", r
->bitsperpel
);
620 ndr_print_uint32(ndr
, "pelswidth", r
->pelswidth
);
621 ndr_print_uint32(ndr
, "pelsheight", r
->pelsheight
);
622 ndr_print_uint32(ndr
, "displayflags", r
->displayflags
);
623 ndr_print_uint32(ndr
, "displayfrequency", r
->displayfrequency
);
624 ndr_print_uint32(ndr
, "icmmethod", r
->icmmethod
);
625 ndr_print_uint32(ndr
, "icmintent", r
->icmintent
);
626 ndr_print_uint32(ndr
, "mediatype", r
->mediatype
);
627 ndr_print_uint32(ndr
, "dithertype", r
->dithertype
);
628 ndr_print_uint32(ndr
, "reserved1", r
->reserved1
);
629 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
630 ndr_print_uint32(ndr
, "panningwidth", r
->panningwidth
);
631 ndr_print_uint32(ndr
, "panningheight", r
->panningheight
);
632 ndr_print_DATA_BLOB(ndr
, "driverextra_data", r
->driverextra_data
);
636 _PUBLIC_
size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode
*r
, struct smb_iconv_convenience
*ic
, int flags
)
638 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DeviceMode
, ic
);
641 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
643 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
644 return NDR_ERR_SUCCESS
;
647 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
650 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
652 return NDR_ERR_SUCCESS
;
655 _PUBLIC_
void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
657 ndr_print_uint32(ndr
, name
, r
);
659 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT
, r
);
660 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL
, r
);
661 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS
, r
);
662 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE
, r
);
663 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME
, r
);
664 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE
, r
);
665 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED
, r
);
666 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK
, r
);
667 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND
, r
);
668 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER
, r
);
669 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1
, r
);
670 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2
, r
);
671 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3
, r
);
672 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4
, r
);
673 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5
, r
);
674 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6
, r
);
675 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7
, r
);
676 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8
, r
);
677 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE
, r
);
681 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo1
*r
)
683 if (ndr_flags
& NDR_SCALARS
) {
684 NDR_CHECK(ndr_push_align(ndr
, 4));
685 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->flags
));
687 uint32_t _flags_save_string
= ndr
->flags
;
688 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
689 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name
));
690 ndr
->flags
= _flags_save_string
;
693 uint32_t _flags_save_string
= ndr
->flags
;
694 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
695 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
696 ndr
->flags
= _flags_save_string
;
699 uint32_t _flags_save_string
= ndr
->flags
;
700 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
701 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
702 ndr
->flags
= _flags_save_string
;
705 if (ndr_flags
& NDR_BUFFERS
) {
707 uint32_t _flags_save_string
= ndr
->flags
;
708 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
710 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->name
));
711 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name
));
713 ndr
->flags
= _flags_save_string
;
716 uint32_t _flags_save_string
= ndr
->flags
;
717 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
718 if (r
->description
) {
719 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->description
));
720 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
722 ndr
->flags
= _flags_save_string
;
725 uint32_t _flags_save_string
= ndr
->flags
;
726 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
728 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->comment
));
729 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
731 ndr
->flags
= _flags_save_string
;
734 return NDR_ERR_SUCCESS
;
737 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo1
*r
)
740 TALLOC_CTX
*_mem_save_name_0
;
741 uint32_t _ptr_description
;
742 TALLOC_CTX
*_mem_save_description_0
;
743 uint32_t _ptr_comment
;
744 TALLOC_CTX
*_mem_save_comment_0
;
745 if (ndr_flags
& NDR_SCALARS
) {
746 NDR_CHECK(ndr_pull_align(ndr
, 4));
747 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->flags
));
749 uint32_t _flags_save_string
= ndr
->flags
;
750 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
751 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
753 NDR_PULL_ALLOC(ndr
, r
->name
);
754 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name
, _ptr_name
));
758 ndr
->flags
= _flags_save_string
;
761 uint32_t _flags_save_string
= ndr
->flags
;
762 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
763 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
764 if (_ptr_description
) {
765 NDR_PULL_ALLOC(ndr
, r
->description
);
766 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
768 r
->description
= NULL
;
770 ndr
->flags
= _flags_save_string
;
773 uint32_t _flags_save_string
= ndr
->flags
;
774 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
775 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
777 NDR_PULL_ALLOC(ndr
, r
->comment
);
778 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
782 ndr
->flags
= _flags_save_string
;
785 if (ndr_flags
& NDR_BUFFERS
) {
787 uint32_t _flags_save_string
= ndr
->flags
;
788 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
790 uint32_t _relative_save_offset
;
791 _relative_save_offset
= ndr
->offset
;
792 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name
));
793 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
794 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
795 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name
));
796 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
797 ndr
->offset
= _relative_save_offset
;
799 ndr
->flags
= _flags_save_string
;
802 uint32_t _flags_save_string
= ndr
->flags
;
803 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
804 if (r
->description
) {
805 uint32_t _relative_save_offset
;
806 _relative_save_offset
= ndr
->offset
;
807 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
808 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
809 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
810 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
811 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
812 ndr
->offset
= _relative_save_offset
;
814 ndr
->flags
= _flags_save_string
;
817 uint32_t _flags_save_string
= ndr
->flags
;
818 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
820 uint32_t _relative_save_offset
;
821 _relative_save_offset
= ndr
->offset
;
822 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
823 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
824 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
825 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
826 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
827 ndr
->offset
= _relative_save_offset
;
829 ndr
->flags
= _flags_save_string
;
832 return NDR_ERR_SUCCESS
;
835 _PUBLIC_
void ndr_print_spoolss_PrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo1
*r
)
837 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo1");
839 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->flags
);
840 ndr_print_ptr(ndr
, "name", r
->name
);
843 ndr_print_string(ndr
, "name", r
->name
);
846 ndr_print_ptr(ndr
, "description", r
->description
);
848 if (r
->description
) {
849 ndr_print_string(ndr
, "description", r
->description
);
852 ndr_print_ptr(ndr
, "comment", r
->comment
);
855 ndr_print_string(ndr
, "comment", r
->comment
);
861 static enum ndr_err_code
ndr_push_spoolss_PrinterAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
863 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
864 return NDR_ERR_SUCCESS
;
867 static enum ndr_err_code
ndr_pull_spoolss_PrinterAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
870 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
872 return NDR_ERR_SUCCESS
;
875 _PUBLIC_
void ndr_print_spoolss_PrinterAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
877 ndr_print_uint32(ndr
, name
, r
);
879 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED
, r
);
880 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT
, r
);
881 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT
, r
);
882 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED
, r
);
883 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK
, r
);
884 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN
, r
);
885 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL
, r
);
886 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ
, r
);
887 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS
, r
);
888 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST
, r
);
889 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE
, r
);
890 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI
, r
);
891 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY
, r
);
892 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED
, r
);
893 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX
, r
);
894 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS
, r
);
898 static enum ndr_err_code
ndr_push_spoolss_PrinterStatus(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
900 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
901 return NDR_ERR_SUCCESS
;
904 static enum ndr_err_code
ndr_pull_spoolss_PrinterStatus(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
907 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
909 return NDR_ERR_SUCCESS
;
912 _PUBLIC_
void ndr_print_spoolss_PrinterStatus(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
914 ndr_print_uint32(ndr
, name
, r
);
916 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED
, r
);
917 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR
, r
);
918 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION
, r
);
919 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM
, r
);
920 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT
, r
);
921 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED
, r
);
922 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM
, r
);
923 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE
, r
);
924 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE
, r
);
925 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY
, r
);
926 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING
, r
);
927 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL
, r
);
928 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE
, r
);
929 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING
, r
);
930 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING
, r
);
931 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING
, r
);
932 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP
, r
);
933 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW
, r
);
934 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER
, r
);
935 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT
, r
);
936 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION
, r
);
937 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY
, r
);
938 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN
, r
);
939 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN
, r
);
940 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE
, r
);
944 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo2
*r
)
946 if (ndr_flags
& NDR_SCALARS
) {
947 NDR_CHECK(ndr_push_align(ndr
, 4));
949 uint32_t _flags_save_string
= ndr
->flags
;
950 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
951 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
952 ndr
->flags
= _flags_save_string
;
955 uint32_t _flags_save_string
= ndr
->flags
;
956 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
957 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
958 ndr
->flags
= _flags_save_string
;
961 uint32_t _flags_save_string
= ndr
->flags
;
962 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
963 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->sharename
));
964 ndr
->flags
= _flags_save_string
;
967 uint32_t _flags_save_string
= ndr
->flags
;
968 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
969 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
970 ndr
->flags
= _flags_save_string
;
973 uint32_t _flags_save_string
= ndr
->flags
;
974 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
975 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->drivername
));
976 ndr
->flags
= _flags_save_string
;
979 uint32_t _flags_save_string
= ndr
->flags
;
980 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
981 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
982 ndr
->flags
= _flags_save_string
;
985 uint32_t _flags_save_string
= ndr
->flags
;
986 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
987 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->location
));
988 ndr
->flags
= _flags_save_string
;
990 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
992 uint32_t _flags_save_string
= ndr
->flags
;
993 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
994 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->sepfile
));
995 ndr
->flags
= _flags_save_string
;
998 uint32_t _flags_save_string
= ndr
->flags
;
999 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1000 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printprocessor
));
1001 ndr
->flags
= _flags_save_string
;
1004 uint32_t _flags_save_string
= ndr
->flags
;
1005 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1006 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->datatype
));
1007 ndr
->flags
= _flags_save_string
;
1010 uint32_t _flags_save_string
= ndr
->flags
;
1011 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1012 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
1013 ndr
->flags
= _flags_save_string
;
1015 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
1016 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1017 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
1018 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
1019 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
1020 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
1021 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
1022 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
1023 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
1025 if (ndr_flags
& NDR_BUFFERS
) {
1027 uint32_t _flags_save_string
= ndr
->flags
;
1028 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1029 if (r
->servername
) {
1030 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
1031 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
1033 ndr
->flags
= _flags_save_string
;
1036 uint32_t _flags_save_string
= ndr
->flags
;
1037 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1038 if (r
->printername
) {
1039 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1040 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1042 ndr
->flags
= _flags_save_string
;
1045 uint32_t _flags_save_string
= ndr
->flags
;
1046 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1048 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->sharename
));
1049 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->sharename
));
1051 ndr
->flags
= _flags_save_string
;
1054 uint32_t _flags_save_string
= ndr
->flags
;
1055 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1057 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->portname
));
1058 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
1060 ndr
->flags
= _flags_save_string
;
1063 uint32_t _flags_save_string
= ndr
->flags
;
1064 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1065 if (r
->drivername
) {
1066 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->drivername
));
1067 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->drivername
));
1069 ndr
->flags
= _flags_save_string
;
1072 uint32_t _flags_save_string
= ndr
->flags
;
1073 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1075 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->comment
));
1076 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
1078 ndr
->flags
= _flags_save_string
;
1081 uint32_t _flags_save_string
= ndr
->flags
;
1082 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1084 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->location
));
1085 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->location
));
1087 ndr
->flags
= _flags_save_string
;
1090 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
1092 struct ndr_push
*_ndr_devmode
;
1093 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
1094 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
1095 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
1099 uint32_t _flags_save_string
= ndr
->flags
;
1100 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1102 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->sepfile
));
1103 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->sepfile
));
1105 ndr
->flags
= _flags_save_string
;
1108 uint32_t _flags_save_string
= ndr
->flags
;
1109 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1110 if (r
->printprocessor
) {
1111 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printprocessor
));
1112 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printprocessor
));
1114 ndr
->flags
= _flags_save_string
;
1117 uint32_t _flags_save_string
= ndr
->flags
;
1118 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1120 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->datatype
));
1121 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->datatype
));
1123 ndr
->flags
= _flags_save_string
;
1126 uint32_t _flags_save_string
= ndr
->flags
;
1127 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1128 if (r
->parameters
) {
1129 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
1130 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
1132 ndr
->flags
= _flags_save_string
;
1135 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
1137 struct ndr_push
*_ndr_secdesc
;
1138 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1139 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1140 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1144 return NDR_ERR_SUCCESS
;
1147 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo2
*r
)
1149 uint32_t _ptr_servername
;
1150 TALLOC_CTX
*_mem_save_servername_0
;
1151 uint32_t _ptr_printername
;
1152 TALLOC_CTX
*_mem_save_printername_0
;
1153 uint32_t _ptr_sharename
;
1154 TALLOC_CTX
*_mem_save_sharename_0
;
1155 uint32_t _ptr_portname
;
1156 TALLOC_CTX
*_mem_save_portname_0
;
1157 uint32_t _ptr_drivername
;
1158 TALLOC_CTX
*_mem_save_drivername_0
;
1159 uint32_t _ptr_comment
;
1160 TALLOC_CTX
*_mem_save_comment_0
;
1161 uint32_t _ptr_location
;
1162 TALLOC_CTX
*_mem_save_location_0
;
1163 uint32_t _ptr_devmode
;
1164 TALLOC_CTX
*_mem_save_devmode_0
;
1165 uint32_t _ptr_sepfile
;
1166 TALLOC_CTX
*_mem_save_sepfile_0
;
1167 uint32_t _ptr_printprocessor
;
1168 TALLOC_CTX
*_mem_save_printprocessor_0
;
1169 uint32_t _ptr_datatype
;
1170 TALLOC_CTX
*_mem_save_datatype_0
;
1171 uint32_t _ptr_parameters
;
1172 TALLOC_CTX
*_mem_save_parameters_0
;
1173 uint32_t _ptr_secdesc
;
1174 TALLOC_CTX
*_mem_save_secdesc_0
;
1175 if (ndr_flags
& NDR_SCALARS
) {
1176 NDR_CHECK(ndr_pull_align(ndr
, 4));
1178 uint32_t _flags_save_string
= ndr
->flags
;
1179 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1180 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1181 if (_ptr_servername
) {
1182 NDR_PULL_ALLOC(ndr
, r
->servername
);
1183 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1185 r
->servername
= NULL
;
1187 ndr
->flags
= _flags_save_string
;
1190 uint32_t _flags_save_string
= ndr
->flags
;
1191 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1192 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1193 if (_ptr_printername
) {
1194 NDR_PULL_ALLOC(ndr
, r
->printername
);
1195 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1197 r
->printername
= NULL
;
1199 ndr
->flags
= _flags_save_string
;
1202 uint32_t _flags_save_string
= ndr
->flags
;
1203 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1204 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
1205 if (_ptr_sharename
) {
1206 NDR_PULL_ALLOC(ndr
, r
->sharename
);
1207 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sharename
, _ptr_sharename
));
1209 r
->sharename
= NULL
;
1211 ndr
->flags
= _flags_save_string
;
1214 uint32_t _flags_save_string
= ndr
->flags
;
1215 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1216 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
1217 if (_ptr_portname
) {
1218 NDR_PULL_ALLOC(ndr
, r
->portname
);
1219 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1223 ndr
->flags
= _flags_save_string
;
1226 uint32_t _flags_save_string
= ndr
->flags
;
1227 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1228 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
1229 if (_ptr_drivername
) {
1230 NDR_PULL_ALLOC(ndr
, r
->drivername
);
1231 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->drivername
, _ptr_drivername
));
1233 r
->drivername
= NULL
;
1235 ndr
->flags
= _flags_save_string
;
1238 uint32_t _flags_save_string
= ndr
->flags
;
1239 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1240 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
1242 NDR_PULL_ALLOC(ndr
, r
->comment
);
1243 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
1247 ndr
->flags
= _flags_save_string
;
1250 uint32_t _flags_save_string
= ndr
->flags
;
1251 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1252 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
1253 if (_ptr_location
) {
1254 NDR_PULL_ALLOC(ndr
, r
->location
);
1255 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->location
, _ptr_location
));
1259 ndr
->flags
= _flags_save_string
;
1261 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
1263 NDR_PULL_ALLOC(ndr
, r
->devmode
);
1264 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
1269 uint32_t _flags_save_string
= ndr
->flags
;
1270 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1271 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
1273 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
1274 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sepfile
, _ptr_sepfile
));
1278 ndr
->flags
= _flags_save_string
;
1281 uint32_t _flags_save_string
= ndr
->flags
;
1282 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1283 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
1284 if (_ptr_printprocessor
) {
1285 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
1286 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printprocessor
, _ptr_printprocessor
));
1288 r
->printprocessor
= NULL
;
1290 ndr
->flags
= _flags_save_string
;
1293 uint32_t _flags_save_string
= ndr
->flags
;
1294 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1295 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
1296 if (_ptr_datatype
) {
1297 NDR_PULL_ALLOC(ndr
, r
->datatype
);
1298 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->datatype
, _ptr_datatype
));
1302 ndr
->flags
= _flags_save_string
;
1305 uint32_t _flags_save_string
= ndr
->flags
;
1306 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1307 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
1308 if (_ptr_parameters
) {
1309 NDR_PULL_ALLOC(ndr
, r
->parameters
);
1310 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
1312 r
->parameters
= NULL
;
1314 ndr
->flags
= _flags_save_string
;
1316 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1318 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1319 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1323 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1324 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
1325 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
1326 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
1327 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
1328 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
1329 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
1330 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
1332 if (ndr_flags
& NDR_BUFFERS
) {
1334 uint32_t _flags_save_string
= ndr
->flags
;
1335 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1336 if (r
->servername
) {
1337 uint32_t _relative_save_offset
;
1338 _relative_save_offset
= ndr
->offset
;
1339 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
1340 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1341 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
1342 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
1343 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
1344 ndr
->offset
= _relative_save_offset
;
1346 ndr
->flags
= _flags_save_string
;
1349 uint32_t _flags_save_string
= ndr
->flags
;
1350 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1351 if (r
->printername
) {
1352 uint32_t _relative_save_offset
;
1353 _relative_save_offset
= ndr
->offset
;
1354 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1355 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1356 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1357 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1358 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1359 ndr
->offset
= _relative_save_offset
;
1361 ndr
->flags
= _flags_save_string
;
1364 uint32_t _flags_save_string
= ndr
->flags
;
1365 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1367 uint32_t _relative_save_offset
;
1368 _relative_save_offset
= ndr
->offset
;
1369 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sharename
));
1370 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1371 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
1372 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sharename
));
1373 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
1374 ndr
->offset
= _relative_save_offset
;
1376 ndr
->flags
= _flags_save_string
;
1379 uint32_t _flags_save_string
= ndr
->flags
;
1380 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1382 uint32_t _relative_save_offset
;
1383 _relative_save_offset
= ndr
->offset
;
1384 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
1385 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1386 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
1387 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
1388 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
1389 ndr
->offset
= _relative_save_offset
;
1391 ndr
->flags
= _flags_save_string
;
1394 uint32_t _flags_save_string
= ndr
->flags
;
1395 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1396 if (r
->drivername
) {
1397 uint32_t _relative_save_offset
;
1398 _relative_save_offset
= ndr
->offset
;
1399 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->drivername
));
1400 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1401 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
1402 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->drivername
));
1403 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
1404 ndr
->offset
= _relative_save_offset
;
1406 ndr
->flags
= _flags_save_string
;
1409 uint32_t _flags_save_string
= ndr
->flags
;
1410 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1412 uint32_t _relative_save_offset
;
1413 _relative_save_offset
= ndr
->offset
;
1414 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
1415 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1416 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
1417 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
1418 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
1419 ndr
->offset
= _relative_save_offset
;
1421 ndr
->flags
= _flags_save_string
;
1424 uint32_t _flags_save_string
= ndr
->flags
;
1425 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1427 uint32_t _relative_save_offset
;
1428 _relative_save_offset
= ndr
->offset
;
1429 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->location
));
1430 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1431 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
1432 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->location
));
1433 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
1434 ndr
->offset
= _relative_save_offset
;
1436 ndr
->flags
= _flags_save_string
;
1439 uint32_t _relative_save_offset
;
1440 _relative_save_offset
= ndr
->offset
;
1441 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
1442 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1443 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
1445 struct ndr_pull
*_ndr_devmode
;
1446 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
1447 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
1448 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
1450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
1451 ndr
->offset
= _relative_save_offset
;
1454 uint32_t _flags_save_string
= ndr
->flags
;
1455 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1457 uint32_t _relative_save_offset
;
1458 _relative_save_offset
= ndr
->offset
;
1459 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sepfile
));
1460 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1461 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
1462 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sepfile
));
1463 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
1464 ndr
->offset
= _relative_save_offset
;
1466 ndr
->flags
= _flags_save_string
;
1469 uint32_t _flags_save_string
= ndr
->flags
;
1470 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1471 if (r
->printprocessor
) {
1472 uint32_t _relative_save_offset
;
1473 _relative_save_offset
= ndr
->offset
;
1474 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printprocessor
));
1475 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1476 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
1477 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printprocessor
));
1478 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
1479 ndr
->offset
= _relative_save_offset
;
1481 ndr
->flags
= _flags_save_string
;
1484 uint32_t _flags_save_string
= ndr
->flags
;
1485 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1487 uint32_t _relative_save_offset
;
1488 _relative_save_offset
= ndr
->offset
;
1489 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->datatype
));
1490 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1491 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
1492 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->datatype
));
1493 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
1494 ndr
->offset
= _relative_save_offset
;
1496 ndr
->flags
= _flags_save_string
;
1499 uint32_t _flags_save_string
= ndr
->flags
;
1500 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1501 if (r
->parameters
) {
1502 uint32_t _relative_save_offset
;
1503 _relative_save_offset
= ndr
->offset
;
1504 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
1505 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1506 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
1507 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
1508 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
1509 ndr
->offset
= _relative_save_offset
;
1511 ndr
->flags
= _flags_save_string
;
1514 uint32_t _relative_save_offset
;
1515 _relative_save_offset
= ndr
->offset
;
1516 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
1517 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1518 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
1520 struct ndr_pull
*_ndr_secdesc
;
1521 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1522 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1523 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1525 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1526 ndr
->offset
= _relative_save_offset
;
1529 return NDR_ERR_SUCCESS
;
1532 _PUBLIC_
void ndr_print_spoolss_PrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo2
*r
)
1534 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo2");
1536 ndr_print_ptr(ndr
, "servername", r
->servername
);
1538 if (r
->servername
) {
1539 ndr_print_string(ndr
, "servername", r
->servername
);
1542 ndr_print_ptr(ndr
, "printername", r
->printername
);
1544 if (r
->printername
) {
1545 ndr_print_string(ndr
, "printername", r
->printername
);
1548 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
1551 ndr_print_string(ndr
, "sharename", r
->sharename
);
1554 ndr_print_ptr(ndr
, "portname", r
->portname
);
1557 ndr_print_string(ndr
, "portname", r
->portname
);
1560 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
1562 if (r
->drivername
) {
1563 ndr_print_string(ndr
, "drivername", r
->drivername
);
1566 ndr_print_ptr(ndr
, "comment", r
->comment
);
1569 ndr_print_string(ndr
, "comment", r
->comment
);
1572 ndr_print_ptr(ndr
, "location", r
->location
);
1575 ndr_print_string(ndr
, "location", r
->location
);
1578 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
1581 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
1584 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
1587 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
1590 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
1592 if (r
->printprocessor
) {
1593 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
1596 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
1599 ndr_print_string(ndr
, "datatype", r
->datatype
);
1602 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
1604 if (r
->parameters
) {
1605 ndr_print_string(ndr
, "parameters", r
->parameters
);
1608 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
1611 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
1614 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1615 ndr_print_uint32(ndr
, "priority", r
->priority
);
1616 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
1617 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
1618 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
1619 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
1620 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
1621 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
1625 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo3
*r
)
1627 if (ndr_flags
& NDR_SCALARS
) {
1628 NDR_CHECK(ndr_push_align(ndr
, 4));
1629 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
1631 if (ndr_flags
& NDR_BUFFERS
) {
1633 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
1635 struct ndr_push
*_ndr_secdesc
;
1636 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1637 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1638 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1642 return NDR_ERR_SUCCESS
;
1645 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo3
*r
)
1647 uint32_t _ptr_secdesc
;
1648 TALLOC_CTX
*_mem_save_secdesc_0
;
1649 if (ndr_flags
& NDR_SCALARS
) {
1650 NDR_CHECK(ndr_pull_align(ndr
, 4));
1651 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1653 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1654 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1659 if (ndr_flags
& NDR_BUFFERS
) {
1661 uint32_t _relative_save_offset
;
1662 _relative_save_offset
= ndr
->offset
;
1663 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
1664 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1665 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
1667 struct ndr_pull
*_ndr_secdesc
;
1668 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1669 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1670 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1672 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1673 ndr
->offset
= _relative_save_offset
;
1676 return NDR_ERR_SUCCESS
;
1679 _PUBLIC_
void ndr_print_spoolss_PrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo3
*r
)
1681 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo3");
1683 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
1686 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
1692 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo4
*r
)
1694 if (ndr_flags
& NDR_SCALARS
) {
1695 NDR_CHECK(ndr_push_align(ndr
, 4));
1697 uint32_t _flags_save_string
= ndr
->flags
;
1698 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1699 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
1700 ndr
->flags
= _flags_save_string
;
1703 uint32_t _flags_save_string
= ndr
->flags
;
1704 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1705 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
1706 ndr
->flags
= _flags_save_string
;
1708 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1710 if (ndr_flags
& NDR_BUFFERS
) {
1712 uint32_t _flags_save_string
= ndr
->flags
;
1713 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1714 if (r
->printername
) {
1715 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1716 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1718 ndr
->flags
= _flags_save_string
;
1721 uint32_t _flags_save_string
= ndr
->flags
;
1722 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1723 if (r
->servername
) {
1724 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
1725 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
1727 ndr
->flags
= _flags_save_string
;
1730 return NDR_ERR_SUCCESS
;
1733 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo4
*r
)
1735 uint32_t _ptr_printername
;
1736 TALLOC_CTX
*_mem_save_printername_0
;
1737 uint32_t _ptr_servername
;
1738 TALLOC_CTX
*_mem_save_servername_0
;
1739 if (ndr_flags
& NDR_SCALARS
) {
1740 NDR_CHECK(ndr_pull_align(ndr
, 4));
1742 uint32_t _flags_save_string
= ndr
->flags
;
1743 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1744 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1745 if (_ptr_printername
) {
1746 NDR_PULL_ALLOC(ndr
, r
->printername
);
1747 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1749 r
->printername
= NULL
;
1751 ndr
->flags
= _flags_save_string
;
1754 uint32_t _flags_save_string
= ndr
->flags
;
1755 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1756 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1757 if (_ptr_servername
) {
1758 NDR_PULL_ALLOC(ndr
, r
->servername
);
1759 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1761 r
->servername
= NULL
;
1763 ndr
->flags
= _flags_save_string
;
1765 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1767 if (ndr_flags
& NDR_BUFFERS
) {
1769 uint32_t _flags_save_string
= ndr
->flags
;
1770 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1771 if (r
->printername
) {
1772 uint32_t _relative_save_offset
;
1773 _relative_save_offset
= ndr
->offset
;
1774 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1775 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1776 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1777 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1778 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1779 ndr
->offset
= _relative_save_offset
;
1781 ndr
->flags
= _flags_save_string
;
1784 uint32_t _flags_save_string
= ndr
->flags
;
1785 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1786 if (r
->servername
) {
1787 uint32_t _relative_save_offset
;
1788 _relative_save_offset
= ndr
->offset
;
1789 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
1790 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1791 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
1792 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
1793 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
1794 ndr
->offset
= _relative_save_offset
;
1796 ndr
->flags
= _flags_save_string
;
1799 return NDR_ERR_SUCCESS
;
1802 _PUBLIC_
void ndr_print_spoolss_PrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo4
*r
)
1804 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo4");
1806 ndr_print_ptr(ndr
, "printername", r
->printername
);
1808 if (r
->printername
) {
1809 ndr_print_string(ndr
, "printername", r
->printername
);
1812 ndr_print_ptr(ndr
, "servername", r
->servername
);
1814 if (r
->servername
) {
1815 ndr_print_string(ndr
, "servername", r
->servername
);
1818 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1822 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo5
*r
)
1824 if (ndr_flags
& NDR_SCALARS
) {
1825 NDR_CHECK(ndr_push_align(ndr
, 4));
1827 uint32_t _flags_save_string
= ndr
->flags
;
1828 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1829 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
1830 ndr
->flags
= _flags_save_string
;
1833 uint32_t _flags_save_string
= ndr
->flags
;
1834 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1835 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
1836 ndr
->flags
= _flags_save_string
;
1838 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1839 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
1840 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
1842 if (ndr_flags
& NDR_BUFFERS
) {
1844 uint32_t _flags_save_string
= ndr
->flags
;
1845 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1846 if (r
->printername
) {
1847 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1848 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1850 ndr
->flags
= _flags_save_string
;
1853 uint32_t _flags_save_string
= ndr
->flags
;
1854 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1856 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->portname
));
1857 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
1859 ndr
->flags
= _flags_save_string
;
1862 return NDR_ERR_SUCCESS
;
1865 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo5
*r
)
1867 uint32_t _ptr_printername
;
1868 TALLOC_CTX
*_mem_save_printername_0
;
1869 uint32_t _ptr_portname
;
1870 TALLOC_CTX
*_mem_save_portname_0
;
1871 if (ndr_flags
& NDR_SCALARS
) {
1872 NDR_CHECK(ndr_pull_align(ndr
, 4));
1874 uint32_t _flags_save_string
= ndr
->flags
;
1875 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1876 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1877 if (_ptr_printername
) {
1878 NDR_PULL_ALLOC(ndr
, r
->printername
);
1879 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1881 r
->printername
= NULL
;
1883 ndr
->flags
= _flags_save_string
;
1886 uint32_t _flags_save_string
= ndr
->flags
;
1887 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1888 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
1889 if (_ptr_portname
) {
1890 NDR_PULL_ALLOC(ndr
, r
->portname
);
1891 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1895 ndr
->flags
= _flags_save_string
;
1897 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1898 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
1899 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
1901 if (ndr_flags
& NDR_BUFFERS
) {
1903 uint32_t _flags_save_string
= ndr
->flags
;
1904 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1905 if (r
->printername
) {
1906 uint32_t _relative_save_offset
;
1907 _relative_save_offset
= ndr
->offset
;
1908 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1909 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1910 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1911 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1912 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1913 ndr
->offset
= _relative_save_offset
;
1915 ndr
->flags
= _flags_save_string
;
1918 uint32_t _flags_save_string
= ndr
->flags
;
1919 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1921 uint32_t _relative_save_offset
;
1922 _relative_save_offset
= ndr
->offset
;
1923 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
1924 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1925 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
1926 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
1927 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
1928 ndr
->offset
= _relative_save_offset
;
1930 ndr
->flags
= _flags_save_string
;
1933 return NDR_ERR_SUCCESS
;
1936 _PUBLIC_
void ndr_print_spoolss_PrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo5
*r
)
1938 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo5");
1940 ndr_print_ptr(ndr
, "printername", r
->printername
);
1942 if (r
->printername
) {
1943 ndr_print_string(ndr
, "printername", r
->printername
);
1946 ndr_print_ptr(ndr
, "portname", r
->portname
);
1949 ndr_print_string(ndr
, "portname", r
->portname
);
1952 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1953 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
1954 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
1958 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo6
*r
)
1960 if (ndr_flags
& NDR_SCALARS
) {
1961 NDR_CHECK(ndr_push_align(ndr
, 4));
1962 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
1964 if (ndr_flags
& NDR_BUFFERS
) {
1966 return NDR_ERR_SUCCESS
;
1969 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo6
*r
)
1971 if (ndr_flags
& NDR_SCALARS
) {
1972 NDR_CHECK(ndr_pull_align(ndr
, 4));
1973 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
1975 if (ndr_flags
& NDR_BUFFERS
) {
1977 return NDR_ERR_SUCCESS
;
1980 _PUBLIC_
void ndr_print_spoolss_PrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo6
*r
)
1982 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo6");
1984 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
1988 static enum ndr_err_code
ndr_push_spoolss_DsPrintAction(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1991 return NDR_ERR_SUCCESS
;
1994 static enum ndr_err_code
ndr_pull_spoolss_DsPrintAction(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1997 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1999 return NDR_ERR_SUCCESS
;
2002 _PUBLIC_
void ndr_print_spoolss_DsPrintAction(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
2004 ndr_print_uint32(ndr
, name
, r
);
2006 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH
, r
);
2007 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE
, r
);
2008 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH
, r
);
2009 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH
, r
);
2010 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING
, r
);
2014 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo7
*r
)
2016 if (ndr_flags
& NDR_SCALARS
) {
2017 NDR_CHECK(ndr_push_align(ndr
, 4));
2019 uint32_t _flags_save_string
= ndr
->flags
;
2020 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2021 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->guid
));
2022 ndr
->flags
= _flags_save_string
;
2024 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
2026 if (ndr_flags
& NDR_BUFFERS
) {
2028 uint32_t _flags_save_string
= ndr
->flags
;
2029 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2031 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->guid
));
2032 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->guid
));
2034 ndr
->flags
= _flags_save_string
;
2037 return NDR_ERR_SUCCESS
;
2040 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo7
*r
)
2043 TALLOC_CTX
*_mem_save_guid_0
;
2044 if (ndr_flags
& NDR_SCALARS
) {
2045 NDR_CHECK(ndr_pull_align(ndr
, 4));
2047 uint32_t _flags_save_string
= ndr
->flags
;
2048 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2049 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
2051 NDR_PULL_ALLOC(ndr
, r
->guid
);
2052 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->guid
, _ptr_guid
));
2056 ndr
->flags
= _flags_save_string
;
2058 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
2060 if (ndr_flags
& NDR_BUFFERS
) {
2062 uint32_t _flags_save_string
= ndr
->flags
;
2063 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2065 uint32_t _relative_save_offset
;
2066 _relative_save_offset
= ndr
->offset
;
2067 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->guid
));
2068 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2069 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
2070 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->guid
));
2071 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
2072 ndr
->offset
= _relative_save_offset
;
2074 ndr
->flags
= _flags_save_string
;
2077 return NDR_ERR_SUCCESS
;
2080 _PUBLIC_
void ndr_print_spoolss_PrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo7
*r
)
2082 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo7");
2084 ndr_print_ptr(ndr
, "guid", r
->guid
);
2087 ndr_print_string(ndr
, "guid", r
->guid
);
2090 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
2094 static enum ndr_err_code
ndr_push_spoolss_DeviceModeInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceModeInfo
*r
)
2096 if (ndr_flags
& NDR_SCALARS
) {
2097 NDR_CHECK(ndr_push_align(ndr
, 4));
2098 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
2100 if (ndr_flags
& NDR_BUFFERS
) {
2102 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
2104 struct ndr_push
*_ndr_devmode
;
2105 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2106 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2107 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2111 return NDR_ERR_SUCCESS
;
2114 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceModeInfo
*r
)
2116 uint32_t _ptr_devmode
;
2117 TALLOC_CTX
*_mem_save_devmode_0
;
2118 if (ndr_flags
& NDR_SCALARS
) {
2119 NDR_CHECK(ndr_pull_align(ndr
, 4));
2120 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2122 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2123 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
2128 if (ndr_flags
& NDR_BUFFERS
) {
2130 uint32_t _relative_save_offset
;
2131 _relative_save_offset
= ndr
->offset
;
2132 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
2133 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2134 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2136 struct ndr_pull
*_ndr_devmode
;
2137 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2138 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2139 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2141 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2142 ndr
->offset
= _relative_save_offset
;
2145 return NDR_ERR_SUCCESS
;
2148 _PUBLIC_
void ndr_print_spoolss_DeviceModeInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceModeInfo
*r
)
2150 ndr_print_struct(ndr
, name
, "spoolss_DeviceModeInfo");
2152 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2155 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2161 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterInfo
*r
)
2163 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
2164 if (ndr_flags
& NDR_SCALARS
) {
2165 int level
= ndr_push_get_switch_value(ndr
, r
);
2168 NDR_CHECK(ndr_push_align(ndr
, 4));
2169 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2170 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2174 NDR_CHECK(ndr_push_align(ndr
, 4));
2175 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2176 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2180 NDR_CHECK(ndr_push_align(ndr
, 4));
2181 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2182 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2186 NDR_CHECK(ndr_push_align(ndr
, 4));
2187 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2188 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2192 NDR_CHECK(ndr_push_align(ndr
, 4));
2193 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2194 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2198 NDR_CHECK(ndr_push_align(ndr
, 4));
2199 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2200 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2204 NDR_CHECK(ndr_push_align(ndr
, 4));
2205 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2206 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2210 NDR_CHECK(ndr_push_align(ndr
, 4));
2211 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2212 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2216 NDR_CHECK(ndr_push_align(ndr
, 4));
2217 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2218 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2222 NDR_CHECK(ndr_push_align(ndr
, 4));
2223 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2224 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2232 if (ndr_flags
& NDR_BUFFERS
) {
2233 int level
= ndr_push_get_switch_value(ndr
, r
);
2234 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
2237 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2241 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2245 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2249 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2253 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2257 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2264 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2268 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2272 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2280 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2281 return NDR_ERR_SUCCESS
;
2284 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterInfo
*r
)
2286 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
2288 level
= ndr_pull_get_switch_value(ndr
, r
);
2289 if (ndr_flags
& NDR_SCALARS
) {
2292 NDR_CHECK(ndr_pull_align(ndr
, 4));
2293 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2294 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2298 NDR_CHECK(ndr_pull_align(ndr
, 4));
2299 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2300 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2304 NDR_CHECK(ndr_pull_align(ndr
, 4));
2305 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2306 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2310 NDR_CHECK(ndr_pull_align(ndr
, 4));
2311 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2312 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2316 NDR_CHECK(ndr_pull_align(ndr
, 4));
2317 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2318 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2322 NDR_CHECK(ndr_pull_align(ndr
, 4));
2323 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2324 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2328 NDR_CHECK(ndr_pull_align(ndr
, 4));
2329 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2330 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2334 NDR_CHECK(ndr_pull_align(ndr
, 4));
2335 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2336 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2340 NDR_CHECK(ndr_pull_align(ndr
, 4));
2341 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2342 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2346 NDR_CHECK(ndr_pull_align(ndr
, 4));
2347 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2348 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2356 if (ndr_flags
& NDR_BUFFERS
) {
2357 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
2360 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2364 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2368 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2372 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2376 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2380 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2387 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2391 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2395 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2403 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2404 return NDR_ERR_SUCCESS
;
2407 _PUBLIC_
void ndr_print_spoolss_PrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterInfo
*r
)
2410 level
= ndr_print_get_switch_value(ndr
, r
);
2411 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterInfo");
2414 ndr_print_spoolss_PrinterInfo0(ndr
, "info0", &r
->info0
);
2418 ndr_print_spoolss_PrinterInfo1(ndr
, "info1", &r
->info1
);
2422 ndr_print_spoolss_PrinterInfo2(ndr
, "info2", &r
->info2
);
2426 ndr_print_spoolss_PrinterInfo3(ndr
, "info3", &r
->info3
);
2430 ndr_print_spoolss_PrinterInfo4(ndr
, "info4", &r
->info4
);
2434 ndr_print_spoolss_PrinterInfo5(ndr
, "info5", &r
->info5
);
2438 ndr_print_spoolss_PrinterInfo6(ndr
, "info6", &r
->info6
);
2442 ndr_print_spoolss_PrinterInfo7(ndr
, "info7", &r
->info7
);
2446 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", &r
->info8
);
2450 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", &r
->info9
);
2459 static enum ndr_err_code
ndr_push_spoolss_DevmodeContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DevmodeContainer
*r
)
2461 if (ndr_flags
& NDR_SCALARS
) {
2462 NDR_CHECK(ndr_push_align(ndr
, 4));
2463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2464 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
2466 if (ndr_flags
& NDR_BUFFERS
) {
2469 struct ndr_push
*_ndr_devmode
;
2470 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2471 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2472 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2476 return NDR_ERR_SUCCESS
;
2479 static enum ndr_err_code
ndr_pull_spoolss_DevmodeContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DevmodeContainer
*r
)
2481 uint32_t _ptr_devmode
;
2482 TALLOC_CTX
*_mem_save_devmode_0
;
2483 if (ndr_flags
& NDR_SCALARS
) {
2484 NDR_CHECK(ndr_pull_align(ndr
, 4));
2485 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
2486 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2488 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2493 if (ndr_flags
& NDR_BUFFERS
) {
2495 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2496 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2498 struct ndr_pull
*_ndr_devmode
;
2499 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 4, r
->_ndr_size
));
2500 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2501 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 4, r
->_ndr_size
));
2503 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2506 return NDR_ERR_SUCCESS
;
2509 _PUBLIC_
void ndr_print_spoolss_DevmodeContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DevmodeContainer
*r
)
2511 ndr_print_struct(ndr
, name
, "spoolss_DevmodeContainer");
2513 ndr_print_uint32(ndr
, "_ndr_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?_ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
):r
->_ndr_size
);
2514 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2517 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2523 static enum ndr_err_code
ndr_push_spoolss_JobStatus(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
2525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
2526 return NDR_ERR_SUCCESS
;
2529 static enum ndr_err_code
ndr_pull_spoolss_JobStatus(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
2532 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
2534 return NDR_ERR_SUCCESS
;
2537 _PUBLIC_
void ndr_print_spoolss_JobStatus(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
2539 ndr_print_uint32(ndr
, name
, r
);
2541 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED
, r
);
2542 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR
, r
);
2543 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING
, r
);
2544 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING
, r
);
2545 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING
, r
);
2546 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE
, r
);
2547 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT
, r
);
2548 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED
, r
);
2549 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED
, r
);
2550 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ
, r
);
2551 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION
, r
);
2552 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART
, r
);
2553 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE
, r
);
2557 static enum ndr_err_code
ndr_push_spoolss_JobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo1
*r
)
2559 if (ndr_flags
& NDR_SCALARS
) {
2560 NDR_CHECK(ndr_push_align(ndr
, 4));
2561 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
2563 uint32_t _flags_save_string
= ndr
->flags
;
2564 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2565 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
2566 ndr
->flags
= _flags_save_string
;
2569 uint32_t _flags_save_string
= ndr
->flags
;
2570 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2571 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
2572 ndr
->flags
= _flags_save_string
;
2575 uint32_t _flags_save_string
= ndr
->flags
;
2576 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2577 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
2578 ndr
->flags
= _flags_save_string
;
2581 uint32_t _flags_save_string
= ndr
->flags
;
2582 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2583 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
2584 ndr
->flags
= _flags_save_string
;
2587 uint32_t _flags_save_string
= ndr
->flags
;
2588 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2589 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
2590 ndr
->flags
= _flags_save_string
;
2593 uint32_t _flags_save_string
= ndr
->flags
;
2594 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2595 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
2596 ndr
->flags
= _flags_save_string
;
2598 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
2599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
2600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
2601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
2602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
2603 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
2605 if (ndr_flags
& NDR_BUFFERS
) {
2607 uint32_t _flags_save_string
= ndr
->flags
;
2608 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2609 if (r
->printer_name
) {
2610 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
2611 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
2613 ndr
->flags
= _flags_save_string
;
2616 uint32_t _flags_save_string
= ndr
->flags
;
2617 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2618 if (r
->server_name
) {
2619 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
2620 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
2622 ndr
->flags
= _flags_save_string
;
2625 uint32_t _flags_save_string
= ndr
->flags
;
2626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2628 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
2629 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
2631 ndr
->flags
= _flags_save_string
;
2634 uint32_t _flags_save_string
= ndr
->flags
;
2635 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2636 if (r
->document_name
) {
2637 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
2638 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
2640 ndr
->flags
= _flags_save_string
;
2643 uint32_t _flags_save_string
= ndr
->flags
;
2644 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2646 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
2647 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
2649 ndr
->flags
= _flags_save_string
;
2652 uint32_t _flags_save_string
= ndr
->flags
;
2653 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2654 if (r
->text_status
) {
2655 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
2656 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
2658 ndr
->flags
= _flags_save_string
;
2661 return NDR_ERR_SUCCESS
;
2664 static enum ndr_err_code
ndr_pull_spoolss_JobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo1
*r
)
2666 uint32_t _ptr_printer_name
;
2667 TALLOC_CTX
*_mem_save_printer_name_0
;
2668 uint32_t _ptr_server_name
;
2669 TALLOC_CTX
*_mem_save_server_name_0
;
2670 uint32_t _ptr_user_name
;
2671 TALLOC_CTX
*_mem_save_user_name_0
;
2672 uint32_t _ptr_document_name
;
2673 TALLOC_CTX
*_mem_save_document_name_0
;
2674 uint32_t _ptr_data_type
;
2675 TALLOC_CTX
*_mem_save_data_type_0
;
2676 uint32_t _ptr_text_status
;
2677 TALLOC_CTX
*_mem_save_text_status_0
;
2678 if (ndr_flags
& NDR_SCALARS
) {
2679 NDR_CHECK(ndr_pull_align(ndr
, 4));
2680 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
2682 uint32_t _flags_save_string
= ndr
->flags
;
2683 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2684 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
2685 if (_ptr_printer_name
) {
2686 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
2687 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
2689 r
->printer_name
= NULL
;
2691 ndr
->flags
= _flags_save_string
;
2694 uint32_t _flags_save_string
= ndr
->flags
;
2695 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2696 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
2697 if (_ptr_server_name
) {
2698 NDR_PULL_ALLOC(ndr
, r
->server_name
);
2699 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
2701 r
->server_name
= NULL
;
2703 ndr
->flags
= _flags_save_string
;
2706 uint32_t _flags_save_string
= ndr
->flags
;
2707 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2708 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
2709 if (_ptr_user_name
) {
2710 NDR_PULL_ALLOC(ndr
, r
->user_name
);
2711 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
2713 r
->user_name
= NULL
;
2715 ndr
->flags
= _flags_save_string
;
2718 uint32_t _flags_save_string
= ndr
->flags
;
2719 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2720 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
2721 if (_ptr_document_name
) {
2722 NDR_PULL_ALLOC(ndr
, r
->document_name
);
2723 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
2725 r
->document_name
= NULL
;
2727 ndr
->flags
= _flags_save_string
;
2730 uint32_t _flags_save_string
= ndr
->flags
;
2731 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2732 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
2733 if (_ptr_data_type
) {
2734 NDR_PULL_ALLOC(ndr
, r
->data_type
);
2735 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
2737 r
->data_type
= NULL
;
2739 ndr
->flags
= _flags_save_string
;
2742 uint32_t _flags_save_string
= ndr
->flags
;
2743 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2744 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
2745 if (_ptr_text_status
) {
2746 NDR_PULL_ALLOC(ndr
, r
->text_status
);
2747 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
2749 r
->text_status
= NULL
;
2751 ndr
->flags
= _flags_save_string
;
2753 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
2754 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
2755 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
2756 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
2757 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
2758 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
2760 if (ndr_flags
& NDR_BUFFERS
) {
2762 uint32_t _flags_save_string
= ndr
->flags
;
2763 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2764 if (r
->printer_name
) {
2765 uint32_t _relative_save_offset
;
2766 _relative_save_offset
= ndr
->offset
;
2767 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
2768 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2769 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
2770 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
2771 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
2772 ndr
->offset
= _relative_save_offset
;
2774 ndr
->flags
= _flags_save_string
;
2777 uint32_t _flags_save_string
= ndr
->flags
;
2778 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2779 if (r
->server_name
) {
2780 uint32_t _relative_save_offset
;
2781 _relative_save_offset
= ndr
->offset
;
2782 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
2783 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2784 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
2785 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
2786 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
2787 ndr
->offset
= _relative_save_offset
;
2789 ndr
->flags
= _flags_save_string
;
2792 uint32_t _flags_save_string
= ndr
->flags
;
2793 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2795 uint32_t _relative_save_offset
;
2796 _relative_save_offset
= ndr
->offset
;
2797 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
2798 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2799 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
2800 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
2801 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
2802 ndr
->offset
= _relative_save_offset
;
2804 ndr
->flags
= _flags_save_string
;
2807 uint32_t _flags_save_string
= ndr
->flags
;
2808 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2809 if (r
->document_name
) {
2810 uint32_t _relative_save_offset
;
2811 _relative_save_offset
= ndr
->offset
;
2812 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
2813 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2814 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
2815 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
2816 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
2817 ndr
->offset
= _relative_save_offset
;
2819 ndr
->flags
= _flags_save_string
;
2822 uint32_t _flags_save_string
= ndr
->flags
;
2823 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2825 uint32_t _relative_save_offset
;
2826 _relative_save_offset
= ndr
->offset
;
2827 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
2828 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2829 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
2830 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
2831 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
2832 ndr
->offset
= _relative_save_offset
;
2834 ndr
->flags
= _flags_save_string
;
2837 uint32_t _flags_save_string
= ndr
->flags
;
2838 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2839 if (r
->text_status
) {
2840 uint32_t _relative_save_offset
;
2841 _relative_save_offset
= ndr
->offset
;
2842 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
2843 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2844 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
2845 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
2846 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
2847 ndr
->offset
= _relative_save_offset
;
2849 ndr
->flags
= _flags_save_string
;
2852 return NDR_ERR_SUCCESS
;
2855 _PUBLIC_
void ndr_print_spoolss_JobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo1
*r
)
2857 ndr_print_struct(ndr
, name
, "spoolss_JobInfo1");
2859 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
2860 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
2862 if (r
->printer_name
) {
2863 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
2866 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
2868 if (r
->server_name
) {
2869 ndr_print_string(ndr
, "server_name", r
->server_name
);
2872 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
2875 ndr_print_string(ndr
, "user_name", r
->user_name
);
2878 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
2880 if (r
->document_name
) {
2881 ndr_print_string(ndr
, "document_name", r
->document_name
);
2884 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
2887 ndr_print_string(ndr
, "data_type", r
->data_type
);
2890 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
2892 if (r
->text_status
) {
2893 ndr_print_string(ndr
, "text_status", r
->text_status
);
2896 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
2897 ndr_print_uint32(ndr
, "priority", r
->priority
);
2898 ndr_print_uint32(ndr
, "position", r
->position
);
2899 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
2900 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
2901 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
2905 static enum ndr_err_code
ndr_push_spoolss_JobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo2
*r
)
2907 if (ndr_flags
& NDR_SCALARS
) {
2908 NDR_CHECK(ndr_push_align(ndr
, 4));
2909 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
2911 uint32_t _flags_save_string
= ndr
->flags
;
2912 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2913 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
2914 ndr
->flags
= _flags_save_string
;
2917 uint32_t _flags_save_string
= ndr
->flags
;
2918 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2919 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
2920 ndr
->flags
= _flags_save_string
;
2923 uint32_t _flags_save_string
= ndr
->flags
;
2924 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2925 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
2926 ndr
->flags
= _flags_save_string
;
2929 uint32_t _flags_save_string
= ndr
->flags
;
2930 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2931 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
2932 ndr
->flags
= _flags_save_string
;
2935 uint32_t _flags_save_string
= ndr
->flags
;
2936 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2937 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
2938 ndr
->flags
= _flags_save_string
;
2941 uint32_t _flags_save_string
= ndr
->flags
;
2942 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2943 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
2944 ndr
->flags
= _flags_save_string
;
2947 uint32_t _flags_save_string
= ndr
->flags
;
2948 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2949 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
2950 ndr
->flags
= _flags_save_string
;
2953 uint32_t _flags_save_string
= ndr
->flags
;
2954 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2955 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
2956 ndr
->flags
= _flags_save_string
;
2959 uint32_t _flags_save_string
= ndr
->flags
;
2960 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2961 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
2962 ndr
->flags
= _flags_save_string
;
2964 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
2966 uint32_t _flags_save_string
= ndr
->flags
;
2967 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2968 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
2969 ndr
->flags
= _flags_save_string
;
2971 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
2972 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
2973 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
2974 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
2975 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
2976 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
2977 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
2978 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
2979 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
2980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
2981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
2983 if (ndr_flags
& NDR_BUFFERS
) {
2985 uint32_t _flags_save_string
= ndr
->flags
;
2986 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2987 if (r
->printer_name
) {
2988 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
2989 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
2991 ndr
->flags
= _flags_save_string
;
2994 uint32_t _flags_save_string
= ndr
->flags
;
2995 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2996 if (r
->server_name
) {
2997 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
2998 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3000 ndr
->flags
= _flags_save_string
;
3003 uint32_t _flags_save_string
= ndr
->flags
;
3004 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3006 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
3007 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3009 ndr
->flags
= _flags_save_string
;
3012 uint32_t _flags_save_string
= ndr
->flags
;
3013 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3014 if (r
->document_name
) {
3015 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
3016 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3018 ndr
->flags
= _flags_save_string
;
3021 uint32_t _flags_save_string
= ndr
->flags
;
3022 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3023 if (r
->notify_name
) {
3024 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->notify_name
));
3025 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
3027 ndr
->flags
= _flags_save_string
;
3030 uint32_t _flags_save_string
= ndr
->flags
;
3031 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3033 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
3034 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3036 ndr
->flags
= _flags_save_string
;
3039 uint32_t _flags_save_string
= ndr
->flags
;
3040 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3041 if (r
->print_processor
) {
3042 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
3043 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
3045 ndr
->flags
= _flags_save_string
;
3048 uint32_t _flags_save_string
= ndr
->flags
;
3049 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3050 if (r
->parameters
) {
3051 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
3052 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3054 ndr
->flags
= _flags_save_string
;
3057 uint32_t _flags_save_string
= ndr
->flags
;
3058 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3059 if (r
->driver_name
) {
3060 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
3061 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3063 ndr
->flags
= _flags_save_string
;
3066 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
3067 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3070 uint32_t _flags_save_string
= ndr
->flags
;
3071 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3072 if (r
->text_status
) {
3073 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
3074 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3076 ndr
->flags
= _flags_save_string
;
3079 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
3080 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3083 return NDR_ERR_SUCCESS
;
3086 static enum ndr_err_code
ndr_pull_spoolss_JobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo2
*r
)
3088 uint32_t _ptr_printer_name
;
3089 TALLOC_CTX
*_mem_save_printer_name_0
;
3090 uint32_t _ptr_server_name
;
3091 TALLOC_CTX
*_mem_save_server_name_0
;
3092 uint32_t _ptr_user_name
;
3093 TALLOC_CTX
*_mem_save_user_name_0
;
3094 uint32_t _ptr_document_name
;
3095 TALLOC_CTX
*_mem_save_document_name_0
;
3096 uint32_t _ptr_notify_name
;
3097 TALLOC_CTX
*_mem_save_notify_name_0
;
3098 uint32_t _ptr_data_type
;
3099 TALLOC_CTX
*_mem_save_data_type_0
;
3100 uint32_t _ptr_print_processor
;
3101 TALLOC_CTX
*_mem_save_print_processor_0
;
3102 uint32_t _ptr_parameters
;
3103 TALLOC_CTX
*_mem_save_parameters_0
;
3104 uint32_t _ptr_driver_name
;
3105 TALLOC_CTX
*_mem_save_driver_name_0
;
3106 uint32_t _ptr_devmode
;
3107 TALLOC_CTX
*_mem_save_devmode_0
;
3108 uint32_t _ptr_text_status
;
3109 TALLOC_CTX
*_mem_save_text_status_0
;
3110 uint32_t _ptr_secdesc
;
3111 TALLOC_CTX
*_mem_save_secdesc_0
;
3112 if (ndr_flags
& NDR_SCALARS
) {
3113 NDR_CHECK(ndr_pull_align(ndr
, 4));
3114 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3116 uint32_t _flags_save_string
= ndr
->flags
;
3117 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3118 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3119 if (_ptr_printer_name
) {
3120 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3121 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3123 r
->printer_name
= NULL
;
3125 ndr
->flags
= _flags_save_string
;
3128 uint32_t _flags_save_string
= ndr
->flags
;
3129 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3130 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3131 if (_ptr_server_name
) {
3132 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3133 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3135 r
->server_name
= NULL
;
3137 ndr
->flags
= _flags_save_string
;
3140 uint32_t _flags_save_string
= ndr
->flags
;
3141 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3142 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3143 if (_ptr_user_name
) {
3144 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3145 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3147 r
->user_name
= NULL
;
3149 ndr
->flags
= _flags_save_string
;
3152 uint32_t _flags_save_string
= ndr
->flags
;
3153 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3154 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3155 if (_ptr_document_name
) {
3156 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3157 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3159 r
->document_name
= NULL
;
3161 ndr
->flags
= _flags_save_string
;
3164 uint32_t _flags_save_string
= ndr
->flags
;
3165 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3166 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
3167 if (_ptr_notify_name
) {
3168 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
3169 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
3171 r
->notify_name
= NULL
;
3173 ndr
->flags
= _flags_save_string
;
3176 uint32_t _flags_save_string
= ndr
->flags
;
3177 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3178 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3179 if (_ptr_data_type
) {
3180 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3181 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3183 r
->data_type
= NULL
;
3185 ndr
->flags
= _flags_save_string
;
3188 uint32_t _flags_save_string
= ndr
->flags
;
3189 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3190 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
3191 if (_ptr_print_processor
) {
3192 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
3193 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
3195 r
->print_processor
= NULL
;
3197 ndr
->flags
= _flags_save_string
;
3200 uint32_t _flags_save_string
= ndr
->flags
;
3201 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3202 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
3203 if (_ptr_parameters
) {
3204 NDR_PULL_ALLOC(ndr
, r
->parameters
);
3205 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
3207 r
->parameters
= NULL
;
3209 ndr
->flags
= _flags_save_string
;
3212 uint32_t _flags_save_string
= ndr
->flags
;
3213 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3214 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
3215 if (_ptr_driver_name
) {
3216 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
3217 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
3219 r
->driver_name
= NULL
;
3221 ndr
->flags
= _flags_save_string
;
3223 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3225 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3226 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
3231 uint32_t _flags_save_string
= ndr
->flags
;
3232 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3233 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3234 if (_ptr_text_status
) {
3235 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3236 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3238 r
->text_status
= NULL
;
3240 ndr
->flags
= _flags_save_string
;
3242 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
3244 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
3245 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
3249 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3250 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3251 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3252 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
3253 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
3254 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3255 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
3256 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3257 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
3258 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3260 if (ndr_flags
& NDR_BUFFERS
) {
3262 uint32_t _flags_save_string
= ndr
->flags
;
3263 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3264 if (r
->printer_name
) {
3265 uint32_t _relative_save_offset
;
3266 _relative_save_offset
= ndr
->offset
;
3267 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3268 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3269 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3270 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3271 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3272 ndr
->offset
= _relative_save_offset
;
3274 ndr
->flags
= _flags_save_string
;
3277 uint32_t _flags_save_string
= ndr
->flags
;
3278 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3279 if (r
->server_name
) {
3280 uint32_t _relative_save_offset
;
3281 _relative_save_offset
= ndr
->offset
;
3282 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3283 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3284 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3285 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3286 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3287 ndr
->offset
= _relative_save_offset
;
3289 ndr
->flags
= _flags_save_string
;
3292 uint32_t _flags_save_string
= ndr
->flags
;
3293 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3295 uint32_t _relative_save_offset
;
3296 _relative_save_offset
= ndr
->offset
;
3297 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3298 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3299 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3300 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3301 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3302 ndr
->offset
= _relative_save_offset
;
3304 ndr
->flags
= _flags_save_string
;
3307 uint32_t _flags_save_string
= ndr
->flags
;
3308 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3309 if (r
->document_name
) {
3310 uint32_t _relative_save_offset
;
3311 _relative_save_offset
= ndr
->offset
;
3312 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3313 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3314 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3315 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3316 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3317 ndr
->offset
= _relative_save_offset
;
3319 ndr
->flags
= _flags_save_string
;
3322 uint32_t _flags_save_string
= ndr
->flags
;
3323 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3324 if (r
->notify_name
) {
3325 uint32_t _relative_save_offset
;
3326 _relative_save_offset
= ndr
->offset
;
3327 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
3328 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3329 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
3330 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
3331 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
3332 ndr
->offset
= _relative_save_offset
;
3334 ndr
->flags
= _flags_save_string
;
3337 uint32_t _flags_save_string
= ndr
->flags
;
3338 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3340 uint32_t _relative_save_offset
;
3341 _relative_save_offset
= ndr
->offset
;
3342 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
3343 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3344 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
3345 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
3346 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
3347 ndr
->offset
= _relative_save_offset
;
3349 ndr
->flags
= _flags_save_string
;
3352 uint32_t _flags_save_string
= ndr
->flags
;
3353 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3354 if (r
->print_processor
) {
3355 uint32_t _relative_save_offset
;
3356 _relative_save_offset
= ndr
->offset
;
3357 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
3358 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3359 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
3360 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
3361 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
3362 ndr
->offset
= _relative_save_offset
;
3364 ndr
->flags
= _flags_save_string
;
3367 uint32_t _flags_save_string
= ndr
->flags
;
3368 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3369 if (r
->parameters
) {
3370 uint32_t _relative_save_offset
;
3371 _relative_save_offset
= ndr
->offset
;
3372 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
3373 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3374 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
3375 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
3376 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
3377 ndr
->offset
= _relative_save_offset
;
3379 ndr
->flags
= _flags_save_string
;
3382 uint32_t _flags_save_string
= ndr
->flags
;
3383 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3384 if (r
->driver_name
) {
3385 uint32_t _relative_save_offset
;
3386 _relative_save_offset
= ndr
->offset
;
3387 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
3388 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3389 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
3390 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
3391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
3392 ndr
->offset
= _relative_save_offset
;
3394 ndr
->flags
= _flags_save_string
;
3397 uint32_t _relative_save_offset
;
3398 _relative_save_offset
= ndr
->offset
;
3399 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
3400 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3401 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
3402 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3403 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
3404 ndr
->offset
= _relative_save_offset
;
3407 uint32_t _flags_save_string
= ndr
->flags
;
3408 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3409 if (r
->text_status
) {
3410 uint32_t _relative_save_offset
;
3411 _relative_save_offset
= ndr
->offset
;
3412 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
3413 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3414 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
3415 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
3416 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
3417 ndr
->offset
= _relative_save_offset
;
3419 ndr
->flags
= _flags_save_string
;
3422 uint32_t _relative_save_offset
;
3423 _relative_save_offset
= ndr
->offset
;
3424 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
3425 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3426 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
3427 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3428 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
3429 ndr
->offset
= _relative_save_offset
;
3432 return NDR_ERR_SUCCESS
;
3435 _PUBLIC_
void ndr_print_spoolss_JobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo2
*r
)
3437 ndr_print_struct(ndr
, name
, "spoolss_JobInfo2");
3439 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3440 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
3442 if (r
->printer_name
) {
3443 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
3446 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
3448 if (r
->server_name
) {
3449 ndr_print_string(ndr
, "server_name", r
->server_name
);
3452 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
3455 ndr_print_string(ndr
, "user_name", r
->user_name
);
3458 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
3460 if (r
->document_name
) {
3461 ndr_print_string(ndr
, "document_name", r
->document_name
);
3464 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
3466 if (r
->notify_name
) {
3467 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
3470 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
3473 ndr_print_string(ndr
, "data_type", r
->data_type
);
3476 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
3478 if (r
->print_processor
) {
3479 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
3482 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
3484 if (r
->parameters
) {
3485 ndr_print_string(ndr
, "parameters", r
->parameters
);
3488 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
3490 if (r
->driver_name
) {
3491 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
3494 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
3497 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
3500 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
3502 if (r
->text_status
) {
3503 ndr_print_string(ndr
, "text_status", r
->text_status
);
3506 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
3509 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
3512 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
3513 ndr_print_uint32(ndr
, "priority", r
->priority
);
3514 ndr_print_uint32(ndr
, "position", r
->position
);
3515 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
3516 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
3517 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
3518 ndr_print_uint32(ndr
, "size", r
->size
);
3519 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
3520 ndr_print_uint32(ndr
, "time", r
->time
);
3521 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
3525 static enum ndr_err_code
ndr_push_spoolss_JobInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo3
*r
)
3527 if (ndr_flags
& NDR_SCALARS
) {
3528 NDR_CHECK(ndr_push_align(ndr
, 4));
3529 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3530 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->next_job_id
));
3531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
3533 if (ndr_flags
& NDR_BUFFERS
) {
3535 return NDR_ERR_SUCCESS
;
3538 static enum ndr_err_code
ndr_pull_spoolss_JobInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo3
*r
)
3540 if (ndr_flags
& NDR_SCALARS
) {
3541 NDR_CHECK(ndr_pull_align(ndr
, 4));
3542 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3543 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->next_job_id
));
3544 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
3546 if (ndr_flags
& NDR_BUFFERS
) {
3548 return NDR_ERR_SUCCESS
;
3551 _PUBLIC_
void ndr_print_spoolss_JobInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo3
*r
)
3553 ndr_print_struct(ndr
, name
, "spoolss_JobInfo3");
3555 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3556 ndr_print_uint32(ndr
, "next_job_id", r
->next_job_id
);
3557 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
3561 static enum ndr_err_code
ndr_push_spoolss_JobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo4
*r
)
3563 if (ndr_flags
& NDR_SCALARS
) {
3564 NDR_CHECK(ndr_push_align(ndr
, 4));
3565 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3567 uint32_t _flags_save_string
= ndr
->flags
;
3568 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3569 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
3570 ndr
->flags
= _flags_save_string
;
3573 uint32_t _flags_save_string
= ndr
->flags
;
3574 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3575 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
3576 ndr
->flags
= _flags_save_string
;
3579 uint32_t _flags_save_string
= ndr
->flags
;
3580 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3581 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
3582 ndr
->flags
= _flags_save_string
;
3585 uint32_t _flags_save_string
= ndr
->flags
;
3586 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3587 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
3588 ndr
->flags
= _flags_save_string
;
3591 uint32_t _flags_save_string
= ndr
->flags
;
3592 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3593 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
3594 ndr
->flags
= _flags_save_string
;
3597 uint32_t _flags_save_string
= ndr
->flags
;
3598 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3599 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3600 ndr
->flags
= _flags_save_string
;
3603 uint32_t _flags_save_string
= ndr
->flags
;
3604 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3605 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
3606 ndr
->flags
= _flags_save_string
;
3609 uint32_t _flags_save_string
= ndr
->flags
;
3610 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3611 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
3612 ndr
->flags
= _flags_save_string
;
3615 uint32_t _flags_save_string
= ndr
->flags
;
3616 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3617 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
3618 ndr
->flags
= _flags_save_string
;
3620 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
3622 uint32_t _flags_save_string
= ndr
->flags
;
3623 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3624 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3625 ndr
->flags
= _flags_save_string
;
3627 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
3628 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3629 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3630 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3631 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
3632 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
3633 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3634 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
3635 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3636 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
3637 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3638 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
3640 if (ndr_flags
& NDR_BUFFERS
) {
3642 uint32_t _flags_save_string
= ndr
->flags
;
3643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3644 if (r
->printer_name
) {
3645 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
3646 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
3648 ndr
->flags
= _flags_save_string
;
3651 uint32_t _flags_save_string
= ndr
->flags
;
3652 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3653 if (r
->server_name
) {
3654 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
3655 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3657 ndr
->flags
= _flags_save_string
;
3660 uint32_t _flags_save_string
= ndr
->flags
;
3661 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3663 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
3664 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3666 ndr
->flags
= _flags_save_string
;
3669 uint32_t _flags_save_string
= ndr
->flags
;
3670 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3671 if (r
->document_name
) {
3672 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
3673 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3675 ndr
->flags
= _flags_save_string
;
3678 uint32_t _flags_save_string
= ndr
->flags
;
3679 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3680 if (r
->notify_name
) {
3681 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->notify_name
));
3682 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
3684 ndr
->flags
= _flags_save_string
;
3687 uint32_t _flags_save_string
= ndr
->flags
;
3688 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3690 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
3691 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3693 ndr
->flags
= _flags_save_string
;
3696 uint32_t _flags_save_string
= ndr
->flags
;
3697 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3698 if (r
->print_processor
) {
3699 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
3700 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
3702 ndr
->flags
= _flags_save_string
;
3705 uint32_t _flags_save_string
= ndr
->flags
;
3706 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3707 if (r
->parameters
) {
3708 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
3709 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3711 ndr
->flags
= _flags_save_string
;
3714 uint32_t _flags_save_string
= ndr
->flags
;
3715 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3716 if (r
->driver_name
) {
3717 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
3718 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3720 ndr
->flags
= _flags_save_string
;
3723 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
3724 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3727 uint32_t _flags_save_string
= ndr
->flags
;
3728 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3729 if (r
->text_status
) {
3730 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
3731 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3733 ndr
->flags
= _flags_save_string
;
3736 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
3737 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3740 return NDR_ERR_SUCCESS
;
3743 static enum ndr_err_code
ndr_pull_spoolss_JobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo4
*r
)
3745 uint32_t _ptr_printer_name
;
3746 TALLOC_CTX
*_mem_save_printer_name_0
;
3747 uint32_t _ptr_server_name
;
3748 TALLOC_CTX
*_mem_save_server_name_0
;
3749 uint32_t _ptr_user_name
;
3750 TALLOC_CTX
*_mem_save_user_name_0
;
3751 uint32_t _ptr_document_name
;
3752 TALLOC_CTX
*_mem_save_document_name_0
;
3753 uint32_t _ptr_notify_name
;
3754 TALLOC_CTX
*_mem_save_notify_name_0
;
3755 uint32_t _ptr_data_type
;
3756 TALLOC_CTX
*_mem_save_data_type_0
;
3757 uint32_t _ptr_print_processor
;
3758 TALLOC_CTX
*_mem_save_print_processor_0
;
3759 uint32_t _ptr_parameters
;
3760 TALLOC_CTX
*_mem_save_parameters_0
;
3761 uint32_t _ptr_driver_name
;
3762 TALLOC_CTX
*_mem_save_driver_name_0
;
3763 uint32_t _ptr_devmode
;
3764 TALLOC_CTX
*_mem_save_devmode_0
;
3765 uint32_t _ptr_text_status
;
3766 TALLOC_CTX
*_mem_save_text_status_0
;
3767 uint32_t _ptr_secdesc
;
3768 TALLOC_CTX
*_mem_save_secdesc_0
;
3769 if (ndr_flags
& NDR_SCALARS
) {
3770 NDR_CHECK(ndr_pull_align(ndr
, 4));
3771 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3773 uint32_t _flags_save_string
= ndr
->flags
;
3774 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3775 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3776 if (_ptr_printer_name
) {
3777 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3778 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3780 r
->printer_name
= NULL
;
3782 ndr
->flags
= _flags_save_string
;
3785 uint32_t _flags_save_string
= ndr
->flags
;
3786 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3787 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3788 if (_ptr_server_name
) {
3789 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3790 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3792 r
->server_name
= NULL
;
3794 ndr
->flags
= _flags_save_string
;
3797 uint32_t _flags_save_string
= ndr
->flags
;
3798 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3799 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3800 if (_ptr_user_name
) {
3801 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3802 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3804 r
->user_name
= NULL
;
3806 ndr
->flags
= _flags_save_string
;
3809 uint32_t _flags_save_string
= ndr
->flags
;
3810 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3811 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3812 if (_ptr_document_name
) {
3813 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3814 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3816 r
->document_name
= NULL
;
3818 ndr
->flags
= _flags_save_string
;
3821 uint32_t _flags_save_string
= ndr
->flags
;
3822 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3823 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
3824 if (_ptr_notify_name
) {
3825 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
3826 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
3828 r
->notify_name
= NULL
;
3830 ndr
->flags
= _flags_save_string
;
3833 uint32_t _flags_save_string
= ndr
->flags
;
3834 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3835 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3836 if (_ptr_data_type
) {
3837 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3838 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3840 r
->data_type
= NULL
;
3842 ndr
->flags
= _flags_save_string
;
3845 uint32_t _flags_save_string
= ndr
->flags
;
3846 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3847 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
3848 if (_ptr_print_processor
) {
3849 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
3850 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
3852 r
->print_processor
= NULL
;
3854 ndr
->flags
= _flags_save_string
;
3857 uint32_t _flags_save_string
= ndr
->flags
;
3858 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3859 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
3860 if (_ptr_parameters
) {
3861 NDR_PULL_ALLOC(ndr
, r
->parameters
);
3862 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
3864 r
->parameters
= NULL
;
3866 ndr
->flags
= _flags_save_string
;
3869 uint32_t _flags_save_string
= ndr
->flags
;
3870 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3871 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
3872 if (_ptr_driver_name
) {
3873 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
3874 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
3876 r
->driver_name
= NULL
;
3878 ndr
->flags
= _flags_save_string
;
3880 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3882 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3883 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
3888 uint32_t _flags_save_string
= ndr
->flags
;
3889 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3890 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3891 if (_ptr_text_status
) {
3892 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3893 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3895 r
->text_status
= NULL
;
3897 ndr
->flags
= _flags_save_string
;
3899 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
3901 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
3902 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
3906 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3907 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3908 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3909 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
3910 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
3911 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3912 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
3913 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3914 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
3915 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3916 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
3918 if (ndr_flags
& NDR_BUFFERS
) {
3920 uint32_t _flags_save_string
= ndr
->flags
;
3921 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3922 if (r
->printer_name
) {
3923 uint32_t _relative_save_offset
;
3924 _relative_save_offset
= ndr
->offset
;
3925 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3926 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3927 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3928 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3929 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3930 ndr
->offset
= _relative_save_offset
;
3932 ndr
->flags
= _flags_save_string
;
3935 uint32_t _flags_save_string
= ndr
->flags
;
3936 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3937 if (r
->server_name
) {
3938 uint32_t _relative_save_offset
;
3939 _relative_save_offset
= ndr
->offset
;
3940 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3941 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3942 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3943 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3944 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3945 ndr
->offset
= _relative_save_offset
;
3947 ndr
->flags
= _flags_save_string
;
3950 uint32_t _flags_save_string
= ndr
->flags
;
3951 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3953 uint32_t _relative_save_offset
;
3954 _relative_save_offset
= ndr
->offset
;
3955 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3956 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3957 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3958 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3960 ndr
->offset
= _relative_save_offset
;
3962 ndr
->flags
= _flags_save_string
;
3965 uint32_t _flags_save_string
= ndr
->flags
;
3966 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3967 if (r
->document_name
) {
3968 uint32_t _relative_save_offset
;
3969 _relative_save_offset
= ndr
->offset
;
3970 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3971 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3972 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3973 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3974 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3975 ndr
->offset
= _relative_save_offset
;
3977 ndr
->flags
= _flags_save_string
;
3980 uint32_t _flags_save_string
= ndr
->flags
;
3981 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3982 if (r
->notify_name
) {
3983 uint32_t _relative_save_offset
;
3984 _relative_save_offset
= ndr
->offset
;
3985 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
3986 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3987 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
3988 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
3989 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
3990 ndr
->offset
= _relative_save_offset
;
3992 ndr
->flags
= _flags_save_string
;
3995 uint32_t _flags_save_string
= ndr
->flags
;
3996 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3998 uint32_t _relative_save_offset
;
3999 _relative_save_offset
= ndr
->offset
;
4000 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
4001 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4002 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4003 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
4004 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4005 ndr
->offset
= _relative_save_offset
;
4007 ndr
->flags
= _flags_save_string
;
4010 uint32_t _flags_save_string
= ndr
->flags
;
4011 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4012 if (r
->print_processor
) {
4013 uint32_t _relative_save_offset
;
4014 _relative_save_offset
= ndr
->offset
;
4015 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
4016 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4017 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
4018 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
4019 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
4020 ndr
->offset
= _relative_save_offset
;
4022 ndr
->flags
= _flags_save_string
;
4025 uint32_t _flags_save_string
= ndr
->flags
;
4026 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4027 if (r
->parameters
) {
4028 uint32_t _relative_save_offset
;
4029 _relative_save_offset
= ndr
->offset
;
4030 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
4031 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4032 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
4033 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
4034 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
4035 ndr
->offset
= _relative_save_offset
;
4037 ndr
->flags
= _flags_save_string
;
4040 uint32_t _flags_save_string
= ndr
->flags
;
4041 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4042 if (r
->driver_name
) {
4043 uint32_t _relative_save_offset
;
4044 _relative_save_offset
= ndr
->offset
;
4045 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
4046 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4047 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
4048 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
4049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
4050 ndr
->offset
= _relative_save_offset
;
4052 ndr
->flags
= _flags_save_string
;
4055 uint32_t _relative_save_offset
;
4056 _relative_save_offset
= ndr
->offset
;
4057 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
4058 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4059 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
4060 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
4061 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
4062 ndr
->offset
= _relative_save_offset
;
4065 uint32_t _flags_save_string
= ndr
->flags
;
4066 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4067 if (r
->text_status
) {
4068 uint32_t _relative_save_offset
;
4069 _relative_save_offset
= ndr
->offset
;
4070 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
4071 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4072 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4073 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
4074 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4075 ndr
->offset
= _relative_save_offset
;
4077 ndr
->flags
= _flags_save_string
;
4080 uint32_t _relative_save_offset
;
4081 _relative_save_offset
= ndr
->offset
;
4082 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
4083 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4084 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
4085 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4086 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
4087 ndr
->offset
= _relative_save_offset
;
4090 return NDR_ERR_SUCCESS
;
4093 _PUBLIC_
void ndr_print_spoolss_JobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo4
*r
)
4095 ndr_print_struct(ndr
, name
, "spoolss_JobInfo4");
4097 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4098 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4100 if (r
->printer_name
) {
4101 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4104 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4106 if (r
->server_name
) {
4107 ndr_print_string(ndr
, "server_name", r
->server_name
);
4110 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4113 ndr_print_string(ndr
, "user_name", r
->user_name
);
4116 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4118 if (r
->document_name
) {
4119 ndr_print_string(ndr
, "document_name", r
->document_name
);
4122 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
4124 if (r
->notify_name
) {
4125 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
4128 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4131 ndr_print_string(ndr
, "data_type", r
->data_type
);
4134 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
4136 if (r
->print_processor
) {
4137 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
4140 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
4142 if (r
->parameters
) {
4143 ndr_print_string(ndr
, "parameters", r
->parameters
);
4146 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
4148 if (r
->driver_name
) {
4149 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
4152 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
4155 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
4158 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4160 if (r
->text_status
) {
4161 ndr_print_string(ndr
, "text_status", r
->text_status
);
4164 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
4167 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
4170 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4171 ndr_print_uint32(ndr
, "priority", r
->priority
);
4172 ndr_print_uint32(ndr
, "position", r
->position
);
4173 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
4174 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
4175 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4176 ndr_print_uint32(ndr
, "size", r
->size
);
4177 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4178 ndr_print_uint32(ndr
, "time", r
->time
);
4179 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4180 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
4184 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_JobInfo
*r
)
4186 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
4187 if (ndr_flags
& NDR_SCALARS
) {
4188 int level
= ndr_push_get_switch_value(ndr
, r
);
4191 NDR_CHECK(ndr_push_align(ndr
, 4));
4192 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4193 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4197 NDR_CHECK(ndr_push_align(ndr
, 4));
4198 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4199 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4203 NDR_CHECK(ndr_push_align(ndr
, 4));
4204 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4205 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4209 NDR_CHECK(ndr_push_align(ndr
, 4));
4210 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4211 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4219 if (ndr_flags
& NDR_BUFFERS
) {
4220 int level
= ndr_push_get_switch_value(ndr
, r
);
4221 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
4224 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4228 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4235 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4243 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4244 return NDR_ERR_SUCCESS
;
4247 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_JobInfo
*r
)
4249 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
4251 level
= ndr_pull_get_switch_value(ndr
, r
);
4252 if (ndr_flags
& NDR_SCALARS
) {
4255 NDR_CHECK(ndr_pull_align(ndr
, 4));
4256 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4257 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4261 NDR_CHECK(ndr_pull_align(ndr
, 4));
4262 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4263 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4267 NDR_CHECK(ndr_pull_align(ndr
, 4));
4268 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4269 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4273 NDR_CHECK(ndr_pull_align(ndr
, 4));
4274 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4275 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4283 if (ndr_flags
& NDR_BUFFERS
) {
4284 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
4287 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4291 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4298 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4306 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4307 return NDR_ERR_SUCCESS
;
4310 _PUBLIC_
void ndr_print_spoolss_JobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_JobInfo
*r
)
4313 level
= ndr_print_get_switch_value(ndr
, r
);
4314 ndr_print_union(ndr
, name
, level
, "spoolss_JobInfo");
4317 ndr_print_spoolss_JobInfo1(ndr
, "info1", &r
->info1
);
4321 ndr_print_spoolss_JobInfo2(ndr
, "info2", &r
->info2
);
4325 ndr_print_spoolss_JobInfo3(ndr
, "info3", &r
->info3
);
4329 ndr_print_spoolss_JobInfo4(ndr
, "info4", &r
->info4
);
4338 static enum ndr_err_code
ndr_push_spoolss_JobInfoContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfoContainer
*r
)
4340 if (ndr_flags
& NDR_SCALARS
) {
4341 NDR_CHECK(ndr_push_align(ndr
, 4));
4342 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
4343 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
4344 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->info
));
4346 if (ndr_flags
& NDR_BUFFERS
) {
4347 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
4349 return NDR_ERR_SUCCESS
;
4352 static enum ndr_err_code
ndr_pull_spoolss_JobInfoContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfoContainer
*r
)
4354 if (ndr_flags
& NDR_SCALARS
) {
4355 NDR_CHECK(ndr_pull_align(ndr
, 4));
4356 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
4357 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
4358 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->info
));
4360 if (ndr_flags
& NDR_BUFFERS
) {
4361 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
4363 return NDR_ERR_SUCCESS
;
4366 _PUBLIC_
void ndr_print_spoolss_JobInfoContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfoContainer
*r
)
4368 ndr_print_struct(ndr
, name
, "spoolss_JobInfoContainer");
4370 ndr_print_uint32(ndr
, "level", r
->level
);
4371 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
4372 ndr_print_spoolss_JobInfo(ndr
, "info", &r
->info
);
4376 static enum ndr_err_code
ndr_push_spoolss_JobControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobControl r
)
4378 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
4379 return NDR_ERR_SUCCESS
;
4382 static enum ndr_err_code
ndr_pull_spoolss_JobControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobControl
*r
)
4385 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
4387 return NDR_ERR_SUCCESS
;
4390 _PUBLIC_
void ndr_print_spoolss_JobControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobControl r
)
4392 const char *val
= NULL
;
4395 case SPOOLSS_JOB_CONTROL_PAUSE
: val
= "SPOOLSS_JOB_CONTROL_PAUSE"; break;
4396 case SPOOLSS_JOB_CONTROL_RESUME
: val
= "SPOOLSS_JOB_CONTROL_RESUME"; break;
4397 case SPOOLSS_JOB_CONTROL_CANCEL
: val
= "SPOOLSS_JOB_CONTROL_CANCEL"; break;
4398 case SPOOLSS_JOB_CONTROL_RESTART
: val
= "SPOOLSS_JOB_CONTROL_RESTART"; break;
4399 case SPOOLSS_JOB_CONTROL_DELETE
: val
= "SPOOLSS_JOB_CONTROL_DELETE"; break;
4400 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER
: val
= "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
4401 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED
: val
= "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
4402 case SPOOLSS_JOB_CONTROL_RETAIN
: val
= "SPOOLSS_JOB_CONTROL_RETAIN"; break;
4403 case SPOOLSS_JOB_CONTROL_RELEASE
: val
= "SPOOLSS_JOB_CONTROL_RELEASE"; break;
4405 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
4408 static enum ndr_err_code
ndr_push_spoolss_PrinterControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrinterControl r
)
4410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
4411 return NDR_ERR_SUCCESS
;
4414 static enum ndr_err_code
ndr_pull_spoolss_PrinterControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrinterControl
*r
)
4417 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
4419 return NDR_ERR_SUCCESS
;
4422 _PUBLIC_
void ndr_print_spoolss_PrinterControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrinterControl r
)
4424 const char *val
= NULL
;
4427 case SPOOLSS_PRINTER_CONTROL_UNPAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
4428 case SPOOLSS_PRINTER_CONTROL_PAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
4429 case SPOOLSS_PRINTER_CONTROL_RESUME
: val
= "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
4430 case SPOOLSS_PRINTER_CONTROL_PURGE
: val
= "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
4431 case SPOOLSS_PRINTER_CONTROL_SET_STATUS
: val
= "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
4433 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
4436 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo0
*r
)
4438 if (ndr_flags
& NDR_SCALARS
) {
4439 NDR_CHECK(ndr_push_align(ndr
, 4));
4440 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
4441 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
4442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
4443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
4444 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
4445 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
4446 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
4447 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4448 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
4449 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
4450 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
4451 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
4452 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
4453 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
4454 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
4455 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_error
));
4456 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
4457 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
4458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
4459 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
4460 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
4461 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->status
));
4462 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
4463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
4464 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
4465 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
4466 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
4467 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
4468 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
4470 if (ndr_flags
& NDR_BUFFERS
) {
4471 if (r
->servername
) {
4472 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
4473 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4474 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
4475 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4477 if (r
->printername
) {
4478 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
4479 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4480 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
4481 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4484 return NDR_ERR_SUCCESS
;
4487 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo0
*r
)
4489 uint32_t _ptr_servername
;
4490 TALLOC_CTX
*_mem_save_servername_0
;
4491 uint32_t _ptr_printername
;
4492 TALLOC_CTX
*_mem_save_printername_0
;
4493 if (ndr_flags
& NDR_SCALARS
) {
4494 NDR_CHECK(ndr_pull_align(ndr
, 4));
4495 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
4496 if (_ptr_servername
) {
4497 NDR_PULL_ALLOC(ndr
, r
->servername
);
4499 r
->servername
= NULL
;
4501 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
4502 if (_ptr_printername
) {
4503 NDR_PULL_ALLOC(ndr
, r
->printername
);
4505 r
->printername
= NULL
;
4507 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
4508 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
4509 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
4510 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
4511 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
4512 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4513 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
4514 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
4515 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
4516 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
4517 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
4518 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
4519 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
4520 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_error
));
4521 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
4522 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
4523 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
4524 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
4525 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
4526 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->status
));
4527 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
4528 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
4529 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
4530 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
4531 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
4532 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
4533 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
4535 if (ndr_flags
& NDR_BUFFERS
) {
4536 if (r
->servername
) {
4537 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4538 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
4539 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
4540 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
4541 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
4542 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->servername
), ndr_get_array_length(ndr
, &r
->servername
));
4544 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
4545 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
4546 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
4548 if (r
->printername
) {
4549 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4550 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
4551 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
4552 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
4553 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
4554 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printername
), ndr_get_array_length(ndr
, &r
->printername
));
4556 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
4557 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
4558 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
4561 return NDR_ERR_SUCCESS
;
4564 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo0
*r
)
4566 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo0");
4568 ndr_print_ptr(ndr
, "servername", r
->servername
);
4570 if (r
->servername
) {
4571 ndr_print_string(ndr
, "servername", r
->servername
);
4574 ndr_print_ptr(ndr
, "printername", r
->printername
);
4576 if (r
->printername
) {
4577 ndr_print_string(ndr
, "printername", r
->printername
);
4580 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
4581 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
4582 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
4583 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
4584 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
4585 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4586 ndr_print_uint32(ndr
, "version", r
->version
);
4587 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
4588 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
4589 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
4590 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
4591 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
4592 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
4593 ndr_print_uint32(ndr
, "job_error", r
->job_error
);
4594 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
4595 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
4596 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
4597 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
4598 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
4599 ndr_print_uint32(ndr
, "status", r
->status
);
4600 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
4601 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
4602 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
4603 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
4604 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
4605 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
4606 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
4610 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo1
*r
)
4612 if (ndr_flags
& NDR_SCALARS
) {
4613 NDR_CHECK(ndr_push_align(ndr
, 4));
4614 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->flags
));
4615 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
4616 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->description
));
4617 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
4619 if (ndr_flags
& NDR_BUFFERS
) {
4621 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4622 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4623 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
4624 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4626 if (r
->description
) {
4627 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
4628 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4629 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
4630 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->description
, ndr_charset_length(r
->description
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4633 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
4634 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4635 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
4636 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4639 return NDR_ERR_SUCCESS
;
4642 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo1
*r
)
4645 TALLOC_CTX
*_mem_save_name_0
;
4646 uint32_t _ptr_description
;
4647 TALLOC_CTX
*_mem_save_description_0
;
4648 uint32_t _ptr_comment
;
4649 TALLOC_CTX
*_mem_save_comment_0
;
4650 if (ndr_flags
& NDR_SCALARS
) {
4651 NDR_CHECK(ndr_pull_align(ndr
, 4));
4652 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->flags
));
4653 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
4655 NDR_PULL_ALLOC(ndr
, r
->name
);
4659 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
4660 if (_ptr_description
) {
4661 NDR_PULL_ALLOC(ndr
, r
->description
);
4663 r
->description
= NULL
;
4665 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
4667 NDR_PULL_ALLOC(ndr
, r
->comment
);
4672 if (ndr_flags
& NDR_BUFFERS
) {
4674 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4675 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
4676 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
4677 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
4678 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
4679 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->name
), ndr_get_array_length(ndr
, &r
->name
));
4681 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
4682 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
4683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
4685 if (r
->description
) {
4686 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4687 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
4688 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->description
));
4689 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->description
));
4690 if (ndr_get_array_length(ndr
, &r
->description
) > ndr_get_array_size(ndr
, &r
->description
)) {
4691 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->description
), ndr_get_array_length(ndr
, &r
->description
));
4693 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t)));
4694 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->description
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t), CH_UTF16
));
4695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
4698 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4699 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
4700 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
4701 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
4702 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
4703 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->comment
), ndr_get_array_length(ndr
, &r
->comment
));
4705 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
4706 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
4707 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
4710 return NDR_ERR_SUCCESS
;
4713 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo1
*r
)
4715 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo1");
4717 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->flags
);
4718 ndr_print_ptr(ndr
, "name", r
->name
);
4721 ndr_print_string(ndr
, "name", r
->name
);
4724 ndr_print_ptr(ndr
, "description", r
->description
);
4726 if (r
->description
) {
4727 ndr_print_string(ndr
, "description", r
->description
);
4730 ndr_print_ptr(ndr
, "comment", r
->comment
);
4733 ndr_print_string(ndr
, "comment", r
->comment
);
4739 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo2
*r
)
4741 if (ndr_flags
& NDR_SCALARS
) {
4742 NDR_CHECK(ndr_push_align(ndr
, 4));
4743 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
4744 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
4745 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sharename
));
4746 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
4747 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->drivername
));
4748 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
4749 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->location
));
4750 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
4751 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sepfile
));
4752 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printprocessor
));
4753 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
4754 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
4755 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->secdesc
));
4756 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
4757 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4758 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
4759 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
4760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
4761 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
4762 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
4763 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
4765 if (ndr_flags
& NDR_BUFFERS
) {
4766 if (r
->servername
) {
4767 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
4768 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4769 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
4770 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4772 if (r
->printername
) {
4773 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
4774 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4775 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
4776 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4779 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
4780 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4781 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
4782 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sharename
, ndr_charset_length(r
->sharename
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
4786 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4787 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
4788 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4790 if (r
->drivername
) {
4791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
4792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4793 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
4794 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->drivername
, ndr_charset_length(r
->drivername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4797 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
4798 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4799 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
4800 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
4804 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4805 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
4806 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->location
, ndr_charset_length(r
->location
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4810 struct ndr_push
*_ndr_devmode
;
4811 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
4812 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
4813 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
4817 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
4818 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4819 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
4820 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sepfile
, ndr_charset_length(r
->sepfile
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4822 if (r
->printprocessor
) {
4823 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
4824 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4825 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
4826 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printprocessor
, ndr_charset_length(r
->printprocessor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4829 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
4830 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4831 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
4832 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4834 if (r
->parameters
) {
4835 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
4836 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4837 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
4838 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4842 struct ndr_push
*_ndr_secdesc
;
4843 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
4844 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4845 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
4849 return NDR_ERR_SUCCESS
;
4852 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo2
*r
)
4854 uint32_t _ptr_servername
;
4855 TALLOC_CTX
*_mem_save_servername_0
;
4856 uint32_t _ptr_printername
;
4857 TALLOC_CTX
*_mem_save_printername_0
;
4858 uint32_t _ptr_sharename
;
4859 TALLOC_CTX
*_mem_save_sharename_0
;
4860 uint32_t _ptr_portname
;
4861 TALLOC_CTX
*_mem_save_portname_0
;
4862 uint32_t _ptr_drivername
;
4863 TALLOC_CTX
*_mem_save_drivername_0
;
4864 uint32_t _ptr_comment
;
4865 TALLOC_CTX
*_mem_save_comment_0
;
4866 uint32_t _ptr_location
;
4867 TALLOC_CTX
*_mem_save_location_0
;
4868 uint32_t _ptr_devmode
;
4869 TALLOC_CTX
*_mem_save_devmode_0
;
4870 uint32_t _ptr_sepfile
;
4871 TALLOC_CTX
*_mem_save_sepfile_0
;
4872 uint32_t _ptr_printprocessor
;
4873 TALLOC_CTX
*_mem_save_printprocessor_0
;
4874 uint32_t _ptr_datatype
;
4875 TALLOC_CTX
*_mem_save_datatype_0
;
4876 uint32_t _ptr_parameters
;
4877 TALLOC_CTX
*_mem_save_parameters_0
;
4878 uint32_t _ptr_secdesc
;
4879 TALLOC_CTX
*_mem_save_secdesc_0
;
4880 if (ndr_flags
& NDR_SCALARS
) {
4881 NDR_CHECK(ndr_pull_align(ndr
, 4));
4882 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
4883 if (_ptr_servername
) {
4884 NDR_PULL_ALLOC(ndr
, r
->servername
);
4886 r
->servername
= NULL
;
4888 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
4889 if (_ptr_printername
) {
4890 NDR_PULL_ALLOC(ndr
, r
->printername
);
4892 r
->printername
= NULL
;
4894 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
4895 if (_ptr_sharename
) {
4896 NDR_PULL_ALLOC(ndr
, r
->sharename
);
4898 r
->sharename
= NULL
;
4900 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
4901 if (_ptr_portname
) {
4902 NDR_PULL_ALLOC(ndr
, r
->portname
);
4906 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
4907 if (_ptr_drivername
) {
4908 NDR_PULL_ALLOC(ndr
, r
->drivername
);
4910 r
->drivername
= NULL
;
4912 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
4914 NDR_PULL_ALLOC(ndr
, r
->comment
);
4918 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
4919 if (_ptr_location
) {
4920 NDR_PULL_ALLOC(ndr
, r
->location
);
4924 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
4926 NDR_PULL_ALLOC(ndr
, r
->devmode
);
4930 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
4932 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
4936 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
4937 if (_ptr_printprocessor
) {
4938 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
4940 r
->printprocessor
= NULL
;
4942 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
4943 if (_ptr_datatype
) {
4944 NDR_PULL_ALLOC(ndr
, r
->datatype
);
4948 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
4949 if (_ptr_parameters
) {
4950 NDR_PULL_ALLOC(ndr
, r
->parameters
);
4952 r
->parameters
= NULL
;
4954 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
4956 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
4960 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
4961 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4962 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
4963 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
4964 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
4965 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
4966 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
4967 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
4969 if (ndr_flags
& NDR_BUFFERS
) {
4970 if (r
->servername
) {
4971 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4972 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
4973 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
4974 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
4975 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
4976 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->servername
), ndr_get_array_length(ndr
, &r
->servername
));
4978 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
4979 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
4980 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
4982 if (r
->printername
) {
4983 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4984 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
4985 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
4986 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
4987 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
4988 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printername
), ndr_get_array_length(ndr
, &r
->printername
));
4990 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
4991 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
4992 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
4995 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4996 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
4997 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sharename
));
4998 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sharename
));
4999 if (ndr_get_array_length(ndr
, &r
->sharename
) > ndr_get_array_size(ndr
, &r
->sharename
)) {
5000 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->sharename
), ndr_get_array_length(ndr
, &r
->sharename
));
5002 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t)));
5003 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sharename
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t), CH_UTF16
));
5004 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
5007 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5008 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
5009 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
5010 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
5011 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
5012 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->portname
), ndr_get_array_length(ndr
, &r
->portname
));
5014 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
5015 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
5016 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
5018 if (r
->drivername
) {
5019 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5020 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
5021 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->drivername
));
5022 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->drivername
));
5023 if (ndr_get_array_length(ndr
, &r
->drivername
) > ndr_get_array_size(ndr
, &r
->drivername
)) {
5024 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->drivername
), ndr_get_array_length(ndr
, &r
->drivername
));
5026 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t)));
5027 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->drivername
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t), CH_UTF16
));
5028 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
5031 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5032 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
5033 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
5034 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
5035 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
5036 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->comment
), ndr_get_array_length(ndr
, &r
->comment
));
5038 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
5039 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
5040 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
5043 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5044 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
5045 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->location
));
5046 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->location
));
5047 if (ndr_get_array_length(ndr
, &r
->location
) > ndr_get_array_size(ndr
, &r
->location
)) {
5048 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->location
), ndr_get_array_length(ndr
, &r
->location
));
5050 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t)));
5051 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->location
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t), CH_UTF16
));
5052 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
5055 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5056 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
5058 struct ndr_pull
*_ndr_devmode
;
5059 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
5060 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
5061 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
5063 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
5066 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5067 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
5068 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sepfile
));
5069 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sepfile
));
5070 if (ndr_get_array_length(ndr
, &r
->sepfile
) > ndr_get_array_size(ndr
, &r
->sepfile
)) {
5071 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->sepfile
), ndr_get_array_length(ndr
, &r
->sepfile
));
5073 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t)));
5074 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sepfile
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t), CH_UTF16
));
5075 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
5077 if (r
->printprocessor
) {
5078 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5079 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
5080 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printprocessor
));
5081 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printprocessor
));
5082 if (ndr_get_array_length(ndr
, &r
->printprocessor
) > ndr_get_array_size(ndr
, &r
->printprocessor
)) {
5083 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printprocessor
), ndr_get_array_length(ndr
, &r
->printprocessor
));
5085 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t)));
5086 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printprocessor
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t), CH_UTF16
));
5087 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
5090 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5091 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
5092 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
5093 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
5094 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
5095 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->datatype
), ndr_get_array_length(ndr
, &r
->datatype
));
5097 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
5098 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
5099 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
5101 if (r
->parameters
) {
5102 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5103 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
5104 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
5105 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
5106 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
5107 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->parameters
), ndr_get_array_length(ndr
, &r
->parameters
));
5109 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
5110 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
5111 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
5114 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5115 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
5117 struct ndr_pull
*_ndr_secdesc
;
5118 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
5119 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
5120 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
5122 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
5125 return NDR_ERR_SUCCESS
;
5128 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo2
*r
)
5130 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo2");
5132 ndr_print_ptr(ndr
, "servername", r
->servername
);
5134 if (r
->servername
) {
5135 ndr_print_string(ndr
, "servername", r
->servername
);
5138 ndr_print_ptr(ndr
, "printername", r
->printername
);
5140 if (r
->printername
) {
5141 ndr_print_string(ndr
, "printername", r
->printername
);
5144 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
5147 ndr_print_string(ndr
, "sharename", r
->sharename
);
5150 ndr_print_ptr(ndr
, "portname", r
->portname
);
5153 ndr_print_string(ndr
, "portname", r
->portname
);
5156 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
5158 if (r
->drivername
) {
5159 ndr_print_string(ndr
, "drivername", r
->drivername
);
5162 ndr_print_ptr(ndr
, "comment", r
->comment
);
5165 ndr_print_string(ndr
, "comment", r
->comment
);
5168 ndr_print_ptr(ndr
, "location", r
->location
);
5171 ndr_print_string(ndr
, "location", r
->location
);
5174 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
5177 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
5180 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
5183 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
5186 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
5188 if (r
->printprocessor
) {
5189 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
5192 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
5195 ndr_print_string(ndr
, "datatype", r
->datatype
);
5198 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
5200 if (r
->parameters
) {
5201 ndr_print_string(ndr
, "parameters", r
->parameters
);
5204 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
5207 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
5210 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
5211 ndr_print_uint32(ndr
, "priority", r
->priority
);
5212 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
5213 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
5214 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
5215 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
5216 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
5217 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
5221 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo3
*r
)
5223 if (ndr_flags
& NDR_SCALARS
) {
5224 NDR_CHECK(ndr_push_align(ndr
, 4));
5225 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sec_desc_ptr
));
5227 if (ndr_flags
& NDR_BUFFERS
) {
5229 return NDR_ERR_SUCCESS
;
5232 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo3
*r
)
5234 if (ndr_flags
& NDR_SCALARS
) {
5235 NDR_CHECK(ndr_pull_align(ndr
, 4));
5236 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sec_desc_ptr
));
5238 if (ndr_flags
& NDR_BUFFERS
) {
5240 return NDR_ERR_SUCCESS
;
5243 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo3
*r
)
5245 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo3");
5247 ndr_print_uint32(ndr
, "sec_desc_ptr", r
->sec_desc_ptr
);
5251 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo4
*r
)
5253 if (ndr_flags
& NDR_SCALARS
) {
5254 NDR_CHECK(ndr_push_align(ndr
, 4));
5255 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
5256 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
5257 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
5259 if (ndr_flags
& NDR_BUFFERS
) {
5260 if (r
->printername
) {
5261 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
5262 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5263 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
5264 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5266 if (r
->servername
) {
5267 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
5268 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5269 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
5270 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5273 return NDR_ERR_SUCCESS
;
5276 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo4
*r
)
5278 uint32_t _ptr_printername
;
5279 TALLOC_CTX
*_mem_save_printername_0
;
5280 uint32_t _ptr_servername
;
5281 TALLOC_CTX
*_mem_save_servername_0
;
5282 if (ndr_flags
& NDR_SCALARS
) {
5283 NDR_CHECK(ndr_pull_align(ndr
, 4));
5284 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
5285 if (_ptr_printername
) {
5286 NDR_PULL_ALLOC(ndr
, r
->printername
);
5288 r
->printername
= NULL
;
5290 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
5291 if (_ptr_servername
) {
5292 NDR_PULL_ALLOC(ndr
, r
->servername
);
5294 r
->servername
= NULL
;
5296 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
5298 if (ndr_flags
& NDR_BUFFERS
) {
5299 if (r
->printername
) {
5300 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5301 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
5302 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
5303 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
5304 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
5305 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printername
), ndr_get_array_length(ndr
, &r
->printername
));
5307 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
5308 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
5309 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
5311 if (r
->servername
) {
5312 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5313 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
5314 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
5315 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
5316 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
5317 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->servername
), ndr_get_array_length(ndr
, &r
->servername
));
5319 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
5320 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
5321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
5324 return NDR_ERR_SUCCESS
;
5327 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo4
*r
)
5329 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo4");
5331 ndr_print_ptr(ndr
, "printername", r
->printername
);
5333 if (r
->printername
) {
5334 ndr_print_string(ndr
, "printername", r
->printername
);
5337 ndr_print_ptr(ndr
, "servername", r
->servername
);
5339 if (r
->servername
) {
5340 ndr_print_string(ndr
, "servername", r
->servername
);
5343 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
5347 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo5
*r
)
5349 if (ndr_flags
& NDR_SCALARS
) {
5350 NDR_CHECK(ndr_push_align(ndr
, 4));
5351 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
5352 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
5353 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
5354 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
5355 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
5357 if (ndr_flags
& NDR_BUFFERS
) {
5358 if (r
->printername
) {
5359 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
5360 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5361 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
5362 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5365 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
5366 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5367 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
5368 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5371 return NDR_ERR_SUCCESS
;
5374 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo5
*r
)
5376 uint32_t _ptr_printername
;
5377 TALLOC_CTX
*_mem_save_printername_0
;
5378 uint32_t _ptr_portname
;
5379 TALLOC_CTX
*_mem_save_portname_0
;
5380 if (ndr_flags
& NDR_SCALARS
) {
5381 NDR_CHECK(ndr_pull_align(ndr
, 4));
5382 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
5383 if (_ptr_printername
) {
5384 NDR_PULL_ALLOC(ndr
, r
->printername
);
5386 r
->printername
= NULL
;
5388 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
5389 if (_ptr_portname
) {
5390 NDR_PULL_ALLOC(ndr
, r
->portname
);
5394 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
5395 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
5396 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
5398 if (ndr_flags
& NDR_BUFFERS
) {
5399 if (r
->printername
) {
5400 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5401 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
5402 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
5403 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
5404 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
5405 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printername
), ndr_get_array_length(ndr
, &r
->printername
));
5407 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
5408 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
5409 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
5412 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5413 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
5414 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
5415 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
5416 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
5417 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->portname
), ndr_get_array_length(ndr
, &r
->portname
));
5419 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
5420 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
5421 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
5424 return NDR_ERR_SUCCESS
;
5427 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo5
*r
)
5429 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo5");
5431 ndr_print_ptr(ndr
, "printername", r
->printername
);
5433 if (r
->printername
) {
5434 ndr_print_string(ndr
, "printername", r
->printername
);
5437 ndr_print_ptr(ndr
, "portname", r
->portname
);
5440 ndr_print_string(ndr
, "portname", r
->portname
);
5443 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
5444 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
5445 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
5449 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo6
*r
)
5451 if (ndr_flags
& NDR_SCALARS
) {
5452 NDR_CHECK(ndr_push_align(ndr
, 4));
5453 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
5455 if (ndr_flags
& NDR_BUFFERS
) {
5457 return NDR_ERR_SUCCESS
;
5460 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo6
*r
)
5462 if (ndr_flags
& NDR_SCALARS
) {
5463 NDR_CHECK(ndr_pull_align(ndr
, 4));
5464 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
5466 if (ndr_flags
& NDR_BUFFERS
) {
5468 return NDR_ERR_SUCCESS
;
5471 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo6
*r
)
5473 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo6");
5475 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
5479 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo7
*r
)
5481 if (ndr_flags
& NDR_SCALARS
) {
5482 NDR_CHECK(ndr_push_align(ndr
, 4));
5483 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->guid
));
5484 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
5486 if (ndr_flags
& NDR_BUFFERS
) {
5488 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
5489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5490 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
5491 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->guid
, ndr_charset_length(r
->guid
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5494 return NDR_ERR_SUCCESS
;
5497 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo7
*r
)
5500 TALLOC_CTX
*_mem_save_guid_0
;
5501 if (ndr_flags
& NDR_SCALARS
) {
5502 NDR_CHECK(ndr_pull_align(ndr
, 4));
5503 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
5505 NDR_PULL_ALLOC(ndr
, r
->guid
);
5509 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
5511 if (ndr_flags
& NDR_BUFFERS
) {
5513 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5514 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
5515 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->guid
));
5516 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->guid
));
5517 if (ndr_get_array_length(ndr
, &r
->guid
) > ndr_get_array_size(ndr
, &r
->guid
)) {
5518 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->guid
), ndr_get_array_length(ndr
, &r
->guid
));
5520 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t)));
5521 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->guid
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t), CH_UTF16
));
5522 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
5525 return NDR_ERR_SUCCESS
;
5528 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo7
*r
)
5530 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo7");
5532 ndr_print_ptr(ndr
, "guid", r
->guid
);
5535 ndr_print_string(ndr
, "guid", r
->guid
);
5538 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
5542 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetPrinterInfo
*r
)
5544 if (ndr_flags
& NDR_SCALARS
) {
5545 int level
= ndr_push_get_switch_value(ndr
, r
);
5546 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5549 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
5553 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
5557 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
5561 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
5565 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
5569 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info5
));
5573 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
5577 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info7
));
5581 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
5585 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info9
));
5593 if (ndr_flags
& NDR_BUFFERS
) {
5594 int level
= ndr_push_get_switch_value(ndr
, r
);
5598 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
5604 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
5610 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5616 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
5622 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5628 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
5634 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
5640 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
5646 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
5652 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info9
));
5661 return NDR_ERR_SUCCESS
;
5664 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetPrinterInfo
*r
)
5668 TALLOC_CTX
*_mem_save_info0_0
;
5669 TALLOC_CTX
*_mem_save_info1_0
;
5670 TALLOC_CTX
*_mem_save_info2_0
;
5671 TALLOC_CTX
*_mem_save_info3_0
;
5672 TALLOC_CTX
*_mem_save_info4_0
;
5673 TALLOC_CTX
*_mem_save_info5_0
;
5674 TALLOC_CTX
*_mem_save_info6_0
;
5675 TALLOC_CTX
*_mem_save_info7_0
;
5676 TALLOC_CTX
*_mem_save_info8_0
;
5677 TALLOC_CTX
*_mem_save_info9_0
;
5678 level
= ndr_pull_get_switch_value(ndr
, r
);
5679 if (ndr_flags
& NDR_SCALARS
) {
5680 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5681 if (_level
!= level
) {
5682 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
5686 uint32_t _ptr_info0
;
5687 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
5689 NDR_PULL_ALLOC(ndr
, r
->info0
);
5696 uint32_t _ptr_info1
;
5697 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
5699 NDR_PULL_ALLOC(ndr
, r
->info1
);
5706 uint32_t _ptr_info2
;
5707 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
5709 NDR_PULL_ALLOC(ndr
, r
->info2
);
5716 uint32_t _ptr_info3
;
5717 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
5719 NDR_PULL_ALLOC(ndr
, r
->info3
);
5726 uint32_t _ptr_info4
;
5727 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
5729 NDR_PULL_ALLOC(ndr
, r
->info4
);
5736 uint32_t _ptr_info5
;
5737 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info5
));
5739 NDR_PULL_ALLOC(ndr
, r
->info5
);
5746 uint32_t _ptr_info6
;
5747 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
5749 NDR_PULL_ALLOC(ndr
, r
->info6
);
5756 uint32_t _ptr_info7
;
5757 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info7
));
5759 NDR_PULL_ALLOC(ndr
, r
->info7
);
5766 uint32_t _ptr_info8
;
5767 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
5769 NDR_PULL_ALLOC(ndr
, r
->info8
);
5776 uint32_t _ptr_info9
;
5777 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info9
));
5779 NDR_PULL_ALLOC(ndr
, r
->info9
);
5790 if (ndr_flags
& NDR_BUFFERS
) {
5794 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5795 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
5796 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
5797 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
5803 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5804 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
5805 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
5806 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
5812 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5813 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
5814 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5815 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
5821 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5822 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
5823 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
5824 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
5830 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5831 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
5832 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5833 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
5839 _mem_save_info5_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5840 NDR_PULL_SET_MEM_CTX(ndr
, r
->info5
, 0);
5841 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
5842 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info5_0
, 0);
5848 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5849 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
5850 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
5851 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
5857 _mem_save_info7_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5858 NDR_PULL_SET_MEM_CTX(ndr
, r
->info7
, 0);
5859 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
5860 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info7_0
, 0);
5866 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5867 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
5868 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
5869 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
5875 _mem_save_info9_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5876 NDR_PULL_SET_MEM_CTX(ndr
, r
->info9
, 0);
5877 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info9
));
5878 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info9_0
, 0);
5887 return NDR_ERR_SUCCESS
;
5890 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetPrinterInfo
*r
)
5893 level
= ndr_print_get_switch_value(ndr
, r
);
5894 ndr_print_union(ndr
, name
, level
, "spoolss_SetPrinterInfo");
5897 ndr_print_ptr(ndr
, "info0", r
->info0
);
5900 ndr_print_spoolss_SetPrinterInfo0(ndr
, "info0", r
->info0
);
5906 ndr_print_ptr(ndr
, "info1", r
->info1
);
5909 ndr_print_spoolss_SetPrinterInfo1(ndr
, "info1", r
->info1
);
5915 ndr_print_ptr(ndr
, "info2", r
->info2
);
5918 ndr_print_spoolss_SetPrinterInfo2(ndr
, "info2", r
->info2
);
5924 ndr_print_ptr(ndr
, "info3", r
->info3
);
5927 ndr_print_spoolss_SetPrinterInfo3(ndr
, "info3", r
->info3
);
5933 ndr_print_ptr(ndr
, "info4", r
->info4
);
5936 ndr_print_spoolss_SetPrinterInfo4(ndr
, "info4", r
->info4
);
5942 ndr_print_ptr(ndr
, "info5", r
->info5
);
5945 ndr_print_spoolss_SetPrinterInfo5(ndr
, "info5", r
->info5
);
5951 ndr_print_ptr(ndr
, "info6", r
->info6
);
5954 ndr_print_spoolss_SetPrinterInfo6(ndr
, "info6", r
->info6
);
5960 ndr_print_ptr(ndr
, "info7", r
->info7
);
5963 ndr_print_spoolss_SetPrinterInfo7(ndr
, "info7", r
->info7
);
5969 ndr_print_ptr(ndr
, "info8", r
->info8
);
5972 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", r
->info8
);
5978 ndr_print_ptr(ndr
, "info9", r
->info9
);
5981 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", r
->info9
);
5992 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfoCtr
*r
)
5994 if (ndr_flags
& NDR_SCALARS
) {
5995 NDR_CHECK(ndr_push_align(ndr
, 4));
5996 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
5997 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
5998 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
6000 if (ndr_flags
& NDR_BUFFERS
) {
6001 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
6003 return NDR_ERR_SUCCESS
;
6006 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfoCtr
*r
)
6008 if (ndr_flags
& NDR_SCALARS
) {
6009 NDR_CHECK(ndr_pull_align(ndr
, 4));
6010 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
6011 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
6012 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
6014 if (ndr_flags
& NDR_BUFFERS
) {
6015 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
6017 return NDR_ERR_SUCCESS
;
6020 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfoCtr
*r
)
6022 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfoCtr");
6024 ndr_print_uint32(ndr
, "level", r
->level
);
6025 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
6026 ndr_print_spoolss_SetPrinterInfo(ndr
, "info", &r
->info
);
6030 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_StringArray(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_StringArray
*r
)
6032 if (ndr_flags
& NDR_SCALARS
) {
6033 NDR_CHECK(ndr_push_align(ndr
, 4));
6034 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, (ndr_size_spoolss_StringArray(r
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2));
6036 uint32_t _flags_save_string_array
= ndr
->flags
;
6037 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
6038 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string
));
6039 ndr
->flags
= _flags_save_string_array
;
6042 if (ndr_flags
& NDR_BUFFERS
) {
6044 return NDR_ERR_SUCCESS
;
6047 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_StringArray(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_StringArray
*r
)
6049 if (ndr_flags
& NDR_SCALARS
) {
6050 NDR_CHECK(ndr_pull_align(ndr
, 4));
6051 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
6053 uint32_t _flags_save_string_array
= ndr
->flags
;
6054 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
6055 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string
));
6056 ndr
->flags
= _flags_save_string_array
;
6059 if (ndr_flags
& NDR_BUFFERS
) {
6061 return NDR_ERR_SUCCESS
;
6064 _PUBLIC_
void ndr_print_spoolss_StringArray(struct ndr_print
*ndr
, const char *name
, const struct spoolss_StringArray
*r
)
6066 ndr_print_struct(ndr
, name
, "spoolss_StringArray");
6068 ndr_print_uint32(ndr
, "_ndr_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?(ndr_size_spoolss_StringArray(r
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2:r
->_ndr_size
);
6069 ndr_print_string_array(ndr
, "string", r
->string
);
6073 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo1
*r
)
6075 if (ndr_flags
& NDR_SCALARS
) {
6076 NDR_CHECK(ndr_push_align(ndr
, 4));
6077 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
6079 if (ndr_flags
& NDR_BUFFERS
) {
6080 if (r
->driver_name
) {
6081 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
6082 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6083 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
6084 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6087 return NDR_ERR_SUCCESS
;
6090 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo1
*r
)
6092 uint32_t _ptr_driver_name
;
6093 TALLOC_CTX
*_mem_save_driver_name_0
;
6094 if (ndr_flags
& NDR_SCALARS
) {
6095 NDR_CHECK(ndr_pull_align(ndr
, 4));
6096 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
6097 if (_ptr_driver_name
) {
6098 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
6100 r
->driver_name
= NULL
;
6103 if (ndr_flags
& NDR_BUFFERS
) {
6104 if (r
->driver_name
) {
6105 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6106 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
6107 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
6108 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
6109 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
6110 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
6112 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
6113 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
6114 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
6117 return NDR_ERR_SUCCESS
;
6120 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo1
*r
)
6122 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo1");
6124 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
6126 if (r
->driver_name
) {
6127 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
6133 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverOSVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion r
)
6135 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
6136 return NDR_ERR_SUCCESS
;
6139 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverOSVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion
*r
)
6142 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
6144 return NDR_ERR_SUCCESS
;
6147 _PUBLIC_
void ndr_print_spoolss_DriverOSVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverOSVersion r
)
6149 const char *val
= NULL
;
6152 case SPOOLSS_DRIVER_VERSION_9X
: val
= "SPOOLSS_DRIVER_VERSION_9X"; break;
6153 case SPOOLSS_DRIVER_VERSION_NT35
: val
= "SPOOLSS_DRIVER_VERSION_NT35"; break;
6154 case SPOOLSS_DRIVER_VERSION_NT4
: val
= "SPOOLSS_DRIVER_VERSION_NT4"; break;
6155 case SPOOLSS_DRIVER_VERSION_200X
: val
= "SPOOLSS_DRIVER_VERSION_200X"; break;
6157 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6160 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo2
*r
)
6162 if (ndr_flags
& NDR_SCALARS
) {
6163 NDR_CHECK(ndr_push_align(ndr
, 4));
6164 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
6165 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
6166 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
6167 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
6168 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
6169 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
6171 if (ndr_flags
& NDR_BUFFERS
) {
6172 if (r
->driver_name
) {
6173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
6174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6175 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
6176 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6178 if (r
->architecture
) {
6179 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
6180 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6181 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
6182 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6184 if (r
->driver_path
) {
6185 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
6186 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6187 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
6188 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6191 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
6192 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6193 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
6194 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6196 if (r
->config_file
) {
6197 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
6198 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6199 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
6200 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6203 return NDR_ERR_SUCCESS
;
6206 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo2
*r
)
6208 uint32_t _ptr_driver_name
;
6209 TALLOC_CTX
*_mem_save_driver_name_0
;
6210 uint32_t _ptr_architecture
;
6211 TALLOC_CTX
*_mem_save_architecture_0
;
6212 uint32_t _ptr_driver_path
;
6213 TALLOC_CTX
*_mem_save_driver_path_0
;
6214 uint32_t _ptr_data_file
;
6215 TALLOC_CTX
*_mem_save_data_file_0
;
6216 uint32_t _ptr_config_file
;
6217 TALLOC_CTX
*_mem_save_config_file_0
;
6218 if (ndr_flags
& NDR_SCALARS
) {
6219 NDR_CHECK(ndr_pull_align(ndr
, 4));
6220 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
6221 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
6222 if (_ptr_driver_name
) {
6223 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
6225 r
->driver_name
= NULL
;
6227 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
6228 if (_ptr_architecture
) {
6229 NDR_PULL_ALLOC(ndr
, r
->architecture
);
6231 r
->architecture
= NULL
;
6233 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
6234 if (_ptr_driver_path
) {
6235 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
6237 r
->driver_path
= NULL
;
6239 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
6240 if (_ptr_data_file
) {
6241 NDR_PULL_ALLOC(ndr
, r
->data_file
);
6243 r
->data_file
= NULL
;
6245 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
6246 if (_ptr_config_file
) {
6247 NDR_PULL_ALLOC(ndr
, r
->config_file
);
6249 r
->config_file
= NULL
;
6252 if (ndr_flags
& NDR_BUFFERS
) {
6253 if (r
->driver_name
) {
6254 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6255 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
6256 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
6257 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
6258 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
6259 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
6261 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
6262 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
6263 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
6265 if (r
->architecture
) {
6266 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6267 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
6268 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
6269 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
6270 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
6271 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->architecture
), ndr_get_array_length(ndr
, &r
->architecture
));
6273 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
6274 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
6275 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
6277 if (r
->driver_path
) {
6278 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6279 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
6280 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
6281 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
6282 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
6283 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_path
), ndr_get_array_length(ndr
, &r
->driver_path
));
6285 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
6286 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
6287 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
6290 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6291 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
6292 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
6293 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
6294 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
6295 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
6297 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
6298 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
6299 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
6301 if (r
->config_file
) {
6302 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6303 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
6304 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
6305 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
6306 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
6307 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->config_file
), ndr_get_array_length(ndr
, &r
->config_file
));
6309 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
6310 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
6311 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
6314 return NDR_ERR_SUCCESS
;
6317 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo2
*r
)
6319 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo2");
6321 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
6322 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
6324 if (r
->driver_name
) {
6325 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
6328 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
6330 if (r
->architecture
) {
6331 ndr_print_string(ndr
, "architecture", r
->architecture
);
6334 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
6336 if (r
->driver_path
) {
6337 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
6340 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
6343 ndr_print_string(ndr
, "data_file", r
->data_file
);
6346 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
6348 if (r
->config_file
) {
6349 ndr_print_string(ndr
, "config_file", r
->config_file
);
6355 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo3
*r
)
6357 if (ndr_flags
& NDR_SCALARS
) {
6358 NDR_CHECK(ndr_push_align(ndr
, 4));
6359 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
6360 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
6361 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
6362 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
6363 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
6364 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
6365 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
6366 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
6367 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
6368 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
6369 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
6371 if (ndr_flags
& NDR_BUFFERS
) {
6372 if (r
->driver_name
) {
6373 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
6374 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6375 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
6376 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6378 if (r
->architecture
) {
6379 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
6380 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6381 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
6382 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6384 if (r
->driver_path
) {
6385 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
6386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6387 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
6388 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
6392 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6393 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
6394 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6396 if (r
->config_file
) {
6397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
6398 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6399 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
6400 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
6404 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6405 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
6406 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6408 if (r
->monitor_name
) {
6409 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
6410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6411 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
6412 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6414 if (r
->default_datatype
) {
6415 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
6416 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6417 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
6418 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6420 if (r
->dependent_files
) {
6421 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
6424 return NDR_ERR_SUCCESS
;
6427 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo3
*r
)
6429 uint32_t _ptr_driver_name
;
6430 TALLOC_CTX
*_mem_save_driver_name_0
;
6431 uint32_t _ptr_architecture
;
6432 TALLOC_CTX
*_mem_save_architecture_0
;
6433 uint32_t _ptr_driver_path
;
6434 TALLOC_CTX
*_mem_save_driver_path_0
;
6435 uint32_t _ptr_data_file
;
6436 TALLOC_CTX
*_mem_save_data_file_0
;
6437 uint32_t _ptr_config_file
;
6438 TALLOC_CTX
*_mem_save_config_file_0
;
6439 uint32_t _ptr_help_file
;
6440 TALLOC_CTX
*_mem_save_help_file_0
;
6441 uint32_t _ptr_monitor_name
;
6442 TALLOC_CTX
*_mem_save_monitor_name_0
;
6443 uint32_t _ptr_default_datatype
;
6444 TALLOC_CTX
*_mem_save_default_datatype_0
;
6445 uint32_t _ptr_dependent_files
;
6446 TALLOC_CTX
*_mem_save_dependent_files_0
;
6447 if (ndr_flags
& NDR_SCALARS
) {
6448 NDR_CHECK(ndr_pull_align(ndr
, 4));
6449 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
6450 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
6451 if (_ptr_driver_name
) {
6452 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
6454 r
->driver_name
= NULL
;
6456 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
6457 if (_ptr_architecture
) {
6458 NDR_PULL_ALLOC(ndr
, r
->architecture
);
6460 r
->architecture
= NULL
;
6462 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
6463 if (_ptr_driver_path
) {
6464 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
6466 r
->driver_path
= NULL
;
6468 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
6469 if (_ptr_data_file
) {
6470 NDR_PULL_ALLOC(ndr
, r
->data_file
);
6472 r
->data_file
= NULL
;
6474 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
6475 if (_ptr_config_file
) {
6476 NDR_PULL_ALLOC(ndr
, r
->config_file
);
6478 r
->config_file
= NULL
;
6480 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
6481 if (_ptr_help_file
) {
6482 NDR_PULL_ALLOC(ndr
, r
->help_file
);
6484 r
->help_file
= NULL
;
6486 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
6487 if (_ptr_monitor_name
) {
6488 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
6490 r
->monitor_name
= NULL
;
6492 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
6493 if (_ptr_default_datatype
) {
6494 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
6496 r
->default_datatype
= NULL
;
6498 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
6499 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
6500 if (_ptr_dependent_files
) {
6501 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
6503 r
->dependent_files
= NULL
;
6506 if (ndr_flags
& NDR_BUFFERS
) {
6507 if (r
->driver_name
) {
6508 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6509 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
6510 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
6511 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
6512 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
6513 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
6515 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
6516 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
6517 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
6519 if (r
->architecture
) {
6520 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6521 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
6522 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
6523 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
6524 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
6525 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->architecture
), ndr_get_array_length(ndr
, &r
->architecture
));
6527 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
6528 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
6529 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
6531 if (r
->driver_path
) {
6532 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6533 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
6534 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
6535 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
6536 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
6537 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_path
), ndr_get_array_length(ndr
, &r
->driver_path
));
6539 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
6540 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
6541 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
6544 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6545 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
6546 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
6547 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
6548 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
6549 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
6551 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
6552 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
6553 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
6555 if (r
->config_file
) {
6556 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6557 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
6558 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
6559 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
6560 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
6561 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->config_file
), ndr_get_array_length(ndr
, &r
->config_file
));
6563 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
6564 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
6565 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
6568 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6569 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
6570 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
6571 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
6572 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
6573 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->help_file
), ndr_get_array_length(ndr
, &r
->help_file
));
6575 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
6576 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
6577 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
6579 if (r
->monitor_name
) {
6580 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6581 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
6582 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
6583 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
6584 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
6585 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->monitor_name
), ndr_get_array_length(ndr
, &r
->monitor_name
));
6587 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
6588 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
6589 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
6591 if (r
->default_datatype
) {
6592 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6593 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
6594 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
6595 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
6596 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
6597 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->default_datatype
), ndr_get_array_length(ndr
, &r
->default_datatype
));
6599 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
6600 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
6601 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
6603 if (r
->dependent_files
) {
6604 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6605 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
6606 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
6607 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
6610 return NDR_ERR_SUCCESS
;
6613 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo3
*r
)
6615 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo3");
6617 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
6618 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
6620 if (r
->driver_name
) {
6621 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
6624 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
6626 if (r
->architecture
) {
6627 ndr_print_string(ndr
, "architecture", r
->architecture
);
6630 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
6632 if (r
->driver_path
) {
6633 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
6636 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
6639 ndr_print_string(ndr
, "data_file", r
->data_file
);
6642 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
6644 if (r
->config_file
) {
6645 ndr_print_string(ndr
, "config_file", r
->config_file
);
6648 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
6651 ndr_print_string(ndr
, "help_file", r
->help_file
);
6654 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
6656 if (r
->monitor_name
) {
6657 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
6660 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
6662 if (r
->default_datatype
) {
6663 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
6666 ndr_print_uint32(ndr
, "_ndr_size_dependent_files", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_dependent_files
);
6667 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
6669 if (r
->dependent_files
) {
6670 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
6676 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo4
*r
)
6678 if (ndr_flags
& NDR_SCALARS
) {
6679 NDR_CHECK(ndr_push_align(ndr
, 4));
6680 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
6681 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
6682 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
6683 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
6684 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
6685 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
6686 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
6687 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
6688 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
6689 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
6690 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
6691 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
6692 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
6694 if (ndr_flags
& NDR_BUFFERS
) {
6695 if (r
->driver_name
) {
6696 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
6697 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6698 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
6699 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6701 if (r
->architecture
) {
6702 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
6703 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6704 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
6705 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6707 if (r
->driver_path
) {
6708 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
6709 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6710 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
6711 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6714 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
6715 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6716 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
6717 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6719 if (r
->config_file
) {
6720 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
6721 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6722 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
6723 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
6727 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6728 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
6729 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6731 if (r
->monitor_name
) {
6732 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
6733 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6734 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
6735 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6737 if (r
->default_datatype
) {
6738 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
6739 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6740 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
6741 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6743 if (r
->dependent_files
) {
6744 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
6746 if (r
->previous_names
) {
6747 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
6750 return NDR_ERR_SUCCESS
;
6753 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo4
*r
)
6755 uint32_t _ptr_driver_name
;
6756 TALLOC_CTX
*_mem_save_driver_name_0
;
6757 uint32_t _ptr_architecture
;
6758 TALLOC_CTX
*_mem_save_architecture_0
;
6759 uint32_t _ptr_driver_path
;
6760 TALLOC_CTX
*_mem_save_driver_path_0
;
6761 uint32_t _ptr_data_file
;
6762 TALLOC_CTX
*_mem_save_data_file_0
;
6763 uint32_t _ptr_config_file
;
6764 TALLOC_CTX
*_mem_save_config_file_0
;
6765 uint32_t _ptr_help_file
;
6766 TALLOC_CTX
*_mem_save_help_file_0
;
6767 uint32_t _ptr_monitor_name
;
6768 TALLOC_CTX
*_mem_save_monitor_name_0
;
6769 uint32_t _ptr_default_datatype
;
6770 TALLOC_CTX
*_mem_save_default_datatype_0
;
6771 uint32_t _ptr_dependent_files
;
6772 TALLOC_CTX
*_mem_save_dependent_files_0
;
6773 uint32_t _ptr_previous_names
;
6774 TALLOC_CTX
*_mem_save_previous_names_0
;
6775 if (ndr_flags
& NDR_SCALARS
) {
6776 NDR_CHECK(ndr_pull_align(ndr
, 4));
6777 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
6778 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
6779 if (_ptr_driver_name
) {
6780 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
6782 r
->driver_name
= NULL
;
6784 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
6785 if (_ptr_architecture
) {
6786 NDR_PULL_ALLOC(ndr
, r
->architecture
);
6788 r
->architecture
= NULL
;
6790 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
6791 if (_ptr_driver_path
) {
6792 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
6794 r
->driver_path
= NULL
;
6796 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
6797 if (_ptr_data_file
) {
6798 NDR_PULL_ALLOC(ndr
, r
->data_file
);
6800 r
->data_file
= NULL
;
6802 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
6803 if (_ptr_config_file
) {
6804 NDR_PULL_ALLOC(ndr
, r
->config_file
);
6806 r
->config_file
= NULL
;
6808 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
6809 if (_ptr_help_file
) {
6810 NDR_PULL_ALLOC(ndr
, r
->help_file
);
6812 r
->help_file
= NULL
;
6814 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
6815 if (_ptr_monitor_name
) {
6816 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
6818 r
->monitor_name
= NULL
;
6820 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
6821 if (_ptr_default_datatype
) {
6822 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
6824 r
->default_datatype
= NULL
;
6826 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
6827 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
6828 if (_ptr_dependent_files
) {
6829 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
6831 r
->dependent_files
= NULL
;
6833 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
6834 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
6835 if (_ptr_previous_names
) {
6836 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
6838 r
->previous_names
= NULL
;
6841 if (ndr_flags
& NDR_BUFFERS
) {
6842 if (r
->driver_name
) {
6843 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6844 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
6845 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
6846 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
6847 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
6848 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
6850 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
6851 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
6852 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
6854 if (r
->architecture
) {
6855 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6856 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
6857 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
6858 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
6859 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
6860 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->architecture
), ndr_get_array_length(ndr
, &r
->architecture
));
6862 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
6863 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
6864 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
6866 if (r
->driver_path
) {
6867 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6868 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
6869 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
6870 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
6871 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
6872 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_path
), ndr_get_array_length(ndr
, &r
->driver_path
));
6874 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
6875 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
6876 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
6879 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6880 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
6881 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
6882 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
6883 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
6884 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
6886 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
6887 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
6888 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
6890 if (r
->config_file
) {
6891 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6892 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
6893 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
6894 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
6895 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
6896 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->config_file
), ndr_get_array_length(ndr
, &r
->config_file
));
6898 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
6899 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
6900 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
6903 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6904 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
6905 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
6906 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
6907 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
6908 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->help_file
), ndr_get_array_length(ndr
, &r
->help_file
));
6910 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
6911 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
6912 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
6914 if (r
->monitor_name
) {
6915 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6916 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
6917 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
6918 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
6919 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
6920 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->monitor_name
), ndr_get_array_length(ndr
, &r
->monitor_name
));
6922 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
6923 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
6924 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
6926 if (r
->default_datatype
) {
6927 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6928 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
6929 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
6930 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
6931 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
6932 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->default_datatype
), ndr_get_array_length(ndr
, &r
->default_datatype
));
6934 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
6935 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
6936 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
6938 if (r
->dependent_files
) {
6939 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6940 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
6941 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
6942 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
6944 if (r
->previous_names
) {
6945 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6946 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
6947 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
6948 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
6951 return NDR_ERR_SUCCESS
;
6954 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo4
*r
)
6956 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo4");
6958 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
6959 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
6961 if (r
->driver_name
) {
6962 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
6965 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
6967 if (r
->architecture
) {
6968 ndr_print_string(ndr
, "architecture", r
->architecture
);
6971 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
6973 if (r
->driver_path
) {
6974 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
6977 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
6980 ndr_print_string(ndr
, "data_file", r
->data_file
);
6983 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
6985 if (r
->config_file
) {
6986 ndr_print_string(ndr
, "config_file", r
->config_file
);
6989 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
6992 ndr_print_string(ndr
, "help_file", r
->help_file
);
6995 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
6997 if (r
->monitor_name
) {
6998 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
7001 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
7003 if (r
->default_datatype
) {
7004 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
7007 ndr_print_uint32(ndr
, "_ndr_size_dependent_files", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_dependent_files
);
7008 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
7010 if (r
->dependent_files
) {
7011 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
7014 ndr_print_uint32(ndr
, "_ndr_size_previous_names", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_previous_names
);
7015 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
7017 if (r
->previous_names
) {
7018 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
7024 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo6
*r
)
7026 if (ndr_flags
& NDR_SCALARS
) {
7027 NDR_CHECK(ndr_push_align(ndr
, 8));
7028 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
7029 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7030 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
7031 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
7032 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
7033 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
7034 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
7035 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
7036 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
7037 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
7038 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
7039 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
7040 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
7041 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
7042 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
7043 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
7044 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
7045 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
7046 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
7048 if (ndr_flags
& NDR_BUFFERS
) {
7049 if (r
->driver_name
) {
7050 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7051 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7052 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7053 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7055 if (r
->architecture
) {
7056 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7057 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7058 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7059 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7061 if (r
->driver_path
) {
7062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7063 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7064 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7065 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7068 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7069 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7070 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7071 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7073 if (r
->config_file
) {
7074 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7075 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7076 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7077 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7080 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
7081 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7082 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
7083 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7085 if (r
->monitor_name
) {
7086 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
7087 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7088 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
7089 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7091 if (r
->default_datatype
) {
7092 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
7093 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7094 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
7095 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7097 if (r
->dependent_files
) {
7098 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
7100 if (r
->previous_names
) {
7101 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
7103 if (r
->manufacturer_name
) {
7104 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
7105 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7106 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
7107 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7109 if (r
->manufacturer_url
) {
7110 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
7111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7112 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
7113 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7115 if (r
->hardware_id
) {
7116 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
7117 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7118 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
7119 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7122 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
7123 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7124 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
7125 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7128 return NDR_ERR_SUCCESS
;
7131 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo6
*r
)
7133 uint32_t _ptr_driver_name
;
7134 TALLOC_CTX
*_mem_save_driver_name_0
;
7135 uint32_t _ptr_architecture
;
7136 TALLOC_CTX
*_mem_save_architecture_0
;
7137 uint32_t _ptr_driver_path
;
7138 TALLOC_CTX
*_mem_save_driver_path_0
;
7139 uint32_t _ptr_data_file
;
7140 TALLOC_CTX
*_mem_save_data_file_0
;
7141 uint32_t _ptr_config_file
;
7142 TALLOC_CTX
*_mem_save_config_file_0
;
7143 uint32_t _ptr_help_file
;
7144 TALLOC_CTX
*_mem_save_help_file_0
;
7145 uint32_t _ptr_monitor_name
;
7146 TALLOC_CTX
*_mem_save_monitor_name_0
;
7147 uint32_t _ptr_default_datatype
;
7148 TALLOC_CTX
*_mem_save_default_datatype_0
;
7149 uint32_t _ptr_dependent_files
;
7150 TALLOC_CTX
*_mem_save_dependent_files_0
;
7151 uint32_t _ptr_previous_names
;
7152 TALLOC_CTX
*_mem_save_previous_names_0
;
7153 uint32_t _ptr_manufacturer_name
;
7154 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
7155 uint32_t _ptr_manufacturer_url
;
7156 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
7157 uint32_t _ptr_hardware_id
;
7158 TALLOC_CTX
*_mem_save_hardware_id_0
;
7159 uint32_t _ptr_provider
;
7160 TALLOC_CTX
*_mem_save_provider_0
;
7161 if (ndr_flags
& NDR_SCALARS
) {
7162 NDR_CHECK(ndr_pull_align(ndr
, 8));
7163 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
7164 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7165 if (_ptr_driver_name
) {
7166 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7168 r
->driver_name
= NULL
;
7170 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
7171 if (_ptr_architecture
) {
7172 NDR_PULL_ALLOC(ndr
, r
->architecture
);
7174 r
->architecture
= NULL
;
7176 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
7177 if (_ptr_driver_path
) {
7178 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
7180 r
->driver_path
= NULL
;
7182 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
7183 if (_ptr_data_file
) {
7184 NDR_PULL_ALLOC(ndr
, r
->data_file
);
7186 r
->data_file
= NULL
;
7188 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
7189 if (_ptr_config_file
) {
7190 NDR_PULL_ALLOC(ndr
, r
->config_file
);
7192 r
->config_file
= NULL
;
7194 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
7195 if (_ptr_help_file
) {
7196 NDR_PULL_ALLOC(ndr
, r
->help_file
);
7198 r
->help_file
= NULL
;
7200 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
7201 if (_ptr_monitor_name
) {
7202 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
7204 r
->monitor_name
= NULL
;
7206 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
7207 if (_ptr_default_datatype
) {
7208 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
7210 r
->default_datatype
= NULL
;
7212 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
7213 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
7214 if (_ptr_dependent_files
) {
7215 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
7217 r
->dependent_files
= NULL
;
7219 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
7220 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
7221 if (_ptr_previous_names
) {
7222 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
7224 r
->previous_names
= NULL
;
7226 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
7227 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
7228 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
7229 if (_ptr_manufacturer_name
) {
7230 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
7232 r
->manufacturer_name
= NULL
;
7234 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
7235 if (_ptr_manufacturer_url
) {
7236 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
7238 r
->manufacturer_url
= NULL
;
7240 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
7241 if (_ptr_hardware_id
) {
7242 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
7244 r
->hardware_id
= NULL
;
7246 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
7247 if (_ptr_provider
) {
7248 NDR_PULL_ALLOC(ndr
, r
->provider
);
7253 if (ndr_flags
& NDR_BUFFERS
) {
7254 if (r
->driver_name
) {
7255 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7256 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7257 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
7258 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
7259 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
7260 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
7262 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
7263 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
7264 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
7266 if (r
->architecture
) {
7267 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7268 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
7269 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
7270 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
7271 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
7272 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->architecture
), ndr_get_array_length(ndr
, &r
->architecture
));
7274 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
7275 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
7276 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
7278 if (r
->driver_path
) {
7279 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7280 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
7281 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
7282 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
7283 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
7284 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_path
), ndr_get_array_length(ndr
, &r
->driver_path
));
7286 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
7287 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
7288 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
7291 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7292 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
7293 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
7294 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
7295 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
7296 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
7298 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
7299 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
7300 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
7302 if (r
->config_file
) {
7303 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7304 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
7305 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
7306 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
7307 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
7308 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->config_file
), ndr_get_array_length(ndr
, &r
->config_file
));
7310 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
7311 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
7312 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
7315 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7316 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
7317 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
7318 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
7319 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
7320 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->help_file
), ndr_get_array_length(ndr
, &r
->help_file
));
7322 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
7323 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
7324 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
7326 if (r
->monitor_name
) {
7327 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7328 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
7329 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
7330 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
7331 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
7332 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->monitor_name
), ndr_get_array_length(ndr
, &r
->monitor_name
));
7334 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
7335 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
7336 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
7338 if (r
->default_datatype
) {
7339 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7340 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
7341 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
7342 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
7343 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
7344 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->default_datatype
), ndr_get_array_length(ndr
, &r
->default_datatype
));
7346 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
7347 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
7348 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
7350 if (r
->dependent_files
) {
7351 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7352 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
7353 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
7354 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
7356 if (r
->previous_names
) {
7357 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7358 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
7359 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
7360 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
7362 if (r
->manufacturer_name
) {
7363 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7364 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
7365 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
7366 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
7367 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
7368 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->manufacturer_name
), ndr_get_array_length(ndr
, &r
->manufacturer_name
));
7370 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
7371 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
7372 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
7374 if (r
->manufacturer_url
) {
7375 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7376 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
7377 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
7378 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
7379 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
7380 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->manufacturer_url
), ndr_get_array_length(ndr
, &r
->manufacturer_url
));
7382 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
7383 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
7384 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
7386 if (r
->hardware_id
) {
7387 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7388 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
7389 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
7390 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
7391 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
7392 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->hardware_id
), ndr_get_array_length(ndr
, &r
->hardware_id
));
7394 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
7395 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
7396 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
7399 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7400 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
7401 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
7402 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
7403 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
7404 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->provider
), ndr_get_array_length(ndr
, &r
->provider
));
7406 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
7407 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
7408 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
7411 return NDR_ERR_SUCCESS
;
7414 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo6
*r
)
7416 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo6");
7418 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
7419 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
7421 if (r
->driver_name
) {
7422 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
7425 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
7427 if (r
->architecture
) {
7428 ndr_print_string(ndr
, "architecture", r
->architecture
);
7431 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
7433 if (r
->driver_path
) {
7434 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
7437 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
7440 ndr_print_string(ndr
, "data_file", r
->data_file
);
7443 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
7445 if (r
->config_file
) {
7446 ndr_print_string(ndr
, "config_file", r
->config_file
);
7449 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
7452 ndr_print_string(ndr
, "help_file", r
->help_file
);
7455 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
7457 if (r
->monitor_name
) {
7458 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
7461 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
7463 if (r
->default_datatype
) {
7464 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
7467 ndr_print_uint32(ndr
, "_ndr_size_dependent_files", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_dependent_files
);
7468 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
7470 if (r
->dependent_files
) {
7471 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
7474 ndr_print_uint32(ndr
, "_ndr_size_previous_names", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_previous_names
);
7475 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
7477 if (r
->previous_names
) {
7478 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
7481 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
7482 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
7483 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
7485 if (r
->manufacturer_name
) {
7486 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
7489 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
7491 if (r
->manufacturer_url
) {
7492 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
7495 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
7497 if (r
->hardware_id
) {
7498 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
7501 ndr_print_ptr(ndr
, "provider", r
->provider
);
7504 ndr_print_string(ndr
, "provider", r
->provider
);
7510 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo8
*r
)
7512 if (ndr_flags
& NDR_SCALARS
) {
7513 NDR_CHECK(ndr_push_align(ndr
, 8));
7514 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
7515 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7516 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
7517 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
7518 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
7519 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
7520 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
7521 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
7522 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
7523 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
7524 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
7525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
7526 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
7527 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
7528 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
7529 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
7530 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
7531 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
7532 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
7533 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
7534 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->vendor_setup
));
7535 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->color_profiles
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
7536 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->color_profiles
));
7537 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->inf_path
));
7538 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
7539 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->core_driver_dependencies
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
7540 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->core_driver_dependencies
));
7541 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
7542 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
7544 if (ndr_flags
& NDR_BUFFERS
) {
7545 if (r
->driver_name
) {
7546 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7547 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7548 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7549 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7551 if (r
->architecture
) {
7552 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7553 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7554 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7555 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7557 if (r
->driver_path
) {
7558 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7559 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7560 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7561 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7564 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7565 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7566 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7567 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7569 if (r
->config_file
) {
7570 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7571 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7572 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7573 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7576 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
7577 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7578 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
7579 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7581 if (r
->monitor_name
) {
7582 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
7583 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7584 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
7585 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7587 if (r
->default_datatype
) {
7588 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
7589 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7590 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
7591 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7593 if (r
->dependent_files
) {
7594 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
7596 if (r
->previous_names
) {
7597 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
7599 if (r
->manufacturer_name
) {
7600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
7601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
7603 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7605 if (r
->manufacturer_url
) {
7606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
7607 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7608 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
7609 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7611 if (r
->hardware_id
) {
7612 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
7613 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
7615 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7618 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
7619 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7620 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
7621 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7623 if (r
->print_processor
) {
7624 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
7625 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7626 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
7627 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7629 if (r
->vendor_setup
) {
7630 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
7631 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7632 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
7633 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->vendor_setup
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7635 if (r
->color_profiles
) {
7636 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
7639 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
7640 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7641 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
7642 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->inf_path
, ndr_charset_length(r
->inf_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7644 if (r
->core_driver_dependencies
) {
7645 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
7648 return NDR_ERR_SUCCESS
;
7651 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo8
*r
)
7653 uint32_t _ptr_driver_name
;
7654 TALLOC_CTX
*_mem_save_driver_name_0
;
7655 uint32_t _ptr_architecture
;
7656 TALLOC_CTX
*_mem_save_architecture_0
;
7657 uint32_t _ptr_driver_path
;
7658 TALLOC_CTX
*_mem_save_driver_path_0
;
7659 uint32_t _ptr_data_file
;
7660 TALLOC_CTX
*_mem_save_data_file_0
;
7661 uint32_t _ptr_config_file
;
7662 TALLOC_CTX
*_mem_save_config_file_0
;
7663 uint32_t _ptr_help_file
;
7664 TALLOC_CTX
*_mem_save_help_file_0
;
7665 uint32_t _ptr_monitor_name
;
7666 TALLOC_CTX
*_mem_save_monitor_name_0
;
7667 uint32_t _ptr_default_datatype
;
7668 TALLOC_CTX
*_mem_save_default_datatype_0
;
7669 uint32_t _ptr_dependent_files
;
7670 TALLOC_CTX
*_mem_save_dependent_files_0
;
7671 uint32_t _ptr_previous_names
;
7672 TALLOC_CTX
*_mem_save_previous_names_0
;
7673 uint32_t _ptr_manufacturer_name
;
7674 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
7675 uint32_t _ptr_manufacturer_url
;
7676 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
7677 uint32_t _ptr_hardware_id
;
7678 TALLOC_CTX
*_mem_save_hardware_id_0
;
7679 uint32_t _ptr_provider
;
7680 TALLOC_CTX
*_mem_save_provider_0
;
7681 uint32_t _ptr_print_processor
;
7682 TALLOC_CTX
*_mem_save_print_processor_0
;
7683 uint32_t _ptr_vendor_setup
;
7684 TALLOC_CTX
*_mem_save_vendor_setup_0
;
7685 uint32_t _ptr_color_profiles
;
7686 TALLOC_CTX
*_mem_save_color_profiles_0
;
7687 uint32_t _ptr_inf_path
;
7688 TALLOC_CTX
*_mem_save_inf_path_0
;
7689 uint32_t _ptr_core_driver_dependencies
;
7690 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
7691 if (ndr_flags
& NDR_SCALARS
) {
7692 NDR_CHECK(ndr_pull_align(ndr
, 8));
7693 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
7694 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7695 if (_ptr_driver_name
) {
7696 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7698 r
->driver_name
= NULL
;
7700 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
7701 if (_ptr_architecture
) {
7702 NDR_PULL_ALLOC(ndr
, r
->architecture
);
7704 r
->architecture
= NULL
;
7706 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
7707 if (_ptr_driver_path
) {
7708 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
7710 r
->driver_path
= NULL
;
7712 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
7713 if (_ptr_data_file
) {
7714 NDR_PULL_ALLOC(ndr
, r
->data_file
);
7716 r
->data_file
= NULL
;
7718 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
7719 if (_ptr_config_file
) {
7720 NDR_PULL_ALLOC(ndr
, r
->config_file
);
7722 r
->config_file
= NULL
;
7724 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
7725 if (_ptr_help_file
) {
7726 NDR_PULL_ALLOC(ndr
, r
->help_file
);
7728 r
->help_file
= NULL
;
7730 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
7731 if (_ptr_monitor_name
) {
7732 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
7734 r
->monitor_name
= NULL
;
7736 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
7737 if (_ptr_default_datatype
) {
7738 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
7740 r
->default_datatype
= NULL
;
7742 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
7743 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
7744 if (_ptr_dependent_files
) {
7745 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
7747 r
->dependent_files
= NULL
;
7749 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
7750 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
7751 if (_ptr_previous_names
) {
7752 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
7754 r
->previous_names
= NULL
;
7756 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
7757 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
7758 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
7759 if (_ptr_manufacturer_name
) {
7760 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
7762 r
->manufacturer_name
= NULL
;
7764 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
7765 if (_ptr_manufacturer_url
) {
7766 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
7768 r
->manufacturer_url
= NULL
;
7770 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
7771 if (_ptr_hardware_id
) {
7772 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
7774 r
->hardware_id
= NULL
;
7776 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
7777 if (_ptr_provider
) {
7778 NDR_PULL_ALLOC(ndr
, r
->provider
);
7782 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
7783 if (_ptr_print_processor
) {
7784 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
7786 r
->print_processor
= NULL
;
7788 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
7789 if (_ptr_vendor_setup
) {
7790 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
7792 r
->vendor_setup
= NULL
;
7794 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_color_profiles
));
7795 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
7796 if (_ptr_color_profiles
) {
7797 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
7799 r
->color_profiles
= NULL
;
7801 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
7802 if (_ptr_inf_path
) {
7803 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
7807 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
7808 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_core_driver_dependencies
));
7809 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
7810 if (_ptr_core_driver_dependencies
) {
7811 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
7813 r
->core_driver_dependencies
= NULL
;
7815 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
7816 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
7818 if (ndr_flags
& NDR_BUFFERS
) {
7819 if (r
->driver_name
) {
7820 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7821 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7822 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
7823 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
7824 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
7825 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
7827 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
7828 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
7829 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
7831 if (r
->architecture
) {
7832 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7833 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
7834 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
7835 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
7836 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
7837 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->architecture
), ndr_get_array_length(ndr
, &r
->architecture
));
7839 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
7840 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
7841 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
7843 if (r
->driver_path
) {
7844 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7845 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
7846 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
7847 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
7848 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
7849 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_path
), ndr_get_array_length(ndr
, &r
->driver_path
));
7851 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
7852 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
7853 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
7856 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7857 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
7858 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
7859 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
7860 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
7861 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
7863 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
7864 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
7865 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
7867 if (r
->config_file
) {
7868 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7869 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
7870 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
7871 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
7872 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
7873 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->config_file
), ndr_get_array_length(ndr
, &r
->config_file
));
7875 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
7876 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
7877 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
7880 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7881 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
7882 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
7883 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
7884 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
7885 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->help_file
), ndr_get_array_length(ndr
, &r
->help_file
));
7887 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
7888 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
7889 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
7891 if (r
->monitor_name
) {
7892 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7893 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
7894 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
7895 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
7896 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
7897 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->monitor_name
), ndr_get_array_length(ndr
, &r
->monitor_name
));
7899 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
7900 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
7901 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
7903 if (r
->default_datatype
) {
7904 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7905 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
7906 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
7907 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
7908 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
7909 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->default_datatype
), ndr_get_array_length(ndr
, &r
->default_datatype
));
7911 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
7912 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
7913 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
7915 if (r
->dependent_files
) {
7916 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7917 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
7918 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
7919 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
7921 if (r
->previous_names
) {
7922 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7923 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
7924 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
7925 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
7927 if (r
->manufacturer_name
) {
7928 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7929 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
7930 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
7931 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
7932 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
7933 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->manufacturer_name
), ndr_get_array_length(ndr
, &r
->manufacturer_name
));
7935 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
7936 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
7937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
7939 if (r
->manufacturer_url
) {
7940 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7941 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
7942 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
7943 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
7944 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
7945 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->manufacturer_url
), ndr_get_array_length(ndr
, &r
->manufacturer_url
));
7947 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
7948 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
7949 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
7951 if (r
->hardware_id
) {
7952 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7953 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
7954 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
7955 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
7956 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
7957 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->hardware_id
), ndr_get_array_length(ndr
, &r
->hardware_id
));
7959 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
7960 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
7961 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
7964 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7965 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
7966 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
7967 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
7968 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
7969 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->provider
), ndr_get_array_length(ndr
, &r
->provider
));
7971 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
7972 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
7973 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
7975 if (r
->print_processor
) {
7976 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7977 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
7978 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
7979 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
7980 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
7981 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->print_processor
), ndr_get_array_length(ndr
, &r
->print_processor
));
7983 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
7984 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
7985 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
7987 if (r
->vendor_setup
) {
7988 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7989 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
7990 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->vendor_setup
));
7991 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->vendor_setup
));
7992 if (ndr_get_array_length(ndr
, &r
->vendor_setup
) > ndr_get_array_size(ndr
, &r
->vendor_setup
)) {
7993 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->vendor_setup
), ndr_get_array_length(ndr
, &r
->vendor_setup
));
7995 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t)));
7996 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->vendor_setup
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t), CH_UTF16
));
7997 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
7999 if (r
->color_profiles
) {
8000 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8001 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
8002 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
8003 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
8006 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8007 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
8008 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->inf_path
));
8009 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->inf_path
));
8010 if (ndr_get_array_length(ndr
, &r
->inf_path
) > ndr_get_array_size(ndr
, &r
->inf_path
)) {
8011 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->inf_path
), ndr_get_array_length(ndr
, &r
->inf_path
));
8013 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t)));
8014 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->inf_path
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t), CH_UTF16
));
8015 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
8017 if (r
->core_driver_dependencies
) {
8018 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8019 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
8020 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
8021 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
8024 return NDR_ERR_SUCCESS
;
8027 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo8
*r
)
8029 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo8");
8031 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8032 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8034 if (r
->driver_name
) {
8035 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8038 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8040 if (r
->architecture
) {
8041 ndr_print_string(ndr
, "architecture", r
->architecture
);
8044 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8046 if (r
->driver_path
) {
8047 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8050 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8053 ndr_print_string(ndr
, "data_file", r
->data_file
);
8056 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8058 if (r
->config_file
) {
8059 ndr_print_string(ndr
, "config_file", r
->config_file
);
8062 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8065 ndr_print_string(ndr
, "help_file", r
->help_file
);
8068 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8070 if (r
->monitor_name
) {
8071 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8074 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8076 if (r
->default_datatype
) {
8077 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8080 ndr_print_uint32(ndr
, "_ndr_size_dependent_files", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_dependent_files
);
8081 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8083 if (r
->dependent_files
) {
8084 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8087 ndr_print_uint32(ndr
, "_ndr_size_previous_names", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_previous_names
);
8088 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
8090 if (r
->previous_names
) {
8091 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
8094 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
8095 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
8096 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
8098 if (r
->manufacturer_name
) {
8099 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
8102 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
8104 if (r
->manufacturer_url
) {
8105 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
8108 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
8110 if (r
->hardware_id
) {
8111 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
8114 ndr_print_ptr(ndr
, "provider", r
->provider
);
8117 ndr_print_string(ndr
, "provider", r
->provider
);
8120 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
8122 if (r
->print_processor
) {
8123 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
8126 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
8128 if (r
->vendor_setup
) {
8129 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
8132 ndr_print_uint32(ndr
, "_ndr_size_color_profiles", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->color_profiles
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_color_profiles
);
8133 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
8135 if (r
->color_profiles
) {
8136 ndr_print_spoolss_StringArray(ndr
, "color_profiles", r
->color_profiles
);
8139 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
8142 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
8145 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
8146 ndr_print_uint32(ndr
, "_ndr_size_core_driver_dependencies", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?((ndr_size_spoolss_StringArray(r
->core_driver_dependencies
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2):r
->_ndr_size_core_driver_dependencies
);
8147 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
8149 if (r
->core_driver_dependencies
) {
8150 ndr_print_spoolss_StringArray(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
8153 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
8154 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
8158 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddDriverInfo
*r
)
8160 if (ndr_flags
& NDR_SCALARS
) {
8161 int level
= ndr_push_get_switch_value(ndr
, r
);
8162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
8165 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
8169 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
8173 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
8177 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
8181 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
8185 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
8189 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
8192 if (ndr_flags
& NDR_BUFFERS
) {
8193 int level
= ndr_push_get_switch_value(ndr
, r
);
8197 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
8203 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
8209 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
8215 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
8221 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
8227 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
8232 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
8235 return NDR_ERR_SUCCESS
;
8238 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddDriverInfo
*r
)
8242 TALLOC_CTX
*_mem_save_info1_0
;
8243 TALLOC_CTX
*_mem_save_info2_0
;
8244 TALLOC_CTX
*_mem_save_info3_0
;
8245 TALLOC_CTX
*_mem_save_info4_0
;
8246 TALLOC_CTX
*_mem_save_info6_0
;
8247 TALLOC_CTX
*_mem_save_info8_0
;
8248 level
= ndr_pull_get_switch_value(ndr
, r
);
8249 if (ndr_flags
& NDR_SCALARS
) {
8250 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
8251 if (_level
!= level
) {
8252 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
8256 uint32_t _ptr_info1
;
8257 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
8259 NDR_PULL_ALLOC(ndr
, r
->info1
);
8266 uint32_t _ptr_info2
;
8267 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
8269 NDR_PULL_ALLOC(ndr
, r
->info2
);
8276 uint32_t _ptr_info3
;
8277 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
8279 NDR_PULL_ALLOC(ndr
, r
->info3
);
8286 uint32_t _ptr_info4
;
8287 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
8289 NDR_PULL_ALLOC(ndr
, r
->info4
);
8296 uint32_t _ptr_info6
;
8297 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
8299 NDR_PULL_ALLOC(ndr
, r
->info6
);
8306 uint32_t _ptr_info8
;
8307 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
8309 NDR_PULL_ALLOC(ndr
, r
->info8
);
8316 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
8319 if (ndr_flags
& NDR_BUFFERS
) {
8323 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8324 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
8325 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
8326 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
8332 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8333 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
8334 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
8335 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
8341 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8342 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
8343 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
8344 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
8350 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8351 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
8352 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
8353 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
8359 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8360 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
8361 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
8362 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
8368 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8369 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
8370 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
8371 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
8376 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
8379 return NDR_ERR_SUCCESS
;
8382 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddDriverInfo
*r
)
8385 level
= ndr_print_get_switch_value(ndr
, r
);
8386 ndr_print_union(ndr
, name
, level
, "spoolss_AddDriverInfo");
8389 ndr_print_ptr(ndr
, "info1", r
->info1
);
8392 ndr_print_spoolss_AddDriverInfo1(ndr
, "info1", r
->info1
);
8398 ndr_print_ptr(ndr
, "info2", r
->info2
);
8401 ndr_print_spoolss_AddDriverInfo2(ndr
, "info2", r
->info2
);
8407 ndr_print_ptr(ndr
, "info3", r
->info3
);
8410 ndr_print_spoolss_AddDriverInfo3(ndr
, "info3", r
->info3
);
8416 ndr_print_ptr(ndr
, "info4", r
->info4
);
8419 ndr_print_spoolss_AddDriverInfo4(ndr
, "info4", r
->info4
);
8425 ndr_print_ptr(ndr
, "info6", r
->info6
);
8428 ndr_print_spoolss_AddDriverInfo6(ndr
, "info6", r
->info6
);
8434 ndr_print_ptr(ndr
, "info8", r
->info8
);
8437 ndr_print_spoolss_AddDriverInfo8(ndr
, "info8", r
->info8
);
8443 ndr_print_bad_level(ndr
, name
, level
);
8447 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfoCtr
*r
)
8449 if (ndr_flags
& NDR_SCALARS
) {
8450 NDR_CHECK(ndr_push_align(ndr
, 4));
8451 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
8452 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
8453 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
8455 if (ndr_flags
& NDR_BUFFERS
) {
8456 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
8458 return NDR_ERR_SUCCESS
;
8461 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfoCtr
*r
)
8463 if (ndr_flags
& NDR_SCALARS
) {
8464 NDR_CHECK(ndr_pull_align(ndr
, 4));
8465 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
8466 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
8467 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
8469 if (ndr_flags
& NDR_BUFFERS
) {
8470 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
8472 return NDR_ERR_SUCCESS
;
8475 _PUBLIC_
void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfoCtr
*r
)
8477 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfoCtr");
8479 ndr_print_uint32(ndr
, "level", r
->level
);
8480 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
8481 ndr_print_spoolss_AddDriverInfo(ndr
, "info", &r
->info
);
8485 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo1
*r
)
8487 if (ndr_flags
& NDR_SCALARS
) {
8488 NDR_CHECK(ndr_push_align(ndr
, 4));
8490 uint32_t _flags_save_string
= ndr
->flags
;
8491 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8492 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
8493 ndr
->flags
= _flags_save_string
;
8496 if (ndr_flags
& NDR_BUFFERS
) {
8498 uint32_t _flags_save_string
= ndr
->flags
;
8499 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8500 if (r
->driver_name
) {
8501 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
8502 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
8504 ndr
->flags
= _flags_save_string
;
8507 return NDR_ERR_SUCCESS
;
8510 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo1
*r
)
8512 uint32_t _ptr_driver_name
;
8513 TALLOC_CTX
*_mem_save_driver_name_0
;
8514 if (ndr_flags
& NDR_SCALARS
) {
8515 NDR_CHECK(ndr_pull_align(ndr
, 4));
8517 uint32_t _flags_save_string
= ndr
->flags
;
8518 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8519 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8520 if (_ptr_driver_name
) {
8521 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8522 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
8524 r
->driver_name
= NULL
;
8526 ndr
->flags
= _flags_save_string
;
8529 if (ndr_flags
& NDR_BUFFERS
) {
8531 uint32_t _flags_save_string
= ndr
->flags
;
8532 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8533 if (r
->driver_name
) {
8534 uint32_t _relative_save_offset
;
8535 _relative_save_offset
= ndr
->offset
;
8536 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
8537 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8538 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8539 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
8540 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8541 ndr
->offset
= _relative_save_offset
;
8543 ndr
->flags
= _flags_save_string
;
8546 return NDR_ERR_SUCCESS
;
8549 _PUBLIC_
void ndr_print_spoolss_DriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo1
*r
)
8551 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo1");
8553 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8555 if (r
->driver_name
) {
8556 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8562 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
8564 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo1
, ic
);
8567 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo2
*r
)
8569 if (ndr_flags
& NDR_SCALARS
) {
8570 NDR_CHECK(ndr_push_align(ndr
, 4));
8571 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8573 uint32_t _flags_save_string
= ndr
->flags
;
8574 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8575 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
8576 ndr
->flags
= _flags_save_string
;
8579 uint32_t _flags_save_string
= ndr
->flags
;
8580 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8581 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
8582 ndr
->flags
= _flags_save_string
;
8585 uint32_t _flags_save_string
= ndr
->flags
;
8586 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8587 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
8588 ndr
->flags
= _flags_save_string
;
8591 uint32_t _flags_save_string
= ndr
->flags
;
8592 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8593 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
8594 ndr
->flags
= _flags_save_string
;
8597 uint32_t _flags_save_string
= ndr
->flags
;
8598 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8599 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
8600 ndr
->flags
= _flags_save_string
;
8603 if (ndr_flags
& NDR_BUFFERS
) {
8605 uint32_t _flags_save_string
= ndr
->flags
;
8606 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8607 if (r
->driver_name
) {
8608 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
8609 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
8611 ndr
->flags
= _flags_save_string
;
8614 uint32_t _flags_save_string
= ndr
->flags
;
8615 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8616 if (r
->architecture
) {
8617 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
8618 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
8620 ndr
->flags
= _flags_save_string
;
8623 uint32_t _flags_save_string
= ndr
->flags
;
8624 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8625 if (r
->driver_path
) {
8626 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
8627 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
8629 ndr
->flags
= _flags_save_string
;
8632 uint32_t _flags_save_string
= ndr
->flags
;
8633 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8635 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
8636 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
8638 ndr
->flags
= _flags_save_string
;
8641 uint32_t _flags_save_string
= ndr
->flags
;
8642 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8643 if (r
->config_file
) {
8644 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
8645 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
8647 ndr
->flags
= _flags_save_string
;
8650 return NDR_ERR_SUCCESS
;
8653 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo2
*r
)
8655 uint32_t _ptr_driver_name
;
8656 TALLOC_CTX
*_mem_save_driver_name_0
;
8657 uint32_t _ptr_architecture
;
8658 TALLOC_CTX
*_mem_save_architecture_0
;
8659 uint32_t _ptr_driver_path
;
8660 TALLOC_CTX
*_mem_save_driver_path_0
;
8661 uint32_t _ptr_data_file
;
8662 TALLOC_CTX
*_mem_save_data_file_0
;
8663 uint32_t _ptr_config_file
;
8664 TALLOC_CTX
*_mem_save_config_file_0
;
8665 if (ndr_flags
& NDR_SCALARS
) {
8666 NDR_CHECK(ndr_pull_align(ndr
, 4));
8667 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8669 uint32_t _flags_save_string
= ndr
->flags
;
8670 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8671 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8672 if (_ptr_driver_name
) {
8673 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8674 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
8676 r
->driver_name
= NULL
;
8678 ndr
->flags
= _flags_save_string
;
8681 uint32_t _flags_save_string
= ndr
->flags
;
8682 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8683 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8684 if (_ptr_architecture
) {
8685 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8686 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
8688 r
->architecture
= NULL
;
8690 ndr
->flags
= _flags_save_string
;
8693 uint32_t _flags_save_string
= ndr
->flags
;
8694 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8695 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8696 if (_ptr_driver_path
) {
8697 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8698 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
8700 r
->driver_path
= NULL
;
8702 ndr
->flags
= _flags_save_string
;
8705 uint32_t _flags_save_string
= ndr
->flags
;
8706 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8707 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8708 if (_ptr_data_file
) {
8709 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8710 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
8712 r
->data_file
= NULL
;
8714 ndr
->flags
= _flags_save_string
;
8717 uint32_t _flags_save_string
= ndr
->flags
;
8718 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8719 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8720 if (_ptr_config_file
) {
8721 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8722 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
8724 r
->config_file
= NULL
;
8726 ndr
->flags
= _flags_save_string
;
8729 if (ndr_flags
& NDR_BUFFERS
) {
8731 uint32_t _flags_save_string
= ndr
->flags
;
8732 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8733 if (r
->driver_name
) {
8734 uint32_t _relative_save_offset
;
8735 _relative_save_offset
= ndr
->offset
;
8736 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
8737 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8738 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8739 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
8740 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8741 ndr
->offset
= _relative_save_offset
;
8743 ndr
->flags
= _flags_save_string
;
8746 uint32_t _flags_save_string
= ndr
->flags
;
8747 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8748 if (r
->architecture
) {
8749 uint32_t _relative_save_offset
;
8750 _relative_save_offset
= ndr
->offset
;
8751 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
8752 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8753 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8754 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
8755 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8756 ndr
->offset
= _relative_save_offset
;
8758 ndr
->flags
= _flags_save_string
;
8761 uint32_t _flags_save_string
= ndr
->flags
;
8762 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8763 if (r
->driver_path
) {
8764 uint32_t _relative_save_offset
;
8765 _relative_save_offset
= ndr
->offset
;
8766 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
8767 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8768 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8769 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
8770 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8771 ndr
->offset
= _relative_save_offset
;
8773 ndr
->flags
= _flags_save_string
;
8776 uint32_t _flags_save_string
= ndr
->flags
;
8777 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8779 uint32_t _relative_save_offset
;
8780 _relative_save_offset
= ndr
->offset
;
8781 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
8782 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8783 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8784 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
8785 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8786 ndr
->offset
= _relative_save_offset
;
8788 ndr
->flags
= _flags_save_string
;
8791 uint32_t _flags_save_string
= ndr
->flags
;
8792 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8793 if (r
->config_file
) {
8794 uint32_t _relative_save_offset
;
8795 _relative_save_offset
= ndr
->offset
;
8796 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
8797 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8798 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8799 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
8800 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8801 ndr
->offset
= _relative_save_offset
;
8803 ndr
->flags
= _flags_save_string
;
8806 return NDR_ERR_SUCCESS
;
8809 _PUBLIC_
void ndr_print_spoolss_DriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo2
*r
)
8811 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo2");
8813 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8814 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8816 if (r
->driver_name
) {
8817 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8820 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8822 if (r
->architecture
) {
8823 ndr_print_string(ndr
, "architecture", r
->architecture
);
8826 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8828 if (r
->driver_path
) {
8829 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8832 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8835 ndr_print_string(ndr
, "data_file", r
->data_file
);
8838 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8840 if (r
->config_file
) {
8841 ndr_print_string(ndr
, "config_file", r
->config_file
);
8847 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
8849 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo2
, ic
);
8852 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo3
*r
)
8854 if (ndr_flags
& NDR_SCALARS
) {
8855 NDR_CHECK(ndr_push_align(ndr
, 4));
8856 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8858 uint32_t _flags_save_string
= ndr
->flags
;
8859 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8860 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
8861 ndr
->flags
= _flags_save_string
;
8864 uint32_t _flags_save_string
= ndr
->flags
;
8865 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8866 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
8867 ndr
->flags
= _flags_save_string
;
8870 uint32_t _flags_save_string
= ndr
->flags
;
8871 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8872 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
8873 ndr
->flags
= _flags_save_string
;
8876 uint32_t _flags_save_string
= ndr
->flags
;
8877 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8878 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
8879 ndr
->flags
= _flags_save_string
;
8882 uint32_t _flags_save_string
= ndr
->flags
;
8883 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8884 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
8885 ndr
->flags
= _flags_save_string
;
8888 uint32_t _flags_save_string
= ndr
->flags
;
8889 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8890 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
8891 ndr
->flags
= _flags_save_string
;
8894 uint32_t _flags_save_string_array
= ndr
->flags
;
8895 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8896 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
8897 ndr
->flags
= _flags_save_string_array
;
8900 uint32_t _flags_save_string
= ndr
->flags
;
8901 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8902 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
8903 ndr
->flags
= _flags_save_string
;
8906 uint32_t _flags_save_string
= ndr
->flags
;
8907 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8908 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
8909 ndr
->flags
= _flags_save_string
;
8912 if (ndr_flags
& NDR_BUFFERS
) {
8914 uint32_t _flags_save_string
= ndr
->flags
;
8915 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8916 if (r
->driver_name
) {
8917 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
8918 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
8920 ndr
->flags
= _flags_save_string
;
8923 uint32_t _flags_save_string
= ndr
->flags
;
8924 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8925 if (r
->architecture
) {
8926 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
8927 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
8929 ndr
->flags
= _flags_save_string
;
8932 uint32_t _flags_save_string
= ndr
->flags
;
8933 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8934 if (r
->driver_path
) {
8935 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
8936 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
8938 ndr
->flags
= _flags_save_string
;
8941 uint32_t _flags_save_string
= ndr
->flags
;
8942 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8944 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
8945 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
8947 ndr
->flags
= _flags_save_string
;
8950 uint32_t _flags_save_string
= ndr
->flags
;
8951 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8952 if (r
->config_file
) {
8953 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
8954 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
8956 ndr
->flags
= _flags_save_string
;
8959 uint32_t _flags_save_string
= ndr
->flags
;
8960 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8962 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
8963 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
8965 ndr
->flags
= _flags_save_string
;
8968 uint32_t _flags_save_string_array
= ndr
->flags
;
8969 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8970 if (r
->dependent_files
) {
8971 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
8972 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
8974 ndr
->flags
= _flags_save_string_array
;
8977 uint32_t _flags_save_string
= ndr
->flags
;
8978 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8979 if (r
->monitor_name
) {
8980 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
8981 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
8983 ndr
->flags
= _flags_save_string
;
8986 uint32_t _flags_save_string
= ndr
->flags
;
8987 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8988 if (r
->default_datatype
) {
8989 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
8990 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
8992 ndr
->flags
= _flags_save_string
;
8995 return NDR_ERR_SUCCESS
;
8998 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo3
*r
)
9000 uint32_t _ptr_driver_name
;
9001 TALLOC_CTX
*_mem_save_driver_name_0
;
9002 uint32_t _ptr_architecture
;
9003 TALLOC_CTX
*_mem_save_architecture_0
;
9004 uint32_t _ptr_driver_path
;
9005 TALLOC_CTX
*_mem_save_driver_path_0
;
9006 uint32_t _ptr_data_file
;
9007 TALLOC_CTX
*_mem_save_data_file_0
;
9008 uint32_t _ptr_config_file
;
9009 TALLOC_CTX
*_mem_save_config_file_0
;
9010 uint32_t _ptr_help_file
;
9011 TALLOC_CTX
*_mem_save_help_file_0
;
9012 uint32_t _ptr_dependent_files
;
9013 TALLOC_CTX
*_mem_save_dependent_files_0
;
9014 uint32_t _ptr_monitor_name
;
9015 TALLOC_CTX
*_mem_save_monitor_name_0
;
9016 uint32_t _ptr_default_datatype
;
9017 TALLOC_CTX
*_mem_save_default_datatype_0
;
9018 if (ndr_flags
& NDR_SCALARS
) {
9019 NDR_CHECK(ndr_pull_align(ndr
, 4));
9020 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9022 uint32_t _flags_save_string
= ndr
->flags
;
9023 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9024 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9025 if (_ptr_driver_name
) {
9026 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9027 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
9029 r
->driver_name
= NULL
;
9031 ndr
->flags
= _flags_save_string
;
9034 uint32_t _flags_save_string
= ndr
->flags
;
9035 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9036 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9037 if (_ptr_architecture
) {
9038 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9039 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
9041 r
->architecture
= NULL
;
9043 ndr
->flags
= _flags_save_string
;
9046 uint32_t _flags_save_string
= ndr
->flags
;
9047 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9048 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9049 if (_ptr_driver_path
) {
9050 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9051 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
9053 r
->driver_path
= NULL
;
9055 ndr
->flags
= _flags_save_string
;
9058 uint32_t _flags_save_string
= ndr
->flags
;
9059 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9060 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9061 if (_ptr_data_file
) {
9062 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9063 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
9065 r
->data_file
= NULL
;
9067 ndr
->flags
= _flags_save_string
;
9070 uint32_t _flags_save_string
= ndr
->flags
;
9071 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9072 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9073 if (_ptr_config_file
) {
9074 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9075 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
9077 r
->config_file
= NULL
;
9079 ndr
->flags
= _flags_save_string
;
9082 uint32_t _flags_save_string
= ndr
->flags
;
9083 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9084 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9085 if (_ptr_help_file
) {
9086 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9087 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
9089 r
->help_file
= NULL
;
9091 ndr
->flags
= _flags_save_string
;
9094 uint32_t _flags_save_string_array
= ndr
->flags
;
9095 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9096 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9097 if (_ptr_dependent_files
) {
9098 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9099 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
9101 r
->dependent_files
= NULL
;
9103 ndr
->flags
= _flags_save_string_array
;
9106 uint32_t _flags_save_string
= ndr
->flags
;
9107 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9108 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9109 if (_ptr_monitor_name
) {
9110 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9111 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
9113 r
->monitor_name
= NULL
;
9115 ndr
->flags
= _flags_save_string
;
9118 uint32_t _flags_save_string
= ndr
->flags
;
9119 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9120 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9121 if (_ptr_default_datatype
) {
9122 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9123 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
9125 r
->default_datatype
= NULL
;
9127 ndr
->flags
= _flags_save_string
;
9130 if (ndr_flags
& NDR_BUFFERS
) {
9132 uint32_t _flags_save_string
= ndr
->flags
;
9133 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9134 if (r
->driver_name
) {
9135 uint32_t _relative_save_offset
;
9136 _relative_save_offset
= ndr
->offset
;
9137 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
9138 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9139 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9140 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
9141 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9142 ndr
->offset
= _relative_save_offset
;
9144 ndr
->flags
= _flags_save_string
;
9147 uint32_t _flags_save_string
= ndr
->flags
;
9148 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9149 if (r
->architecture
) {
9150 uint32_t _relative_save_offset
;
9151 _relative_save_offset
= ndr
->offset
;
9152 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
9153 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9154 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9155 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
9156 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9157 ndr
->offset
= _relative_save_offset
;
9159 ndr
->flags
= _flags_save_string
;
9162 uint32_t _flags_save_string
= ndr
->flags
;
9163 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9164 if (r
->driver_path
) {
9165 uint32_t _relative_save_offset
;
9166 _relative_save_offset
= ndr
->offset
;
9167 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
9168 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9169 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9170 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
9171 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9172 ndr
->offset
= _relative_save_offset
;
9174 ndr
->flags
= _flags_save_string
;
9177 uint32_t _flags_save_string
= ndr
->flags
;
9178 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9180 uint32_t _relative_save_offset
;
9181 _relative_save_offset
= ndr
->offset
;
9182 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
9183 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9184 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9185 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
9186 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9187 ndr
->offset
= _relative_save_offset
;
9189 ndr
->flags
= _flags_save_string
;
9192 uint32_t _flags_save_string
= ndr
->flags
;
9193 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9194 if (r
->config_file
) {
9195 uint32_t _relative_save_offset
;
9196 _relative_save_offset
= ndr
->offset
;
9197 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
9198 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9199 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9200 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
9201 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9202 ndr
->offset
= _relative_save_offset
;
9204 ndr
->flags
= _flags_save_string
;
9207 uint32_t _flags_save_string
= ndr
->flags
;
9208 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9210 uint32_t _relative_save_offset
;
9211 _relative_save_offset
= ndr
->offset
;
9212 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
9213 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9214 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9215 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
9216 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9217 ndr
->offset
= _relative_save_offset
;
9219 ndr
->flags
= _flags_save_string
;
9222 uint32_t _flags_save_string_array
= ndr
->flags
;
9223 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9224 if (r
->dependent_files
) {
9225 uint32_t _relative_save_offset
;
9226 _relative_save_offset
= ndr
->offset
;
9227 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
9228 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9229 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9230 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
9231 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9232 ndr
->offset
= _relative_save_offset
;
9234 ndr
->flags
= _flags_save_string_array
;
9237 uint32_t _flags_save_string
= ndr
->flags
;
9238 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9239 if (r
->monitor_name
) {
9240 uint32_t _relative_save_offset
;
9241 _relative_save_offset
= ndr
->offset
;
9242 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
9243 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9244 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9245 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
9246 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9247 ndr
->offset
= _relative_save_offset
;
9249 ndr
->flags
= _flags_save_string
;
9252 uint32_t _flags_save_string
= ndr
->flags
;
9253 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9254 if (r
->default_datatype
) {
9255 uint32_t _relative_save_offset
;
9256 _relative_save_offset
= ndr
->offset
;
9257 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
9258 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9259 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9260 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
9261 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9262 ndr
->offset
= _relative_save_offset
;
9264 ndr
->flags
= _flags_save_string
;
9267 return NDR_ERR_SUCCESS
;
9270 _PUBLIC_
void ndr_print_spoolss_DriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo3
*r
)
9272 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo3");
9274 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9275 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9277 if (r
->driver_name
) {
9278 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9281 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9283 if (r
->architecture
) {
9284 ndr_print_string(ndr
, "architecture", r
->architecture
);
9287 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9289 if (r
->driver_path
) {
9290 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9293 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9296 ndr_print_string(ndr
, "data_file", r
->data_file
);
9299 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9301 if (r
->config_file
) {
9302 ndr_print_string(ndr
, "config_file", r
->config_file
);
9305 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9308 ndr_print_string(ndr
, "help_file", r
->help_file
);
9311 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9313 if (r
->dependent_files
) {
9314 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
9317 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9319 if (r
->monitor_name
) {
9320 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9323 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9325 if (r
->default_datatype
) {
9326 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9332 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
9334 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo3
, ic
);
9337 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo4
*r
)
9339 if (ndr_flags
& NDR_SCALARS
) {
9340 NDR_CHECK(ndr_push_align(ndr
, 4));
9341 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9343 uint32_t _flags_save_string
= ndr
->flags
;
9344 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9345 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
9346 ndr
->flags
= _flags_save_string
;
9349 uint32_t _flags_save_string
= ndr
->flags
;
9350 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9351 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
9352 ndr
->flags
= _flags_save_string
;
9355 uint32_t _flags_save_string
= ndr
->flags
;
9356 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9357 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
9358 ndr
->flags
= _flags_save_string
;
9361 uint32_t _flags_save_string
= ndr
->flags
;
9362 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9363 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
9364 ndr
->flags
= _flags_save_string
;
9367 uint32_t _flags_save_string
= ndr
->flags
;
9368 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9369 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
9370 ndr
->flags
= _flags_save_string
;
9373 uint32_t _flags_save_string
= ndr
->flags
;
9374 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9375 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
9376 ndr
->flags
= _flags_save_string
;
9379 uint32_t _flags_save_string_array
= ndr
->flags
;
9380 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9381 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
9382 ndr
->flags
= _flags_save_string_array
;
9385 uint32_t _flags_save_string
= ndr
->flags
;
9386 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9387 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
9388 ndr
->flags
= _flags_save_string
;
9391 uint32_t _flags_save_string
= ndr
->flags
;
9392 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9393 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
9394 ndr
->flags
= _flags_save_string
;
9397 uint32_t _flags_save_string_array
= ndr
->flags
;
9398 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9399 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
9400 ndr
->flags
= _flags_save_string_array
;
9403 if (ndr_flags
& NDR_BUFFERS
) {
9405 uint32_t _flags_save_string
= ndr
->flags
;
9406 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9407 if (r
->driver_name
) {
9408 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
9409 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
9411 ndr
->flags
= _flags_save_string
;
9414 uint32_t _flags_save_string
= ndr
->flags
;
9415 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9416 if (r
->architecture
) {
9417 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
9418 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
9420 ndr
->flags
= _flags_save_string
;
9423 uint32_t _flags_save_string
= ndr
->flags
;
9424 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9425 if (r
->driver_path
) {
9426 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
9427 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
9429 ndr
->flags
= _flags_save_string
;
9432 uint32_t _flags_save_string
= ndr
->flags
;
9433 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9435 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
9436 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
9438 ndr
->flags
= _flags_save_string
;
9441 uint32_t _flags_save_string
= ndr
->flags
;
9442 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9443 if (r
->config_file
) {
9444 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
9445 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
9447 ndr
->flags
= _flags_save_string
;
9450 uint32_t _flags_save_string
= ndr
->flags
;
9451 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9453 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
9454 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
9456 ndr
->flags
= _flags_save_string
;
9459 uint32_t _flags_save_string_array
= ndr
->flags
;
9460 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9461 if (r
->dependent_files
) {
9462 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
9463 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
9465 ndr
->flags
= _flags_save_string_array
;
9468 uint32_t _flags_save_string
= ndr
->flags
;
9469 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9470 if (r
->monitor_name
) {
9471 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
9472 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
9474 ndr
->flags
= _flags_save_string
;
9477 uint32_t _flags_save_string
= ndr
->flags
;
9478 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9479 if (r
->default_datatype
) {
9480 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
9481 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
9483 ndr
->flags
= _flags_save_string
;
9486 uint32_t _flags_save_string_array
= ndr
->flags
;
9487 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9488 if (r
->previous_names
) {
9489 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
9490 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
9492 ndr
->flags
= _flags_save_string_array
;
9495 return NDR_ERR_SUCCESS
;
9498 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo4
*r
)
9500 uint32_t _ptr_driver_name
;
9501 TALLOC_CTX
*_mem_save_driver_name_0
;
9502 uint32_t _ptr_architecture
;
9503 TALLOC_CTX
*_mem_save_architecture_0
;
9504 uint32_t _ptr_driver_path
;
9505 TALLOC_CTX
*_mem_save_driver_path_0
;
9506 uint32_t _ptr_data_file
;
9507 TALLOC_CTX
*_mem_save_data_file_0
;
9508 uint32_t _ptr_config_file
;
9509 TALLOC_CTX
*_mem_save_config_file_0
;
9510 uint32_t _ptr_help_file
;
9511 TALLOC_CTX
*_mem_save_help_file_0
;
9512 uint32_t _ptr_dependent_files
;
9513 TALLOC_CTX
*_mem_save_dependent_files_0
;
9514 uint32_t _ptr_monitor_name
;
9515 TALLOC_CTX
*_mem_save_monitor_name_0
;
9516 uint32_t _ptr_default_datatype
;
9517 TALLOC_CTX
*_mem_save_default_datatype_0
;
9518 uint32_t _ptr_previous_names
;
9519 TALLOC_CTX
*_mem_save_previous_names_0
;
9520 if (ndr_flags
& NDR_SCALARS
) {
9521 NDR_CHECK(ndr_pull_align(ndr
, 4));
9522 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9524 uint32_t _flags_save_string
= ndr
->flags
;
9525 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9526 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9527 if (_ptr_driver_name
) {
9528 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9529 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
9531 r
->driver_name
= NULL
;
9533 ndr
->flags
= _flags_save_string
;
9536 uint32_t _flags_save_string
= ndr
->flags
;
9537 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9538 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9539 if (_ptr_architecture
) {
9540 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9541 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
9543 r
->architecture
= NULL
;
9545 ndr
->flags
= _flags_save_string
;
9548 uint32_t _flags_save_string
= ndr
->flags
;
9549 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9550 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9551 if (_ptr_driver_path
) {
9552 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9553 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
9555 r
->driver_path
= NULL
;
9557 ndr
->flags
= _flags_save_string
;
9560 uint32_t _flags_save_string
= ndr
->flags
;
9561 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9562 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9563 if (_ptr_data_file
) {
9564 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9565 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
9567 r
->data_file
= NULL
;
9569 ndr
->flags
= _flags_save_string
;
9572 uint32_t _flags_save_string
= ndr
->flags
;
9573 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9574 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9575 if (_ptr_config_file
) {
9576 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9577 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
9579 r
->config_file
= NULL
;
9581 ndr
->flags
= _flags_save_string
;
9584 uint32_t _flags_save_string
= ndr
->flags
;
9585 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9586 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9587 if (_ptr_help_file
) {
9588 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9589 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
9591 r
->help_file
= NULL
;
9593 ndr
->flags
= _flags_save_string
;
9596 uint32_t _flags_save_string_array
= ndr
->flags
;
9597 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9598 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9599 if (_ptr_dependent_files
) {
9600 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9601 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
9603 r
->dependent_files
= NULL
;
9605 ndr
->flags
= _flags_save_string_array
;
9608 uint32_t _flags_save_string
= ndr
->flags
;
9609 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9610 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9611 if (_ptr_monitor_name
) {
9612 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9613 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
9615 r
->monitor_name
= NULL
;
9617 ndr
->flags
= _flags_save_string
;
9620 uint32_t _flags_save_string
= ndr
->flags
;
9621 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9622 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9623 if (_ptr_default_datatype
) {
9624 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9625 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
9627 r
->default_datatype
= NULL
;
9629 ndr
->flags
= _flags_save_string
;
9632 uint32_t _flags_save_string_array
= ndr
->flags
;
9633 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9634 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9635 if (_ptr_previous_names
) {
9636 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9637 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
9639 r
->previous_names
= NULL
;
9641 ndr
->flags
= _flags_save_string_array
;
9644 if (ndr_flags
& NDR_BUFFERS
) {
9646 uint32_t _flags_save_string
= ndr
->flags
;
9647 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9648 if (r
->driver_name
) {
9649 uint32_t _relative_save_offset
;
9650 _relative_save_offset
= ndr
->offset
;
9651 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
9652 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9653 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9654 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
9655 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9656 ndr
->offset
= _relative_save_offset
;
9658 ndr
->flags
= _flags_save_string
;
9661 uint32_t _flags_save_string
= ndr
->flags
;
9662 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9663 if (r
->architecture
) {
9664 uint32_t _relative_save_offset
;
9665 _relative_save_offset
= ndr
->offset
;
9666 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
9667 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9668 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9669 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
9670 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9671 ndr
->offset
= _relative_save_offset
;
9673 ndr
->flags
= _flags_save_string
;
9676 uint32_t _flags_save_string
= ndr
->flags
;
9677 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9678 if (r
->driver_path
) {
9679 uint32_t _relative_save_offset
;
9680 _relative_save_offset
= ndr
->offset
;
9681 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
9682 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9683 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9684 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
9685 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9686 ndr
->offset
= _relative_save_offset
;
9688 ndr
->flags
= _flags_save_string
;
9691 uint32_t _flags_save_string
= ndr
->flags
;
9692 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9694 uint32_t _relative_save_offset
;
9695 _relative_save_offset
= ndr
->offset
;
9696 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
9697 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9698 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9699 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
9700 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9701 ndr
->offset
= _relative_save_offset
;
9703 ndr
->flags
= _flags_save_string
;
9706 uint32_t _flags_save_string
= ndr
->flags
;
9707 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9708 if (r
->config_file
) {
9709 uint32_t _relative_save_offset
;
9710 _relative_save_offset
= ndr
->offset
;
9711 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
9712 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9713 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9714 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
9715 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9716 ndr
->offset
= _relative_save_offset
;
9718 ndr
->flags
= _flags_save_string
;
9721 uint32_t _flags_save_string
= ndr
->flags
;
9722 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9724 uint32_t _relative_save_offset
;
9725 _relative_save_offset
= ndr
->offset
;
9726 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
9727 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9728 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9729 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
9730 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9731 ndr
->offset
= _relative_save_offset
;
9733 ndr
->flags
= _flags_save_string
;
9736 uint32_t _flags_save_string_array
= ndr
->flags
;
9737 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9738 if (r
->dependent_files
) {
9739 uint32_t _relative_save_offset
;
9740 _relative_save_offset
= ndr
->offset
;
9741 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
9742 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9743 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9744 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
9745 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9746 ndr
->offset
= _relative_save_offset
;
9748 ndr
->flags
= _flags_save_string_array
;
9751 uint32_t _flags_save_string
= ndr
->flags
;
9752 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9753 if (r
->monitor_name
) {
9754 uint32_t _relative_save_offset
;
9755 _relative_save_offset
= ndr
->offset
;
9756 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
9757 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9758 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9759 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
9760 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9761 ndr
->offset
= _relative_save_offset
;
9763 ndr
->flags
= _flags_save_string
;
9766 uint32_t _flags_save_string
= ndr
->flags
;
9767 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9768 if (r
->default_datatype
) {
9769 uint32_t _relative_save_offset
;
9770 _relative_save_offset
= ndr
->offset
;
9771 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
9772 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9773 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9774 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
9775 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9776 ndr
->offset
= _relative_save_offset
;
9778 ndr
->flags
= _flags_save_string
;
9781 uint32_t _flags_save_string_array
= ndr
->flags
;
9782 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9783 if (r
->previous_names
) {
9784 uint32_t _relative_save_offset
;
9785 _relative_save_offset
= ndr
->offset
;
9786 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
9787 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9788 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9789 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
9790 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9791 ndr
->offset
= _relative_save_offset
;
9793 ndr
->flags
= _flags_save_string_array
;
9796 return NDR_ERR_SUCCESS
;
9799 _PUBLIC_
void ndr_print_spoolss_DriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo4
*r
)
9801 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo4");
9803 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9804 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9806 if (r
->driver_name
) {
9807 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9810 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9812 if (r
->architecture
) {
9813 ndr_print_string(ndr
, "architecture", r
->architecture
);
9816 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9818 if (r
->driver_path
) {
9819 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9822 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9825 ndr_print_string(ndr
, "data_file", r
->data_file
);
9828 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9830 if (r
->config_file
) {
9831 ndr_print_string(ndr
, "config_file", r
->config_file
);
9834 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9837 ndr_print_string(ndr
, "help_file", r
->help_file
);
9840 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9842 if (r
->dependent_files
) {
9843 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
9846 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9848 if (r
->monitor_name
) {
9849 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9852 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9854 if (r
->default_datatype
) {
9855 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9858 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
9860 if (r
->previous_names
) {
9861 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
9867 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
9869 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo4
, ic
);
9872 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo5
*r
)
9874 if (ndr_flags
& NDR_SCALARS
) {
9875 NDR_CHECK(ndr_push_align(ndr
, 4));
9876 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9878 uint32_t _flags_save_string
= ndr
->flags
;
9879 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9880 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
9881 ndr
->flags
= _flags_save_string
;
9884 uint32_t _flags_save_string
= ndr
->flags
;
9885 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9886 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
9887 ndr
->flags
= _flags_save_string
;
9890 uint32_t _flags_save_string
= ndr
->flags
;
9891 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9892 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
9893 ndr
->flags
= _flags_save_string
;
9896 uint32_t _flags_save_string
= ndr
->flags
;
9897 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9898 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
9899 ndr
->flags
= _flags_save_string
;
9902 uint32_t _flags_save_string
= ndr
->flags
;
9903 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9904 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
9905 ndr
->flags
= _flags_save_string
;
9907 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->driver_attributes
));
9908 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->config_version
));
9909 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->driver_version
));
9911 if (ndr_flags
& NDR_BUFFERS
) {
9913 uint32_t _flags_save_string
= ndr
->flags
;
9914 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9915 if (r
->driver_name
) {
9916 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
9917 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
9919 ndr
->flags
= _flags_save_string
;
9922 uint32_t _flags_save_string
= ndr
->flags
;
9923 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9924 if (r
->architecture
) {
9925 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
9926 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
9928 ndr
->flags
= _flags_save_string
;
9931 uint32_t _flags_save_string
= ndr
->flags
;
9932 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9933 if (r
->driver_path
) {
9934 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
9935 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
9937 ndr
->flags
= _flags_save_string
;
9940 uint32_t _flags_save_string
= ndr
->flags
;
9941 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9943 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
9944 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
9946 ndr
->flags
= _flags_save_string
;
9949 uint32_t _flags_save_string
= ndr
->flags
;
9950 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9951 if (r
->config_file
) {
9952 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
9953 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
9955 ndr
->flags
= _flags_save_string
;
9958 return NDR_ERR_SUCCESS
;
9961 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo5
*r
)
9963 uint32_t _ptr_driver_name
;
9964 TALLOC_CTX
*_mem_save_driver_name_0
;
9965 uint32_t _ptr_architecture
;
9966 TALLOC_CTX
*_mem_save_architecture_0
;
9967 uint32_t _ptr_driver_path
;
9968 TALLOC_CTX
*_mem_save_driver_path_0
;
9969 uint32_t _ptr_data_file
;
9970 TALLOC_CTX
*_mem_save_data_file_0
;
9971 uint32_t _ptr_config_file
;
9972 TALLOC_CTX
*_mem_save_config_file_0
;
9973 if (ndr_flags
& NDR_SCALARS
) {
9974 NDR_CHECK(ndr_pull_align(ndr
, 4));
9975 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9977 uint32_t _flags_save_string
= ndr
->flags
;
9978 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9979 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9980 if (_ptr_driver_name
) {
9981 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9982 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
9984 r
->driver_name
= NULL
;
9986 ndr
->flags
= _flags_save_string
;
9989 uint32_t _flags_save_string
= ndr
->flags
;
9990 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9991 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9992 if (_ptr_architecture
) {
9993 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9994 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
9996 r
->architecture
= NULL
;
9998 ndr
->flags
= _flags_save_string
;
10001 uint32_t _flags_save_string
= ndr
->flags
;
10002 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10003 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10004 if (_ptr_driver_path
) {
10005 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10006 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10008 r
->driver_path
= NULL
;
10010 ndr
->flags
= _flags_save_string
;
10013 uint32_t _flags_save_string
= ndr
->flags
;
10014 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10015 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10016 if (_ptr_data_file
) {
10017 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10018 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10020 r
->data_file
= NULL
;
10022 ndr
->flags
= _flags_save_string
;
10025 uint32_t _flags_save_string
= ndr
->flags
;
10026 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10027 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10028 if (_ptr_config_file
) {
10029 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10030 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10032 r
->config_file
= NULL
;
10034 ndr
->flags
= _flags_save_string
;
10036 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->driver_attributes
));
10037 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->config_version
));
10038 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->driver_version
));
10040 if (ndr_flags
& NDR_BUFFERS
) {
10042 uint32_t _flags_save_string
= ndr
->flags
;
10043 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10044 if (r
->driver_name
) {
10045 uint32_t _relative_save_offset
;
10046 _relative_save_offset
= ndr
->offset
;
10047 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10048 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10049 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10050 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10051 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10052 ndr
->offset
= _relative_save_offset
;
10054 ndr
->flags
= _flags_save_string
;
10057 uint32_t _flags_save_string
= ndr
->flags
;
10058 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10059 if (r
->architecture
) {
10060 uint32_t _relative_save_offset
;
10061 _relative_save_offset
= ndr
->offset
;
10062 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
10063 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10064 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10065 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
10066 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10067 ndr
->offset
= _relative_save_offset
;
10069 ndr
->flags
= _flags_save_string
;
10072 uint32_t _flags_save_string
= ndr
->flags
;
10073 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10074 if (r
->driver_path
) {
10075 uint32_t _relative_save_offset
;
10076 _relative_save_offset
= ndr
->offset
;
10077 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
10078 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10079 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10080 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
10081 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10082 ndr
->offset
= _relative_save_offset
;
10084 ndr
->flags
= _flags_save_string
;
10087 uint32_t _flags_save_string
= ndr
->flags
;
10088 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10089 if (r
->data_file
) {
10090 uint32_t _relative_save_offset
;
10091 _relative_save_offset
= ndr
->offset
;
10092 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
10093 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10094 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10095 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
10096 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10097 ndr
->offset
= _relative_save_offset
;
10099 ndr
->flags
= _flags_save_string
;
10102 uint32_t _flags_save_string
= ndr
->flags
;
10103 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10104 if (r
->config_file
) {
10105 uint32_t _relative_save_offset
;
10106 _relative_save_offset
= ndr
->offset
;
10107 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
10108 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10109 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10110 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
10111 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10112 ndr
->offset
= _relative_save_offset
;
10114 ndr
->flags
= _flags_save_string
;
10117 return NDR_ERR_SUCCESS
;
10120 _PUBLIC_
void ndr_print_spoolss_DriverInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo5
*r
)
10122 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo5");
10124 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10125 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10127 if (r
->driver_name
) {
10128 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10131 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10133 if (r
->architecture
) {
10134 ndr_print_string(ndr
, "architecture", r
->architecture
);
10137 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10139 if (r
->driver_path
) {
10140 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10143 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10145 if (r
->data_file
) {
10146 ndr_print_string(ndr
, "data_file", r
->data_file
);
10149 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10151 if (r
->config_file
) {
10152 ndr_print_string(ndr
, "config_file", r
->config_file
);
10155 ndr_print_uint32(ndr
, "driver_attributes", r
->driver_attributes
);
10156 ndr_print_uint32(ndr
, "config_version", r
->config_version
);
10157 ndr_print_uint32(ndr
, "driver_version", r
->driver_version
);
10161 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10163 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo5
, ic
);
10166 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo6
*r
)
10168 if (ndr_flags
& NDR_SCALARS
) {
10169 NDR_CHECK(ndr_push_align(ndr
, 8));
10170 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10172 uint32_t _flags_save_string
= ndr
->flags
;
10173 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10174 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10175 ndr
->flags
= _flags_save_string
;
10178 uint32_t _flags_save_string
= ndr
->flags
;
10179 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10180 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10181 ndr
->flags
= _flags_save_string
;
10184 uint32_t _flags_save_string
= ndr
->flags
;
10185 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10186 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10187 ndr
->flags
= _flags_save_string
;
10190 uint32_t _flags_save_string
= ndr
->flags
;
10191 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10192 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10193 ndr
->flags
= _flags_save_string
;
10196 uint32_t _flags_save_string
= ndr
->flags
;
10197 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10198 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10199 ndr
->flags
= _flags_save_string
;
10202 uint32_t _flags_save_string
= ndr
->flags
;
10203 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10204 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
10205 ndr
->flags
= _flags_save_string
;
10208 uint32_t _flags_save_string_array
= ndr
->flags
;
10209 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10210 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
10211 ndr
->flags
= _flags_save_string_array
;
10214 uint32_t _flags_save_string
= ndr
->flags
;
10215 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10216 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
10217 ndr
->flags
= _flags_save_string
;
10220 uint32_t _flags_save_string
= ndr
->flags
;
10221 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10222 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
10223 ndr
->flags
= _flags_save_string
;
10226 uint32_t _flags_save_string_array
= ndr
->flags
;
10227 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10228 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
10229 ndr
->flags
= _flags_save_string_array
;
10231 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
10232 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
10234 uint32_t _flags_save_string
= ndr
->flags
;
10235 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10236 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
10237 ndr
->flags
= _flags_save_string
;
10240 uint32_t _flags_save_string
= ndr
->flags
;
10241 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10242 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
10243 ndr
->flags
= _flags_save_string
;
10246 uint32_t _flags_save_string
= ndr
->flags
;
10247 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10248 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
10249 ndr
->flags
= _flags_save_string
;
10252 uint32_t _flags_save_string
= ndr
->flags
;
10253 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10254 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
10255 ndr
->flags
= _flags_save_string
;
10258 if (ndr_flags
& NDR_BUFFERS
) {
10260 uint32_t _flags_save_string
= ndr
->flags
;
10261 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10262 if (r
->driver_name
) {
10263 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10264 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10266 ndr
->flags
= _flags_save_string
;
10269 uint32_t _flags_save_string
= ndr
->flags
;
10270 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10271 if (r
->architecture
) {
10272 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
10273 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10275 ndr
->flags
= _flags_save_string
;
10278 uint32_t _flags_save_string
= ndr
->flags
;
10279 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10280 if (r
->driver_path
) {
10281 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
10282 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10284 ndr
->flags
= _flags_save_string
;
10287 uint32_t _flags_save_string
= ndr
->flags
;
10288 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10289 if (r
->data_file
) {
10290 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
10291 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10293 ndr
->flags
= _flags_save_string
;
10296 uint32_t _flags_save_string
= ndr
->flags
;
10297 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10298 if (r
->config_file
) {
10299 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
10300 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10302 ndr
->flags
= _flags_save_string
;
10305 uint32_t _flags_save_string
= ndr
->flags
;
10306 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10307 if (r
->help_file
) {
10308 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
10309 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
10311 ndr
->flags
= _flags_save_string
;
10314 uint32_t _flags_save_string_array
= ndr
->flags
;
10315 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10316 if (r
->dependent_files
) {
10317 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
10318 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
10320 ndr
->flags
= _flags_save_string_array
;
10323 uint32_t _flags_save_string
= ndr
->flags
;
10324 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10325 if (r
->monitor_name
) {
10326 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
10327 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
10329 ndr
->flags
= _flags_save_string
;
10332 uint32_t _flags_save_string
= ndr
->flags
;
10333 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10334 if (r
->default_datatype
) {
10335 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
10336 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
10338 ndr
->flags
= _flags_save_string
;
10341 uint32_t _flags_save_string_array
= ndr
->flags
;
10342 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10343 if (r
->previous_names
) {
10344 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
10345 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
10347 ndr
->flags
= _flags_save_string_array
;
10350 uint32_t _flags_save_string
= ndr
->flags
;
10351 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10352 if (r
->manufacturer_name
) {
10353 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_name
));
10354 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
10356 ndr
->flags
= _flags_save_string
;
10359 uint32_t _flags_save_string
= ndr
->flags
;
10360 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10361 if (r
->manufacturer_url
) {
10362 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_url
));
10363 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
10365 ndr
->flags
= _flags_save_string
;
10368 uint32_t _flags_save_string
= ndr
->flags
;
10369 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10370 if (r
->hardware_id
) {
10371 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->hardware_id
));
10372 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
10374 ndr
->flags
= _flags_save_string
;
10377 uint32_t _flags_save_string
= ndr
->flags
;
10378 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10380 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->provider
));
10381 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
10383 ndr
->flags
= _flags_save_string
;
10386 return NDR_ERR_SUCCESS
;
10389 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo6
*r
)
10391 uint32_t _ptr_driver_name
;
10392 TALLOC_CTX
*_mem_save_driver_name_0
;
10393 uint32_t _ptr_architecture
;
10394 TALLOC_CTX
*_mem_save_architecture_0
;
10395 uint32_t _ptr_driver_path
;
10396 TALLOC_CTX
*_mem_save_driver_path_0
;
10397 uint32_t _ptr_data_file
;
10398 TALLOC_CTX
*_mem_save_data_file_0
;
10399 uint32_t _ptr_config_file
;
10400 TALLOC_CTX
*_mem_save_config_file_0
;
10401 uint32_t _ptr_help_file
;
10402 TALLOC_CTX
*_mem_save_help_file_0
;
10403 uint32_t _ptr_dependent_files
;
10404 TALLOC_CTX
*_mem_save_dependent_files_0
;
10405 uint32_t _ptr_monitor_name
;
10406 TALLOC_CTX
*_mem_save_monitor_name_0
;
10407 uint32_t _ptr_default_datatype
;
10408 TALLOC_CTX
*_mem_save_default_datatype_0
;
10409 uint32_t _ptr_previous_names
;
10410 TALLOC_CTX
*_mem_save_previous_names_0
;
10411 uint32_t _ptr_manufacturer_name
;
10412 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
10413 uint32_t _ptr_manufacturer_url
;
10414 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
10415 uint32_t _ptr_hardware_id
;
10416 TALLOC_CTX
*_mem_save_hardware_id_0
;
10417 uint32_t _ptr_provider
;
10418 TALLOC_CTX
*_mem_save_provider_0
;
10419 if (ndr_flags
& NDR_SCALARS
) {
10420 NDR_CHECK(ndr_pull_align(ndr
, 8));
10421 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10423 uint32_t _flags_save_string
= ndr
->flags
;
10424 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10425 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10426 if (_ptr_driver_name
) {
10427 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10428 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10430 r
->driver_name
= NULL
;
10432 ndr
->flags
= _flags_save_string
;
10435 uint32_t _flags_save_string
= ndr
->flags
;
10436 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10437 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10438 if (_ptr_architecture
) {
10439 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10440 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10442 r
->architecture
= NULL
;
10444 ndr
->flags
= _flags_save_string
;
10447 uint32_t _flags_save_string
= ndr
->flags
;
10448 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10449 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10450 if (_ptr_driver_path
) {
10451 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10452 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10454 r
->driver_path
= NULL
;
10456 ndr
->flags
= _flags_save_string
;
10459 uint32_t _flags_save_string
= ndr
->flags
;
10460 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10461 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10462 if (_ptr_data_file
) {
10463 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10464 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10466 r
->data_file
= NULL
;
10468 ndr
->flags
= _flags_save_string
;
10471 uint32_t _flags_save_string
= ndr
->flags
;
10472 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10473 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10474 if (_ptr_config_file
) {
10475 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10476 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10478 r
->config_file
= NULL
;
10480 ndr
->flags
= _flags_save_string
;
10483 uint32_t _flags_save_string
= ndr
->flags
;
10484 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10485 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
10486 if (_ptr_help_file
) {
10487 NDR_PULL_ALLOC(ndr
, r
->help_file
);
10488 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
10490 r
->help_file
= NULL
;
10492 ndr
->flags
= _flags_save_string
;
10495 uint32_t _flags_save_string_array
= ndr
->flags
;
10496 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10497 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
10498 if (_ptr_dependent_files
) {
10499 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
10500 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
10502 r
->dependent_files
= NULL
;
10504 ndr
->flags
= _flags_save_string_array
;
10507 uint32_t _flags_save_string
= ndr
->flags
;
10508 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10509 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
10510 if (_ptr_monitor_name
) {
10511 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
10512 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
10514 r
->monitor_name
= NULL
;
10516 ndr
->flags
= _flags_save_string
;
10519 uint32_t _flags_save_string
= ndr
->flags
;
10520 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10521 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
10522 if (_ptr_default_datatype
) {
10523 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
10524 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
10526 r
->default_datatype
= NULL
;
10528 ndr
->flags
= _flags_save_string
;
10531 uint32_t _flags_save_string_array
= ndr
->flags
;
10532 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10533 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
10534 if (_ptr_previous_names
) {
10535 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
10536 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
10538 r
->previous_names
= NULL
;
10540 ndr
->flags
= _flags_save_string_array
;
10542 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
10543 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
10545 uint32_t _flags_save_string
= ndr
->flags
;
10546 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10547 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
10548 if (_ptr_manufacturer_name
) {
10549 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
10550 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
10552 r
->manufacturer_name
= NULL
;
10554 ndr
->flags
= _flags_save_string
;
10557 uint32_t _flags_save_string
= ndr
->flags
;
10558 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10559 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
10560 if (_ptr_manufacturer_url
) {
10561 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
10562 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
10564 r
->manufacturer_url
= NULL
;
10566 ndr
->flags
= _flags_save_string
;
10569 uint32_t _flags_save_string
= ndr
->flags
;
10570 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10571 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
10572 if (_ptr_hardware_id
) {
10573 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
10574 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
10576 r
->hardware_id
= NULL
;
10578 ndr
->flags
= _flags_save_string
;
10581 uint32_t _flags_save_string
= ndr
->flags
;
10582 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10583 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
10584 if (_ptr_provider
) {
10585 NDR_PULL_ALLOC(ndr
, r
->provider
);
10586 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
10588 r
->provider
= NULL
;
10590 ndr
->flags
= _flags_save_string
;
10593 if (ndr_flags
& NDR_BUFFERS
) {
10595 uint32_t _flags_save_string
= ndr
->flags
;
10596 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10597 if (r
->driver_name
) {
10598 uint32_t _relative_save_offset
;
10599 _relative_save_offset
= ndr
->offset
;
10600 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10601 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10602 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10603 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10604 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10605 ndr
->offset
= _relative_save_offset
;
10607 ndr
->flags
= _flags_save_string
;
10610 uint32_t _flags_save_string
= ndr
->flags
;
10611 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10612 if (r
->architecture
) {
10613 uint32_t _relative_save_offset
;
10614 _relative_save_offset
= ndr
->offset
;
10615 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
10616 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10617 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10618 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
10619 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10620 ndr
->offset
= _relative_save_offset
;
10622 ndr
->flags
= _flags_save_string
;
10625 uint32_t _flags_save_string
= ndr
->flags
;
10626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10627 if (r
->driver_path
) {
10628 uint32_t _relative_save_offset
;
10629 _relative_save_offset
= ndr
->offset
;
10630 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
10631 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10632 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10633 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
10634 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10635 ndr
->offset
= _relative_save_offset
;
10637 ndr
->flags
= _flags_save_string
;
10640 uint32_t _flags_save_string
= ndr
->flags
;
10641 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10642 if (r
->data_file
) {
10643 uint32_t _relative_save_offset
;
10644 _relative_save_offset
= ndr
->offset
;
10645 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
10646 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10647 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10648 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
10649 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10650 ndr
->offset
= _relative_save_offset
;
10652 ndr
->flags
= _flags_save_string
;
10655 uint32_t _flags_save_string
= ndr
->flags
;
10656 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10657 if (r
->config_file
) {
10658 uint32_t _relative_save_offset
;
10659 _relative_save_offset
= ndr
->offset
;
10660 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
10661 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10662 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10663 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
10664 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10665 ndr
->offset
= _relative_save_offset
;
10667 ndr
->flags
= _flags_save_string
;
10670 uint32_t _flags_save_string
= ndr
->flags
;
10671 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10672 if (r
->help_file
) {
10673 uint32_t _relative_save_offset
;
10674 _relative_save_offset
= ndr
->offset
;
10675 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
10676 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10677 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
10678 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
10679 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
10680 ndr
->offset
= _relative_save_offset
;
10682 ndr
->flags
= _flags_save_string
;
10685 uint32_t _flags_save_string_array
= ndr
->flags
;
10686 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10687 if (r
->dependent_files
) {
10688 uint32_t _relative_save_offset
;
10689 _relative_save_offset
= ndr
->offset
;
10690 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
10691 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10692 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
10693 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
10694 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
10695 ndr
->offset
= _relative_save_offset
;
10697 ndr
->flags
= _flags_save_string_array
;
10700 uint32_t _flags_save_string
= ndr
->flags
;
10701 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10702 if (r
->monitor_name
) {
10703 uint32_t _relative_save_offset
;
10704 _relative_save_offset
= ndr
->offset
;
10705 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
10706 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10707 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
10708 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
10709 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
10710 ndr
->offset
= _relative_save_offset
;
10712 ndr
->flags
= _flags_save_string
;
10715 uint32_t _flags_save_string
= ndr
->flags
;
10716 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10717 if (r
->default_datatype
) {
10718 uint32_t _relative_save_offset
;
10719 _relative_save_offset
= ndr
->offset
;
10720 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
10721 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10722 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
10723 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
10724 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
10725 ndr
->offset
= _relative_save_offset
;
10727 ndr
->flags
= _flags_save_string
;
10730 uint32_t _flags_save_string_array
= ndr
->flags
;
10731 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10732 if (r
->previous_names
) {
10733 uint32_t _relative_save_offset
;
10734 _relative_save_offset
= ndr
->offset
;
10735 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
10736 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10737 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
10738 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
10739 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
10740 ndr
->offset
= _relative_save_offset
;
10742 ndr
->flags
= _flags_save_string_array
;
10745 uint32_t _flags_save_string
= ndr
->flags
;
10746 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10747 if (r
->manufacturer_name
) {
10748 uint32_t _relative_save_offset
;
10749 _relative_save_offset
= ndr
->offset
;
10750 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
10751 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10752 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
10753 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
10754 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
10755 ndr
->offset
= _relative_save_offset
;
10757 ndr
->flags
= _flags_save_string
;
10760 uint32_t _flags_save_string
= ndr
->flags
;
10761 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10762 if (r
->manufacturer_url
) {
10763 uint32_t _relative_save_offset
;
10764 _relative_save_offset
= ndr
->offset
;
10765 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
10766 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10767 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
10768 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
10769 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
10770 ndr
->offset
= _relative_save_offset
;
10772 ndr
->flags
= _flags_save_string
;
10775 uint32_t _flags_save_string
= ndr
->flags
;
10776 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10777 if (r
->hardware_id
) {
10778 uint32_t _relative_save_offset
;
10779 _relative_save_offset
= ndr
->offset
;
10780 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
10781 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10782 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
10783 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
10784 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
10785 ndr
->offset
= _relative_save_offset
;
10787 ndr
->flags
= _flags_save_string
;
10790 uint32_t _flags_save_string
= ndr
->flags
;
10791 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10793 uint32_t _relative_save_offset
;
10794 _relative_save_offset
= ndr
->offset
;
10795 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
10796 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10797 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
10798 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
10799 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
10800 ndr
->offset
= _relative_save_offset
;
10802 ndr
->flags
= _flags_save_string
;
10805 return NDR_ERR_SUCCESS
;
10808 _PUBLIC_
void ndr_print_spoolss_DriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo6
*r
)
10810 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo6");
10812 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10813 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10815 if (r
->driver_name
) {
10816 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10819 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10821 if (r
->architecture
) {
10822 ndr_print_string(ndr
, "architecture", r
->architecture
);
10825 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10827 if (r
->driver_path
) {
10828 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10831 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10833 if (r
->data_file
) {
10834 ndr_print_string(ndr
, "data_file", r
->data_file
);
10837 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10839 if (r
->config_file
) {
10840 ndr_print_string(ndr
, "config_file", r
->config_file
);
10843 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
10845 if (r
->help_file
) {
10846 ndr_print_string(ndr
, "help_file", r
->help_file
);
10849 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
10851 if (r
->dependent_files
) {
10852 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
10855 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
10857 if (r
->monitor_name
) {
10858 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
10861 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
10863 if (r
->default_datatype
) {
10864 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
10867 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
10869 if (r
->previous_names
) {
10870 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
10873 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
10874 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
10875 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
10877 if (r
->manufacturer_name
) {
10878 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
10881 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
10883 if (r
->manufacturer_url
) {
10884 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
10887 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
10889 if (r
->hardware_id
) {
10890 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
10893 ndr_print_ptr(ndr
, "provider", r
->provider
);
10896 ndr_print_string(ndr
, "provider", r
->provider
);
10902 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10904 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo6
, ic
);
10907 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo8
*r
)
10909 if (ndr_flags
& NDR_SCALARS
) {
10910 NDR_CHECK(ndr_push_align(ndr
, 8));
10911 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10913 uint32_t _flags_save_string
= ndr
->flags
;
10914 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10915 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10916 ndr
->flags
= _flags_save_string
;
10919 uint32_t _flags_save_string
= ndr
->flags
;
10920 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10921 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10922 ndr
->flags
= _flags_save_string
;
10925 uint32_t _flags_save_string
= ndr
->flags
;
10926 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10927 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10928 ndr
->flags
= _flags_save_string
;
10931 uint32_t _flags_save_string
= ndr
->flags
;
10932 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10933 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10934 ndr
->flags
= _flags_save_string
;
10937 uint32_t _flags_save_string
= ndr
->flags
;
10938 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10939 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10940 ndr
->flags
= _flags_save_string
;
10943 uint32_t _flags_save_string
= ndr
->flags
;
10944 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10945 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
10946 ndr
->flags
= _flags_save_string
;
10949 uint32_t _flags_save_string
= ndr
->flags
;
10950 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10951 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
10952 ndr
->flags
= _flags_save_string
;
10955 uint32_t _flags_save_string
= ndr
->flags
;
10956 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10957 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
10958 ndr
->flags
= _flags_save_string
;
10961 uint32_t _flags_save_string_array
= ndr
->flags
;
10962 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10963 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
10964 ndr
->flags
= _flags_save_string_array
;
10967 uint32_t _flags_save_string_array
= ndr
->flags
;
10968 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10969 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
10970 ndr
->flags
= _flags_save_string_array
;
10972 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
10973 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
10975 uint32_t _flags_save_string
= ndr
->flags
;
10976 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10977 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
10978 ndr
->flags
= _flags_save_string
;
10981 uint32_t _flags_save_string
= ndr
->flags
;
10982 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10983 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
10984 ndr
->flags
= _flags_save_string
;
10987 uint32_t _flags_save_string
= ndr
->flags
;
10988 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10989 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
10990 ndr
->flags
= _flags_save_string
;
10993 uint32_t _flags_save_string
= ndr
->flags
;
10994 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10995 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
10996 ndr
->flags
= _flags_save_string
;
10999 uint32_t _flags_save_string
= ndr
->flags
;
11000 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11001 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
11002 ndr
->flags
= _flags_save_string
;
11005 uint32_t _flags_save_string
= ndr
->flags
;
11006 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11007 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->vendor_setup
));
11008 ndr
->flags
= _flags_save_string
;
11011 uint32_t _flags_save_string_array
= ndr
->flags
;
11012 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11013 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->color_profiles
));
11014 ndr
->flags
= _flags_save_string_array
;
11017 uint32_t _flags_save_string
= ndr
->flags
;
11018 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11019 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->inf_path
));
11020 ndr
->flags
= _flags_save_string
;
11022 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
11024 uint32_t _flags_save_string_array
= ndr
->flags
;
11025 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11026 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->core_driver_dependencies
));
11027 ndr
->flags
= _flags_save_string_array
;
11029 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
11030 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
11032 if (ndr_flags
& NDR_BUFFERS
) {
11034 uint32_t _flags_save_string
= ndr
->flags
;
11035 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11036 if (r
->driver_name
) {
11037 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
11038 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11040 ndr
->flags
= _flags_save_string
;
11043 uint32_t _flags_save_string
= ndr
->flags
;
11044 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11045 if (r
->architecture
) {
11046 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
11047 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11049 ndr
->flags
= _flags_save_string
;
11052 uint32_t _flags_save_string
= ndr
->flags
;
11053 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11054 if (r
->driver_path
) {
11055 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
11056 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11058 ndr
->flags
= _flags_save_string
;
11061 uint32_t _flags_save_string
= ndr
->flags
;
11062 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11063 if (r
->data_file
) {
11064 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
11065 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11067 ndr
->flags
= _flags_save_string
;
11070 uint32_t _flags_save_string
= ndr
->flags
;
11071 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11072 if (r
->config_file
) {
11073 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
11074 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11076 ndr
->flags
= _flags_save_string
;
11079 uint32_t _flags_save_string
= ndr
->flags
;
11080 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11081 if (r
->help_file
) {
11082 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
11083 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
11085 ndr
->flags
= _flags_save_string
;
11088 uint32_t _flags_save_string
= ndr
->flags
;
11089 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11090 if (r
->monitor_name
) {
11091 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
11092 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
11094 ndr
->flags
= _flags_save_string
;
11097 uint32_t _flags_save_string
= ndr
->flags
;
11098 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11099 if (r
->default_datatype
) {
11100 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
11101 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
11103 ndr
->flags
= _flags_save_string
;
11106 uint32_t _flags_save_string_array
= ndr
->flags
;
11107 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11108 if (r
->dependent_files
) {
11109 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
11110 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
11112 ndr
->flags
= _flags_save_string_array
;
11115 uint32_t _flags_save_string_array
= ndr
->flags
;
11116 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11117 if (r
->previous_names
) {
11118 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
11119 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
11121 ndr
->flags
= _flags_save_string_array
;
11124 uint32_t _flags_save_string
= ndr
->flags
;
11125 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11126 if (r
->manufacturer_name
) {
11127 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_name
));
11128 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
11130 ndr
->flags
= _flags_save_string
;
11133 uint32_t _flags_save_string
= ndr
->flags
;
11134 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11135 if (r
->manufacturer_url
) {
11136 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_url
));
11137 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
11139 ndr
->flags
= _flags_save_string
;
11142 uint32_t _flags_save_string
= ndr
->flags
;
11143 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11144 if (r
->hardware_id
) {
11145 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->hardware_id
));
11146 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
11148 ndr
->flags
= _flags_save_string
;
11151 uint32_t _flags_save_string
= ndr
->flags
;
11152 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11154 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->provider
));
11155 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
11157 ndr
->flags
= _flags_save_string
;
11160 uint32_t _flags_save_string
= ndr
->flags
;
11161 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11162 if (r
->print_processor
) {
11163 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
11164 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
11166 ndr
->flags
= _flags_save_string
;
11169 uint32_t _flags_save_string
= ndr
->flags
;
11170 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11171 if (r
->vendor_setup
) {
11172 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->vendor_setup
));
11173 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->vendor_setup
));
11175 ndr
->flags
= _flags_save_string
;
11178 uint32_t _flags_save_string_array
= ndr
->flags
;
11179 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11180 if (r
->color_profiles
) {
11181 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->color_profiles
));
11182 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->color_profiles
));
11184 ndr
->flags
= _flags_save_string_array
;
11187 uint32_t _flags_save_string
= ndr
->flags
;
11188 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11190 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->inf_path
));
11191 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->inf_path
));
11193 ndr
->flags
= _flags_save_string
;
11196 uint32_t _flags_save_string_array
= ndr
->flags
;
11197 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11198 if (r
->core_driver_dependencies
) {
11199 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->core_driver_dependencies
));
11200 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
11202 ndr
->flags
= _flags_save_string_array
;
11205 return NDR_ERR_SUCCESS
;
11208 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo8
*r
)
11210 uint32_t _ptr_driver_name
;
11211 TALLOC_CTX
*_mem_save_driver_name_0
;
11212 uint32_t _ptr_architecture
;
11213 TALLOC_CTX
*_mem_save_architecture_0
;
11214 uint32_t _ptr_driver_path
;
11215 TALLOC_CTX
*_mem_save_driver_path_0
;
11216 uint32_t _ptr_data_file
;
11217 TALLOC_CTX
*_mem_save_data_file_0
;
11218 uint32_t _ptr_config_file
;
11219 TALLOC_CTX
*_mem_save_config_file_0
;
11220 uint32_t _ptr_help_file
;
11221 TALLOC_CTX
*_mem_save_help_file_0
;
11222 uint32_t _ptr_monitor_name
;
11223 TALLOC_CTX
*_mem_save_monitor_name_0
;
11224 uint32_t _ptr_default_datatype
;
11225 TALLOC_CTX
*_mem_save_default_datatype_0
;
11226 uint32_t _ptr_dependent_files
;
11227 TALLOC_CTX
*_mem_save_dependent_files_0
;
11228 uint32_t _ptr_previous_names
;
11229 TALLOC_CTX
*_mem_save_previous_names_0
;
11230 uint32_t _ptr_manufacturer_name
;
11231 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
11232 uint32_t _ptr_manufacturer_url
;
11233 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
11234 uint32_t _ptr_hardware_id
;
11235 TALLOC_CTX
*_mem_save_hardware_id_0
;
11236 uint32_t _ptr_provider
;
11237 TALLOC_CTX
*_mem_save_provider_0
;
11238 uint32_t _ptr_print_processor
;
11239 TALLOC_CTX
*_mem_save_print_processor_0
;
11240 uint32_t _ptr_vendor_setup
;
11241 TALLOC_CTX
*_mem_save_vendor_setup_0
;
11242 uint32_t _ptr_color_profiles
;
11243 TALLOC_CTX
*_mem_save_color_profiles_0
;
11244 uint32_t _ptr_inf_path
;
11245 TALLOC_CTX
*_mem_save_inf_path_0
;
11246 uint32_t _ptr_core_driver_dependencies
;
11247 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
11248 if (ndr_flags
& NDR_SCALARS
) {
11249 NDR_CHECK(ndr_pull_align(ndr
, 8));
11250 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11252 uint32_t _flags_save_string
= ndr
->flags
;
11253 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11254 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11255 if (_ptr_driver_name
) {
11256 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11257 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11259 r
->driver_name
= NULL
;
11261 ndr
->flags
= _flags_save_string
;
11264 uint32_t _flags_save_string
= ndr
->flags
;
11265 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11266 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11267 if (_ptr_architecture
) {
11268 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11269 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11271 r
->architecture
= NULL
;
11273 ndr
->flags
= _flags_save_string
;
11276 uint32_t _flags_save_string
= ndr
->flags
;
11277 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11278 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11279 if (_ptr_driver_path
) {
11280 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11281 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11283 r
->driver_path
= NULL
;
11285 ndr
->flags
= _flags_save_string
;
11288 uint32_t _flags_save_string
= ndr
->flags
;
11289 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11290 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11291 if (_ptr_data_file
) {
11292 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11293 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11295 r
->data_file
= NULL
;
11297 ndr
->flags
= _flags_save_string
;
11300 uint32_t _flags_save_string
= ndr
->flags
;
11301 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11302 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11303 if (_ptr_config_file
) {
11304 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11305 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11307 r
->config_file
= NULL
;
11309 ndr
->flags
= _flags_save_string
;
11312 uint32_t _flags_save_string
= ndr
->flags
;
11313 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11314 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
11315 if (_ptr_help_file
) {
11316 NDR_PULL_ALLOC(ndr
, r
->help_file
);
11317 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
11319 r
->help_file
= NULL
;
11321 ndr
->flags
= _flags_save_string
;
11324 uint32_t _flags_save_string
= ndr
->flags
;
11325 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11326 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
11327 if (_ptr_monitor_name
) {
11328 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
11329 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
11331 r
->monitor_name
= NULL
;
11333 ndr
->flags
= _flags_save_string
;
11336 uint32_t _flags_save_string
= ndr
->flags
;
11337 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11338 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
11339 if (_ptr_default_datatype
) {
11340 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
11341 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
11343 r
->default_datatype
= NULL
;
11345 ndr
->flags
= _flags_save_string
;
11348 uint32_t _flags_save_string_array
= ndr
->flags
;
11349 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11350 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
11351 if (_ptr_dependent_files
) {
11352 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
11353 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
11355 r
->dependent_files
= NULL
;
11357 ndr
->flags
= _flags_save_string_array
;
11360 uint32_t _flags_save_string_array
= ndr
->flags
;
11361 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11362 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
11363 if (_ptr_previous_names
) {
11364 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
11365 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
11367 r
->previous_names
= NULL
;
11369 ndr
->flags
= _flags_save_string_array
;
11371 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
11372 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
11374 uint32_t _flags_save_string
= ndr
->flags
;
11375 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11376 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
11377 if (_ptr_manufacturer_name
) {
11378 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
11379 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
11381 r
->manufacturer_name
= NULL
;
11383 ndr
->flags
= _flags_save_string
;
11386 uint32_t _flags_save_string
= ndr
->flags
;
11387 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11388 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
11389 if (_ptr_manufacturer_url
) {
11390 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
11391 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
11393 r
->manufacturer_url
= NULL
;
11395 ndr
->flags
= _flags_save_string
;
11398 uint32_t _flags_save_string
= ndr
->flags
;
11399 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11400 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
11401 if (_ptr_hardware_id
) {
11402 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
11403 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
11405 r
->hardware_id
= NULL
;
11407 ndr
->flags
= _flags_save_string
;
11410 uint32_t _flags_save_string
= ndr
->flags
;
11411 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11412 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
11413 if (_ptr_provider
) {
11414 NDR_PULL_ALLOC(ndr
, r
->provider
);
11415 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
11417 r
->provider
= NULL
;
11419 ndr
->flags
= _flags_save_string
;
11422 uint32_t _flags_save_string
= ndr
->flags
;
11423 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11424 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
11425 if (_ptr_print_processor
) {
11426 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
11427 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
11429 r
->print_processor
= NULL
;
11431 ndr
->flags
= _flags_save_string
;
11434 uint32_t _flags_save_string
= ndr
->flags
;
11435 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11436 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
11437 if (_ptr_vendor_setup
) {
11438 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
11439 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->vendor_setup
, _ptr_vendor_setup
));
11441 r
->vendor_setup
= NULL
;
11443 ndr
->flags
= _flags_save_string
;
11446 uint32_t _flags_save_string_array
= ndr
->flags
;
11447 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11448 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
11449 if (_ptr_color_profiles
) {
11450 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
11451 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->color_profiles
, _ptr_color_profiles
));
11453 r
->color_profiles
= NULL
;
11455 ndr
->flags
= _flags_save_string_array
;
11458 uint32_t _flags_save_string
= ndr
->flags
;
11459 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11460 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
11461 if (_ptr_inf_path
) {
11462 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
11463 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->inf_path
, _ptr_inf_path
));
11465 r
->inf_path
= NULL
;
11467 ndr
->flags
= _flags_save_string
;
11469 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
11471 uint32_t _flags_save_string_array
= ndr
->flags
;
11472 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11473 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
11474 if (_ptr_core_driver_dependencies
) {
11475 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
11476 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->core_driver_dependencies
, _ptr_core_driver_dependencies
));
11478 r
->core_driver_dependencies
= NULL
;
11480 ndr
->flags
= _flags_save_string_array
;
11482 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
11483 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
11485 if (ndr_flags
& NDR_BUFFERS
) {
11487 uint32_t _flags_save_string
= ndr
->flags
;
11488 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11489 if (r
->driver_name
) {
11490 uint32_t _relative_save_offset
;
11491 _relative_save_offset
= ndr
->offset
;
11492 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11493 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11494 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11495 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11496 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11497 ndr
->offset
= _relative_save_offset
;
11499 ndr
->flags
= _flags_save_string
;
11502 uint32_t _flags_save_string
= ndr
->flags
;
11503 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11504 if (r
->architecture
) {
11505 uint32_t _relative_save_offset
;
11506 _relative_save_offset
= ndr
->offset
;
11507 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11508 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11509 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11510 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11511 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11512 ndr
->offset
= _relative_save_offset
;
11514 ndr
->flags
= _flags_save_string
;
11517 uint32_t _flags_save_string
= ndr
->flags
;
11518 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11519 if (r
->driver_path
) {
11520 uint32_t _relative_save_offset
;
11521 _relative_save_offset
= ndr
->offset
;
11522 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11523 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11524 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11525 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11526 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11527 ndr
->offset
= _relative_save_offset
;
11529 ndr
->flags
= _flags_save_string
;
11532 uint32_t _flags_save_string
= ndr
->flags
;
11533 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11534 if (r
->data_file
) {
11535 uint32_t _relative_save_offset
;
11536 _relative_save_offset
= ndr
->offset
;
11537 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11538 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11539 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11540 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11541 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11542 ndr
->offset
= _relative_save_offset
;
11544 ndr
->flags
= _flags_save_string
;
11547 uint32_t _flags_save_string
= ndr
->flags
;
11548 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11549 if (r
->config_file
) {
11550 uint32_t _relative_save_offset
;
11551 _relative_save_offset
= ndr
->offset
;
11552 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11553 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11554 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11555 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11556 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11557 ndr
->offset
= _relative_save_offset
;
11559 ndr
->flags
= _flags_save_string
;
11562 uint32_t _flags_save_string
= ndr
->flags
;
11563 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11564 if (r
->help_file
) {
11565 uint32_t _relative_save_offset
;
11566 _relative_save_offset
= ndr
->offset
;
11567 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11568 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11569 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11570 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11571 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11572 ndr
->offset
= _relative_save_offset
;
11574 ndr
->flags
= _flags_save_string
;
11577 uint32_t _flags_save_string
= ndr
->flags
;
11578 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11579 if (r
->monitor_name
) {
11580 uint32_t _relative_save_offset
;
11581 _relative_save_offset
= ndr
->offset
;
11582 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11583 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11584 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11585 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11586 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11587 ndr
->offset
= _relative_save_offset
;
11589 ndr
->flags
= _flags_save_string
;
11592 uint32_t _flags_save_string
= ndr
->flags
;
11593 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11594 if (r
->default_datatype
) {
11595 uint32_t _relative_save_offset
;
11596 _relative_save_offset
= ndr
->offset
;
11597 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
11598 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11599 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
11600 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
11601 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
11602 ndr
->offset
= _relative_save_offset
;
11604 ndr
->flags
= _flags_save_string
;
11607 uint32_t _flags_save_string_array
= ndr
->flags
;
11608 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11609 if (r
->dependent_files
) {
11610 uint32_t _relative_save_offset
;
11611 _relative_save_offset
= ndr
->offset
;
11612 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11613 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11614 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11615 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11616 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11617 ndr
->offset
= _relative_save_offset
;
11619 ndr
->flags
= _flags_save_string_array
;
11622 uint32_t _flags_save_string_array
= ndr
->flags
;
11623 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11624 if (r
->previous_names
) {
11625 uint32_t _relative_save_offset
;
11626 _relative_save_offset
= ndr
->offset
;
11627 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
11628 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11629 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
11630 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
11631 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
11632 ndr
->offset
= _relative_save_offset
;
11634 ndr
->flags
= _flags_save_string_array
;
11637 uint32_t _flags_save_string
= ndr
->flags
;
11638 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11639 if (r
->manufacturer_name
) {
11640 uint32_t _relative_save_offset
;
11641 _relative_save_offset
= ndr
->offset
;
11642 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
11643 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11644 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
11645 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
11646 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
11647 ndr
->offset
= _relative_save_offset
;
11649 ndr
->flags
= _flags_save_string
;
11652 uint32_t _flags_save_string
= ndr
->flags
;
11653 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11654 if (r
->manufacturer_url
) {
11655 uint32_t _relative_save_offset
;
11656 _relative_save_offset
= ndr
->offset
;
11657 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
11658 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11659 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
11660 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
11661 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
11662 ndr
->offset
= _relative_save_offset
;
11664 ndr
->flags
= _flags_save_string
;
11667 uint32_t _flags_save_string
= ndr
->flags
;
11668 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11669 if (r
->hardware_id
) {
11670 uint32_t _relative_save_offset
;
11671 _relative_save_offset
= ndr
->offset
;
11672 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
11673 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11674 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
11675 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
11676 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
11677 ndr
->offset
= _relative_save_offset
;
11679 ndr
->flags
= _flags_save_string
;
11682 uint32_t _flags_save_string
= ndr
->flags
;
11683 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11685 uint32_t _relative_save_offset
;
11686 _relative_save_offset
= ndr
->offset
;
11687 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
11688 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11689 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
11690 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
11691 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
11692 ndr
->offset
= _relative_save_offset
;
11694 ndr
->flags
= _flags_save_string
;
11697 uint32_t _flags_save_string
= ndr
->flags
;
11698 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11699 if (r
->print_processor
) {
11700 uint32_t _relative_save_offset
;
11701 _relative_save_offset
= ndr
->offset
;
11702 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
11703 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11704 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
11705 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
11706 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
11707 ndr
->offset
= _relative_save_offset
;
11709 ndr
->flags
= _flags_save_string
;
11712 uint32_t _flags_save_string
= ndr
->flags
;
11713 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11714 if (r
->vendor_setup
) {
11715 uint32_t _relative_save_offset
;
11716 _relative_save_offset
= ndr
->offset
;
11717 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->vendor_setup
));
11718 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11719 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
11720 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->vendor_setup
));
11721 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
11722 ndr
->offset
= _relative_save_offset
;
11724 ndr
->flags
= _flags_save_string
;
11727 uint32_t _flags_save_string_array
= ndr
->flags
;
11728 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11729 if (r
->color_profiles
) {
11730 uint32_t _relative_save_offset
;
11731 _relative_save_offset
= ndr
->offset
;
11732 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->color_profiles
));
11733 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11734 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
11735 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->color_profiles
));
11736 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
11737 ndr
->offset
= _relative_save_offset
;
11739 ndr
->flags
= _flags_save_string_array
;
11742 uint32_t _flags_save_string
= ndr
->flags
;
11743 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11745 uint32_t _relative_save_offset
;
11746 _relative_save_offset
= ndr
->offset
;
11747 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->inf_path
));
11748 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11749 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
11750 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->inf_path
));
11751 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
11752 ndr
->offset
= _relative_save_offset
;
11754 ndr
->flags
= _flags_save_string
;
11757 uint32_t _flags_save_string_array
= ndr
->flags
;
11758 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11759 if (r
->core_driver_dependencies
) {
11760 uint32_t _relative_save_offset
;
11761 _relative_save_offset
= ndr
->offset
;
11762 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->core_driver_dependencies
));
11763 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11764 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
11765 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->core_driver_dependencies
));
11766 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
11767 ndr
->offset
= _relative_save_offset
;
11769 ndr
->flags
= _flags_save_string_array
;
11772 return NDR_ERR_SUCCESS
;
11775 _PUBLIC_
void ndr_print_spoolss_DriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo8
*r
)
11777 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo8");
11779 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11780 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11782 if (r
->driver_name
) {
11783 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11786 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11788 if (r
->architecture
) {
11789 ndr_print_string(ndr
, "architecture", r
->architecture
);
11792 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11794 if (r
->driver_path
) {
11795 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11798 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11800 if (r
->data_file
) {
11801 ndr_print_string(ndr
, "data_file", r
->data_file
);
11804 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11806 if (r
->config_file
) {
11807 ndr_print_string(ndr
, "config_file", r
->config_file
);
11810 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
11812 if (r
->help_file
) {
11813 ndr_print_string(ndr
, "help_file", r
->help_file
);
11816 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
11818 if (r
->monitor_name
) {
11819 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
11822 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
11824 if (r
->default_datatype
) {
11825 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
11828 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
11830 if (r
->dependent_files
) {
11831 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
11834 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
11836 if (r
->previous_names
) {
11837 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
11840 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
11841 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
11842 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
11844 if (r
->manufacturer_name
) {
11845 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
11848 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
11850 if (r
->manufacturer_url
) {
11851 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
11854 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
11856 if (r
->hardware_id
) {
11857 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
11860 ndr_print_ptr(ndr
, "provider", r
->provider
);
11863 ndr_print_string(ndr
, "provider", r
->provider
);
11866 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
11868 if (r
->print_processor
) {
11869 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
11872 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
11874 if (r
->vendor_setup
) {
11875 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
11878 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
11880 if (r
->color_profiles
) {
11881 ndr_print_string_array(ndr
, "color_profiles", r
->color_profiles
);
11884 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
11887 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
11890 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
11891 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
11893 if (r
->core_driver_dependencies
) {
11894 ndr_print_string_array(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
11897 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
11898 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
11902 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11904 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo8
, ic
);
11907 static enum ndr_err_code
ndr_push_spoolss_DriverFileType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverFileType r
)
11909 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
11910 return NDR_ERR_SUCCESS
;
11913 static enum ndr_err_code
ndr_pull_spoolss_DriverFileType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverFileType
*r
)
11916 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
11918 return NDR_ERR_SUCCESS
;
11921 _PUBLIC_
void ndr_print_spoolss_DriverFileType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverFileType r
)
11923 const char *val
= NULL
;
11926 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING
: val
= "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
11927 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION
: val
= "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
11928 case SPOOLSS_DRIVER_FILE_TYPE_DATA
: val
= "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
11929 case SPOOLSS_DRIVER_FILE_TYPE_HELP
: val
= "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
11930 case SPOOLSS_DRIVER_FILE_TYPE_OTHER
: val
= "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
11932 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
11935 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverFileInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverFileInfo
*r
)
11937 if (ndr_flags
& NDR_SCALARS
) {
11938 NDR_CHECK(ndr_push_align(ndr
, 4));
11940 uint32_t _flags_save_string
= ndr
->flags
;
11941 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11942 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->file_name
));
11943 ndr
->flags
= _flags_save_string
;
11945 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr
, NDR_SCALARS
, r
->file_type
));
11946 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->file_version
));
11948 if (ndr_flags
& NDR_BUFFERS
) {
11950 uint32_t _flags_save_string
= ndr
->flags
;
11951 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11952 if (r
->file_name
) {
11953 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->file_name
));
11954 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->file_name
));
11956 ndr
->flags
= _flags_save_string
;
11959 return NDR_ERR_SUCCESS
;
11962 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverFileInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverFileInfo
*r
)
11964 uint32_t _ptr_file_name
;
11965 TALLOC_CTX
*_mem_save_file_name_0
;
11966 if (ndr_flags
& NDR_SCALARS
) {
11967 NDR_CHECK(ndr_pull_align(ndr
, 4));
11969 uint32_t _flags_save_string
= ndr
->flags
;
11970 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11971 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_file_name
));
11972 if (_ptr_file_name
) {
11973 NDR_PULL_ALLOC(ndr
, r
->file_name
);
11974 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->file_name
, _ptr_file_name
));
11976 r
->file_name
= NULL
;
11978 ndr
->flags
= _flags_save_string
;
11980 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr
, NDR_SCALARS
, &r
->file_type
));
11981 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->file_version
));
11983 if (ndr_flags
& NDR_BUFFERS
) {
11985 uint32_t _flags_save_string
= ndr
->flags
;
11986 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11987 if (r
->file_name
) {
11988 uint32_t _relative_save_offset
;
11989 _relative_save_offset
= ndr
->offset
;
11990 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->file_name
));
11991 _mem_save_file_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11992 NDR_PULL_SET_MEM_CTX(ndr
, r
->file_name
, 0);
11993 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->file_name
));
11994 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_file_name_0
, 0);
11995 ndr
->offset
= _relative_save_offset
;
11997 ndr
->flags
= _flags_save_string
;
12000 return NDR_ERR_SUCCESS
;
12003 _PUBLIC_
void ndr_print_spoolss_DriverFileInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverFileInfo
*r
)
12005 ndr_print_struct(ndr
, name
, "spoolss_DriverFileInfo");
12007 ndr_print_ptr(ndr
, "file_name", r
->file_name
);
12009 if (r
->file_name
) {
12010 ndr_print_string(ndr
, "file_name", r
->file_name
);
12013 ndr_print_spoolss_DriverFileType(ndr
, "file_type", r
->file_type
);
12014 ndr_print_uint32(ndr
, "file_version", r
->file_version
);
12018 _PUBLIC_
void ndr_print_spoolss_DriverInfo101(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo101
*r
)
12020 uint32_t cntr_file_info_1
;
12021 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo101");
12023 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12024 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12026 if (r
->driver_name
) {
12027 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12030 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12032 if (r
->architecture
) {
12033 ndr_print_string(ndr
, "architecture", r
->architecture
);
12036 ndr_print_ptr(ndr
, "file_info", r
->file_info
);
12038 if (r
->file_info
) {
12039 ndr
->print(ndr
, "%s: ARRAY(%d)", "file_info", (int)r
->file_count
);
12041 for (cntr_file_info_1
=0;cntr_file_info_1
<r
->file_count
;cntr_file_info_1
++) {
12043 if (asprintf(&idx_1
, "[%d]", cntr_file_info_1
) != -1) {
12044 ndr_print_spoolss_DriverFileInfo(ndr
, "file_info", &r
->file_info
[cntr_file_info_1
]);
12051 ndr_print_uint32(ndr
, "file_count", r
->file_count
);
12052 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
12054 if (r
->monitor_name
) {
12055 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
12058 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
12060 if (r
->default_datatype
) {
12061 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
12064 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
12066 if (r
->previous_names
) {
12067 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
12070 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
12071 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
12072 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
12074 if (r
->manufacturer_name
) {
12075 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
12078 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
12080 if (r
->manufacturer_url
) {
12081 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
12084 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
12086 if (r
->hardware_id
) {
12087 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
12090 ndr_print_ptr(ndr
, "provider", r
->provider
);
12093 ndr_print_string(ndr
, "provider", r
->provider
);
12099 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12101 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo101
, ic
);
12104 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverInfo
*r
)
12106 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
12107 if (ndr_flags
& NDR_SCALARS
) {
12108 int level
= ndr_push_get_switch_value(ndr
, r
);
12111 NDR_CHECK(ndr_push_align(ndr
, 4));
12112 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12113 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
12117 NDR_CHECK(ndr_push_align(ndr
, 4));
12118 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12119 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
12123 NDR_CHECK(ndr_push_align(ndr
, 4));
12124 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12125 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
12129 NDR_CHECK(ndr_push_align(ndr
, 4));
12130 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12131 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
12135 NDR_CHECK(ndr_push_align(ndr
, 4));
12136 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12137 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
12141 NDR_CHECK(ndr_push_align(ndr
, 8));
12142 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12143 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
12147 NDR_CHECK(ndr_push_align(ndr
, 8));
12148 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12149 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
12153 NDR_CHECK(ndr_push_align(ndr
, 8));
12154 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12155 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
12163 if (ndr_flags
& NDR_BUFFERS
) {
12164 int level
= ndr_push_get_switch_value(ndr
, r
);
12165 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
12168 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
12172 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
12176 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
12180 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
12184 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
12188 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
12192 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
12196 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
12204 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
12205 return NDR_ERR_SUCCESS
;
12208 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverInfo
*r
)
12210 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
12212 level
= ndr_pull_get_switch_value(ndr
, r
);
12213 if (ndr_flags
& NDR_SCALARS
) {
12216 NDR_CHECK(ndr_pull_align(ndr
, 4));
12217 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12218 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
12222 NDR_CHECK(ndr_pull_align(ndr
, 4));
12223 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12224 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
12228 NDR_CHECK(ndr_pull_align(ndr
, 4));
12229 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12230 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
12234 NDR_CHECK(ndr_pull_align(ndr
, 4));
12235 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12236 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
12240 NDR_CHECK(ndr_pull_align(ndr
, 4));
12241 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12242 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
12246 NDR_CHECK(ndr_pull_align(ndr
, 8));
12247 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12248 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
12252 NDR_CHECK(ndr_pull_align(ndr
, 8));
12253 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12254 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
12258 NDR_CHECK(ndr_pull_align(ndr
, 8));
12259 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12260 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
12268 if (ndr_flags
& NDR_BUFFERS
) {
12269 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
12272 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
12276 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
12280 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
12284 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
12288 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
12292 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
12296 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
12300 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
12308 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
12309 return NDR_ERR_SUCCESS
;
12312 _PUBLIC_
void ndr_print_spoolss_DriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverInfo
*r
)
12315 level
= ndr_print_get_switch_value(ndr
, r
);
12316 ndr_print_union(ndr
, name
, level
, "spoolss_DriverInfo");
12319 ndr_print_spoolss_DriverInfo1(ndr
, "info1", &r
->info1
);
12323 ndr_print_spoolss_DriverInfo2(ndr
, "info2", &r
->info2
);
12327 ndr_print_spoolss_DriverInfo3(ndr
, "info3", &r
->info3
);
12331 ndr_print_spoolss_DriverInfo4(ndr
, "info4", &r
->info4
);
12335 ndr_print_spoolss_DriverInfo5(ndr
, "info5", &r
->info5
);
12339 ndr_print_spoolss_DriverInfo6(ndr
, "info6", &r
->info6
);
12343 ndr_print_spoolss_DriverInfo8(ndr
, "info8", &r
->info8
);
12347 ndr_print_spoolss_DriverInfo101(ndr
, "info101", &r
->info101
);
12356 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverDirectoryInfo1
*r
)
12358 if (ndr_flags
& NDR_SCALARS
) {
12359 NDR_CHECK(ndr_push_align(ndr
, 4));
12361 uint32_t _flags_save_string
= ndr
->flags
;
12362 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12363 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
12364 ndr
->flags
= _flags_save_string
;
12367 if (ndr_flags
& NDR_BUFFERS
) {
12369 return NDR_ERR_SUCCESS
;
12372 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverDirectoryInfo1
*r
)
12374 if (ndr_flags
& NDR_SCALARS
) {
12375 NDR_CHECK(ndr_pull_align(ndr
, 4));
12377 uint32_t _flags_save_string
= ndr
->flags
;
12378 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12379 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
12380 ndr
->flags
= _flags_save_string
;
12383 if (ndr_flags
& NDR_BUFFERS
) {
12385 return NDR_ERR_SUCCESS
;
12388 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverDirectoryInfo1
*r
)
12390 ndr_print_struct(ndr
, name
, "spoolss_DriverDirectoryInfo1");
12392 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
12396 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12398 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo1
, ic
);
12401 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverDirectoryInfo
*r
)
12403 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
12404 if (ndr_flags
& NDR_SCALARS
) {
12405 int level
= ndr_push_get_switch_value(ndr
, r
);
12408 NDR_CHECK(ndr_push_align(ndr
, 4));
12409 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12410 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
12414 NDR_CHECK(ndr_push_align(ndr
, 4));
12415 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12416 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
12421 if (ndr_flags
& NDR_BUFFERS
) {
12422 int level
= ndr_push_get_switch_value(ndr
, r
);
12423 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
12433 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
12434 return NDR_ERR_SUCCESS
;
12437 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverDirectoryInfo
*r
)
12439 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
12441 level
= ndr_pull_get_switch_value(ndr
, r
);
12442 if (ndr_flags
& NDR_SCALARS
) {
12445 NDR_CHECK(ndr_pull_align(ndr
, 4));
12446 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12447 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
12451 NDR_CHECK(ndr_pull_align(ndr
, 4));
12452 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12453 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
12458 if (ndr_flags
& NDR_BUFFERS
) {
12459 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
12469 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
12470 return NDR_ERR_SUCCESS
;
12473 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverDirectoryInfo
*r
)
12476 level
= ndr_print_get_switch_value(ndr
, r
);
12477 ndr_print_union(ndr
, name
, level
, "spoolss_DriverDirectoryInfo");
12480 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
12484 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
12490 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
12492 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo
, ic
);
12495 static enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorInfo1
*r
)
12497 if (ndr_flags
& NDR_SCALARS
) {
12498 NDR_CHECK(ndr_push_align(ndr
, 4));
12500 uint32_t _flags_save_string
= ndr
->flags
;
12501 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12502 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor_name
));
12503 ndr
->flags
= _flags_save_string
;
12506 if (ndr_flags
& NDR_BUFFERS
) {
12508 uint32_t _flags_save_string
= ndr
->flags
;
12509 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12510 if (r
->print_processor_name
) {
12511 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor_name
));
12512 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor_name
));
12514 ndr
->flags
= _flags_save_string
;
12517 return NDR_ERR_SUCCESS
;
12520 static enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorInfo1
*r
)
12522 uint32_t _ptr_print_processor_name
;
12523 TALLOC_CTX
*_mem_save_print_processor_name_0
;
12524 if (ndr_flags
& NDR_SCALARS
) {
12525 NDR_CHECK(ndr_pull_align(ndr
, 4));
12527 uint32_t _flags_save_string
= ndr
->flags
;
12528 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12529 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
12530 if (_ptr_print_processor_name
) {
12531 NDR_PULL_ALLOC(ndr
, r
->print_processor_name
);
12532 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor_name
, _ptr_print_processor_name
));
12534 r
->print_processor_name
= NULL
;
12536 ndr
->flags
= _flags_save_string
;
12539 if (ndr_flags
& NDR_BUFFERS
) {
12541 uint32_t _flags_save_string
= ndr
->flags
;
12542 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12543 if (r
->print_processor_name
) {
12544 uint32_t _relative_save_offset
;
12545 _relative_save_offset
= ndr
->offset
;
12546 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor_name
));
12547 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12548 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor_name
, 0);
12549 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor_name
));
12550 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
12551 ndr
->offset
= _relative_save_offset
;
12553 ndr
->flags
= _flags_save_string
;
12556 return NDR_ERR_SUCCESS
;
12559 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorInfo1
*r
)
12561 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorInfo1");
12563 ndr_print_ptr(ndr
, "print_processor_name", r
->print_processor_name
);
12565 if (r
->print_processor_name
) {
12566 ndr_print_string(ndr
, "print_processor_name", r
->print_processor_name
);
12572 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorInfo
*r
)
12574 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
12575 if (ndr_flags
& NDR_SCALARS
) {
12576 int level
= ndr_push_get_switch_value(ndr
, r
);
12579 NDR_CHECK(ndr_push_align(ndr
, 4));
12580 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12581 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
12589 if (ndr_flags
& NDR_BUFFERS
) {
12590 int level
= ndr_push_get_switch_value(ndr
, r
);
12591 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
12594 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
12602 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
12603 return NDR_ERR_SUCCESS
;
12606 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorInfo
*r
)
12608 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
12610 level
= ndr_pull_get_switch_value(ndr
, r
);
12611 if (ndr_flags
& NDR_SCALARS
) {
12614 NDR_CHECK(ndr_pull_align(ndr
, 4));
12615 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12616 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
12624 if (ndr_flags
& NDR_BUFFERS
) {
12625 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
12628 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
12636 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
12637 return NDR_ERR_SUCCESS
;
12640 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorInfo
*r
)
12643 level
= ndr_print_get_switch_value(ndr
, r
);
12644 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorInfo");
12647 ndr_print_spoolss_PrintProcessorInfo1(ndr
, "info1", &r
->info1
);
12656 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
12658 if (ndr_flags
& NDR_SCALARS
) {
12659 NDR_CHECK(ndr_push_align(ndr
, 4));
12661 uint32_t _flags_save_string
= ndr
->flags
;
12662 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12663 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
12664 ndr
->flags
= _flags_save_string
;
12667 if (ndr_flags
& NDR_BUFFERS
) {
12669 return NDR_ERR_SUCCESS
;
12672 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorDirectoryInfo1
*r
)
12674 if (ndr_flags
& NDR_SCALARS
) {
12675 NDR_CHECK(ndr_pull_align(ndr
, 4));
12677 uint32_t _flags_save_string
= ndr
->flags
;
12678 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12679 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
12680 ndr
->flags
= _flags_save_string
;
12683 if (ndr_flags
& NDR_BUFFERS
) {
12685 return NDR_ERR_SUCCESS
;
12688 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
12690 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorDirectoryInfo1");
12692 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
12696 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12698 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo1
, ic
);
12701 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
12703 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
12704 if (ndr_flags
& NDR_SCALARS
) {
12705 int level
= ndr_push_get_switch_value(ndr
, r
);
12708 NDR_CHECK(ndr_push_align(ndr
, 4));
12709 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12710 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
12714 NDR_CHECK(ndr_push_align(ndr
, 4));
12715 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12716 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
12721 if (ndr_flags
& NDR_BUFFERS
) {
12722 int level
= ndr_push_get_switch_value(ndr
, r
);
12723 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
12733 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
12734 return NDR_ERR_SUCCESS
;
12737 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorDirectoryInfo
*r
)
12739 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
12741 level
= ndr_pull_get_switch_value(ndr
, r
);
12742 if (ndr_flags
& NDR_SCALARS
) {
12745 NDR_CHECK(ndr_pull_align(ndr
, 4));
12746 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12747 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
12751 NDR_CHECK(ndr_pull_align(ndr
, 4));
12752 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
12753 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
12758 if (ndr_flags
& NDR_BUFFERS
) {
12759 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
12769 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
12770 return NDR_ERR_SUCCESS
;
12773 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
12776 level
= ndr_print_get_switch_value(ndr
, r
);
12777 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorDirectoryInfo");
12780 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
12784 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
12790 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
12792 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo
, ic
);
12795 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DocumentInfo1
*r
)
12797 if (ndr_flags
& NDR_SCALARS
) {
12798 NDR_CHECK(ndr_push_align(ndr
, 4));
12799 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
12800 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->output_file
));
12801 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
12803 if (ndr_flags
& NDR_BUFFERS
) {
12804 if (r
->document_name
) {
12805 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
12806 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12807 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
12808 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12810 if (r
->output_file
) {
12811 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
12812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12813 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
12814 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->output_file
, ndr_charset_length(r
->output_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12817 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
12818 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
12819 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
12820 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
12823 return NDR_ERR_SUCCESS
;
12826 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DocumentInfo1
*r
)
12828 uint32_t _ptr_document_name
;
12829 TALLOC_CTX
*_mem_save_document_name_0
;
12830 uint32_t _ptr_output_file
;
12831 TALLOC_CTX
*_mem_save_output_file_0
;
12832 uint32_t _ptr_datatype
;
12833 TALLOC_CTX
*_mem_save_datatype_0
;
12834 if (ndr_flags
& NDR_SCALARS
) {
12835 NDR_CHECK(ndr_pull_align(ndr
, 4));
12836 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
12837 if (_ptr_document_name
) {
12838 NDR_PULL_ALLOC(ndr
, r
->document_name
);
12840 r
->document_name
= NULL
;
12842 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_output_file
));
12843 if (_ptr_output_file
) {
12844 NDR_PULL_ALLOC(ndr
, r
->output_file
);
12846 r
->output_file
= NULL
;
12848 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
12849 if (_ptr_datatype
) {
12850 NDR_PULL_ALLOC(ndr
, r
->datatype
);
12852 r
->datatype
= NULL
;
12855 if (ndr_flags
& NDR_BUFFERS
) {
12856 if (r
->document_name
) {
12857 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12858 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
12859 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
12860 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
12861 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
12862 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->document_name
), ndr_get_array_length(ndr
, &r
->document_name
));
12864 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
12865 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
12866 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
12868 if (r
->output_file
) {
12869 _mem_save_output_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12870 NDR_PULL_SET_MEM_CTX(ndr
, r
->output_file
, 0);
12871 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->output_file
));
12872 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->output_file
));
12873 if (ndr_get_array_length(ndr
, &r
->output_file
) > ndr_get_array_size(ndr
, &r
->output_file
)) {
12874 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->output_file
), ndr_get_array_length(ndr
, &r
->output_file
));
12876 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t)));
12877 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->output_file
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t), CH_UTF16
));
12878 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_output_file_0
, 0);
12881 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12882 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
12883 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
12884 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
12885 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
12886 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->datatype
), ndr_get_array_length(ndr
, &r
->datatype
));
12888 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
12889 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
12890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
12893 return NDR_ERR_SUCCESS
;
12896 _PUBLIC_
void ndr_print_spoolss_DocumentInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DocumentInfo1
*r
)
12898 ndr_print_struct(ndr
, name
, "spoolss_DocumentInfo1");
12900 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
12902 if (r
->document_name
) {
12903 ndr_print_string(ndr
, "document_name", r
->document_name
);
12906 ndr_print_ptr(ndr
, "output_file", r
->output_file
);
12908 if (r
->output_file
) {
12909 ndr_print_string(ndr
, "output_file", r
->output_file
);
12912 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
12915 ndr_print_string(ndr
, "datatype", r
->datatype
);
12921 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DocumentInfo
*r
)
12923 if (ndr_flags
& NDR_SCALARS
) {
12924 int level
= ndr_push_get_switch_value(ndr
, r
);
12925 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
12928 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
12942 if (ndr_flags
& NDR_BUFFERS
) {
12943 int level
= ndr_push_get_switch_value(ndr
, r
);
12947 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
12962 return NDR_ERR_SUCCESS
;
12965 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DocumentInfo
*r
)
12969 TALLOC_CTX
*_mem_save_info1_0
;
12970 level
= ndr_pull_get_switch_value(ndr
, r
);
12971 if (ndr_flags
& NDR_SCALARS
) {
12972 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
12973 if (_level
!= level
) {
12974 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
12978 uint32_t _ptr_info1
;
12979 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
12981 NDR_PULL_ALLOC(ndr
, r
->info1
);
12998 if (ndr_flags
& NDR_BUFFERS
) {
13002 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13003 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
13004 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
13005 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
13020 return NDR_ERR_SUCCESS
;
13023 _PUBLIC_
void ndr_print_spoolss_DocumentInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DocumentInfo
*r
)
13026 level
= ndr_print_get_switch_value(ndr
, r
);
13027 ndr_print_union(ndr
, name
, level
, "spoolss_DocumentInfo");
13030 ndr_print_ptr(ndr
, "info1", r
->info1
);
13033 ndr_print_spoolss_DocumentInfo1(ndr
, "info1", r
->info1
);
13050 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersion(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersion
*r
)
13052 if (ndr_flags
& NDR_SCALARS
) {
13053 NDR_CHECK(ndr_push_align(ndr
, 4));
13054 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersion(r
, ndr
->iconv_convenience
, ndr
->flags
)));
13055 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
13056 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
13057 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
13058 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
13060 uint32_t _flags_save_string
= ndr
->flags
;
13061 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13063 struct ndr_push
*_ndr_extra_string
;
13064 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
13065 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
13066 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
13068 ndr
->flags
= _flags_save_string
;
13071 if (ndr_flags
& NDR_BUFFERS
) {
13073 return NDR_ERR_SUCCESS
;
13076 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersion(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersion
*r
)
13078 if (ndr_flags
& NDR_SCALARS
) {
13079 NDR_CHECK(ndr_pull_align(ndr
, 4));
13080 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
13081 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
13082 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
13083 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
13084 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
));
13086 uint32_t _flags_save_string
= ndr
->flags
;
13087 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13089 struct ndr_pull
*_ndr_extra_string
;
13090 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
13091 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
13092 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
13094 ndr
->flags
= _flags_save_string
;
13097 if (ndr_flags
& NDR_BUFFERS
) {
13099 return NDR_ERR_SUCCESS
;
13102 _PUBLIC_
void ndr_print_spoolss_OSVersion(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersion
*r
)
13104 ndr_print_struct(ndr
, name
, "spoolss_OSVersion");
13106 ndr_print_uint32(ndr
, "_ndr_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_OSVersion(r
, ndr
->iconv_convenience
, ndr
->flags
):r
->_ndr_size
);
13107 ndr_print_uint32(ndr
, "major", r
->major
);
13108 ndr_print_uint32(ndr
, "minor", r
->minor
);
13109 ndr_print_uint32(ndr
, "build", r
->build
);
13110 ndr_print_uint32(ndr
, "unknown", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->unknown
);
13111 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
13115 _PUBLIC_
size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13117 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersion
, ic
);
13120 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersionEx(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersionEx
*r
)
13122 if (ndr_flags
& NDR_SCALARS
) {
13123 NDR_CHECK(ndr_push_align(ndr
, 4));
13124 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersionEx(r
, ndr
->iconv_convenience
, ndr
->flags
)));
13125 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
13126 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
13127 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
13128 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
13130 uint32_t _flags_save_string
= ndr
->flags
;
13131 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13133 struct ndr_push
*_ndr_extra_string
;
13134 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
13135 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
13136 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
13138 ndr
->flags
= _flags_save_string
;
13140 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
13141 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
13143 if (ndr_flags
& NDR_BUFFERS
) {
13145 return NDR_ERR_SUCCESS
;
13148 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersionEx(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersionEx
*r
)
13150 if (ndr_flags
& NDR_SCALARS
) {
13151 NDR_CHECK(ndr_pull_align(ndr
, 4));
13152 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
13153 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
13154 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
13155 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
13156 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
13158 uint32_t _flags_save_string
= ndr
->flags
;
13159 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13161 struct ndr_pull
*_ndr_extra_string
;
13162 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
13163 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
13164 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
13166 ndr
->flags
= _flags_save_string
;
13168 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
13169 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
13171 if (ndr_flags
& NDR_BUFFERS
) {
13173 return NDR_ERR_SUCCESS
;
13176 _PUBLIC_
void ndr_print_spoolss_OSVersionEx(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersionEx
*r
)
13178 ndr_print_struct(ndr
, name
, "spoolss_OSVersionEx");
13180 ndr_print_uint32(ndr
, "_ndr_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_OSVersionEx(r
, ndr
->iconv_convenience
, ndr
->flags
):r
->_ndr_size
);
13181 ndr_print_uint32(ndr
, "major", r
->major
);
13182 ndr_print_uint32(ndr
, "minor", r
->minor
);
13183 ndr_print_uint32(ndr
, "build", r
->build
);
13184 ndr_print_uint32(ndr
, "unknown1", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->unknown1
);
13185 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
13186 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
13187 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
13191 _PUBLIC_
size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13193 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersionEx
, ic
);
13196 static enum ndr_err_code
ndr_push_spoolss_PrinterDataType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrinterDataType r
)
13198 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
13199 return NDR_ERR_SUCCESS
;
13202 static enum ndr_err_code
ndr_pull_spoolss_PrinterDataType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrinterDataType
*r
)
13205 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
13207 return NDR_ERR_SUCCESS
;
13210 _PUBLIC_
void ndr_print_spoolss_PrinterDataType(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrinterDataType r
)
13212 const char *val
= NULL
;
13215 case SPOOLSS_PRINTER_DATA_TYPE_NULL
: val
= "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
13216 case SPOOLSS_PRINTER_DATA_TYPE_STRING
: val
= "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
13217 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
: val
= "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
13218 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
: val
= "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
13219 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
: val
= "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
13221 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
13224 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterData
*r
)
13226 if (ndr_flags
& NDR_SCALARS
) {
13227 int level
= ndr_push_get_switch_value(ndr
, r
);
13229 case SPOOLSS_PRINTER_DATA_TYPE_NULL
: {
13232 case SPOOLSS_PRINTER_DATA_TYPE_STRING
: {
13234 uint32_t _flags_save_string
= ndr
->flags
;
13235 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13236 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->string
));
13237 ndr
->flags
= _flags_save_string
;
13241 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
: {
13243 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
13244 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
13245 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->binary
));
13246 ndr
->flags
= _flags_save_DATA_BLOB
;
13250 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
: {
13251 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->value
));
13254 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
: {
13256 uint32_t _flags_save_string_array
= ndr
->flags
;
13257 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13258 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
13259 ndr
->flags
= _flags_save_string_array
;
13265 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
13266 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
13267 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->data
));
13268 ndr
->flags
= _flags_save_DATA_BLOB
;
13274 if (ndr_flags
& NDR_BUFFERS
) {
13275 int level
= ndr_push_get_switch_value(ndr
, r
);
13277 case SPOOLSS_PRINTER_DATA_TYPE_NULL
:
13280 case SPOOLSS_PRINTER_DATA_TYPE_STRING
:
13283 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
:
13286 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
:
13289 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
:
13297 return NDR_ERR_SUCCESS
;
13300 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterData
*r
)
13303 level
= ndr_pull_get_switch_value(ndr
, r
);
13304 if (ndr_flags
& NDR_SCALARS
) {
13306 case SPOOLSS_PRINTER_DATA_TYPE_NULL
: {
13309 case SPOOLSS_PRINTER_DATA_TYPE_STRING
: {
13311 uint32_t _flags_save_string
= ndr
->flags
;
13312 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13313 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->string
));
13314 ndr
->flags
= _flags_save_string
;
13318 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
: {
13320 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
13321 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
13322 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->binary
));
13323 ndr
->flags
= _flags_save_DATA_BLOB
;
13327 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
: {
13328 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value
));
13331 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
: {
13333 uint32_t _flags_save_string_array
= ndr
->flags
;
13334 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13335 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
13336 ndr
->flags
= _flags_save_string_array
;
13342 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
13343 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
13344 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->data
));
13345 ndr
->flags
= _flags_save_DATA_BLOB
;
13351 if (ndr_flags
& NDR_BUFFERS
) {
13353 case SPOOLSS_PRINTER_DATA_TYPE_NULL
:
13356 case SPOOLSS_PRINTER_DATA_TYPE_STRING
:
13359 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
:
13362 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
:
13365 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
:
13373 return NDR_ERR_SUCCESS
;
13376 _PUBLIC_
void ndr_print_spoolss_PrinterData(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterData
*r
)
13379 level
= ndr_print_get_switch_value(ndr
, r
);
13380 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterData");
13382 case SPOOLSS_PRINTER_DATA_TYPE_NULL
:
13385 case SPOOLSS_PRINTER_DATA_TYPE_STRING
:
13386 ndr_print_string(ndr
, "string", r
->string
);
13389 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
:
13390 ndr_print_DATA_BLOB(ndr
, "binary", r
->binary
);
13393 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
:
13394 ndr_print_uint32(ndr
, "value", r
->value
);
13397 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
:
13398 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
13402 ndr_print_DATA_BLOB(ndr
, "data", r
->data
);
13408 _PUBLIC_
size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
13410 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterData
, ic
);
13413 static enum ndr_err_code
ndr_push_spoolss_FormFlags(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_FormFlags r
)
13415 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
13416 return NDR_ERR_SUCCESS
;
13419 static enum ndr_err_code
ndr_pull_spoolss_FormFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_FormFlags
*r
)
13422 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
13424 return NDR_ERR_SUCCESS
;
13427 _PUBLIC_
void ndr_print_spoolss_FormFlags(struct ndr_print
*ndr
, const char *name
, enum spoolss_FormFlags r
)
13429 const char *val
= NULL
;
13432 case SPOOLSS_FORM_USER
: val
= "SPOOLSS_FORM_USER"; break;
13433 case SPOOLSS_FORM_BUILTIN
: val
= "SPOOLSS_FORM_BUILTIN"; break;
13434 case SPOOLSS_FORM_PRINTER
: val
= "SPOOLSS_FORM_PRINTER"; break;
13436 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
13439 static enum ndr_err_code
ndr_push_spoolss_FormSize(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormSize
*r
)
13441 if (ndr_flags
& NDR_SCALARS
) {
13442 NDR_CHECK(ndr_push_align(ndr
, 4));
13443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->width
));
13444 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->height
));
13446 if (ndr_flags
& NDR_BUFFERS
) {
13448 return NDR_ERR_SUCCESS
;
13451 static enum ndr_err_code
ndr_pull_spoolss_FormSize(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormSize
*r
)
13453 if (ndr_flags
& NDR_SCALARS
) {
13454 NDR_CHECK(ndr_pull_align(ndr
, 4));
13455 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->width
));
13456 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->height
));
13458 if (ndr_flags
& NDR_BUFFERS
) {
13460 return NDR_ERR_SUCCESS
;
13463 _PUBLIC_
void ndr_print_spoolss_FormSize(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormSize
*r
)
13465 ndr_print_struct(ndr
, name
, "spoolss_FormSize");
13467 ndr_print_uint32(ndr
, "width", r
->width
);
13468 ndr_print_uint32(ndr
, "height", r
->height
);
13472 static enum ndr_err_code
ndr_push_spoolss_FormArea(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormArea
*r
)
13474 if (ndr_flags
& NDR_SCALARS
) {
13475 NDR_CHECK(ndr_push_align(ndr
, 4));
13476 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->left
));
13477 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->top
));
13478 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->right
));
13479 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bottom
));
13481 if (ndr_flags
& NDR_BUFFERS
) {
13483 return NDR_ERR_SUCCESS
;
13486 static enum ndr_err_code
ndr_pull_spoolss_FormArea(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormArea
*r
)
13488 if (ndr_flags
& NDR_SCALARS
) {
13489 NDR_CHECK(ndr_pull_align(ndr
, 4));
13490 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->left
));
13491 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->top
));
13492 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->right
));
13493 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bottom
));
13495 if (ndr_flags
& NDR_BUFFERS
) {
13497 return NDR_ERR_SUCCESS
;
13500 _PUBLIC_
void ndr_print_spoolss_FormArea(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormArea
*r
)
13502 ndr_print_struct(ndr
, name
, "spoolss_FormArea");
13504 ndr_print_uint32(ndr
, "left", r
->left
);
13505 ndr_print_uint32(ndr
, "top", r
->top
);
13506 ndr_print_uint32(ndr
, "right", r
->right
);
13507 ndr_print_uint32(ndr
, "bottom", r
->bottom
);
13511 static enum ndr_err_code
ndr_push_spoolss_FormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo1
*r
)
13513 if (ndr_flags
& NDR_SCALARS
) {
13514 NDR_CHECK(ndr_push_align(ndr
, 4));
13515 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
13517 uint32_t _flags_save_string
= ndr
->flags
;
13518 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13519 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
13520 ndr
->flags
= _flags_save_string
;
13522 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
13523 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
13525 if (ndr_flags
& NDR_BUFFERS
) {
13527 uint32_t _flags_save_string
= ndr
->flags
;
13528 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13529 if (r
->form_name
) {
13530 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->form_name
));
13531 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
13533 ndr
->flags
= _flags_save_string
;
13536 return NDR_ERR_SUCCESS
;
13539 static enum ndr_err_code
ndr_pull_spoolss_FormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo1
*r
)
13541 uint32_t _ptr_form_name
;
13542 TALLOC_CTX
*_mem_save_form_name_0
;
13543 if (ndr_flags
& NDR_SCALARS
) {
13544 NDR_CHECK(ndr_pull_align(ndr
, 4));
13545 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
13547 uint32_t _flags_save_string
= ndr
->flags
;
13548 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13549 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
13550 if (_ptr_form_name
) {
13551 NDR_PULL_ALLOC(ndr
, r
->form_name
);
13552 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
13554 r
->form_name
= NULL
;
13556 ndr
->flags
= _flags_save_string
;
13558 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
13559 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
13561 if (ndr_flags
& NDR_BUFFERS
) {
13563 uint32_t _flags_save_string
= ndr
->flags
;
13564 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13565 if (r
->form_name
) {
13566 uint32_t _relative_save_offset
;
13567 _relative_save_offset
= ndr
->offset
;
13568 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
13569 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13570 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
13571 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
13572 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
13573 ndr
->offset
= _relative_save_offset
;
13575 ndr
->flags
= _flags_save_string
;
13578 return NDR_ERR_SUCCESS
;
13581 _PUBLIC_
void ndr_print_spoolss_FormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo1
*r
)
13583 ndr_print_struct(ndr
, name
, "spoolss_FormInfo1");
13585 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
13586 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
13588 if (r
->form_name
) {
13589 ndr_print_string(ndr
, "form_name", r
->form_name
);
13592 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
13593 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
13597 static enum ndr_err_code
ndr_push_spoolss_FormStringType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
13599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
13600 return NDR_ERR_SUCCESS
;
13603 static enum ndr_err_code
ndr_pull_spoolss_FormStringType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
13606 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
13608 return NDR_ERR_SUCCESS
;
13611 _PUBLIC_
void ndr_print_spoolss_FormStringType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
13613 ndr_print_uint32(ndr
, name
, r
);
13615 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE
, r
);
13616 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL
, r
);
13617 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR
, r
);
13621 static enum ndr_err_code
ndr_push_spoolss_FormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo2
*r
)
13623 if (ndr_flags
& NDR_SCALARS
) {
13624 NDR_CHECK(ndr_push_align(ndr
, 4));
13625 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
13627 uint32_t _flags_save_string
= ndr
->flags
;
13628 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13629 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
13630 ndr
->flags
= _flags_save_string
;
13632 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
13633 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
13635 uint32_t _flags_save_string
= ndr
->flags
;
13636 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
13637 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->keyword
));
13638 ndr
->flags
= _flags_save_string
;
13640 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
13642 uint32_t _flags_save_string
= ndr
->flags
;
13643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13644 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->mui_dll
));
13645 ndr
->flags
= _flags_save_string
;
13647 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
13649 uint32_t _flags_save_string
= ndr
->flags
;
13650 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13651 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->display_name
));
13652 ndr
->flags
= _flags_save_string
;
13654 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
13656 if (ndr_flags
& NDR_BUFFERS
) {
13658 uint32_t _flags_save_string
= ndr
->flags
;
13659 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13660 if (r
->form_name
) {
13661 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->form_name
));
13662 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
13664 ndr
->flags
= _flags_save_string
;
13667 uint32_t _flags_save_string
= ndr
->flags
;
13668 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
13670 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->keyword
));
13671 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->keyword
));
13673 ndr
->flags
= _flags_save_string
;
13676 uint32_t _flags_save_string
= ndr
->flags
;
13677 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13679 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->mui_dll
));
13680 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mui_dll
));
13682 ndr
->flags
= _flags_save_string
;
13685 uint32_t _flags_save_string
= ndr
->flags
;
13686 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13687 if (r
->display_name
) {
13688 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->display_name
));
13689 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->display_name
));
13691 ndr
->flags
= _flags_save_string
;
13694 return NDR_ERR_SUCCESS
;
13697 static enum ndr_err_code
ndr_pull_spoolss_FormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo2
*r
)
13699 uint32_t _ptr_form_name
;
13700 TALLOC_CTX
*_mem_save_form_name_0
;
13701 uint32_t _ptr_keyword
;
13702 TALLOC_CTX
*_mem_save_keyword_0
;
13703 uint32_t _ptr_mui_dll
;
13704 TALLOC_CTX
*_mem_save_mui_dll_0
;
13705 uint32_t _ptr_display_name
;
13706 TALLOC_CTX
*_mem_save_display_name_0
;
13707 if (ndr_flags
& NDR_SCALARS
) {
13708 NDR_CHECK(ndr_pull_align(ndr
, 4));
13709 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
13711 uint32_t _flags_save_string
= ndr
->flags
;
13712 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13713 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
13714 if (_ptr_form_name
) {
13715 NDR_PULL_ALLOC(ndr
, r
->form_name
);
13716 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
13718 r
->form_name
= NULL
;
13720 ndr
->flags
= _flags_save_string
;
13722 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
13723 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
13725 uint32_t _flags_save_string
= ndr
->flags
;
13726 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
13727 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
13728 if (_ptr_keyword
) {
13729 NDR_PULL_ALLOC(ndr
, r
->keyword
);
13730 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->keyword
, _ptr_keyword
));
13734 ndr
->flags
= _flags_save_string
;
13736 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
13738 uint32_t _flags_save_string
= ndr
->flags
;
13739 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13740 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
13741 if (_ptr_mui_dll
) {
13742 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
13743 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->mui_dll
, _ptr_mui_dll
));
13747 ndr
->flags
= _flags_save_string
;
13749 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
13751 uint32_t _flags_save_string
= ndr
->flags
;
13752 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13753 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
13754 if (_ptr_display_name
) {
13755 NDR_PULL_ALLOC(ndr
, r
->display_name
);
13756 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->display_name
, _ptr_display_name
));
13758 r
->display_name
= NULL
;
13760 ndr
->flags
= _flags_save_string
;
13762 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
13764 if (ndr_flags
& NDR_BUFFERS
) {
13766 uint32_t _flags_save_string
= ndr
->flags
;
13767 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13768 if (r
->form_name
) {
13769 uint32_t _relative_save_offset
;
13770 _relative_save_offset
= ndr
->offset
;
13771 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
13772 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13773 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
13774 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
13775 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
13776 ndr
->offset
= _relative_save_offset
;
13778 ndr
->flags
= _flags_save_string
;
13781 uint32_t _flags_save_string
= ndr
->flags
;
13782 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
13784 uint32_t _relative_save_offset
;
13785 _relative_save_offset
= ndr
->offset
;
13786 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->keyword
));
13787 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13788 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
13789 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->keyword
));
13790 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
13791 ndr
->offset
= _relative_save_offset
;
13793 ndr
->flags
= _flags_save_string
;
13796 uint32_t _flags_save_string
= ndr
->flags
;
13797 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13799 uint32_t _relative_save_offset
;
13800 _relative_save_offset
= ndr
->offset
;
13801 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->mui_dll
));
13802 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13803 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
13804 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mui_dll
));
13805 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
13806 ndr
->offset
= _relative_save_offset
;
13808 ndr
->flags
= _flags_save_string
;
13811 uint32_t _flags_save_string
= ndr
->flags
;
13812 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13813 if (r
->display_name
) {
13814 uint32_t _relative_save_offset
;
13815 _relative_save_offset
= ndr
->offset
;
13816 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->display_name
));
13817 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13818 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
13819 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->display_name
));
13820 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
13821 ndr
->offset
= _relative_save_offset
;
13823 ndr
->flags
= _flags_save_string
;
13826 return NDR_ERR_SUCCESS
;
13829 _PUBLIC_
void ndr_print_spoolss_FormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo2
*r
)
13831 ndr_print_struct(ndr
, name
, "spoolss_FormInfo2");
13833 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
13834 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
13836 if (r
->form_name
) {
13837 ndr_print_string(ndr
, "form_name", r
->form_name
);
13840 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
13841 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
13842 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
13845 ndr_print_string(ndr
, "keyword", r
->keyword
);
13848 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
13849 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
13852 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
13855 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
13856 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
13858 if (r
->display_name
) {
13859 ndr_print_string(ndr
, "display_name", r
->display_name
);
13862 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
13866 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_FormInfo
*r
)
13868 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
13869 if (ndr_flags
& NDR_SCALARS
) {
13870 int level
= ndr_push_get_switch_value(ndr
, r
);
13873 NDR_CHECK(ndr_push_align(ndr
, 4));
13874 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13875 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13879 NDR_CHECK(ndr_push_align(ndr
, 4));
13880 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13881 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
13889 if (ndr_flags
& NDR_BUFFERS
) {
13890 int level
= ndr_push_get_switch_value(ndr
, r
);
13891 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
13894 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13898 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
13906 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13907 return NDR_ERR_SUCCESS
;
13910 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_FormInfo
*r
)
13912 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
13914 level
= ndr_pull_get_switch_value(ndr
, r
);
13915 if (ndr_flags
& NDR_SCALARS
) {
13918 NDR_CHECK(ndr_pull_align(ndr
, 4));
13919 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13920 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13924 NDR_CHECK(ndr_pull_align(ndr
, 4));
13925 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13926 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
13934 if (ndr_flags
& NDR_BUFFERS
) {
13935 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
13938 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13942 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
13950 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13951 return NDR_ERR_SUCCESS
;
13954 _PUBLIC_
void ndr_print_spoolss_FormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_FormInfo
*r
)
13957 level
= ndr_print_get_switch_value(ndr
, r
);
13958 ndr_print_union(ndr
, name
, level
, "spoolss_FormInfo");
13961 ndr_print_spoolss_FormInfo1(ndr
, "info1", &r
->info1
);
13965 ndr_print_spoolss_FormInfo2(ndr
, "info2", &r
->info2
);
13974 _PUBLIC_
size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
13976 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo
, ic
);
13979 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo1
*r
)
13981 if (ndr_flags
& NDR_SCALARS
) {
13982 NDR_CHECK(ndr_push_align(ndr
, 4));
13983 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
13984 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
13985 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
13986 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
13988 if (ndr_flags
& NDR_BUFFERS
) {
13989 if (r
->form_name
) {
13990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
13991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
13992 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
13993 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
13996 return NDR_ERR_SUCCESS
;
13999 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo1
*r
)
14001 uint32_t _ptr_form_name
;
14002 TALLOC_CTX
*_mem_save_form_name_0
;
14003 if (ndr_flags
& NDR_SCALARS
) {
14004 NDR_CHECK(ndr_pull_align(ndr
, 4));
14005 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
14006 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
14007 if (_ptr_form_name
) {
14008 NDR_PULL_ALLOC(ndr
, r
->form_name
);
14010 r
->form_name
= NULL
;
14012 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
14013 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
14015 if (ndr_flags
& NDR_BUFFERS
) {
14016 if (r
->form_name
) {
14017 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14018 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
14019 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
14020 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
14021 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
14022 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->form_name
), ndr_get_array_length(ndr
, &r
->form_name
));
14024 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
14025 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
14026 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
14029 return NDR_ERR_SUCCESS
;
14032 _PUBLIC_
void ndr_print_spoolss_AddFormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo1
*r
)
14034 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo1");
14036 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
14037 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
14039 if (r
->form_name
) {
14040 ndr_print_string(ndr
, "form_name", r
->form_name
);
14043 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
14044 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
14048 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo2
*r
)
14050 if (ndr_flags
& NDR_SCALARS
) {
14051 NDR_CHECK(ndr_push_align(ndr
, 4));
14052 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
14053 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
14054 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
14055 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
14056 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->keyword
));
14057 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
14058 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->mui_dll
));
14059 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
14060 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->display_name
));
14061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
14063 if (ndr_flags
& NDR_BUFFERS
) {
14064 if (r
->form_name
) {
14065 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
14066 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
14068 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14071 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
14072 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14073 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
14074 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->keyword
, ndr_charset_length(r
->keyword
, CH_DOS
), sizeof(uint8_t), CH_DOS
));
14077 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
14078 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14079 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
14080 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->mui_dll
, ndr_charset_length(r
->mui_dll
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14082 if (r
->display_name
) {
14083 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
14084 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
14086 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->display_name
, ndr_charset_length(r
->display_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14089 return NDR_ERR_SUCCESS
;
14092 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo2
*r
)
14094 uint32_t _ptr_form_name
;
14095 TALLOC_CTX
*_mem_save_form_name_0
;
14096 uint32_t _ptr_keyword
;
14097 TALLOC_CTX
*_mem_save_keyword_0
;
14098 uint32_t _ptr_mui_dll
;
14099 TALLOC_CTX
*_mem_save_mui_dll_0
;
14100 uint32_t _ptr_display_name
;
14101 TALLOC_CTX
*_mem_save_display_name_0
;
14102 if (ndr_flags
& NDR_SCALARS
) {
14103 NDR_CHECK(ndr_pull_align(ndr
, 4));
14104 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
14105 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
14106 if (_ptr_form_name
) {
14107 NDR_PULL_ALLOC(ndr
, r
->form_name
);
14109 r
->form_name
= NULL
;
14111 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
14112 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
14113 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
14114 if (_ptr_keyword
) {
14115 NDR_PULL_ALLOC(ndr
, r
->keyword
);
14119 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
14120 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
14121 if (_ptr_mui_dll
) {
14122 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
14126 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
14127 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
14128 if (_ptr_display_name
) {
14129 NDR_PULL_ALLOC(ndr
, r
->display_name
);
14131 r
->display_name
= NULL
;
14133 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
14135 if (ndr_flags
& NDR_BUFFERS
) {
14136 if (r
->form_name
) {
14137 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14138 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
14139 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
14140 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
14141 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
14142 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->form_name
), ndr_get_array_length(ndr
, &r
->form_name
));
14144 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
14145 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
14146 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
14149 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14150 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
14151 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->keyword
));
14152 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->keyword
));
14153 if (ndr_get_array_length(ndr
, &r
->keyword
) > ndr_get_array_size(ndr
, &r
->keyword
)) {
14154 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->keyword
), ndr_get_array_length(ndr
, &r
->keyword
));
14156 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t)));
14157 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->keyword
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t), CH_DOS
));
14158 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
14161 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14162 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
14163 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->mui_dll
));
14164 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->mui_dll
));
14165 if (ndr_get_array_length(ndr
, &r
->mui_dll
) > ndr_get_array_size(ndr
, &r
->mui_dll
)) {
14166 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->mui_dll
), ndr_get_array_length(ndr
, &r
->mui_dll
));
14168 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t)));
14169 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->mui_dll
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t), CH_UTF16
));
14170 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
14172 if (r
->display_name
) {
14173 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14174 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
14175 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->display_name
));
14176 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->display_name
));
14177 if (ndr_get_array_length(ndr
, &r
->display_name
) > ndr_get_array_size(ndr
, &r
->display_name
)) {
14178 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->display_name
), ndr_get_array_length(ndr
, &r
->display_name
));
14180 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t)));
14181 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->display_name
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t), CH_UTF16
));
14182 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
14185 return NDR_ERR_SUCCESS
;
14188 _PUBLIC_
void ndr_print_spoolss_AddFormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo2
*r
)
14190 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo2");
14192 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
14193 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
14195 if (r
->form_name
) {
14196 ndr_print_string(ndr
, "form_name", r
->form_name
);
14199 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
14200 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
14201 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
14204 ndr_print_string(ndr
, "keyword", r
->keyword
);
14207 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
14208 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
14211 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
14214 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
14215 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
14217 if (r
->display_name
) {
14218 ndr_print_string(ndr
, "display_name", r
->display_name
);
14221 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
14225 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddFormInfo
*r
)
14227 if (ndr_flags
& NDR_SCALARS
) {
14228 int level
= ndr_push_get_switch_value(ndr
, r
);
14229 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
14232 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
14236 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
14240 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
14243 if (ndr_flags
& NDR_BUFFERS
) {
14244 int level
= ndr_push_get_switch_value(ndr
, r
);
14248 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
14254 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
14259 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
14262 return NDR_ERR_SUCCESS
;
14265 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddFormInfo
*r
)
14269 TALLOC_CTX
*_mem_save_info1_0
;
14270 TALLOC_CTX
*_mem_save_info2_0
;
14271 level
= ndr_pull_get_switch_value(ndr
, r
);
14272 if (ndr_flags
& NDR_SCALARS
) {
14273 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
14274 if (_level
!= level
) {
14275 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
14279 uint32_t _ptr_info1
;
14280 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
14282 NDR_PULL_ALLOC(ndr
, r
->info1
);
14289 uint32_t _ptr_info2
;
14290 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
14292 NDR_PULL_ALLOC(ndr
, r
->info2
);
14299 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
14302 if (ndr_flags
& NDR_BUFFERS
) {
14306 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14307 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
14308 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
14309 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
14315 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14316 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
14317 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
14318 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
14323 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
14326 return NDR_ERR_SUCCESS
;
14329 _PUBLIC_
void ndr_print_spoolss_AddFormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddFormInfo
*r
)
14332 level
= ndr_print_get_switch_value(ndr
, r
);
14333 ndr_print_union(ndr
, name
, level
, "spoolss_AddFormInfo");
14336 ndr_print_ptr(ndr
, "info1", r
->info1
);
14339 ndr_print_spoolss_AddFormInfo1(ndr
, "info1", r
->info1
);
14345 ndr_print_ptr(ndr
, "info2", r
->info2
);
14348 ndr_print_spoolss_AddFormInfo2(ndr
, "info2", r
->info2
);
14354 ndr_print_bad_level(ndr
, name
, level
);
14358 static enum ndr_err_code
ndr_push_spoolss_PortInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo1
*r
)
14360 if (ndr_flags
& NDR_SCALARS
) {
14361 NDR_CHECK(ndr_push_align(ndr
, 4));
14363 uint32_t _flags_save_string
= ndr
->flags
;
14364 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14365 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
14366 ndr
->flags
= _flags_save_string
;
14369 if (ndr_flags
& NDR_BUFFERS
) {
14371 uint32_t _flags_save_string
= ndr
->flags
;
14372 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14373 if (r
->port_name
) {
14374 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
14375 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
14377 ndr
->flags
= _flags_save_string
;
14380 return NDR_ERR_SUCCESS
;
14383 static enum ndr_err_code
ndr_pull_spoolss_PortInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo1
*r
)
14385 uint32_t _ptr_port_name
;
14386 TALLOC_CTX
*_mem_save_port_name_0
;
14387 if (ndr_flags
& NDR_SCALARS
) {
14388 NDR_CHECK(ndr_pull_align(ndr
, 4));
14390 uint32_t _flags_save_string
= ndr
->flags
;
14391 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14392 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
14393 if (_ptr_port_name
) {
14394 NDR_PULL_ALLOC(ndr
, r
->port_name
);
14395 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
14397 r
->port_name
= NULL
;
14399 ndr
->flags
= _flags_save_string
;
14402 if (ndr_flags
& NDR_BUFFERS
) {
14404 uint32_t _flags_save_string
= ndr
->flags
;
14405 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14406 if (r
->port_name
) {
14407 uint32_t _relative_save_offset
;
14408 _relative_save_offset
= ndr
->offset
;
14409 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
14410 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14411 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
14412 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
14413 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
14414 ndr
->offset
= _relative_save_offset
;
14416 ndr
->flags
= _flags_save_string
;
14419 return NDR_ERR_SUCCESS
;
14422 _PUBLIC_
void ndr_print_spoolss_PortInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo1
*r
)
14424 ndr_print_struct(ndr
, name
, "spoolss_PortInfo1");
14426 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
14428 if (r
->port_name
) {
14429 ndr_print_string(ndr
, "port_name", r
->port_name
);
14435 static enum ndr_err_code
ndr_push_spoolss_PortType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
14437 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
14438 return NDR_ERR_SUCCESS
;
14441 static enum ndr_err_code
ndr_pull_spoolss_PortType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
14444 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
14446 return NDR_ERR_SUCCESS
;
14449 _PUBLIC_
void ndr_print_spoolss_PortType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
14451 ndr_print_uint32(ndr
, name
, r
);
14453 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE
, r
);
14454 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ
, r
);
14455 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED
, r
);
14456 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED
, r
);
14460 static enum ndr_err_code
ndr_push_spoolss_PortInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo2
*r
)
14462 if (ndr_flags
& NDR_SCALARS
) {
14463 NDR_CHECK(ndr_push_align(ndr
, 4));
14465 uint32_t _flags_save_string
= ndr
->flags
;
14466 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14467 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
14468 ndr
->flags
= _flags_save_string
;
14471 uint32_t _flags_save_string
= ndr
->flags
;
14472 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14473 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
14474 ndr
->flags
= _flags_save_string
;
14477 uint32_t _flags_save_string
= ndr
->flags
;
14478 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14479 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
14480 ndr
->flags
= _flags_save_string
;
14482 NDR_CHECK(ndr_push_spoolss_PortType(ndr
, NDR_SCALARS
, r
->port_type
));
14483 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
14485 if (ndr_flags
& NDR_BUFFERS
) {
14487 uint32_t _flags_save_string
= ndr
->flags
;
14488 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14489 if (r
->port_name
) {
14490 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
14491 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
14493 ndr
->flags
= _flags_save_string
;
14496 uint32_t _flags_save_string
= ndr
->flags
;
14497 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14498 if (r
->monitor_name
) {
14499 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
14500 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
14502 ndr
->flags
= _flags_save_string
;
14505 uint32_t _flags_save_string
= ndr
->flags
;
14506 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14507 if (r
->description
) {
14508 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->description
));
14509 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
14511 ndr
->flags
= _flags_save_string
;
14514 return NDR_ERR_SUCCESS
;
14517 static enum ndr_err_code
ndr_pull_spoolss_PortInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo2
*r
)
14519 uint32_t _ptr_port_name
;
14520 TALLOC_CTX
*_mem_save_port_name_0
;
14521 uint32_t _ptr_monitor_name
;
14522 TALLOC_CTX
*_mem_save_monitor_name_0
;
14523 uint32_t _ptr_description
;
14524 TALLOC_CTX
*_mem_save_description_0
;
14525 if (ndr_flags
& NDR_SCALARS
) {
14526 NDR_CHECK(ndr_pull_align(ndr
, 4));
14528 uint32_t _flags_save_string
= ndr
->flags
;
14529 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14530 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
14531 if (_ptr_port_name
) {
14532 NDR_PULL_ALLOC(ndr
, r
->port_name
);
14533 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
14535 r
->port_name
= NULL
;
14537 ndr
->flags
= _flags_save_string
;
14540 uint32_t _flags_save_string
= ndr
->flags
;
14541 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14542 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
14543 if (_ptr_monitor_name
) {
14544 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
14545 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
14547 r
->monitor_name
= NULL
;
14549 ndr
->flags
= _flags_save_string
;
14552 uint32_t _flags_save_string
= ndr
->flags
;
14553 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14554 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
14555 if (_ptr_description
) {
14556 NDR_PULL_ALLOC(ndr
, r
->description
);
14557 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
14559 r
->description
= NULL
;
14561 ndr
->flags
= _flags_save_string
;
14563 NDR_CHECK(ndr_pull_spoolss_PortType(ndr
, NDR_SCALARS
, &r
->port_type
));
14564 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
14566 if (ndr_flags
& NDR_BUFFERS
) {
14568 uint32_t _flags_save_string
= ndr
->flags
;
14569 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14570 if (r
->port_name
) {
14571 uint32_t _relative_save_offset
;
14572 _relative_save_offset
= ndr
->offset
;
14573 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
14574 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14575 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
14576 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
14577 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
14578 ndr
->offset
= _relative_save_offset
;
14580 ndr
->flags
= _flags_save_string
;
14583 uint32_t _flags_save_string
= ndr
->flags
;
14584 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14585 if (r
->monitor_name
) {
14586 uint32_t _relative_save_offset
;
14587 _relative_save_offset
= ndr
->offset
;
14588 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
14589 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14590 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
14591 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
14592 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
14593 ndr
->offset
= _relative_save_offset
;
14595 ndr
->flags
= _flags_save_string
;
14598 uint32_t _flags_save_string
= ndr
->flags
;
14599 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14600 if (r
->description
) {
14601 uint32_t _relative_save_offset
;
14602 _relative_save_offset
= ndr
->offset
;
14603 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
14604 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14605 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
14606 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
14607 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
14608 ndr
->offset
= _relative_save_offset
;
14610 ndr
->flags
= _flags_save_string
;
14613 return NDR_ERR_SUCCESS
;
14616 _PUBLIC_
void ndr_print_spoolss_PortInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo2
*r
)
14618 ndr_print_struct(ndr
, name
, "spoolss_PortInfo2");
14620 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
14622 if (r
->port_name
) {
14623 ndr_print_string(ndr
, "port_name", r
->port_name
);
14626 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
14628 if (r
->monitor_name
) {
14629 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
14632 ndr_print_ptr(ndr
, "description", r
->description
);
14634 if (r
->description
) {
14635 ndr_print_string(ndr
, "description", r
->description
);
14638 ndr_print_spoolss_PortType(ndr
, "port_type", r
->port_type
);
14639 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
14643 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PortInfo
*r
)
14645 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14646 if (ndr_flags
& NDR_SCALARS
) {
14647 int level
= ndr_push_get_switch_value(ndr
, r
);
14650 NDR_CHECK(ndr_push_align(ndr
, 4));
14651 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14652 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14656 NDR_CHECK(ndr_push_align(ndr
, 4));
14657 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14658 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
14669 if (ndr_flags
& NDR_BUFFERS
) {
14670 int level
= ndr_push_get_switch_value(ndr
, r
);
14671 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14674 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14678 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
14689 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14690 return NDR_ERR_SUCCESS
;
14693 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PortInfo
*r
)
14695 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14697 level
= ndr_pull_get_switch_value(ndr
, r
);
14698 if (ndr_flags
& NDR_SCALARS
) {
14701 NDR_CHECK(ndr_pull_align(ndr
, 4));
14702 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14703 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14707 NDR_CHECK(ndr_pull_align(ndr
, 4));
14708 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14709 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
14720 if (ndr_flags
& NDR_BUFFERS
) {
14721 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14724 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14728 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
14739 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14740 return NDR_ERR_SUCCESS
;
14743 _PUBLIC_
void ndr_print_spoolss_PortInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PortInfo
*r
)
14746 level
= ndr_print_get_switch_value(ndr
, r
);
14747 ndr_print_union(ndr
, name
, level
, "spoolss_PortInfo");
14750 ndr_print_spoolss_PortInfo1(ndr
, "info1", &r
->info1
);
14754 ndr_print_spoolss_PortInfo2(ndr
, "info2", &r
->info2
);
14766 static enum ndr_err_code
ndr_push_spoolss_MonitorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo1
*r
)
14768 if (ndr_flags
& NDR_SCALARS
) {
14769 NDR_CHECK(ndr_push_align(ndr
, 4));
14771 uint32_t _flags_save_string
= ndr
->flags
;
14772 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14773 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
14774 ndr
->flags
= _flags_save_string
;
14777 if (ndr_flags
& NDR_BUFFERS
) {
14779 uint32_t _flags_save_string
= ndr
->flags
;
14780 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14781 if (r
->monitor_name
) {
14782 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
14783 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
14785 ndr
->flags
= _flags_save_string
;
14788 return NDR_ERR_SUCCESS
;
14791 static enum ndr_err_code
ndr_pull_spoolss_MonitorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo1
*r
)
14793 uint32_t _ptr_monitor_name
;
14794 TALLOC_CTX
*_mem_save_monitor_name_0
;
14795 if (ndr_flags
& NDR_SCALARS
) {
14796 NDR_CHECK(ndr_pull_align(ndr
, 4));
14798 uint32_t _flags_save_string
= ndr
->flags
;
14799 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14800 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
14801 if (_ptr_monitor_name
) {
14802 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
14803 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
14805 r
->monitor_name
= NULL
;
14807 ndr
->flags
= _flags_save_string
;
14810 if (ndr_flags
& NDR_BUFFERS
) {
14812 uint32_t _flags_save_string
= ndr
->flags
;
14813 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14814 if (r
->monitor_name
) {
14815 uint32_t _relative_save_offset
;
14816 _relative_save_offset
= ndr
->offset
;
14817 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
14818 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14819 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
14820 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
14821 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
14822 ndr
->offset
= _relative_save_offset
;
14824 ndr
->flags
= _flags_save_string
;
14827 return NDR_ERR_SUCCESS
;
14830 _PUBLIC_
void ndr_print_spoolss_MonitorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo1
*r
)
14832 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo1");
14834 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
14836 if (r
->monitor_name
) {
14837 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
14843 static enum ndr_err_code
ndr_push_spoolss_MonitorInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo2
*r
)
14845 if (ndr_flags
& NDR_SCALARS
) {
14846 NDR_CHECK(ndr_push_align(ndr
, 4));
14848 uint32_t _flags_save_string
= ndr
->flags
;
14849 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14850 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
14851 ndr
->flags
= _flags_save_string
;
14854 uint32_t _flags_save_string
= ndr
->flags
;
14855 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14856 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->environment
));
14857 ndr
->flags
= _flags_save_string
;
14860 uint32_t _flags_save_string
= ndr
->flags
;
14861 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14862 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dll_name
));
14863 ndr
->flags
= _flags_save_string
;
14866 if (ndr_flags
& NDR_BUFFERS
) {
14868 uint32_t _flags_save_string
= ndr
->flags
;
14869 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14870 if (r
->monitor_name
) {
14871 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
14872 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
14874 ndr
->flags
= _flags_save_string
;
14877 uint32_t _flags_save_string
= ndr
->flags
;
14878 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14879 if (r
->environment
) {
14880 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->environment
));
14881 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->environment
));
14883 ndr
->flags
= _flags_save_string
;
14886 uint32_t _flags_save_string
= ndr
->flags
;
14887 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14889 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dll_name
));
14890 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
14892 ndr
->flags
= _flags_save_string
;
14895 return NDR_ERR_SUCCESS
;
14898 static enum ndr_err_code
ndr_pull_spoolss_MonitorInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo2
*r
)
14900 uint32_t _ptr_monitor_name
;
14901 TALLOC_CTX
*_mem_save_monitor_name_0
;
14902 uint32_t _ptr_environment
;
14903 TALLOC_CTX
*_mem_save_environment_0
;
14904 uint32_t _ptr_dll_name
;
14905 TALLOC_CTX
*_mem_save_dll_name_0
;
14906 if (ndr_flags
& NDR_SCALARS
) {
14907 NDR_CHECK(ndr_pull_align(ndr
, 4));
14909 uint32_t _flags_save_string
= ndr
->flags
;
14910 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14911 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
14912 if (_ptr_monitor_name
) {
14913 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
14914 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
14916 r
->monitor_name
= NULL
;
14918 ndr
->flags
= _flags_save_string
;
14921 uint32_t _flags_save_string
= ndr
->flags
;
14922 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14923 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
14924 if (_ptr_environment
) {
14925 NDR_PULL_ALLOC(ndr
, r
->environment
);
14926 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->environment
, _ptr_environment
));
14928 r
->environment
= NULL
;
14930 ndr
->flags
= _flags_save_string
;
14933 uint32_t _flags_save_string
= ndr
->flags
;
14934 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14935 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dll_name
));
14936 if (_ptr_dll_name
) {
14937 NDR_PULL_ALLOC(ndr
, r
->dll_name
);
14938 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dll_name
, _ptr_dll_name
));
14940 r
->dll_name
= NULL
;
14942 ndr
->flags
= _flags_save_string
;
14945 if (ndr_flags
& NDR_BUFFERS
) {
14947 uint32_t _flags_save_string
= ndr
->flags
;
14948 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14949 if (r
->monitor_name
) {
14950 uint32_t _relative_save_offset
;
14951 _relative_save_offset
= ndr
->offset
;
14952 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
14953 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14954 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
14955 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
14956 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
14957 ndr
->offset
= _relative_save_offset
;
14959 ndr
->flags
= _flags_save_string
;
14962 uint32_t _flags_save_string
= ndr
->flags
;
14963 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14964 if (r
->environment
) {
14965 uint32_t _relative_save_offset
;
14966 _relative_save_offset
= ndr
->offset
;
14967 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->environment
));
14968 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14969 NDR_PULL_SET_MEM_CTX(ndr
, r
->environment
, 0);
14970 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->environment
));
14971 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
14972 ndr
->offset
= _relative_save_offset
;
14974 ndr
->flags
= _flags_save_string
;
14977 uint32_t _flags_save_string
= ndr
->flags
;
14978 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14980 uint32_t _relative_save_offset
;
14981 _relative_save_offset
= ndr
->offset
;
14982 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dll_name
));
14983 _mem_save_dll_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14984 NDR_PULL_SET_MEM_CTX(ndr
, r
->dll_name
, 0);
14985 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
14986 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dll_name_0
, 0);
14987 ndr
->offset
= _relative_save_offset
;
14989 ndr
->flags
= _flags_save_string
;
14992 return NDR_ERR_SUCCESS
;
14995 _PUBLIC_
void ndr_print_spoolss_MonitorInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo2
*r
)
14997 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo2");
14999 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
15001 if (r
->monitor_name
) {
15002 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
15005 ndr_print_ptr(ndr
, "environment", r
->environment
);
15007 if (r
->environment
) {
15008 ndr_print_string(ndr
, "environment", r
->environment
);
15011 ndr_print_ptr(ndr
, "dll_name", r
->dll_name
);
15014 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
15020 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_MonitorInfo
*r
)
15022 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15023 if (ndr_flags
& NDR_SCALARS
) {
15024 int level
= ndr_push_get_switch_value(ndr
, r
);
15027 NDR_CHECK(ndr_push_align(ndr
, 4));
15028 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15029 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15033 NDR_CHECK(ndr_push_align(ndr
, 4));
15034 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15035 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15043 if (ndr_flags
& NDR_BUFFERS
) {
15044 int level
= ndr_push_get_switch_value(ndr
, r
);
15045 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15048 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15052 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15060 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15061 return NDR_ERR_SUCCESS
;
15064 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_MonitorInfo
*r
)
15066 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15068 level
= ndr_pull_get_switch_value(ndr
, r
);
15069 if (ndr_flags
& NDR_SCALARS
) {
15072 NDR_CHECK(ndr_pull_align(ndr
, 4));
15073 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15074 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15078 NDR_CHECK(ndr_pull_align(ndr
, 4));
15079 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15080 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15088 if (ndr_flags
& NDR_BUFFERS
) {
15089 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15092 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15096 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15104 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15105 return NDR_ERR_SUCCESS
;
15108 _PUBLIC_
void ndr_print_spoolss_MonitorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_MonitorInfo
*r
)
15111 level
= ndr_print_get_switch_value(ndr
, r
);
15112 ndr_print_union(ndr
, name
, level
, "spoolss_MonitorInfo");
15115 ndr_print_spoolss_MonitorInfo1(ndr
, "info1", &r
->info1
);
15119 ndr_print_spoolss_MonitorInfo2(ndr
, "info2", &r
->info2
);
15128 static enum ndr_err_code
ndr_push_spoolss_PrinterChangeFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
15130 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15131 return NDR_ERR_SUCCESS
;
15134 static enum ndr_err_code
ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
15137 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
15139 return NDR_ERR_SUCCESS
;
15142 _PUBLIC_
void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
15144 ndr_print_uint32(ndr
, name
, r
);
15146 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER
, r
);
15147 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER
, r
);
15148 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER
, r
);
15149 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER
, r
);
15150 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB
, r
);
15151 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB
, r
);
15152 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB
, r
);
15153 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB
, r
);
15154 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM
, r
);
15155 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM
, r
);
15156 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM
, r
);
15157 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT
, r
);
15158 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT
, r
);
15159 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT
, r
);
15160 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR
, r
);
15161 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR
, r
);
15162 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER
, r
);
15163 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER
, r
);
15164 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER
, r
);
15165 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER
, r
);
15166 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT
, r
);
15170 static enum ndr_err_code
ndr_push_spoolss_Field(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_Field r
)
15172 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
15173 return NDR_ERR_SUCCESS
;
15176 static enum ndr_err_code
ndr_pull_spoolss_Field(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_Field
*r
)
15179 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
15181 return NDR_ERR_SUCCESS
;
15184 _PUBLIC_
void ndr_print_spoolss_Field(struct ndr_print
*ndr
, const char *name
, enum spoolss_Field r
)
15186 const char *val
= NULL
;
15189 case SPOOLSS_FIELD_SERVER_NAME
: val
= "SPOOLSS_FIELD_SERVER_NAME"; break;
15190 case SPOOLSS_FIELD_PRINTER_NAME
: val
= "SPOOLSS_FIELD_PRINTER_NAME"; break;
15191 case SPOOLSS_FIELD_SHARE_NAME
: val
= "SPOOLSS_FIELD_SHARE_NAME"; break;
15192 case SPOOLSS_FIELD_PORT_NAME
: val
= "SPOOLSS_FIELD_PORT_NAME"; break;
15193 case SPOOLSS_FIELD_DRIVER_NAME
: val
= "SPOOLSS_FIELD_DRIVER_NAME"; break;
15194 case SPOOLSS_FIELD_COMMENT
: val
= "SPOOLSS_FIELD_COMMENT"; break;
15195 case SPOOLSS_FIELD_LOCATION
: val
= "SPOOLSS_FIELD_LOCATION"; break;
15196 case SPOOLSS_FIELD_DEVMODE
: val
= "SPOOLSS_FIELD_DEVMODE"; break;
15197 case SPOOLSS_FIELD_SEPFILE
: val
= "SPOOLSS_FIELD_SEPFILE"; break;
15198 case SPOOLSS_FIELD_PRINT_PROCESSOR
: val
= "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
15199 case SPOOLSS_FIELD_PARAMETERS
: val
= "SPOOLSS_FIELD_PARAMETERS"; break;
15200 case SPOOLSS_FIELD_DATATYPE
: val
= "SPOOLSS_FIELD_DATATYPE"; break;
15201 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR
: val
= "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
15202 case SPOOLSS_FIELD_ATTRIBUTES
: val
= "SPOOLSS_FIELD_ATTRIBUTES"; break;
15203 case SPOOLSS_FIELD_PRIORITY
: val
= "SPOOLSS_FIELD_PRIORITY"; break;
15204 case SPOOLSS_FIELD_DEFAULT_PRIORITY
: val
= "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
15205 case SPOOLSS_FIELD_START_TIME
: val
= "SPOOLSS_FIELD_START_TIME"; break;
15206 case SPOOLSS_FIELD_UNTIL_TIME
: val
= "SPOOLSS_FIELD_UNTIL_TIME"; break;
15207 case SPOOLSS_FIELD_STATUS
: val
= "SPOOLSS_FIELD_STATUS"; break;
15208 case SPOOLSS_FIELD_STATUS_STRING
: val
= "SPOOLSS_FIELD_STATUS_STRING"; break;
15209 case SPOOLSS_FIELD_CJOBS
: val
= "SPOOLSS_FIELD_CJOBS"; break;
15210 case SPOOLSS_FIELD_AVERAGE_PPM
: val
= "SPOOLSS_FIELD_AVERAGE_PPM"; break;
15211 case SPOOLSS_FIELD_TOTAL_PAGES
: val
= "SPOOLSS_FIELD_TOTAL_PAGES"; break;
15212 case SPOOLSS_FIELD_PAGES_PRINTED
: val
= "SPOOLSS_FIELD_PAGES_PRINTED"; break;
15213 case SPOOLSS_FIELD_TOTAL_BYTES
: val
= "SPOOLSS_FIELD_TOTAL_BYTES"; break;
15214 case SPOOLSS_FIELD_BYTES_PRINTED
: val
= "SPOOLSS_FIELD_BYTES_PRINTED"; break;
15216 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
15219 static enum ndr_err_code
ndr_push_spoolss_NotifyType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyType r
)
15221 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
15222 return NDR_ERR_SUCCESS
;
15225 static enum ndr_err_code
ndr_pull_spoolss_NotifyType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyType
*r
)
15228 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
15230 return NDR_ERR_SUCCESS
;
15233 _PUBLIC_
void ndr_print_spoolss_NotifyType(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyType r
)
15235 const char *val
= NULL
;
15238 case SPOOLSS_NOTIFY_PRINTER
: val
= "SPOOLSS_NOTIFY_PRINTER"; break;
15239 case SPOOLSS_NOTIFY_JOB
: val
= "SPOOLSS_NOTIFY_JOB"; break;
15241 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
15244 static enum ndr_err_code
ndr_push_spoolss_NotifyOptionType(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOptionType
*r
)
15246 uint32_t cntr_fields_1
;
15247 if (ndr_flags
& NDR_SCALARS
) {
15248 NDR_CHECK(ndr_push_align(ndr
, 4));
15249 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
15250 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->u1
));
15251 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u2
));
15252 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u3
));
15253 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
15254 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->fields
));
15256 if (ndr_flags
& NDR_BUFFERS
) {
15258 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
15259 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
15260 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, r
->fields
[cntr_fields_1
]));
15264 return NDR_ERR_SUCCESS
;
15267 static enum ndr_err_code
ndr_pull_spoolss_NotifyOptionType(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOptionType
*r
)
15269 uint32_t _ptr_fields
;
15270 uint32_t cntr_fields_1
;
15271 TALLOC_CTX
*_mem_save_fields_0
;
15272 TALLOC_CTX
*_mem_save_fields_1
;
15273 if (ndr_flags
& NDR_SCALARS
) {
15274 NDR_CHECK(ndr_pull_align(ndr
, 4));
15275 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
15276 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->u1
));
15277 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u2
));
15278 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u3
));
15279 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
15280 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_fields
));
15282 NDR_PULL_ALLOC(ndr
, r
->fields
);
15287 if (ndr_flags
& NDR_BUFFERS
) {
15289 _mem_save_fields_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15290 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
15291 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->fields
));
15292 NDR_PULL_ALLOC_N(ndr
, r
->fields
, ndr_get_array_size(ndr
, &r
->fields
));
15293 _mem_save_fields_1
= NDR_PULL_GET_MEM_CTX(ndr
);
15294 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
15295 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
15296 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
15298 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_1
, 0);
15299 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_0
, 0);
15302 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->fields
, r
->count
));
15305 return NDR_ERR_SUCCESS
;
15308 _PUBLIC_
void ndr_print_spoolss_NotifyOptionType(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOptionType
*r
)
15310 uint32_t cntr_fields_1
;
15311 ndr_print_struct(ndr
, name
, "spoolss_NotifyOptionType");
15313 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
15314 ndr_print_uint16(ndr
, "u1", r
->u1
);
15315 ndr_print_uint32(ndr
, "u2", r
->u2
);
15316 ndr_print_uint32(ndr
, "u3", r
->u3
);
15317 ndr_print_uint32(ndr
, "count", r
->count
);
15318 ndr_print_ptr(ndr
, "fields", r
->fields
);
15321 ndr
->print(ndr
, "%s: ARRAY(%d)", "fields", (int)r
->count
);
15323 for (cntr_fields_1
=0;cntr_fields_1
<r
->count
;cntr_fields_1
++) {
15325 if (asprintf(&idx_1
, "[%d]", cntr_fields_1
) != -1) {
15326 ndr_print_spoolss_Field(ndr
, "fields", r
->fields
[cntr_fields_1
]);
15336 static enum ndr_err_code
ndr_push_spoolssNotifyOptionFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
15338 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15339 return NDR_ERR_SUCCESS
;
15342 static enum ndr_err_code
ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
15345 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
15347 return NDR_ERR_SUCCESS
;
15350 _PUBLIC_
void ndr_print_spoolssNotifyOptionFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
15352 ndr_print_uint32(ndr
, name
, r
);
15354 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH
, r
);
15358 static enum ndr_err_code
ndr_push_spoolss_NotifyOption(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOption
*r
)
15360 uint32_t cntr_types_1
;
15361 if (ndr_flags
& NDR_SCALARS
) {
15362 NDR_CHECK(ndr_push_align(ndr
, 4));
15363 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
15364 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, r
->flags
));
15365 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
15366 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->types
));
15368 if (ndr_flags
& NDR_BUFFERS
) {
15370 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
15371 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
15372 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
15374 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
15375 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
15379 return NDR_ERR_SUCCESS
;
15382 static enum ndr_err_code
ndr_pull_spoolss_NotifyOption(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOption
*r
)
15384 uint32_t _ptr_types
;
15385 uint32_t cntr_types_1
;
15386 TALLOC_CTX
*_mem_save_types_0
;
15387 TALLOC_CTX
*_mem_save_types_1
;
15388 if (ndr_flags
& NDR_SCALARS
) {
15389 NDR_CHECK(ndr_pull_align(ndr
, 4));
15390 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
15391 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15392 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
15393 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_types
));
15395 NDR_PULL_ALLOC(ndr
, r
->types
);
15400 if (ndr_flags
& NDR_BUFFERS
) {
15402 _mem_save_types_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15403 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
15404 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->types
));
15405 NDR_PULL_ALLOC_N(ndr
, r
->types
, ndr_get_array_size(ndr
, &r
->types
));
15406 _mem_save_types_1
= NDR_PULL_GET_MEM_CTX(ndr
);
15407 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
15408 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
15409 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
15411 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
15412 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
15414 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_1
, 0);
15415 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_0
, 0);
15418 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->types
, r
->count
));
15421 return NDR_ERR_SUCCESS
;
15424 _PUBLIC_
void ndr_print_spoolss_NotifyOption(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOption
*r
)
15426 uint32_t cntr_types_1
;
15427 ndr_print_struct(ndr
, name
, "spoolss_NotifyOption");
15429 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
15430 ndr_print_spoolssNotifyOptionFlags(ndr
, "flags", r
->flags
);
15431 ndr_print_uint32(ndr
, "count", r
->count
);
15432 ndr_print_ptr(ndr
, "types", r
->types
);
15435 ndr
->print(ndr
, "%s: ARRAY(%d)", "types", (int)r
->count
);
15437 for (cntr_types_1
=0;cntr_types_1
<r
->count
;cntr_types_1
++) {
15439 if (asprintf(&idx_1
, "[%d]", cntr_types_1
) != -1) {
15440 ndr_print_spoolss_NotifyOptionType(ndr
, "types", &r
->types
[cntr_types_1
]);
15450 static enum ndr_err_code
ndr_push_spoolss_NotifyString(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyString
*r
)
15452 if (ndr_flags
& NDR_SCALARS
) {
15453 NDR_CHECK(ndr_push_align(ndr
, 4));
15454 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
15455 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->string
));
15457 if (ndr_flags
& NDR_BUFFERS
) {
15459 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
/ 2));
15460 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->string
, r
->size
/ 2, sizeof(uint16_t), CH_UTF16
));
15463 return NDR_ERR_SUCCESS
;
15466 static enum ndr_err_code
ndr_pull_spoolss_NotifyString(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyString
*r
)
15468 uint32_t _ptr_string
;
15469 TALLOC_CTX
*_mem_save_string_0
;
15470 if (ndr_flags
& NDR_SCALARS
) {
15471 NDR_CHECK(ndr_pull_align(ndr
, 4));
15472 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
15473 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_string
));
15475 NDR_PULL_ALLOC(ndr
, r
->string
);
15480 if (ndr_flags
& NDR_BUFFERS
) {
15482 _mem_save_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15483 NDR_PULL_SET_MEM_CTX(ndr
, r
->string
, 0);
15484 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->string
));
15485 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->string
, ndr_get_array_size(ndr
, &r
->string
), sizeof(uint16_t), CH_UTF16
));
15486 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_string_0
, 0);
15489 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->string
, r
->size
/ 2));
15492 return NDR_ERR_SUCCESS
;
15495 _PUBLIC_
void ndr_print_spoolss_NotifyString(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyString
*r
)
15497 ndr_print_struct(ndr
, name
, "spoolss_NotifyString");
15499 ndr_print_uint32(ndr
, "size", r
->size
);
15500 ndr_print_ptr(ndr
, "string", r
->string
);
15503 ndr_print_string(ndr
, "string", r
->string
);
15509 static enum ndr_err_code
ndr_push_spoolss_NotifyTable(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyTable r
)
15511 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15512 return NDR_ERR_SUCCESS
;
15515 static enum ndr_err_code
ndr_pull_spoolss_NotifyTable(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyTable
*r
)
15518 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
15520 return NDR_ERR_SUCCESS
;
15523 _PUBLIC_
void ndr_print_spoolss_NotifyTable(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyTable r
)
15525 const char *val
= NULL
;
15528 case NOTIFY_TABLE_DWORD
: val
= "NOTIFY_TABLE_DWORD"; break;
15529 case NOTIFY_TABLE_STRING
: val
= "NOTIFY_TABLE_STRING"; break;
15530 case NOTIFY_TABLE_DEVMODE
: val
= "NOTIFY_TABLE_DEVMODE"; break;
15531 case NOTIFY_TABLE_TIME
: val
= "NOTIFY_TABLE_TIME"; break;
15532 case NOTIFY_TABLE_SECURITYDESCRIPTOR
: val
= "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
15534 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
15537 static enum ndr_err_code
ndr_push_spoolss_NotifyData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_NotifyData
*r
)
15539 if (ndr_flags
& NDR_SCALARS
) {
15540 int level
= ndr_push_get_switch_value(ndr
, r
);
15541 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
15544 uint32_t cntr_integer_0
;
15545 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
15546 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->integer
[cntr_integer_0
]));
15551 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
15555 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
15559 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
15563 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
15567 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15570 if (ndr_flags
& NDR_BUFFERS
) {
15571 int level
= ndr_push_get_switch_value(ndr
, r
);
15577 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
15581 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
15585 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
15589 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
15593 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15596 return NDR_ERR_SUCCESS
;
15599 static enum ndr_err_code
ndr_pull_spoolss_NotifyData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_NotifyData
*r
)
15603 level
= ndr_pull_get_switch_value(ndr
, r
);
15604 if (ndr_flags
& NDR_SCALARS
) {
15605 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
15606 if (_level
!= level
) {
15607 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
15611 uint32_t cntr_integer_0
;
15612 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
15613 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->integer
[cntr_integer_0
]));
15618 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
15622 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
15626 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
15630 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
15634 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15637 if (ndr_flags
& NDR_BUFFERS
) {
15643 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
15647 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
15651 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
15655 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
15659 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15662 return NDR_ERR_SUCCESS
;
15665 _PUBLIC_
void ndr_print_spoolss_NotifyData(struct ndr_print
*ndr
, const char *name
, const union spoolss_NotifyData
*r
)
15668 uint32_t cntr_integer_0
;
15669 level
= ndr_print_get_switch_value(ndr
, r
);
15670 ndr_print_union(ndr
, name
, level
, "spoolss_NotifyData");
15673 ndr
->print(ndr
, "%s: ARRAY(%d)", "integer", (int)2);
15675 for (cntr_integer_0
=0;cntr_integer_0
<2;cntr_integer_0
++) {
15677 if (asprintf(&idx_0
, "[%d]", cntr_integer_0
) != -1) {
15678 ndr_print_uint32(ndr
, "integer", r
->integer
[cntr_integer_0
]);
15686 ndr_print_spoolss_NotifyString(ndr
, "string", &r
->string
);
15690 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode", &r
->devmode
);
15694 ndr_print_spoolss_TimeCtr(ndr
, "time", &r
->time
);
15698 ndr_print_sec_desc_buf(ndr
, "sd", &r
->sd
);
15702 ndr_print_bad_level(ndr
, name
, level
);
15706 static enum ndr_err_code
ndr_push_spoolss_Notify(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_Notify
*r
)
15708 if (ndr_flags
& NDR_SCALARS
) {
15709 NDR_CHECK(ndr_push_align(ndr
, 4));
15710 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
15711 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, r
->field
));
15712 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr
, NDR_SCALARS
, r
->variable_type
));
15713 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
15714 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
15715 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
15717 if (ndr_flags
& NDR_BUFFERS
) {
15718 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
15720 return NDR_ERR_SUCCESS
;
15723 static enum ndr_err_code
ndr_pull_spoolss_Notify(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Notify
*r
)
15725 if (ndr_flags
& NDR_SCALARS
) {
15726 NDR_CHECK(ndr_pull_align(ndr
, 4));
15727 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
15728 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
15729 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr
, NDR_SCALARS
, &r
->variable_type
));
15730 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
15731 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
15732 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
15734 if (ndr_flags
& NDR_BUFFERS
) {
15735 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
15737 return NDR_ERR_SUCCESS
;
15740 _PUBLIC_
void ndr_print_spoolss_Notify(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Notify
*r
)
15742 ndr_print_struct(ndr
, name
, "spoolss_Notify");
15744 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
15745 ndr_print_spoolss_Field(ndr
, "field", r
->field
);
15746 ndr_print_spoolss_NotifyTable(ndr
, "variable_type", r
->variable_type
);
15747 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
15748 ndr_print_set_switch_value(ndr
, &r
->data
, r
->variable_type
);
15749 ndr_print_spoolss_NotifyData(ndr
, "data", &r
->data
);
15753 static enum ndr_err_code
ndr_push_spoolss_NotifyInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyInfo
*r
)
15755 uint32_t cntr_notifies_0
;
15756 if (ndr_flags
& NDR_SCALARS
) {
15757 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
15758 NDR_CHECK(ndr_push_align(ndr
, 4));
15759 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
15760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
15761 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
15762 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
15763 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
15766 if (ndr_flags
& NDR_BUFFERS
) {
15767 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
15768 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
15771 return NDR_ERR_SUCCESS
;
15774 static enum ndr_err_code
ndr_pull_spoolss_NotifyInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyInfo
*r
)
15776 uint32_t cntr_notifies_0
;
15777 TALLOC_CTX
*_mem_save_notifies_0
;
15778 if (ndr_flags
& NDR_SCALARS
) {
15779 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notifies
));
15780 NDR_CHECK(ndr_pull_align(ndr
, 4));
15781 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
15782 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
15783 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
15784 NDR_PULL_ALLOC_N(ndr
, r
->notifies
, ndr_get_array_size(ndr
, &r
->notifies
));
15785 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15786 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
15787 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
15788 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
15790 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
15792 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->notifies
, r
->count
));
15795 if (ndr_flags
& NDR_BUFFERS
) {
15796 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15797 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
15798 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
15799 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
15801 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
15803 return NDR_ERR_SUCCESS
;
15806 _PUBLIC_
void ndr_print_spoolss_NotifyInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyInfo
*r
)
15808 uint32_t cntr_notifies_0
;
15809 ndr_print_struct(ndr
, name
, "spoolss_NotifyInfo");
15811 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
15812 ndr_print_uint32(ndr
, "flags", r
->flags
);
15813 ndr_print_uint32(ndr
, "count", r
->count
);
15814 ndr
->print(ndr
, "%s: ARRAY(%d)", "notifies", (int)r
->count
);
15816 for (cntr_notifies_0
=0;cntr_notifies_0
<r
->count
;cntr_notifies_0
++) {
15818 if (asprintf(&idx_0
, "[%d]", cntr_notifies_0
) != -1) {
15819 ndr_print_spoolss_Notify(ndr
, "notifies", &r
->notifies
[cntr_notifies_0
]);
15827 static enum ndr_err_code
ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_ReplyPrinterInfo
*r
)
15829 if (ndr_flags
& NDR_SCALARS
) {
15830 int level
= ndr_push_get_switch_value(ndr
, r
);
15831 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
15834 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
15838 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15841 if (ndr_flags
& NDR_BUFFERS
) {
15842 int level
= ndr_push_get_switch_value(ndr
, r
);
15846 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
15851 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15854 return NDR_ERR_SUCCESS
;
15857 static enum ndr_err_code
ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_ReplyPrinterInfo
*r
)
15861 TALLOC_CTX
*_mem_save_info0_0
;
15862 level
= ndr_pull_get_switch_value(ndr
, r
);
15863 if (ndr_flags
& NDR_SCALARS
) {
15864 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
15865 if (_level
!= level
) {
15866 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
15870 uint32_t _ptr_info0
;
15871 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
15873 NDR_PULL_ALLOC(ndr
, r
->info0
);
15880 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15883 if (ndr_flags
& NDR_BUFFERS
) {
15887 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15888 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
15889 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
15890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
15895 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15898 return NDR_ERR_SUCCESS
;
15901 _PUBLIC_
void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_ReplyPrinterInfo
*r
)
15904 level
= ndr_print_get_switch_value(ndr
, r
);
15905 ndr_print_union(ndr
, name
, level
, "spoolss_ReplyPrinterInfo");
15908 ndr_print_ptr(ndr
, "info0", r
->info0
);
15911 ndr_print_spoolss_NotifyInfo(ndr
, "info0", r
->info0
);
15917 ndr_print_bad_level(ndr
, name
, level
);
15921 static enum ndr_err_code
ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
15923 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15924 return NDR_ERR_SUCCESS
;
15927 static enum ndr_err_code
ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
15930 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
15932 return NDR_ERR_SUCCESS
;
15935 _PUBLIC_
void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
15937 ndr_print_uint32(ndr
, name
, r
);
15939 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED
, r
);
15940 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED
, r
);
15941 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH
, r
);
15945 static enum ndr_err_code
ndr_push_spoolss_UserLevel1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel1
*r
)
15947 if (ndr_flags
& NDR_SCALARS
) {
15948 NDR_CHECK(ndr_push_align(ndr
, 4));
15949 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
15950 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
15951 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
15952 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
15953 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
15954 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
15955 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
15957 if (ndr_flags
& NDR_BUFFERS
) {
15959 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
15960 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
15962 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
15966 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15967 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
15968 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15971 return NDR_ERR_SUCCESS
;
15974 static enum ndr_err_code
ndr_pull_spoolss_UserLevel1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel1
*r
)
15976 uint32_t _ptr_client
;
15977 TALLOC_CTX
*_mem_save_client_0
;
15978 uint32_t _ptr_user
;
15979 TALLOC_CTX
*_mem_save_user_0
;
15980 if (ndr_flags
& NDR_SCALARS
) {
15981 NDR_CHECK(ndr_pull_align(ndr
, 4));
15982 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
15983 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
15985 NDR_PULL_ALLOC(ndr
, r
->client
);
15989 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
15991 NDR_PULL_ALLOC(ndr
, r
->user
);
15995 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
15996 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
15997 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
15998 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
16000 if (ndr_flags
& NDR_BUFFERS
) {
16002 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16003 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
16004 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
16005 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
16006 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
16007 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->client
), ndr_get_array_length(ndr
, &r
->client
));
16009 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
16010 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
16011 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
16014 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16015 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
16016 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
16017 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
16018 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
16019 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->user
), ndr_get_array_length(ndr
, &r
->user
));
16021 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
16022 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
16023 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
16026 return NDR_ERR_SUCCESS
;
16029 _PUBLIC_
void ndr_print_spoolss_UserLevel1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel1
*r
)
16031 ndr_print_struct(ndr
, name
, "spoolss_UserLevel1");
16033 ndr_print_uint32(ndr
, "size", r
->size
);
16034 ndr_print_ptr(ndr
, "client", r
->client
);
16037 ndr_print_string(ndr
, "client", r
->client
);
16040 ndr_print_ptr(ndr
, "user", r
->user
);
16043 ndr_print_string(ndr
, "user", r
->user
);
16046 ndr_print_uint32(ndr
, "build", r
->build
);
16047 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
16048 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
16049 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
16053 static enum ndr_err_code
ndr_push_spoolss_UserLevel2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel2
*r
)
16055 if (ndr_flags
& NDR_SCALARS
) {
16056 NDR_CHECK(ndr_push_align(ndr
, 4));
16057 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->not_used
));
16059 if (ndr_flags
& NDR_BUFFERS
) {
16061 return NDR_ERR_SUCCESS
;
16064 static enum ndr_err_code
ndr_pull_spoolss_UserLevel2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel2
*r
)
16066 if (ndr_flags
& NDR_SCALARS
) {
16067 NDR_CHECK(ndr_pull_align(ndr
, 4));
16068 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->not_used
));
16070 if (ndr_flags
& NDR_BUFFERS
) {
16072 return NDR_ERR_SUCCESS
;
16075 _PUBLIC_
void ndr_print_spoolss_UserLevel2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel2
*r
)
16077 ndr_print_struct(ndr
, name
, "spoolss_UserLevel2");
16079 ndr_print_uint32(ndr
, "not_used", r
->not_used
);
16083 static enum ndr_err_code
ndr_push_spoolss_UserLevel3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel3
*r
)
16085 if (ndr_flags
& NDR_SCALARS
) {
16086 NDR_CHECK(ndr_push_align(ndr
, 4));
16087 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
16088 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
16089 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size2
));
16090 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
16091 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
16092 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
16093 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
16094 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
16095 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
16096 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reserved
));
16098 if (ndr_flags
& NDR_BUFFERS
) {
16100 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
16101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
16103 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16106 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
16107 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16108 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
16109 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16112 return NDR_ERR_SUCCESS
;
16115 static enum ndr_err_code
ndr_pull_spoolss_UserLevel3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel3
*r
)
16117 uint32_t _ptr_client
;
16118 TALLOC_CTX
*_mem_save_client_0
;
16119 uint32_t _ptr_user
;
16120 TALLOC_CTX
*_mem_save_user_0
;
16121 if (ndr_flags
& NDR_SCALARS
) {
16122 NDR_CHECK(ndr_pull_align(ndr
, 4));
16123 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
16124 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
16125 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size2
));
16126 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
16128 NDR_PULL_ALLOC(ndr
, r
->client
);
16132 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
16134 NDR_PULL_ALLOC(ndr
, r
->user
);
16138 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
16139 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
16140 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
16141 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
16142 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reserved
));
16144 if (ndr_flags
& NDR_BUFFERS
) {
16146 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16147 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
16148 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
16149 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
16150 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
16151 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->client
), ndr_get_array_length(ndr
, &r
->client
));
16153 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
16154 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
16155 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
16158 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16159 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
16160 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
16161 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
16162 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
16163 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->user
), ndr_get_array_length(ndr
, &r
->user
));
16165 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
16166 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
16167 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
16170 return NDR_ERR_SUCCESS
;
16173 _PUBLIC_
void ndr_print_spoolss_UserLevel3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel3
*r
)
16175 ndr_print_struct(ndr
, name
, "spoolss_UserLevel3");
16177 ndr_print_uint32(ndr
, "size", r
->size
);
16178 ndr_print_uint32(ndr
, "flags", r
->flags
);
16179 ndr_print_uint32(ndr
, "size2", r
->size2
);
16180 ndr_print_ptr(ndr
, "client", r
->client
);
16183 ndr_print_string(ndr
, "client", r
->client
);
16186 ndr_print_ptr(ndr
, "user", r
->user
);
16189 ndr_print_string(ndr
, "user", r
->user
);
16192 ndr_print_uint32(ndr
, "build", r
->build
);
16193 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
16194 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
16195 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
16196 ndr_print_udlong(ndr
, "reserved", r
->reserved
);
16200 static enum ndr_err_code
ndr_push_spoolss_UserLevel(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_UserLevel
*r
)
16202 if (ndr_flags
& NDR_SCALARS
) {
16203 int level
= ndr_push_get_switch_value(ndr
, r
);
16204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
16207 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level1
));
16211 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level2
));
16215 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level3
));
16219 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
16222 if (ndr_flags
& NDR_BUFFERS
) {
16223 int level
= ndr_push_get_switch_value(ndr
, r
);
16227 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
16233 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
16239 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
16244 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
16247 return NDR_ERR_SUCCESS
;
16250 static enum ndr_err_code
ndr_pull_spoolss_UserLevel(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_UserLevel
*r
)
16254 TALLOC_CTX
*_mem_save_level1_0
;
16255 TALLOC_CTX
*_mem_save_level2_0
;
16256 TALLOC_CTX
*_mem_save_level3_0
;
16257 level
= ndr_pull_get_switch_value(ndr
, r
);
16258 if (ndr_flags
& NDR_SCALARS
) {
16259 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
16260 if (_level
!= level
) {
16261 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
16265 uint32_t _ptr_level1
;
16266 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level1
));
16268 NDR_PULL_ALLOC(ndr
, r
->level1
);
16275 uint32_t _ptr_level2
;
16276 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level2
));
16278 NDR_PULL_ALLOC(ndr
, r
->level2
);
16285 uint32_t _ptr_level3
;
16286 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level3
));
16288 NDR_PULL_ALLOC(ndr
, r
->level3
);
16295 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
16298 if (ndr_flags
& NDR_BUFFERS
) {
16302 _mem_save_level1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16303 NDR_PULL_SET_MEM_CTX(ndr
, r
->level1
, 0);
16304 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
16305 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level1_0
, 0);
16311 _mem_save_level2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16312 NDR_PULL_SET_MEM_CTX(ndr
, r
->level2
, 0);
16313 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
16314 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level2_0
, 0);
16320 _mem_save_level3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16321 NDR_PULL_SET_MEM_CTX(ndr
, r
->level3
, 0);
16322 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
16323 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level3_0
, 0);
16328 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
16331 return NDR_ERR_SUCCESS
;
16334 _PUBLIC_
void ndr_print_spoolss_UserLevel(struct ndr_print
*ndr
, const char *name
, const union spoolss_UserLevel
*r
)
16337 level
= ndr_print_get_switch_value(ndr
, r
);
16338 ndr_print_union(ndr
, name
, level
, "spoolss_UserLevel");
16341 ndr_print_ptr(ndr
, "level1", r
->level1
);
16344 ndr_print_spoolss_UserLevel1(ndr
, "level1", r
->level1
);
16350 ndr_print_ptr(ndr
, "level2", r
->level2
);
16353 ndr_print_spoolss_UserLevel2(ndr
, "level2", r
->level2
);
16359 ndr_print_ptr(ndr
, "level3", r
->level3
);
16362 ndr_print_spoolss_UserLevel3(ndr
, "level3", r
->level3
);
16368 ndr_print_bad_level(ndr
, name
, level
);
16372 static enum ndr_err_code
ndr_push_spoolss_UserLevelCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevelCtr
*r
)
16374 if (ndr_flags
& NDR_SCALARS
) {
16375 NDR_CHECK(ndr_push_align(ndr
, 4));
16376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
16377 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->user_info
, r
->level
));
16378 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
16380 if (ndr_flags
& NDR_BUFFERS
) {
16381 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
16383 return NDR_ERR_SUCCESS
;
16386 static enum ndr_err_code
ndr_pull_spoolss_UserLevelCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevelCtr
*r
)
16388 if (ndr_flags
& NDR_SCALARS
) {
16389 NDR_CHECK(ndr_pull_align(ndr
, 4));
16390 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
16391 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->user_info
, r
->level
));
16392 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
16394 if (ndr_flags
& NDR_BUFFERS
) {
16395 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
16397 return NDR_ERR_SUCCESS
;
16400 _PUBLIC_
void ndr_print_spoolss_UserLevelCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevelCtr
*r
)
16402 ndr_print_struct(ndr
, name
, "spoolss_UserLevelCtr");
16404 ndr_print_uint32(ndr
, "level", r
->level
);
16405 ndr_print_set_switch_value(ndr
, &r
->user_info
, r
->level
);
16406 ndr_print_spoolss_UserLevel(ndr
, "user_info", &r
->user_info
);
16410 static enum ndr_err_code
ndr_push_spoolss_AccessRights(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
16412 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16413 return NDR_ERR_SUCCESS
;
16416 static enum ndr_err_code
ndr_pull_spoolss_AccessRights(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
16419 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16421 return NDR_ERR_SUCCESS
;
16424 _PUBLIC_
void ndr_print_spoolss_AccessRights(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
16426 ndr_print_uint32(ndr
, name
, r
);
16428 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER
, r
);
16429 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE
, r
);
16430 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER
, r
);
16431 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE
, r
);
16432 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER
, r
);
16433 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ
, r
);
16437 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeleteDriverFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
16439 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16440 return NDR_ERR_SUCCESS
;
16443 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
16446 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16448 return NDR_ERR_SUCCESS
;
16451 _PUBLIC_
void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
16453 ndr_print_uint32(ndr
, name
, r
);
16455 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES
, r
);
16456 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION
, r
);
16457 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES
, r
);
16461 static enum ndr_err_code
ndr_push_spoolss_PortProtocol(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortProtocol r
)
16463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16464 return NDR_ERR_SUCCESS
;
16467 static enum ndr_err_code
ndr_pull_spoolss_PortProtocol(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortProtocol
*r
)
16470 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16472 return NDR_ERR_SUCCESS
;
16475 _PUBLIC_
void ndr_print_spoolss_PortProtocol(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortProtocol r
)
16477 const char *val
= NULL
;
16480 case PROTOCOL_RAWTCP_TYPE
: val
= "PROTOCOL_RAWTCP_TYPE"; break;
16481 case PROTOCOL_LPR_TYPE
: val
= "PROTOCOL_LPR_TYPE"; break;
16483 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16486 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData1
*r
)
16488 if (ndr_flags
& NDR_SCALARS
) {
16489 NDR_CHECK(ndr_push_align(ndr
, 4));
16490 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
16491 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000001));
16492 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
16493 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
16494 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
16495 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
16496 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
16497 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
16498 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
16499 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
16500 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
16501 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
16502 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
16503 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
16504 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
16506 if (ndr_flags
& NDR_BUFFERS
) {
16508 return NDR_ERR_SUCCESS
;
16511 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData1
*r
)
16513 if (ndr_flags
& NDR_SCALARS
) {
16514 NDR_CHECK(ndr_pull_align(ndr
, 4));
16515 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
16516 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
16517 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
16518 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
16519 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
16520 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
16521 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
16522 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
16523 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
16524 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
16525 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
16526 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
16527 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
16528 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
16529 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
16531 if (ndr_flags
& NDR_BUFFERS
) {
16533 return NDR_ERR_SUCCESS
;
16536 _PUBLIC_
void ndr_print_spoolss_PortData1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData1
*r
)
16538 ndr_print_struct(ndr
, name
, "spoolss_PortData1");
16540 ndr_print_string(ndr
, "portname", r
->portname
);
16541 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000001:r
->version
);
16542 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
16543 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
16544 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
16545 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
16546 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
16547 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
16548 ndr_print_string(ndr
, "queue", r
->queue
);
16549 ndr_print_string(ndr
, "ip_address", r
->ip_address
);
16550 ndr_print_string(ndr
, "hardware_address", r
->hardware_address
);
16551 ndr_print_string(ndr
, "device_type", r
->device_type
);
16552 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
16553 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
16554 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
16558 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData2
*r
)
16560 if (ndr_flags
& NDR_SCALARS
) {
16561 NDR_CHECK(ndr_push_align(ndr
, 4));
16562 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
16563 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000002));
16564 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
16565 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
16566 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
16567 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
16568 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
16569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
16570 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
16571 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
16572 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
16573 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
16574 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
16575 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_monitor_mib_index
));
16577 if (ndr_flags
& NDR_BUFFERS
) {
16579 return NDR_ERR_SUCCESS
;
16582 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData2
*r
)
16584 if (ndr_flags
& NDR_SCALARS
) {
16585 NDR_CHECK(ndr_pull_align(ndr
, 4));
16586 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
16587 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
16588 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
16589 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
16590 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
16591 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
16592 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
16593 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
16594 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
16595 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
16596 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
16597 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
16598 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
16599 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_monitor_mib_index
));
16601 if (ndr_flags
& NDR_BUFFERS
) {
16603 return NDR_ERR_SUCCESS
;
16606 _PUBLIC_
void ndr_print_spoolss_PortData2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData2
*r
)
16608 ndr_print_struct(ndr
, name
, "spoolss_PortData2");
16610 ndr_print_string(ndr
, "portname", r
->portname
);
16611 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000002:r
->version
);
16612 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
16613 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
16614 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
16615 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
16616 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
16617 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
16618 ndr_print_string(ndr
, "queue", r
->queue
);
16619 ndr_print_string(ndr
, "device_type", r
->device_type
);
16620 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
16621 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
16622 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
16623 ndr_print_uint32(ndr
, "port_monitor_mib_index", r
->port_monitor_mib_index
);
16627 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorUi(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorUi
*r
)
16629 if (ndr_flags
& NDR_SCALARS
) {
16630 NDR_CHECK(ndr_push_align(ndr
, 4));
16632 uint32_t _flags_save_string
= ndr
->flags
;
16633 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16634 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
16635 ndr
->flags
= _flags_save_string
;
16638 if (ndr_flags
& NDR_BUFFERS
) {
16640 return NDR_ERR_SUCCESS
;
16643 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorUi(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorUi
*r
)
16645 if (ndr_flags
& NDR_SCALARS
) {
16646 NDR_CHECK(ndr_pull_align(ndr
, 4));
16648 uint32_t _flags_save_string
= ndr
->flags
;
16649 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16650 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
16651 ndr
->flags
= _flags_save_string
;
16654 if (ndr_flags
& NDR_BUFFERS
) {
16656 return NDR_ERR_SUCCESS
;
16659 _PUBLIC_
void ndr_print_spoolss_MonitorUi(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorUi
*r
)
16661 ndr_print_struct(ndr
, name
, "spoolss_MonitorUi");
16663 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
16667 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
16669 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16670 return NDR_ERR_SUCCESS
;
16673 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
16676 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16678 return NDR_ERR_SUCCESS
;
16681 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
16683 ndr_print_uint32(ndr
, name
, r
);
16685 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE
, r
);
16686 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE
, r
);
16687 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES
, r
);
16688 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES
, r
);
16689 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY
, r
);
16690 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER
, r
);
16691 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS
, r
);
16692 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE
, r
);
16696 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinters
*r
)
16698 if (flags
& NDR_IN
) {
16699 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
16700 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
16701 if (r
->in
.server
) {
16702 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
16703 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16704 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
16705 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16707 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
16708 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
16709 if (r
->in
.buffer
) {
16710 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
16712 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
16714 if (flags
& NDR_OUT
) {
16715 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
16717 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
16719 if (r
->out
.needed
== NULL
) {
16720 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16722 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
16723 if (r
->out
.count
== NULL
) {
16724 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
16727 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
16729 return NDR_ERR_SUCCESS
;
16732 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinters
*r
)
16734 uint32_t _ptr_server
;
16735 uint32_t _ptr_buffer
;
16736 uint32_t _ptr_info
;
16737 TALLOC_CTX
*_mem_save_server_0
;
16738 TALLOC_CTX
*_mem_save_buffer_0
;
16739 TALLOC_CTX
*_mem_save_info_0
;
16740 TALLOC_CTX
*_mem_save_needed_0
;
16741 TALLOC_CTX
*_mem_save_count_0
;
16742 if (flags
& NDR_IN
) {
16743 ZERO_STRUCT(r
->out
);
16745 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
16746 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
16748 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
16750 r
->in
.server
= NULL
;
16752 if (r
->in
.server
) {
16753 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16754 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
16755 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
16756 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
16757 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
16758 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
16760 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
16761 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
16762 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
16764 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
16765 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
16767 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
16769 r
->in
.buffer
= NULL
;
16771 if (r
->in
.buffer
) {
16772 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16773 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
16774 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
16775 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
16777 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
16778 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
16779 ZERO_STRUCTP(r
->out
.needed
);
16780 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
16781 ZERO_STRUCTP(r
->out
.count
);
16783 if (flags
& NDR_OUT
) {
16784 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
16786 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
16788 r
->out
.info
= NULL
;
16791 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16792 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
16793 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
16794 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
16796 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16797 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
16799 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16800 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
16801 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
16802 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
16803 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
16804 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
16806 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16807 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
16808 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
16809 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
16810 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
16812 return NDR_ERR_SUCCESS
;
16815 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinters
*r
)
16817 uint32_t cntr_info_0
;
16818 if (flags
& NDR_IN
) {
16819 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
16820 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
16822 if (flags
& NDR_OUT
) {
16823 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
16824 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
16825 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
16827 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
16828 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
16831 return NDR_ERR_SUCCESS
;
16834 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinters
*r
)
16836 uint32_t cntr_info_0
;
16837 TALLOC_CTX
*_mem_save_info_0
;
16838 if (flags
& NDR_IN
) {
16839 ZERO_STRUCT(r
->out
);
16841 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
16842 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
16844 if (flags
& NDR_OUT
) {
16845 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
16846 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16847 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
16848 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
16849 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
16850 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
16852 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
16853 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
16855 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
16857 return NDR_ERR_SUCCESS
;
16860 _PUBLIC_
void ndr_print_spoolss_EnumPrinters(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinters
*r
)
16862 uint32_t cntr_info_1
;
16863 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinters");
16865 if (flags
& NDR_SET_VALUES
) {
16866 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
16868 if (flags
& NDR_IN
) {
16869 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinters");
16871 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->in
.flags
);
16872 ndr_print_ptr(ndr
, "server", r
->in
.server
);
16874 if (r
->in
.server
) {
16875 ndr_print_string(ndr
, "server", r
->in
.server
);
16878 ndr_print_uint32(ndr
, "level", r
->in
.level
);
16879 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
16881 if (r
->in
.buffer
) {
16882 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
16885 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
16888 if (flags
& NDR_OUT
) {
16889 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinters");
16891 ndr_print_ptr(ndr
, "count", r
->out
.count
);
16893 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
16895 ndr_print_ptr(ndr
, "info", r
->out
.info
);
16898 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
16900 for (cntr_info_1
=0;cntr_info_1
<*r
->out
.count
;cntr_info_1
++) {
16902 if (asprintf(&idx_1
, "[%d]", cntr_info_1
) != -1) {
16903 ndr_print_set_switch_value(ndr
, &r
->out
.info
[cntr_info_1
], r
->in
.level
);
16904 ndr_print_spoolss_PrinterInfo(ndr
, "info", &r
->out
.info
[cntr_info_1
]);
16911 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
16913 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
16915 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
16921 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinter
*r
)
16923 if (flags
& NDR_IN
) {
16924 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
16925 if (r
->in
.printername
) {
16926 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
16927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16928 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
16929 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16931 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
16932 if (r
->in
.datatype
) {
16933 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
16934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
16935 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
16936 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16938 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
16939 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
16941 if (flags
& NDR_OUT
) {
16942 if (r
->out
.handle
== NULL
) {
16943 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
16945 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
16946 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
16948 return NDR_ERR_SUCCESS
;
16951 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinter
*r
)
16953 uint32_t _ptr_printername
;
16954 uint32_t _ptr_datatype
;
16955 TALLOC_CTX
*_mem_save_printername_0
;
16956 TALLOC_CTX
*_mem_save_datatype_0
;
16957 TALLOC_CTX
*_mem_save_handle_0
;
16958 if (flags
& NDR_IN
) {
16959 ZERO_STRUCT(r
->out
);
16961 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
16962 if (_ptr_printername
) {
16963 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
16965 r
->in
.printername
= NULL
;
16967 if (r
->in
.printername
) {
16968 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16969 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
16970 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
16971 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
16972 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
16973 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.printername
), ndr_get_array_length(ndr
, &r
->in
.printername
));
16975 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
16976 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
16977 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
16979 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
16980 if (_ptr_datatype
) {
16981 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
16983 r
->in
.datatype
= NULL
;
16985 if (r
->in
.datatype
) {
16986 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16987 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
16988 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
16989 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
16990 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
16991 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.datatype
), ndr_get_array_length(ndr
, &r
->in
.datatype
));
16993 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
16994 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
16995 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
16997 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
16998 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
16999 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
17000 ZERO_STRUCTP(r
->out
.handle
);
17002 if (flags
& NDR_OUT
) {
17003 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
17004 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
17006 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17007 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
17008 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
17009 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
17010 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
17012 return NDR_ERR_SUCCESS
;
17015 _PUBLIC_
void ndr_print_spoolss_OpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinter
*r
)
17017 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinter");
17019 if (flags
& NDR_SET_VALUES
) {
17020 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
17022 if (flags
& NDR_IN
) {
17023 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinter");
17025 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
17027 if (r
->in
.printername
) {
17028 ndr_print_string(ndr
, "printername", r
->in
.printername
);
17031 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
17033 if (r
->in
.datatype
) {
17034 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
17037 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
17038 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
17041 if (flags
& NDR_OUT
) {
17042 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinter");
17044 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
17046 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
17048 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
17054 static enum ndr_err_code
ndr_push_spoolss_SetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetJob
*r
)
17056 if (flags
& NDR_IN
) {
17057 if (r
->in
.handle
== NULL
) {
17058 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
17060 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
17061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
17062 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.ctr
));
17064 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
17066 NDR_CHECK(ndr_push_spoolss_JobControl(ndr
, NDR_SCALARS
, r
->in
.command
));
17068 if (flags
& NDR_OUT
) {
17069 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
17071 return NDR_ERR_SUCCESS
;
17074 static enum ndr_err_code
ndr_pull_spoolss_SetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetJob
*r
)
17077 TALLOC_CTX
*_mem_save_handle_0
;
17078 TALLOC_CTX
*_mem_save_ctr_0
;
17079 if (flags
& NDR_IN
) {
17080 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
17081 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
17083 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17084 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
17085 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
17086 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
17087 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
17088 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
17090 NDR_PULL_ALLOC(ndr
, r
->in
.ctr
);
17095 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17096 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.ctr
, 0);
17097 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
17098 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, 0);
17100 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
17102 if (flags
& NDR_OUT
) {
17103 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
17105 return NDR_ERR_SUCCESS
;
17108 _PUBLIC_
void ndr_print_spoolss_SetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetJob
*r
)
17110 ndr_print_struct(ndr
, name
, "spoolss_SetJob");
17112 if (flags
& NDR_SET_VALUES
) {
17113 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
17115 if (flags
& NDR_IN
) {
17116 ndr_print_struct(ndr
, "in", "spoolss_SetJob");
17118 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
17120 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
17122 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
17123 ndr_print_ptr(ndr
, "ctr", r
->in
.ctr
);
17126 ndr_print_spoolss_JobInfoContainer(ndr
, "ctr", r
->in
.ctr
);
17129 ndr_print_spoolss_JobControl(ndr
, "command", r
->in
.command
);
17132 if (flags
& NDR_OUT
) {
17133 ndr_print_struct(ndr
, "out", "spoolss_SetJob");
17135 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
17141 static enum ndr_err_code
ndr_push_spoolss_GetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetJob
*r
)
17143 if (flags
& NDR_IN
) {
17144 if (r
->in
.handle
== NULL
) {
17145 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
17147 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
17148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
17149 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
17150 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
17151 if (r
->in
.buffer
) {
17152 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
17154 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
17156 if (flags
& NDR_OUT
) {
17157 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
17160 struct ndr_push
*_ndr_info
;
17161 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
17162 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
17163 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
17164 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
17167 if (r
->out
.needed
== NULL
) {
17168 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
17170 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
17171 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
17173 return NDR_ERR_SUCCESS
;
17176 static enum ndr_err_code
ndr_pull_spoolss_GetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetJob
*r
)
17178 uint32_t _ptr_buffer
;
17179 uint32_t _ptr_info
;
17180 TALLOC_CTX
*_mem_save_handle_0
;
17181 TALLOC_CTX
*_mem_save_buffer_0
;
17182 TALLOC_CTX
*_mem_save_info_0
;
17183 TALLOC_CTX
*_mem_save_needed_0
;
17184 if (flags
& NDR_IN
) {
17185 ZERO_STRUCT(r
->out
);
17187 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
17188 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
17190 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17191 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
17192 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
17193 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
17194 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
17195 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
17196 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
17198 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
17200 r
->in
.buffer
= NULL
;
17202 if (r
->in
.buffer
) {
17203 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17204 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
17205 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
17206 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
17208 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
17209 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
17210 ZERO_STRUCTP(r
->out
.needed
);
17212 if (flags
& NDR_OUT
) {
17213 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
17215 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
17217 r
->out
.info
= NULL
;
17220 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17221 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
17223 struct ndr_pull
*_ndr_info
;
17224 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
17225 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
17226 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
17227 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
17229 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
17231 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
17232 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
17234 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17235 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
17236 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
17237 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
17238 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
17240 return NDR_ERR_SUCCESS
;
17243 _PUBLIC_
void ndr_print_spoolss_GetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetJob
*r
)
17245 ndr_print_struct(ndr
, name
, "spoolss_GetJob");
17247 if (flags
& NDR_SET_VALUES
) {
17248 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
17250 if (flags
& NDR_IN
) {
17251 ndr_print_struct(ndr
, "in", "spoolss_GetJob");
17253 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
17255 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
17257 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
17258 ndr_print_uint32(ndr
, "level", r
->in
.level
);
17259 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
17261 if (r
->in
.buffer
) {
17262 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
17265 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
17268 if (flags
& NDR_OUT
) {
17269 ndr_print_struct(ndr
, "out", "spoolss_GetJob");
17271 ndr_print_ptr(ndr
, "info", r
->out
.info
);
17274 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
17275 ndr_print_spoolss_JobInfo(ndr
, "info", r
->out
.info
);
17278 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
17280 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
17282 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
17288 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumJobs
*r
)
17290 if (flags
& NDR_IN
) {
17291 if (r
->in
.handle
== NULL
) {
17292 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
17294 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
17295 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.firstjob
));
17296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.numjobs
));
17297 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
17298 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
17299 if (r
->in
.buffer
) {
17300 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
17302 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
17304 if (flags
& NDR_OUT
) {
17305 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
17307 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
17309 if (r
->out
.needed
== NULL
) {
17310 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
17312 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
17313 if (r
->out
.count
== NULL
) {
17314 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
17316 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
17317 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
17319 return NDR_ERR_SUCCESS
;
17322 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumJobs
*r
)
17324 uint32_t _ptr_buffer
;
17325 uint32_t _ptr_info
;
17326 TALLOC_CTX
*_mem_save_handle_0
;
17327 TALLOC_CTX
*_mem_save_buffer_0
;
17328 TALLOC_CTX
*_mem_save_info_0
;
17329 TALLOC_CTX
*_mem_save_needed_0
;
17330 TALLOC_CTX
*_mem_save_count_0
;
17331 if (flags
& NDR_IN
) {
17332 ZERO_STRUCT(r
->out
);
17334 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
17335 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
17337 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17338 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
17339 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
17340 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
17341 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.firstjob
));
17342 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.numjobs
));
17343 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
17344 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
17346 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
17348 r
->in
.buffer
= NULL
;
17350 if (r
->in
.buffer
) {
17351 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17352 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
17353 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
17354 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
17356 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
17357 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
17358 ZERO_STRUCTP(r
->out
.needed
);
17359 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
17360 ZERO_STRUCTP(r
->out
.count
);
17362 if (flags
& NDR_OUT
) {
17363 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
17365 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
17367 r
->out
.info
= NULL
;
17370 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17371 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
17372 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
17373 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
17375 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
17376 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
17378 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17379 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
17380 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
17381 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
17382 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
17383 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
17385 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17386 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
17387 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
17388 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
17389 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
17391 return NDR_ERR_SUCCESS
;
17394 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumJobs
*r
)
17396 uint32_t cntr_info_0
;
17397 if (flags
& NDR_IN
) {
17398 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
17399 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
17401 if (flags
& NDR_OUT
) {
17402 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
17403 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
17404 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
17406 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
17407 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
17410 return NDR_ERR_SUCCESS
;
17413 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumJobs
*r
)
17415 uint32_t cntr_info_0
;
17416 TALLOC_CTX
*_mem_save_info_0
;
17417 if (flags
& NDR_IN
) {
17418 ZERO_STRUCT(r
->out
);
17420 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
17421 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
17423 if (flags
& NDR_OUT
) {
17424 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
17425 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17426 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
17427 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
17428 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
17429 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
17431 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
17432 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
17434 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
17436 return NDR_ERR_SUCCESS
;
17439 _PUBLIC_
void ndr_print_spoolss_EnumJobs(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumJobs
*r
)
17441 uint32_t cntr_info_1
;
17442 ndr_print_struct(ndr
, name
, "spoolss_EnumJobs");
17444 if (flags
& NDR_SET_VALUES
) {
17445 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
17447 if (flags
& NDR_IN
) {
17448 ndr_print_struct(ndr
, "in", "spoolss_EnumJobs");
17450 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
17452 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
17454 ndr_print_uint32(ndr
, "firstjob", r
->in
.firstjob
);
17455 ndr_print_uint32(ndr
, "numjobs", r
->in
.numjobs
);
17456 ndr_print_uint32(ndr
, "level", r
->in
.level
);
17457 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
17459 if (r
->in
.buffer
) {
17460 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
17463 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
17466 if (flags
& NDR_OUT
) {
17467 ndr_print_struct(ndr
, "out", "spoolss_EnumJobs");
17469 ndr_print_ptr(ndr
, "count", r
->out
.count
);
17471 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
17473 ndr_print_ptr(ndr
, "info", r
->out
.info
);
17476 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
17478 for (cntr_info_1
=0;cntr_info_1
<*r
->out
.count
;cntr_info_1
++) {
17480 if (asprintf(&idx_1
, "[%d]", cntr_info_1
) != -1) {
17481 ndr_print_set_switch_value(ndr
, &r
->out
.info
[cntr_info_1
], r
->in
.level
);
17482 ndr_print_spoolss_JobInfo(ndr
, "info", &r
->out
.info
[cntr_info_1
]);
17489 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
17491 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
17493 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
17499 static enum ndr_err_code
ndr_push_spoolss_AddPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinter
*r
)
17501 if (flags
& NDR_IN
) {
17503 if (flags
& NDR_OUT
) {
17504 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
17506 return NDR_ERR_SUCCESS
;
17509 static enum ndr_err_code
ndr_pull_spoolss_AddPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinter
*r
)
17511 if (flags
& NDR_IN
) {
17513 if (flags
& NDR_OUT
) {
17514 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
17516 return NDR_ERR_SUCCESS
;
17519 _PUBLIC_
void ndr_print_spoolss_AddPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinter
*r
)
17521 ndr_print_struct(ndr
, name
, "spoolss_AddPrinter");
17523 if (flags
& NDR_SET_VALUES
) {
17524 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
17526 if (flags
& NDR_IN
) {
17527 ndr_print_struct(ndr
, "in", "spoolss_AddPrinter");
17531 if (flags
& NDR_OUT
) {
17532 ndr_print_struct(ndr
, "out", "spoolss_AddPrinter");
17534 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
17540 static enum ndr_err_code
ndr_push_spoolss_DeletePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinter
*r
)
17542 if (flags
& NDR_IN
) {
17543 if (r
->in
.handle
== NULL
) {
17544 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
17546 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
17548 if (flags
& NDR_OUT
) {
17549 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
17551 return NDR_ERR_SUCCESS
;
17554 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinter
*r
)
17556 TALLOC_CTX
*_mem_save_handle_0
;
17557 if (flags
& NDR_IN
) {
17558 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
17559 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
17561 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17562 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
17563 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
17564 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
17566 if (flags
& NDR_OUT
) {
17567 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
17569 return NDR_ERR_SUCCESS
;
17572 _PUBLIC_
void ndr_print_spoolss_DeletePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinter
*r
)
17574 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinter");
17576 if (flags
& NDR_SET_VALUES
) {
17577 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
17579 if (flags
& NDR_IN
) {
17580 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinter");
17582 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
17584 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
17588 if (flags
& NDR_OUT
) {
17589 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinter");
17591 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
17597 static enum ndr_err_code
ndr_push_spoolss_SetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinter
*r
)
17599 if (flags
& NDR_IN
) {
17600 if (r
->in
.handle
== NULL
) {
17601 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
17603 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
17604 if (r
->in
.info_ctr
== NULL
) {
17605 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
17607 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
17608 if (r
->in
.devmode_ctr
== NULL
) {
17609 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
17611 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
17612 if (r
->in
.secdesc_ctr
== NULL
) {
17613 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
17615 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
17616 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr
, NDR_SCALARS
, r
->in
.command
));
17618 if (flags
& NDR_OUT
) {
17619 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
17621 return NDR_ERR_SUCCESS
;
17624 static enum ndr_err_code
ndr_pull_spoolss_SetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinter
*r
)
17626 TALLOC_CTX
*_mem_save_handle_0
;
17627 TALLOC_CTX
*_mem_save_info_ctr_0
;
17628 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
17629 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
17630 if (flags
& NDR_IN
) {
17631 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
17632 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
17634 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17635 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
17636 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
17637 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
17638 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
17639 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
17641 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17642 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
17643 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
17644 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
17645 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
17646 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
17648 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17649 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
17650 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
17651 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
17652 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
17653 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
17655 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17656 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
17657 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
17658 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
17659 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
17661 if (flags
& NDR_OUT
) {
17662 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
17664 return NDR_ERR_SUCCESS
;
17667 _PUBLIC_
void ndr_print_spoolss_SetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinter
*r
)
17669 ndr_print_struct(ndr
, name
, "spoolss_SetPrinter");
17671 if (flags
& NDR_SET_VALUES
) {
17672 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
17674 if (flags
& NDR_IN
) {
17675 ndr_print_struct(ndr
, "in", "spoolss_SetPrinter");
17677 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
17679 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
17681 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
17683 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
17685 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
17687 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
17689 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
17691 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
17693 ndr_print_spoolss_PrinterControl(ndr
, "command", r
->in
.command
);
17696 if (flags
& NDR_OUT
) {
17697 ndr_print_struct(ndr
, "out", "spoolss_SetPrinter");
17699 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
17705 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinter
*r
)
17707 if (flags
& NDR_IN
) {
17708 if (r
->in
.handle
== NULL
) {
17709 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
17711 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
17712 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
17713 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
17714 if (r
->in
.buffer
) {
17715 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
17717 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
17719 if (flags
& NDR_OUT
) {
17720 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
17723 struct ndr_push
*_ndr_info
;
17724 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
17725 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
17726 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
17727 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
17730 if (r
->out
.needed
== NULL
) {
17731 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
17733 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
17734 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
17736 return NDR_ERR_SUCCESS
;
17739 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinter
*r
)
17741 uint32_t _ptr_buffer
;
17742 uint32_t _ptr_info
;
17743 TALLOC_CTX
*_mem_save_handle_0
;
17744 TALLOC_CTX
*_mem_save_buffer_0
;
17745 TALLOC_CTX
*_mem_save_info_0
;
17746 TALLOC_CTX
*_mem_save_needed_0
;
17747 if (flags
& NDR_IN
) {
17748 ZERO_STRUCT(r
->out
);
17750 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
17751 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
17753 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17754 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
17755 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
17756 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
17757 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
17758 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
17760 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
17762 r
->in
.buffer
= NULL
;
17764 if (r
->in
.buffer
) {
17765 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17766 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
17767 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
17768 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
17770 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
17771 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
17772 ZERO_STRUCTP(r
->out
.needed
);
17774 if (flags
& NDR_OUT
) {
17775 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
17777 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
17779 r
->out
.info
= NULL
;
17782 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17783 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
17785 struct ndr_pull
*_ndr_info
;
17786 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
17787 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
17788 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
17789 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
17791 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
17793 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
17794 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
17796 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17797 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
17798 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
17799 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
17800 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
17802 return NDR_ERR_SUCCESS
;
17805 _PUBLIC_
void ndr_print_spoolss_GetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinter
*r
)
17807 ndr_print_struct(ndr
, name
, "spoolss_GetPrinter");
17809 if (flags
& NDR_SET_VALUES
) {
17810 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
17812 if (flags
& NDR_IN
) {
17813 ndr_print_struct(ndr
, "in", "spoolss_GetPrinter");
17815 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
17817 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
17819 ndr_print_uint32(ndr
, "level", r
->in
.level
);
17820 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
17822 if (r
->in
.buffer
) {
17823 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
17826 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
17829 if (flags
& NDR_OUT
) {
17830 ndr_print_struct(ndr
, "out", "spoolss_GetPrinter");
17832 ndr_print_ptr(ndr
, "info", r
->out
.info
);
17835 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
17836 ndr_print_spoolss_PrinterInfo(ndr
, "info", r
->out
.info
);
17839 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
17841 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
17843 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
17849 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
17851 if (flags
& NDR_IN
) {
17852 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
17853 if (r
->in
.servername
) {
17854 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
17855 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17856 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
17857 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17859 if (r
->in
.info_ctr
== NULL
) {
17860 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
17862 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
17864 if (flags
& NDR_OUT
) {
17865 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
17867 return NDR_ERR_SUCCESS
;
17870 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriver
*r
)
17872 uint32_t _ptr_servername
;
17873 TALLOC_CTX
*_mem_save_servername_0
;
17874 TALLOC_CTX
*_mem_save_info_ctr_0
;
17875 if (flags
& NDR_IN
) {
17876 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
17877 if (_ptr_servername
) {
17878 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
17880 r
->in
.servername
= NULL
;
17882 if (r
->in
.servername
) {
17883 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17884 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
17885 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
17886 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
17887 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
17888 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.servername
), ndr_get_array_length(ndr
, &r
->in
.servername
));
17890 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
17891 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
17892 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
17894 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
17895 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
17897 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17898 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
17899 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
17900 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
17902 if (flags
& NDR_OUT
) {
17903 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
17905 return NDR_ERR_SUCCESS
;
17908 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
17910 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriver");
17912 if (flags
& NDR_SET_VALUES
) {
17913 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
17915 if (flags
& NDR_IN
) {
17916 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriver");
17918 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
17920 if (r
->in
.servername
) {
17921 ndr_print_string(ndr
, "servername", r
->in
.servername
);
17924 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
17926 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
17930 if (flags
& NDR_OUT
) {
17931 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriver");
17933 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
17939 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDrivers
*r
)
17941 if (flags
& NDR_IN
) {
17942 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
17943 if (r
->in
.server
) {
17944 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
17945 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17946 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
17947 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17949 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
17950 if (r
->in
.environment
) {
17951 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
17952 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17953 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
17954 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17956 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
17957 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
17958 if (r
->in
.buffer
) {
17959 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
17961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
17963 if (flags
& NDR_OUT
) {
17964 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
17966 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
17968 if (r
->out
.needed
== NULL
) {
17969 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
17971 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
17972 if (r
->out
.count
== NULL
) {
17973 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
17975 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
17976 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
17978 return NDR_ERR_SUCCESS
;
17981 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDrivers
*r
)
17983 uint32_t _ptr_server
;
17984 uint32_t _ptr_environment
;
17985 uint32_t _ptr_buffer
;
17986 uint32_t _ptr_info
;
17987 TALLOC_CTX
*_mem_save_server_0
;
17988 TALLOC_CTX
*_mem_save_environment_0
;
17989 TALLOC_CTX
*_mem_save_buffer_0
;
17990 TALLOC_CTX
*_mem_save_info_0
;
17991 TALLOC_CTX
*_mem_save_needed_0
;
17992 TALLOC_CTX
*_mem_save_count_0
;
17993 if (flags
& NDR_IN
) {
17994 ZERO_STRUCT(r
->out
);
17996 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
17998 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
18000 r
->in
.server
= NULL
;
18002 if (r
->in
.server
) {
18003 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18004 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
18005 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
18006 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
18007 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
18008 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
18010 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
18011 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
18012 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
18014 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
18015 if (_ptr_environment
) {
18016 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
18018 r
->in
.environment
= NULL
;
18020 if (r
->in
.environment
) {
18021 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18022 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
18023 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
18024 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
18025 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
18026 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.environment
), ndr_get_array_length(ndr
, &r
->in
.environment
));
18028 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
18029 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
18030 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
18032 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
18033 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
18035 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
18037 r
->in
.buffer
= NULL
;
18039 if (r
->in
.buffer
) {
18040 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18041 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
18042 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
18043 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
18045 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
18046 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18047 ZERO_STRUCTP(r
->out
.needed
);
18048 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
18049 ZERO_STRUCTP(r
->out
.count
);
18051 if (flags
& NDR_OUT
) {
18052 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
18054 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
18056 r
->out
.info
= NULL
;
18059 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18060 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
18061 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
18062 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
18064 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18065 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18067 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18068 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
18069 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
18070 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
18071 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18072 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
18074 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18075 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
18076 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
18077 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
18078 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18080 return NDR_ERR_SUCCESS
;
18083 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDrivers
*r
)
18085 uint32_t cntr_info_0
;
18086 if (flags
& NDR_IN
) {
18087 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18088 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
18090 if (flags
& NDR_OUT
) {
18091 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18092 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
18093 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
18095 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18096 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
18099 return NDR_ERR_SUCCESS
;
18102 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDrivers
*r
)
18104 uint32_t cntr_info_0
;
18105 TALLOC_CTX
*_mem_save_info_0
;
18106 if (flags
& NDR_IN
) {
18107 ZERO_STRUCT(r
->out
);
18109 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
18110 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
18112 if (flags
& NDR_OUT
) {
18113 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
18114 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18115 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
18116 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18117 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
18118 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
18120 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18121 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
18123 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
18125 return NDR_ERR_SUCCESS
;
18128 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDrivers
*r
)
18130 uint32_t cntr_info_1
;
18131 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDrivers");
18133 if (flags
& NDR_SET_VALUES
) {
18134 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
18136 if (flags
& NDR_IN
) {
18137 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDrivers");
18139 ndr_print_ptr(ndr
, "server", r
->in
.server
);
18141 if (r
->in
.server
) {
18142 ndr_print_string(ndr
, "server", r
->in
.server
);
18145 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
18147 if (r
->in
.environment
) {
18148 ndr_print_string(ndr
, "environment", r
->in
.environment
);
18151 ndr_print_uint32(ndr
, "level", r
->in
.level
);
18152 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
18154 if (r
->in
.buffer
) {
18155 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
18158 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
18161 if (flags
& NDR_OUT
) {
18162 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDrivers");
18164 ndr_print_ptr(ndr
, "count", r
->out
.count
);
18166 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
18168 ndr_print_ptr(ndr
, "info", r
->out
.info
);
18171 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
18173 for (cntr_info_1
=0;cntr_info_1
<*r
->out
.count
;cntr_info_1
++) {
18175 if (asprintf(&idx_1
, "[%d]", cntr_info_1
) != -1) {
18176 ndr_print_set_switch_value(ndr
, &r
->out
.info
[cntr_info_1
], r
->in
.level
);
18177 ndr_print_spoolss_DriverInfo(ndr
, "info", &r
->out
.info
[cntr_info_1
]);
18184 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
18186 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
18188 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
18194 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
18196 if (flags
& NDR_IN
) {
18198 if (flags
& NDR_OUT
) {
18199 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18201 return NDR_ERR_SUCCESS
;
18204 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver
*r
)
18206 if (flags
& NDR_IN
) {
18208 if (flags
& NDR_OUT
) {
18209 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18211 return NDR_ERR_SUCCESS
;
18214 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
18216 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver");
18218 if (flags
& NDR_SET_VALUES
) {
18219 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
18221 if (flags
& NDR_IN
) {
18222 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver");
18226 if (flags
& NDR_OUT
) {
18227 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver");
18229 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
18235 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
18237 if (flags
& NDR_IN
) {
18238 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
18239 if (r
->in
.server
) {
18240 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
18241 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18242 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
18243 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18245 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
18246 if (r
->in
.environment
) {
18247 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
18248 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18249 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
18250 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18252 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18253 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
18254 if (r
->in
.buffer
) {
18255 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
18257 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
18259 if (flags
& NDR_OUT
) {
18260 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
18263 struct ndr_push
*_ndr_info
;
18264 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
18265 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
18266 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
18267 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
18270 if (r
->out
.needed
== NULL
) {
18271 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18273 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
18274 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18276 return NDR_ERR_SUCCESS
;
18279 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverDirectory
*r
)
18281 uint32_t _ptr_server
;
18282 uint32_t _ptr_environment
;
18283 uint32_t _ptr_buffer
;
18284 uint32_t _ptr_info
;
18285 TALLOC_CTX
*_mem_save_server_0
;
18286 TALLOC_CTX
*_mem_save_environment_0
;
18287 TALLOC_CTX
*_mem_save_buffer_0
;
18288 TALLOC_CTX
*_mem_save_info_0
;
18289 TALLOC_CTX
*_mem_save_needed_0
;
18290 if (flags
& NDR_IN
) {
18291 ZERO_STRUCT(r
->out
);
18293 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
18295 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
18297 r
->in
.server
= NULL
;
18299 if (r
->in
.server
) {
18300 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18301 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
18302 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
18303 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
18304 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
18305 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
18307 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
18308 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
18309 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
18311 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
18312 if (_ptr_environment
) {
18313 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
18315 r
->in
.environment
= NULL
;
18317 if (r
->in
.environment
) {
18318 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18319 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
18320 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
18321 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
18322 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
18323 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.environment
), ndr_get_array_length(ndr
, &r
->in
.environment
));
18325 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
18326 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
18327 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
18329 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
18330 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
18332 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
18334 r
->in
.buffer
= NULL
;
18336 if (r
->in
.buffer
) {
18337 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18338 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
18339 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
18340 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
18342 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
18343 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18344 ZERO_STRUCTP(r
->out
.needed
);
18346 if (flags
& NDR_OUT
) {
18347 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
18349 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
18351 r
->out
.info
= NULL
;
18354 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18355 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
18357 struct ndr_pull
*_ndr_info
;
18358 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
18359 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
18360 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
18361 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
18363 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
18365 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18366 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18368 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18369 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
18370 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
18371 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
18372 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18374 return NDR_ERR_SUCCESS
;
18377 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
18379 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverDirectory");
18381 if (flags
& NDR_SET_VALUES
) {
18382 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
18384 if (flags
& NDR_IN
) {
18385 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverDirectory");
18387 ndr_print_ptr(ndr
, "server", r
->in
.server
);
18389 if (r
->in
.server
) {
18390 ndr_print_string(ndr
, "server", r
->in
.server
);
18393 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
18395 if (r
->in
.environment
) {
18396 ndr_print_string(ndr
, "environment", r
->in
.environment
);
18399 ndr_print_uint32(ndr
, "level", r
->in
.level
);
18400 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
18402 if (r
->in
.buffer
) {
18403 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
18406 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
18409 if (flags
& NDR_OUT
) {
18410 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverDirectory");
18412 ndr_print_ptr(ndr
, "info", r
->out
.info
);
18415 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
18416 ndr_print_spoolss_DriverDirectoryInfo(ndr
, "info", r
->out
.info
);
18419 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
18421 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
18423 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
18429 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
18431 if (flags
& NDR_IN
) {
18432 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
18433 if (r
->in
.server
) {
18434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
18435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18436 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
18437 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18439 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
18440 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
18442 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
18444 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18445 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
18446 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18448 if (flags
& NDR_OUT
) {
18449 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18451 return NDR_ERR_SUCCESS
;
18454 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriver
*r
)
18456 uint32_t _ptr_server
;
18457 TALLOC_CTX
*_mem_save_server_0
;
18458 if (flags
& NDR_IN
) {
18459 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
18461 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
18463 r
->in
.server
= NULL
;
18465 if (r
->in
.server
) {
18466 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18467 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
18468 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
18469 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
18470 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
18471 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
18473 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
18474 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
18475 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
18477 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
18478 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
18479 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
18480 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.architecture
), ndr_get_array_length(ndr
, &r
->in
.architecture
));
18482 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
18483 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
18484 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
18485 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
18486 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
18487 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.driver
), ndr_get_array_length(ndr
, &r
->in
.driver
));
18489 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
18490 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
18492 if (flags
& NDR_OUT
) {
18493 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18495 return NDR_ERR_SUCCESS
;
18498 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
18500 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriver");
18502 if (flags
& NDR_SET_VALUES
) {
18503 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
18505 if (flags
& NDR_IN
) {
18506 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriver");
18508 ndr_print_ptr(ndr
, "server", r
->in
.server
);
18510 if (r
->in
.server
) {
18511 ndr_print_string(ndr
, "server", r
->in
.server
);
18514 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
18515 ndr_print_string(ndr
, "driver", r
->in
.driver
);
18518 if (flags
& NDR_OUT
) {
18519 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriver");
18521 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
18527 static enum ndr_err_code
ndr_push_spoolss_AddPrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
18529 if (flags
& NDR_IN
) {
18530 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
18531 if (r
->in
.server
) {
18532 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
18533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18534 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
18535 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18537 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
18538 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18539 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
18540 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18541 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
18542 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18543 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
18544 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
));
18545 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
18546 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18547 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
18548 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
));
18550 if (flags
& NDR_OUT
) {
18551 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18553 return NDR_ERR_SUCCESS
;
18556 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProcessor
*r
)
18558 uint32_t _ptr_server
;
18559 TALLOC_CTX
*_mem_save_server_0
;
18560 if (flags
& NDR_IN
) {
18561 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
18563 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
18565 r
->in
.server
= NULL
;
18567 if (r
->in
.server
) {
18568 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18569 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
18570 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
18571 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
18572 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
18573 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
18575 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
18576 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
18577 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
18579 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
18580 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
18581 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
18582 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.architecture
), ndr_get_array_length(ndr
, &r
->in
.architecture
));
18584 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
18585 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
18586 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.path_name
));
18587 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.path_name
));
18588 if (ndr_get_array_length(ndr
, &r
->in
.path_name
) > ndr_get_array_size(ndr
, &r
->in
.path_name
)) {
18589 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.path_name
), ndr_get_array_length(ndr
, &r
->in
.path_name
));
18591 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.path_name
), sizeof(uint16_t)));
18592 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.path_name
, ndr_get_array_length(ndr
, &r
->in
.path_name
), sizeof(uint16_t), CH_UTF16
));
18593 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
18594 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
18595 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
18596 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.print_processor_name
), ndr_get_array_length(ndr
, &r
->in
.print_processor_name
));
18598 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
18599 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.print_processor_name
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t), CH_UTF16
));
18601 if (flags
& NDR_OUT
) {
18602 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18604 return NDR_ERR_SUCCESS
;
18607 _PUBLIC_
void ndr_print_spoolss_AddPrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
18609 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProcessor");
18611 if (flags
& NDR_SET_VALUES
) {
18612 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
18614 if (flags
& NDR_IN
) {
18615 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProcessor");
18617 ndr_print_ptr(ndr
, "server", r
->in
.server
);
18619 if (r
->in
.server
) {
18620 ndr_print_string(ndr
, "server", r
->in
.server
);
18623 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
18624 ndr_print_string(ndr
, "path_name", r
->in
.path_name
);
18625 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
18628 if (flags
& NDR_OUT
) {
18629 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProcessor");
18631 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
18637 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcessors
*r
)
18639 if (flags
& NDR_IN
) {
18640 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
18641 if (r
->in
.servername
) {
18642 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
18643 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18644 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
18645 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18647 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
18648 if (r
->in
.environment
) {
18649 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
18650 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18651 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
18652 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18654 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18655 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
18656 if (r
->in
.buffer
) {
18657 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
18659 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
18661 if (flags
& NDR_OUT
) {
18662 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
18664 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
18666 if (r
->out
.needed
== NULL
) {
18667 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18669 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
18670 if (r
->out
.count
== NULL
) {
18671 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18673 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
18674 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18676 return NDR_ERR_SUCCESS
;
18679 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcessors
*r
)
18681 uint32_t _ptr_servername
;
18682 uint32_t _ptr_environment
;
18683 uint32_t _ptr_buffer
;
18684 uint32_t _ptr_info
;
18685 TALLOC_CTX
*_mem_save_servername_0
;
18686 TALLOC_CTX
*_mem_save_environment_0
;
18687 TALLOC_CTX
*_mem_save_buffer_0
;
18688 TALLOC_CTX
*_mem_save_info_0
;
18689 TALLOC_CTX
*_mem_save_needed_0
;
18690 TALLOC_CTX
*_mem_save_count_0
;
18691 if (flags
& NDR_IN
) {
18692 ZERO_STRUCT(r
->out
);
18694 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
18695 if (_ptr_servername
) {
18696 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
18698 r
->in
.servername
= NULL
;
18700 if (r
->in
.servername
) {
18701 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18702 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
18703 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
18704 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
18705 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
18706 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.servername
), ndr_get_array_length(ndr
, &r
->in
.servername
));
18708 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
18709 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
18710 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
18712 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
18713 if (_ptr_environment
) {
18714 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
18716 r
->in
.environment
= NULL
;
18718 if (r
->in
.environment
) {
18719 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18720 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
18721 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
18722 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
18723 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
18724 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.environment
), ndr_get_array_length(ndr
, &r
->in
.environment
));
18726 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
18727 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
18728 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
18730 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
18731 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
18733 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
18735 r
->in
.buffer
= NULL
;
18737 if (r
->in
.buffer
) {
18738 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18739 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
18740 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
18741 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
18743 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
18744 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18745 ZERO_STRUCTP(r
->out
.needed
);
18746 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
18747 ZERO_STRUCTP(r
->out
.count
);
18749 if (flags
& NDR_OUT
) {
18750 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
18752 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
18754 r
->out
.info
= NULL
;
18757 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18758 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
18759 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
18760 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
18762 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18763 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18765 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18766 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
18767 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
18768 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
18769 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18770 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
18772 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18773 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
18774 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
18775 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
18776 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18778 return NDR_ERR_SUCCESS
;
18781 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcessors
*r
)
18783 uint32_t cntr_info_0
;
18784 if (flags
& NDR_IN
) {
18785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18786 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
18788 if (flags
& NDR_OUT
) {
18789 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18790 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
18791 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
18793 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18794 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
18797 return NDR_ERR_SUCCESS
;
18800 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcessors
*r
)
18802 uint32_t cntr_info_0
;
18803 TALLOC_CTX
*_mem_save_info_0
;
18804 if (flags
& NDR_IN
) {
18805 ZERO_STRUCT(r
->out
);
18807 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
18808 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
18810 if (flags
& NDR_OUT
) {
18811 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
18812 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18813 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
18814 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18815 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
18816 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
18818 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18819 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
18821 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
18823 return NDR_ERR_SUCCESS
;
18826 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcessors
*r
)
18828 uint32_t cntr_info_1
;
18829 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcessors");
18831 if (flags
& NDR_SET_VALUES
) {
18832 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
18834 if (flags
& NDR_IN
) {
18835 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcessors");
18837 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
18839 if (r
->in
.servername
) {
18840 ndr_print_string(ndr
, "servername", r
->in
.servername
);
18843 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
18845 if (r
->in
.environment
) {
18846 ndr_print_string(ndr
, "environment", r
->in
.environment
);
18849 ndr_print_uint32(ndr
, "level", r
->in
.level
);
18850 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
18852 if (r
->in
.buffer
) {
18853 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
18856 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
18859 if (flags
& NDR_OUT
) {
18860 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcessors");
18862 ndr_print_ptr(ndr
, "count", r
->out
.count
);
18864 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
18866 ndr_print_ptr(ndr
, "info", r
->out
.info
);
18869 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
18871 for (cntr_info_1
=0;cntr_info_1
<*r
->out
.count
;cntr_info_1
++) {
18873 if (asprintf(&idx_1
, "[%d]", cntr_info_1
) != -1) {
18874 ndr_print_set_switch_value(ndr
, &r
->out
.info
[cntr_info_1
], r
->in
.level
);
18875 ndr_print_spoolss_PrintProcessorInfo(ndr
, "info", &r
->out
.info
[cntr_info_1
]);
18882 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
18884 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
18886 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
18892 static enum ndr_err_code
ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
18894 if (flags
& NDR_IN
) {
18895 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
18896 if (r
->in
.server
) {
18897 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
18898 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18899 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
18900 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18902 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
18903 if (r
->in
.environment
) {
18904 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
18905 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18906 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
18907 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18909 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18910 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
18911 if (r
->in
.buffer
) {
18912 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
18914 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
18916 if (flags
& NDR_OUT
) {
18917 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
18920 struct ndr_push
*_ndr_info
;
18921 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
18922 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
18923 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
18924 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
18927 if (r
->out
.needed
== NULL
) {
18928 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18930 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
18931 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18933 return NDR_ERR_SUCCESS
;
18936 static enum ndr_err_code
ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrintProcessorDirectory
*r
)
18938 uint32_t _ptr_server
;
18939 uint32_t _ptr_environment
;
18940 uint32_t _ptr_buffer
;
18941 uint32_t _ptr_info
;
18942 TALLOC_CTX
*_mem_save_server_0
;
18943 TALLOC_CTX
*_mem_save_environment_0
;
18944 TALLOC_CTX
*_mem_save_buffer_0
;
18945 TALLOC_CTX
*_mem_save_info_0
;
18946 TALLOC_CTX
*_mem_save_needed_0
;
18947 if (flags
& NDR_IN
) {
18948 ZERO_STRUCT(r
->out
);
18950 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
18952 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
18954 r
->in
.server
= NULL
;
18956 if (r
->in
.server
) {
18957 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18958 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
18959 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
18960 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
18961 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
18962 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
18964 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
18965 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
18966 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
18968 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
18969 if (_ptr_environment
) {
18970 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
18972 r
->in
.environment
= NULL
;
18974 if (r
->in
.environment
) {
18975 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18976 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
18977 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
18978 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
18979 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
18980 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.environment
), ndr_get_array_length(ndr
, &r
->in
.environment
));
18982 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
18983 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
18984 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
18986 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
18987 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
18989 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
18991 r
->in
.buffer
= NULL
;
18993 if (r
->in
.buffer
) {
18994 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18995 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
18996 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
18997 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
18999 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19000 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19001 ZERO_STRUCTP(r
->out
.needed
);
19003 if (flags
& NDR_OUT
) {
19004 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19006 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19008 r
->out
.info
= NULL
;
19011 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19012 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19014 struct ndr_pull
*_ndr_info
;
19015 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
19016 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
19017 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
19018 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
19020 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19022 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19023 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19025 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19026 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19027 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19028 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19029 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19031 return NDR_ERR_SUCCESS
;
19034 _PUBLIC_
void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
19036 ndr_print_struct(ndr
, name
, "spoolss_GetPrintProcessorDirectory");
19038 if (flags
& NDR_SET_VALUES
) {
19039 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19041 if (flags
& NDR_IN
) {
19042 ndr_print_struct(ndr
, "in", "spoolss_GetPrintProcessorDirectory");
19044 ndr_print_ptr(ndr
, "server", r
->in
.server
);
19046 if (r
->in
.server
) {
19047 ndr_print_string(ndr
, "server", r
->in
.server
);
19050 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
19052 if (r
->in
.environment
) {
19053 ndr_print_string(ndr
, "environment", r
->in
.environment
);
19056 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19057 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19059 if (r
->in
.buffer
) {
19060 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19063 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19066 if (flags
& NDR_OUT
) {
19067 ndr_print_struct(ndr
, "out", "spoolss_GetPrintProcessorDirectory");
19069 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19072 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
19073 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr
, "info", r
->out
.info
);
19076 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19078 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19080 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19086 static enum ndr_err_code
ndr_push_spoolss_StartDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartDocPrinter
*r
)
19088 if (flags
& NDR_IN
) {
19089 if (r
->in
.handle
== NULL
) {
19090 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19092 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19093 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19094 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
19095 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
19097 if (flags
& NDR_OUT
) {
19098 if (r
->out
.job_id
== NULL
) {
19099 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.job_id
));
19102 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19104 return NDR_ERR_SUCCESS
;
19107 static enum ndr_err_code
ndr_pull_spoolss_StartDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartDocPrinter
*r
)
19109 TALLOC_CTX
*_mem_save_handle_0
;
19110 TALLOC_CTX
*_mem_save_job_id_0
;
19111 if (flags
& NDR_IN
) {
19112 ZERO_STRUCT(r
->out
);
19114 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19115 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19117 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19118 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19119 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19120 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19121 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19122 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
19123 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
19124 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
19125 ZERO_STRUCTP(r
->out
.job_id
);
19127 if (flags
& NDR_OUT
) {
19128 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19129 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
19131 _mem_save_job_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19132 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.job_id
, LIBNDR_FLAG_REF_ALLOC
);
19133 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.job_id
));
19134 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_job_id_0
, LIBNDR_FLAG_REF_ALLOC
);
19135 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19137 return NDR_ERR_SUCCESS
;
19140 _PUBLIC_
void ndr_print_spoolss_StartDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartDocPrinter
*r
)
19142 ndr_print_struct(ndr
, name
, "spoolss_StartDocPrinter");
19144 if (flags
& NDR_SET_VALUES
) {
19145 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19147 if (flags
& NDR_IN
) {
19148 ndr_print_struct(ndr
, "in", "spoolss_StartDocPrinter");
19150 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19152 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19154 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19155 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
19156 ndr_print_spoolss_DocumentInfo(ndr
, "info", &r
->in
.info
);
19159 if (flags
& NDR_OUT
) {
19160 ndr_print_struct(ndr
, "out", "spoolss_StartDocPrinter");
19162 ndr_print_ptr(ndr
, "job_id", r
->out
.job_id
);
19164 ndr_print_uint32(ndr
, "job_id", *r
->out
.job_id
);
19166 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19172 static enum ndr_err_code
ndr_push_spoolss_StartPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartPagePrinter
*r
)
19174 if (flags
& NDR_IN
) {
19175 if (r
->in
.handle
== NULL
) {
19176 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19178 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19180 if (flags
& NDR_OUT
) {
19181 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19183 return NDR_ERR_SUCCESS
;
19186 static enum ndr_err_code
ndr_pull_spoolss_StartPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartPagePrinter
*r
)
19188 TALLOC_CTX
*_mem_save_handle_0
;
19189 if (flags
& NDR_IN
) {
19190 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19191 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19193 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19194 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19195 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19196 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19198 if (flags
& NDR_OUT
) {
19199 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19201 return NDR_ERR_SUCCESS
;
19204 _PUBLIC_
void ndr_print_spoolss_StartPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartPagePrinter
*r
)
19206 ndr_print_struct(ndr
, name
, "spoolss_StartPagePrinter");
19208 if (flags
& NDR_SET_VALUES
) {
19209 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19211 if (flags
& NDR_IN
) {
19212 ndr_print_struct(ndr
, "in", "spoolss_StartPagePrinter");
19214 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19216 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19220 if (flags
& NDR_OUT
) {
19221 ndr_print_struct(ndr
, "out", "spoolss_StartPagePrinter");
19223 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19229 static enum ndr_err_code
ndr_push_spoolss_WritePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_WritePrinter
*r
)
19231 if (flags
& NDR_IN
) {
19232 if (r
->in
.handle
== NULL
) {
19233 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19235 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19236 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
19237 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data
.length
));
19239 if (flags
& NDR_OUT
) {
19240 if (r
->out
.num_written
== NULL
) {
19241 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19243 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_written
));
19244 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19246 return NDR_ERR_SUCCESS
;
19249 static enum ndr_err_code
ndr_pull_spoolss_WritePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_WritePrinter
*r
)
19251 TALLOC_CTX
*_mem_save_handle_0
;
19252 TALLOC_CTX
*_mem_save_num_written_0
;
19253 if (flags
& NDR_IN
) {
19254 ZERO_STRUCT(r
->out
);
19256 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19257 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19259 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19260 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19261 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19262 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19263 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.data
));
19264 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._data_size
));
19265 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
19266 ZERO_STRUCTP(r
->out
.num_written
);
19268 if (flags
& NDR_OUT
) {
19269 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19270 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
19272 _mem_save_num_written_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19273 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_written
, LIBNDR_FLAG_REF_ALLOC
);
19274 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_written
));
19275 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_written_0
, LIBNDR_FLAG_REF_ALLOC
);
19276 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19278 return NDR_ERR_SUCCESS
;
19281 _PUBLIC_
void ndr_print_spoolss_WritePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WritePrinter
*r
)
19283 ndr_print_struct(ndr
, name
, "spoolss_WritePrinter");
19285 if (flags
& NDR_SET_VALUES
) {
19286 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19288 if (flags
& NDR_IN
) {
19289 ndr_print_struct(ndr
, "in", "spoolss_WritePrinter");
19291 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19293 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19295 ndr_print_DATA_BLOB(ndr
, "data", r
->in
.data
);
19296 ndr_print_uint32(ndr
, "_data_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.data
.length
:r
->in
._data_size
);
19299 if (flags
& NDR_OUT
) {
19300 ndr_print_struct(ndr
, "out", "spoolss_WritePrinter");
19302 ndr_print_ptr(ndr
, "num_written", r
->out
.num_written
);
19304 ndr_print_uint32(ndr
, "num_written", *r
->out
.num_written
);
19306 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19312 static enum ndr_err_code
ndr_push_spoolss_EndPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndPagePrinter
*r
)
19314 if (flags
& NDR_IN
) {
19315 if (r
->in
.handle
== NULL
) {
19316 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19318 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19320 if (flags
& NDR_OUT
) {
19321 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19323 return NDR_ERR_SUCCESS
;
19326 static enum ndr_err_code
ndr_pull_spoolss_EndPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndPagePrinter
*r
)
19328 TALLOC_CTX
*_mem_save_handle_0
;
19329 if (flags
& NDR_IN
) {
19330 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19331 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19333 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19334 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19335 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19336 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19338 if (flags
& NDR_OUT
) {
19339 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19341 return NDR_ERR_SUCCESS
;
19344 _PUBLIC_
void ndr_print_spoolss_EndPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndPagePrinter
*r
)
19346 ndr_print_struct(ndr
, name
, "spoolss_EndPagePrinter");
19348 if (flags
& NDR_SET_VALUES
) {
19349 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19351 if (flags
& NDR_IN
) {
19352 ndr_print_struct(ndr
, "in", "spoolss_EndPagePrinter");
19354 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19356 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19360 if (flags
& NDR_OUT
) {
19361 ndr_print_struct(ndr
, "out", "spoolss_EndPagePrinter");
19363 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19369 static enum ndr_err_code
ndr_push_spoolss_AbortPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AbortPrinter
*r
)
19371 if (flags
& NDR_IN
) {
19372 if (r
->in
.handle
== NULL
) {
19373 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19375 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19377 if (flags
& NDR_OUT
) {
19378 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19380 return NDR_ERR_SUCCESS
;
19383 static enum ndr_err_code
ndr_pull_spoolss_AbortPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AbortPrinter
*r
)
19385 TALLOC_CTX
*_mem_save_handle_0
;
19386 if (flags
& NDR_IN
) {
19387 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19388 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19390 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19391 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19392 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19393 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19395 if (flags
& NDR_OUT
) {
19396 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19398 return NDR_ERR_SUCCESS
;
19401 _PUBLIC_
void ndr_print_spoolss_AbortPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AbortPrinter
*r
)
19403 ndr_print_struct(ndr
, name
, "spoolss_AbortPrinter");
19405 if (flags
& NDR_SET_VALUES
) {
19406 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19408 if (flags
& NDR_IN
) {
19409 ndr_print_struct(ndr
, "in", "spoolss_AbortPrinter");
19411 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19413 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19417 if (flags
& NDR_OUT
) {
19418 ndr_print_struct(ndr
, "out", "spoolss_AbortPrinter");
19420 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19426 static enum ndr_err_code
ndr_push_spoolss_ReadPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReadPrinter
*r
)
19428 if (flags
& NDR_IN
) {
19429 if (r
->in
.handle
== NULL
) {
19430 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19432 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19433 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
19435 if (flags
& NDR_OUT
) {
19436 if (r
->out
.data
== NULL
) {
19437 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19439 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
19440 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_size
));
19441 if (r
->out
._data_size
== NULL
) {
19442 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19444 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._data_size
));
19445 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19447 return NDR_ERR_SUCCESS
;
19450 static enum ndr_err_code
ndr_pull_spoolss_ReadPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReadPrinter
*r
)
19452 TALLOC_CTX
*_mem_save_handle_0
;
19453 TALLOC_CTX
*_mem_save__data_size_0
;
19454 if (flags
& NDR_IN
) {
19455 ZERO_STRUCT(r
->out
);
19457 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19458 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19460 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19461 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19462 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19463 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19464 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_size
));
19465 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_size
);
19466 memset(r
->out
.data
, 0, (r
->in
.data_size
) * sizeof(*r
->out
.data
));
19467 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
19468 ZERO_STRUCTP(r
->out
._data_size
);
19470 if (flags
& NDR_OUT
) {
19471 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
19472 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19473 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
19475 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
19476 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19477 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
19479 _mem_save__data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19480 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._data_size
, LIBNDR_FLAG_REF_ALLOC
);
19481 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._data_size
));
19482 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__data_size_0
, LIBNDR_FLAG_REF_ALLOC
);
19483 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19485 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_size
));
19488 return NDR_ERR_SUCCESS
;
19491 _PUBLIC_
void ndr_print_spoolss_ReadPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReadPrinter
*r
)
19493 ndr_print_struct(ndr
, name
, "spoolss_ReadPrinter");
19495 if (flags
& NDR_SET_VALUES
) {
19496 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19498 if (flags
& NDR_IN
) {
19499 ndr_print_struct(ndr
, "in", "spoolss_ReadPrinter");
19501 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19503 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19505 ndr_print_uint32(ndr
, "data_size", r
->in
.data_size
);
19508 if (flags
& NDR_OUT
) {
19509 ndr_print_struct(ndr
, "out", "spoolss_ReadPrinter");
19511 ndr_print_ptr(ndr
, "data", r
->out
.data
);
19513 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_size
);
19515 ndr_print_ptr(ndr
, "_data_size", r
->out
._data_size
);
19517 ndr_print_uint32(ndr
, "_data_size", *r
->out
._data_size
);
19519 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19525 static enum ndr_err_code
ndr_push_spoolss_EndDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndDocPrinter
*r
)
19527 if (flags
& NDR_IN
) {
19528 if (r
->in
.handle
== NULL
) {
19529 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19531 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19533 if (flags
& NDR_OUT
) {
19534 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19536 return NDR_ERR_SUCCESS
;
19539 static enum ndr_err_code
ndr_pull_spoolss_EndDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndDocPrinter
*r
)
19541 TALLOC_CTX
*_mem_save_handle_0
;
19542 if (flags
& NDR_IN
) {
19543 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19544 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19546 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19547 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19548 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19549 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19551 if (flags
& NDR_OUT
) {
19552 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19554 return NDR_ERR_SUCCESS
;
19557 _PUBLIC_
void ndr_print_spoolss_EndDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndDocPrinter
*r
)
19559 ndr_print_struct(ndr
, name
, "spoolss_EndDocPrinter");
19561 if (flags
& NDR_SET_VALUES
) {
19562 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19564 if (flags
& NDR_IN
) {
19565 ndr_print_struct(ndr
, "in", "spoolss_EndDocPrinter");
19567 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19569 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19573 if (flags
& NDR_OUT
) {
19574 ndr_print_struct(ndr
, "out", "spoolss_EndDocPrinter");
19576 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19582 static enum ndr_err_code
ndr_push_spoolss_AddJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddJob
*r
)
19584 if (flags
& NDR_IN
) {
19585 if (r
->in
.handle
== NULL
) {
19586 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19588 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19589 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19590 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19591 if (r
->in
.buffer
) {
19592 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19593 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
19595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19597 if (flags
& NDR_OUT
) {
19598 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
19599 if (r
->out
.buffer
) {
19600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19601 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
19603 if (r
->out
.needed
== NULL
) {
19604 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19607 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19609 return NDR_ERR_SUCCESS
;
19612 static enum ndr_err_code
ndr_pull_spoolss_AddJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddJob
*r
)
19614 uint32_t _ptr_buffer
;
19615 TALLOC_CTX
*_mem_save_handle_0
;
19616 TALLOC_CTX
*_mem_save_buffer_0
;
19617 TALLOC_CTX
*_mem_save_needed_0
;
19618 if (flags
& NDR_IN
) {
19619 ZERO_STRUCT(r
->out
);
19621 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19622 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19624 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19625 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19626 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19627 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19628 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19629 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19631 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19633 r
->in
.buffer
= NULL
;
19635 if (r
->in
.buffer
) {
19636 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19637 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19638 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
19639 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
19640 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
19641 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19643 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19644 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19645 ZERO_STRUCTP(r
->out
.needed
);
19646 if (r
->in
.buffer
) {
19647 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
19650 if (flags
& NDR_OUT
) {
19651 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19653 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
19655 r
->out
.buffer
= NULL
;
19657 if (r
->out
.buffer
) {
19658 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19659 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
19660 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
19661 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
19662 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
19663 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19665 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19666 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19668 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19669 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19670 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19671 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19672 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19673 if (r
->out
.buffer
) {
19674 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
19677 return NDR_ERR_SUCCESS
;
19680 _PUBLIC_
void ndr_print_spoolss_AddJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddJob
*r
)
19682 ndr_print_struct(ndr
, name
, "spoolss_AddJob");
19684 if (flags
& NDR_SET_VALUES
) {
19685 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19687 if (flags
& NDR_IN
) {
19688 ndr_print_struct(ndr
, "in", "spoolss_AddJob");
19690 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19692 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19694 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19695 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19697 if (r
->in
.buffer
) {
19698 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
19701 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19704 if (flags
& NDR_OUT
) {
19705 ndr_print_struct(ndr
, "out", "spoolss_AddJob");
19707 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
19709 if (r
->out
.buffer
) {
19710 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
19713 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19715 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19717 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19723 static enum ndr_err_code
ndr_push_spoolss_ScheduleJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_ScheduleJob
*r
)
19725 if (flags
& NDR_IN
) {
19726 if (r
->in
.handle
== NULL
) {
19727 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19729 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19730 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.jobid
));
19732 if (flags
& NDR_OUT
) {
19733 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19735 return NDR_ERR_SUCCESS
;
19738 static enum ndr_err_code
ndr_pull_spoolss_ScheduleJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_ScheduleJob
*r
)
19740 TALLOC_CTX
*_mem_save_handle_0
;
19741 if (flags
& NDR_IN
) {
19742 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19743 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19745 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19746 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19747 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19748 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19749 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.jobid
));
19751 if (flags
& NDR_OUT
) {
19752 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19754 return NDR_ERR_SUCCESS
;
19757 _PUBLIC_
void ndr_print_spoolss_ScheduleJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ScheduleJob
*r
)
19759 ndr_print_struct(ndr
, name
, "spoolss_ScheduleJob");
19761 if (flags
& NDR_SET_VALUES
) {
19762 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19764 if (flags
& NDR_IN
) {
19765 ndr_print_struct(ndr
, "in", "spoolss_ScheduleJob");
19767 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19769 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19771 ndr_print_uint32(ndr
, "jobid", r
->in
.jobid
);
19774 if (flags
& NDR_OUT
) {
19775 ndr_print_struct(ndr
, "out", "spoolss_ScheduleJob");
19777 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19783 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_GetPrinterData
*r
)
19785 if (flags
& NDR_IN
) {
19786 if (r
->in
.handle
== NULL
) {
19787 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19789 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19790 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
19791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
19793 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
));
19794 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19796 if (flags
& NDR_OUT
) {
19797 if (r
->out
.type
== NULL
) {
19798 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19800 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, *r
->out
.type
));
19801 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.data
));
19802 if (r
->out
.needed
== NULL
) {
19803 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19805 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19806 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19808 return NDR_ERR_SUCCESS
;
19811 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct _spoolss_GetPrinterData
*r
)
19813 TALLOC_CTX
*_mem_save_handle_0
;
19814 TALLOC_CTX
*_mem_save_type_0
;
19815 TALLOC_CTX
*_mem_save_needed_0
;
19816 if (flags
& NDR_IN
) {
19817 ZERO_STRUCT(r
->out
);
19819 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19820 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19822 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19823 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19824 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19825 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19826 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
19827 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
19828 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
19829 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.value_name
), ndr_get_array_length(ndr
, &r
->in
.value_name
));
19831 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
19832 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t), CH_UTF16
));
19833 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19834 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
19835 ZERO_STRUCTP(r
->out
.type
);
19836 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19837 ZERO_STRUCTP(r
->out
.needed
);
19839 if (flags
& NDR_OUT
) {
19840 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19841 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
19843 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19844 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
19845 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, r
->out
.type
));
19846 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
19847 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->out
.data
));
19848 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19849 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19851 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19852 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19853 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19854 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19855 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19857 return NDR_ERR_SUCCESS
;
19860 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_GetPrinterData
*r
)
19862 if (flags
& NDR_IN
) {
19863 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, r
->in
.type
));
19865 if (flags
& NDR_OUT
) {
19866 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.data
, r
->in
.type
));
19867 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->out
.data
));
19869 return NDR_ERR_SUCCESS
;
19872 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct __spoolss_GetPrinterData
*r
)
19874 if (flags
& NDR_IN
) {
19875 ZERO_STRUCT(r
->out
);
19877 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, &r
->in
.type
));
19879 if (flags
& NDR_OUT
) {
19880 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.data
, r
->in
.type
));
19881 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->out
.data
));
19883 return NDR_ERR_SUCCESS
;
19886 _PUBLIC_
void ndr_print_spoolss_GetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterData
*r
)
19888 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterData");
19890 if (flags
& NDR_SET_VALUES
) {
19891 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19893 if (flags
& NDR_IN
) {
19894 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterData");
19896 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19898 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19900 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
19901 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19904 if (flags
& NDR_OUT
) {
19905 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterData");
19907 ndr_print_ptr(ndr
, "type", r
->out
.type
);
19909 ndr_print_spoolss_PrinterDataType(ndr
, "type", *r
->out
.type
);
19911 ndr_print_set_switch_value(ndr
, &r
->out
.data
, *r
->out
.type
);
19912 ndr_print_spoolss_PrinterData(ndr
, "data", &r
->out
.data
);
19913 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19915 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19917 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19923 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_SetPrinterData
*r
)
19925 if (flags
& NDR_IN
) {
19926 if (r
->in
.handle
== NULL
) {
19927 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19929 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19930 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
19931 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19932 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
19933 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
));
19934 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, r
->in
.type
));
19935 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
19936 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
._offered
));
19938 if (flags
& NDR_OUT
) {
19939 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19941 return NDR_ERR_SUCCESS
;
19944 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_SetPrinterData
*r
)
19946 if (flags
& NDR_IN
) {
19947 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, r
->in
.type
));
19949 if (flags
& NDR_OUT
) {
19950 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.data
, r
->in
.type
));
19951 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->out
.data
));
19953 return NDR_ERR_SUCCESS
;
19956 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterData
*r
)
19958 TALLOC_CTX
*_mem_save_handle_0
;
19959 if (flags
& NDR_IN
) {
19960 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19961 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19963 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19964 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19965 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19966 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19967 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
19968 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
19969 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
19970 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.value_name
), ndr_get_array_length(ndr
, &r
->in
.value_name
));
19972 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
19973 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t), CH_UTF16
));
19974 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, &r
->in
.type
));
19976 struct ndr_pull
*_ndr_data
;
19977 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 4, -1));
19978 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, &r
->in
.data
, r
->in
.type
));
19979 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
19980 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 4, -1));
19982 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._offered
));
19984 if (flags
& NDR_OUT
) {
19985 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19987 return NDR_ERR_SUCCESS
;
19990 _PUBLIC_
void ndr_print_spoolss_SetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterData
*r
)
19992 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterData");
19994 if (flags
& NDR_SET_VALUES
) {
19995 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19997 if (flags
& NDR_IN
) {
19998 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterData");
20000 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20002 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20004 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
20005 ndr_print_spoolss_PrinterDataType(ndr
, "type", r
->in
.type
);
20006 ndr_print_set_switch_value(ndr
, &r
->in
.data
, r
->in
.type
);
20007 ndr_print_spoolss_PrinterData(ndr
, "data", &r
->in
.data
);
20008 ndr_print_uint32(ndr
, "_offered", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_PrinterData(&r
->in
.data
, r
->in
.type
, ndr
->iconv_convenience
, flags
):r
->in
._offered
);
20011 if (flags
& NDR_OUT
) {
20012 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterData");
20014 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20020 static enum ndr_err_code
ndr_push_spoolss_WaitForPrinterChange(struct ndr_push
*ndr
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
20022 if (flags
& NDR_IN
) {
20024 if (flags
& NDR_OUT
) {
20025 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20027 return NDR_ERR_SUCCESS
;
20030 static enum ndr_err_code
ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull
*ndr
, int flags
, struct spoolss_WaitForPrinterChange
*r
)
20032 if (flags
& NDR_IN
) {
20034 if (flags
& NDR_OUT
) {
20035 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20037 return NDR_ERR_SUCCESS
;
20040 _PUBLIC_
void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
20042 ndr_print_struct(ndr
, name
, "spoolss_WaitForPrinterChange");
20044 if (flags
& NDR_SET_VALUES
) {
20045 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20047 if (flags
& NDR_IN
) {
20048 ndr_print_struct(ndr
, "in", "spoolss_WaitForPrinterChange");
20052 if (flags
& NDR_OUT
) {
20053 ndr_print_struct(ndr
, "out", "spoolss_WaitForPrinterChange");
20055 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20061 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ClosePrinter
*r
)
20063 if (flags
& NDR_IN
) {
20064 if (r
->in
.handle
== NULL
) {
20065 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20067 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20069 if (flags
& NDR_OUT
) {
20070 if (r
->out
.handle
== NULL
) {
20071 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20073 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
20074 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20076 return NDR_ERR_SUCCESS
;
20079 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ClosePrinter
*r
)
20081 TALLOC_CTX
*_mem_save_handle_0
;
20082 if (flags
& NDR_IN
) {
20083 ZERO_STRUCT(r
->out
);
20085 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20086 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20088 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20089 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20090 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20091 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20092 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
20093 *r
->out
.handle
= *r
->in
.handle
;
20095 if (flags
& NDR_OUT
) {
20096 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20097 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
20099 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20100 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20101 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
20102 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20103 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20105 return NDR_ERR_SUCCESS
;
20108 _PUBLIC_
void ndr_print_spoolss_ClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ClosePrinter
*r
)
20110 ndr_print_struct(ndr
, name
, "spoolss_ClosePrinter");
20112 if (flags
& NDR_SET_VALUES
) {
20113 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20115 if (flags
& NDR_IN
) {
20116 ndr_print_struct(ndr
, "in", "spoolss_ClosePrinter");
20118 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20120 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20124 if (flags
& NDR_OUT
) {
20125 ndr_print_struct(ndr
, "out", "spoolss_ClosePrinter");
20127 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
20129 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
20131 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20137 static enum ndr_err_code
ndr_push_spoolss_AddForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddForm
*r
)
20139 if (flags
& NDR_IN
) {
20140 if (r
->in
.handle
== NULL
) {
20141 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20143 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20144 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20145 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
20146 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
20148 if (flags
& NDR_OUT
) {
20149 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20151 return NDR_ERR_SUCCESS
;
20154 static enum ndr_err_code
ndr_pull_spoolss_AddForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddForm
*r
)
20156 TALLOC_CTX
*_mem_save_handle_0
;
20157 if (flags
& NDR_IN
) {
20158 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20159 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20161 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20162 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20163 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20164 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20165 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20166 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
20167 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
20169 if (flags
& NDR_OUT
) {
20170 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20172 return NDR_ERR_SUCCESS
;
20175 _PUBLIC_
void ndr_print_spoolss_AddForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddForm
*r
)
20177 ndr_print_struct(ndr
, name
, "spoolss_AddForm");
20179 if (flags
& NDR_SET_VALUES
) {
20180 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20182 if (flags
& NDR_IN
) {
20183 ndr_print_struct(ndr
, "in", "spoolss_AddForm");
20185 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20187 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20189 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20190 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
20191 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
20194 if (flags
& NDR_OUT
) {
20195 ndr_print_struct(ndr
, "out", "spoolss_AddForm");
20197 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20203 static enum ndr_err_code
ndr_push_spoolss_DeleteForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteForm
*r
)
20205 if (flags
& NDR_IN
) {
20206 if (r
->in
.handle
== NULL
) {
20207 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20209 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20210 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
20211 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20212 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
20213 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
));
20215 if (flags
& NDR_OUT
) {
20216 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20218 return NDR_ERR_SUCCESS
;
20221 static enum ndr_err_code
ndr_pull_spoolss_DeleteForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteForm
*r
)
20223 TALLOC_CTX
*_mem_save_handle_0
;
20224 if (flags
& NDR_IN
) {
20225 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20226 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20228 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20229 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20230 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20231 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20232 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
20233 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
20234 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
20235 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.form_name
), ndr_get_array_length(ndr
, &r
->in
.form_name
));
20237 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
20238 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.form_name
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t), CH_UTF16
));
20240 if (flags
& NDR_OUT
) {
20241 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20243 return NDR_ERR_SUCCESS
;
20246 _PUBLIC_
void ndr_print_spoolss_DeleteForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteForm
*r
)
20248 ndr_print_struct(ndr
, name
, "spoolss_DeleteForm");
20250 if (flags
& NDR_SET_VALUES
) {
20251 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20253 if (flags
& NDR_IN
) {
20254 ndr_print_struct(ndr
, "in", "spoolss_DeleteForm");
20256 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20258 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20260 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
20263 if (flags
& NDR_OUT
) {
20264 ndr_print_struct(ndr
, "out", "spoolss_DeleteForm");
20266 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20272 static enum ndr_err_code
ndr_push_spoolss_GetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetForm
*r
)
20274 if (flags
& NDR_IN
) {
20275 if (r
->in
.handle
== NULL
) {
20276 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20278 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20279 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
20280 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20281 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
20282 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
));
20283 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20284 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20285 if (r
->in
.buffer
) {
20286 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20288 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20290 if (flags
& NDR_OUT
) {
20291 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20294 struct ndr_push
*_ndr_info
;
20295 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20296 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20297 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
20298 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20301 if (r
->out
.needed
== NULL
) {
20302 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20304 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20305 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20307 return NDR_ERR_SUCCESS
;
20310 static enum ndr_err_code
ndr_pull_spoolss_GetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetForm
*r
)
20312 uint32_t _ptr_buffer
;
20313 uint32_t _ptr_info
;
20314 TALLOC_CTX
*_mem_save_handle_0
;
20315 TALLOC_CTX
*_mem_save_buffer_0
;
20316 TALLOC_CTX
*_mem_save_info_0
;
20317 TALLOC_CTX
*_mem_save_needed_0
;
20318 if (flags
& NDR_IN
) {
20319 ZERO_STRUCT(r
->out
);
20321 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20322 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20324 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20325 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20326 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20327 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20328 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
20329 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
20330 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
20331 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.form_name
), ndr_get_array_length(ndr
, &r
->in
.form_name
));
20333 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
20334 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.form_name
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t), CH_UTF16
));
20335 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20336 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20338 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20340 r
->in
.buffer
= NULL
;
20342 if (r
->in
.buffer
) {
20343 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20344 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20345 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20346 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20348 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20349 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20350 ZERO_STRUCTP(r
->out
.needed
);
20352 if (flags
& NDR_OUT
) {
20353 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20355 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20357 r
->out
.info
= NULL
;
20360 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20361 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20363 struct ndr_pull
*_ndr_info
;
20364 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20365 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20366 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
20367 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20369 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20371 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20372 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20374 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20375 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20376 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20377 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20378 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20380 return NDR_ERR_SUCCESS
;
20383 _PUBLIC_
void ndr_print_spoolss_GetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetForm
*r
)
20385 ndr_print_struct(ndr
, name
, "spoolss_GetForm");
20387 if (flags
& NDR_SET_VALUES
) {
20388 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20390 if (flags
& NDR_IN
) {
20391 ndr_print_struct(ndr
, "in", "spoolss_GetForm");
20393 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20395 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20397 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
20398 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20399 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20401 if (r
->in
.buffer
) {
20402 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20405 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20408 if (flags
& NDR_OUT
) {
20409 ndr_print_struct(ndr
, "out", "spoolss_GetForm");
20411 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20414 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
20415 ndr_print_spoolss_FormInfo(ndr
, "info", r
->out
.info
);
20418 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20420 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20422 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20428 static enum ndr_err_code
ndr_push_spoolss_SetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetForm
*r
)
20430 if (flags
& NDR_IN
) {
20431 if (r
->in
.handle
== NULL
) {
20432 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20434 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
20436 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20437 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
20438 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
));
20439 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20440 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
20441 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
20443 if (flags
& NDR_OUT
) {
20444 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20446 return NDR_ERR_SUCCESS
;
20449 static enum ndr_err_code
ndr_pull_spoolss_SetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetForm
*r
)
20451 TALLOC_CTX
*_mem_save_handle_0
;
20452 if (flags
& NDR_IN
) {
20453 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20454 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20456 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20457 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20458 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20459 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20460 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
20461 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
20462 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
20463 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.form_name
), ndr_get_array_length(ndr
, &r
->in
.form_name
));
20465 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
20466 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.form_name
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t), CH_UTF16
));
20467 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20468 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
20469 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
20471 if (flags
& NDR_OUT
) {
20472 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20474 return NDR_ERR_SUCCESS
;
20477 _PUBLIC_
void ndr_print_spoolss_SetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetForm
*r
)
20479 ndr_print_struct(ndr
, name
, "spoolss_SetForm");
20481 if (flags
& NDR_SET_VALUES
) {
20482 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20484 if (flags
& NDR_IN
) {
20485 ndr_print_struct(ndr
, "in", "spoolss_SetForm");
20487 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20489 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20491 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
20492 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20493 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
20494 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
20497 if (flags
& NDR_OUT
) {
20498 ndr_print_struct(ndr
, "out", "spoolss_SetForm");
20500 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20506 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumForms
*r
)
20508 if (flags
& NDR_IN
) {
20509 if (r
->in
.handle
== NULL
) {
20510 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20512 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20513 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20514 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20515 if (r
->in
.buffer
) {
20516 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20518 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20520 if (flags
& NDR_OUT
) {
20521 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20523 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20525 if (r
->out
.needed
== NULL
) {
20526 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20528 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20529 if (r
->out
.count
== NULL
) {
20530 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20532 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20533 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20535 return NDR_ERR_SUCCESS
;
20538 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumForms
*r
)
20540 uint32_t _ptr_buffer
;
20541 uint32_t _ptr_info
;
20542 TALLOC_CTX
*_mem_save_handle_0
;
20543 TALLOC_CTX
*_mem_save_buffer_0
;
20544 TALLOC_CTX
*_mem_save_info_0
;
20545 TALLOC_CTX
*_mem_save_needed_0
;
20546 TALLOC_CTX
*_mem_save_count_0
;
20547 if (flags
& NDR_IN
) {
20548 ZERO_STRUCT(r
->out
);
20550 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20551 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20553 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20554 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20555 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20556 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20557 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20558 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20560 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20562 r
->in
.buffer
= NULL
;
20564 if (r
->in
.buffer
) {
20565 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20566 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20567 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20568 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20570 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20571 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20572 ZERO_STRUCTP(r
->out
.needed
);
20573 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20574 ZERO_STRUCTP(r
->out
.count
);
20576 if (flags
& NDR_OUT
) {
20577 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20579 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20581 r
->out
.info
= NULL
;
20584 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20585 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20586 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
20587 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20589 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20590 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20592 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20593 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20594 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20595 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20596 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20597 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20599 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20600 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
20601 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
20602 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
20603 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20605 return NDR_ERR_SUCCESS
;
20608 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumForms
*r
)
20610 uint32_t cntr_info_0
;
20611 if (flags
& NDR_IN
) {
20612 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20613 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
20615 if (flags
& NDR_OUT
) {
20616 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20617 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20618 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20620 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20621 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20624 return NDR_ERR_SUCCESS
;
20627 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumForms
*r
)
20629 uint32_t cntr_info_0
;
20630 TALLOC_CTX
*_mem_save_info_0
;
20631 if (flags
& NDR_IN
) {
20632 ZERO_STRUCT(r
->out
);
20634 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20635 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
20637 if (flags
& NDR_OUT
) {
20638 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
20639 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20640 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20641 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20642 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20643 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20645 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20646 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20648 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20650 return NDR_ERR_SUCCESS
;
20653 _PUBLIC_
void ndr_print_spoolss_EnumForms(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumForms
*r
)
20655 uint32_t cntr_info_1
;
20656 ndr_print_struct(ndr
, name
, "spoolss_EnumForms");
20658 if (flags
& NDR_SET_VALUES
) {
20659 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20661 if (flags
& NDR_IN
) {
20662 ndr_print_struct(ndr
, "in", "spoolss_EnumForms");
20664 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20666 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20668 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20669 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20671 if (r
->in
.buffer
) {
20672 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20675 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20678 if (flags
& NDR_OUT
) {
20679 ndr_print_struct(ndr
, "out", "spoolss_EnumForms");
20681 ndr_print_ptr(ndr
, "count", r
->out
.count
);
20683 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
20685 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20688 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
20690 for (cntr_info_1
=0;cntr_info_1
<*r
->out
.count
;cntr_info_1
++) {
20692 if (asprintf(&idx_1
, "[%d]", cntr_info_1
) != -1) {
20693 ndr_print_set_switch_value(ndr
, &r
->out
.info
[cntr_info_1
], r
->in
.level
);
20694 ndr_print_spoolss_FormInfo(ndr
, "info", &r
->out
.info
[cntr_info_1
]);
20701 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20703 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20705 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20711 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPorts
*r
)
20713 if (flags
& NDR_IN
) {
20714 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
20715 if (r
->in
.servername
) {
20716 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20717 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20718 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20719 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20721 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20722 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20723 if (r
->in
.buffer
) {
20724 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20728 if (flags
& NDR_OUT
) {
20729 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20731 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20733 if (r
->out
.needed
== NULL
) {
20734 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20736 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20737 if (r
->out
.count
== NULL
) {
20738 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20740 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20741 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20743 return NDR_ERR_SUCCESS
;
20746 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPorts
*r
)
20748 uint32_t _ptr_servername
;
20749 uint32_t _ptr_buffer
;
20750 uint32_t _ptr_info
;
20751 TALLOC_CTX
*_mem_save_servername_0
;
20752 TALLOC_CTX
*_mem_save_buffer_0
;
20753 TALLOC_CTX
*_mem_save_info_0
;
20754 TALLOC_CTX
*_mem_save_needed_0
;
20755 TALLOC_CTX
*_mem_save_count_0
;
20756 if (flags
& NDR_IN
) {
20757 ZERO_STRUCT(r
->out
);
20759 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
20760 if (_ptr_servername
) {
20761 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
20763 r
->in
.servername
= NULL
;
20765 if (r
->in
.servername
) {
20766 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20767 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
20768 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
20769 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
20770 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
20771 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.servername
), ndr_get_array_length(ndr
, &r
->in
.servername
));
20773 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
20774 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
20775 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
20777 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20778 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20780 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20782 r
->in
.buffer
= NULL
;
20784 if (r
->in
.buffer
) {
20785 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20786 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20787 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20788 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20790 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20791 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20792 ZERO_STRUCTP(r
->out
.needed
);
20793 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20794 ZERO_STRUCTP(r
->out
.count
);
20796 if (flags
& NDR_OUT
) {
20797 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20799 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20801 r
->out
.info
= NULL
;
20804 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20805 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20806 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
20807 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20809 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20810 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20812 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20813 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20814 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20815 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20816 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20817 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20819 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20820 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
20821 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
20822 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
20823 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20825 return NDR_ERR_SUCCESS
;
20828 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPorts
*r
)
20830 uint32_t cntr_info_0
;
20831 if (flags
& NDR_IN
) {
20832 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20833 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
20835 if (flags
& NDR_OUT
) {
20836 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20837 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20838 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20840 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20841 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20844 return NDR_ERR_SUCCESS
;
20847 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPorts
*r
)
20849 uint32_t cntr_info_0
;
20850 TALLOC_CTX
*_mem_save_info_0
;
20851 if (flags
& NDR_IN
) {
20852 ZERO_STRUCT(r
->out
);
20854 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20855 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
20857 if (flags
& NDR_OUT
) {
20858 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
20859 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20860 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20861 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20862 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20863 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20865 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20866 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20868 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20870 return NDR_ERR_SUCCESS
;
20873 _PUBLIC_
void ndr_print_spoolss_EnumPorts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPorts
*r
)
20875 uint32_t cntr_info_1
;
20876 ndr_print_struct(ndr
, name
, "spoolss_EnumPorts");
20878 if (flags
& NDR_SET_VALUES
) {
20879 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20881 if (flags
& NDR_IN
) {
20882 ndr_print_struct(ndr
, "in", "spoolss_EnumPorts");
20884 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
20886 if (r
->in
.servername
) {
20887 ndr_print_string(ndr
, "servername", r
->in
.servername
);
20890 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20891 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20893 if (r
->in
.buffer
) {
20894 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20897 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20900 if (flags
& NDR_OUT
) {
20901 ndr_print_struct(ndr
, "out", "spoolss_EnumPorts");
20903 ndr_print_ptr(ndr
, "count", r
->out
.count
);
20905 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
20907 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20910 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
20912 for (cntr_info_1
=0;cntr_info_1
<*r
->out
.count
;cntr_info_1
++) {
20914 if (asprintf(&idx_1
, "[%d]", cntr_info_1
) != -1) {
20915 ndr_print_set_switch_value(ndr
, &r
->out
.info
[cntr_info_1
], r
->in
.level
);
20916 ndr_print_spoolss_PortInfo(ndr
, "info", &r
->out
.info
[cntr_info_1
]);
20923 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20925 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20927 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20933 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumMonitors
*r
)
20935 if (flags
& NDR_IN
) {
20936 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
20937 if (r
->in
.servername
) {
20938 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20939 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20940 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20941 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20943 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20944 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20945 if (r
->in
.buffer
) {
20946 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20948 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20950 if (flags
& NDR_OUT
) {
20951 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20953 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20955 if (r
->out
.needed
== NULL
) {
20956 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20958 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20959 if (r
->out
.count
== NULL
) {
20960 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20963 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20965 return NDR_ERR_SUCCESS
;
20968 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumMonitors
*r
)
20970 uint32_t _ptr_servername
;
20971 uint32_t _ptr_buffer
;
20972 uint32_t _ptr_info
;
20973 TALLOC_CTX
*_mem_save_servername_0
;
20974 TALLOC_CTX
*_mem_save_buffer_0
;
20975 TALLOC_CTX
*_mem_save_info_0
;
20976 TALLOC_CTX
*_mem_save_needed_0
;
20977 TALLOC_CTX
*_mem_save_count_0
;
20978 if (flags
& NDR_IN
) {
20979 ZERO_STRUCT(r
->out
);
20981 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
20982 if (_ptr_servername
) {
20983 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
20985 r
->in
.servername
= NULL
;
20987 if (r
->in
.servername
) {
20988 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20989 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
20990 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
20991 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
20992 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
20993 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.servername
), ndr_get_array_length(ndr
, &r
->in
.servername
));
20995 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
20996 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
20997 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
20999 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21000 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21002 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21004 r
->in
.buffer
= NULL
;
21006 if (r
->in
.buffer
) {
21007 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21008 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21009 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21010 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21012 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21013 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21014 ZERO_STRUCTP(r
->out
.needed
);
21015 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21016 ZERO_STRUCTP(r
->out
.count
);
21018 if (flags
& NDR_OUT
) {
21019 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21021 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21023 r
->out
.info
= NULL
;
21026 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21027 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21028 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
21029 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21031 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21032 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21034 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21035 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21036 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21037 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21038 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21039 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21041 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21042 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
21043 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
21044 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
21045 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21047 return NDR_ERR_SUCCESS
;
21050 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumMonitors
*r
)
21052 uint32_t cntr_info_0
;
21053 if (flags
& NDR_IN
) {
21054 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21055 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
21057 if (flags
& NDR_OUT
) {
21058 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21059 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21060 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21062 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21063 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21066 return NDR_ERR_SUCCESS
;
21069 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumMonitors
*r
)
21071 uint32_t cntr_info_0
;
21072 TALLOC_CTX
*_mem_save_info_0
;
21073 if (flags
& NDR_IN
) {
21074 ZERO_STRUCT(r
->out
);
21076 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21077 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
21079 if (flags
& NDR_OUT
) {
21080 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
21081 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21082 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21083 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21084 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21085 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21087 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21088 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21090 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21092 return NDR_ERR_SUCCESS
;
21095 _PUBLIC_
void ndr_print_spoolss_EnumMonitors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumMonitors
*r
)
21097 uint32_t cntr_info_1
;
21098 ndr_print_struct(ndr
, name
, "spoolss_EnumMonitors");
21100 if (flags
& NDR_SET_VALUES
) {
21101 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21103 if (flags
& NDR_IN
) {
21104 ndr_print_struct(ndr
, "in", "spoolss_EnumMonitors");
21106 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
21108 if (r
->in
.servername
) {
21109 ndr_print_string(ndr
, "servername", r
->in
.servername
);
21112 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21113 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21115 if (r
->in
.buffer
) {
21116 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21119 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21122 if (flags
& NDR_OUT
) {
21123 ndr_print_struct(ndr
, "out", "spoolss_EnumMonitors");
21125 ndr_print_ptr(ndr
, "count", r
->out
.count
);
21127 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
21129 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21132 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
21134 for (cntr_info_1
=0;cntr_info_1
<*r
->out
.count
;cntr_info_1
++) {
21136 if (asprintf(&idx_1
, "[%d]", cntr_info_1
) != -1) {
21137 ndr_print_set_switch_value(ndr
, &r
->out
.info
[cntr_info_1
], r
->in
.level
);
21138 ndr_print_spoolss_MonitorInfo(ndr
, "info", &r
->out
.info
[cntr_info_1
]);
21145 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21147 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21149 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21155 static enum ndr_err_code
ndr_push_spoolss_AddPort(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPort
*r
)
21157 if (flags
& NDR_IN
) {
21158 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
21159 if (r
->in
.server_name
) {
21160 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
21161 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
21163 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
));
21165 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
21166 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
21167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21168 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
21169 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
));
21171 if (flags
& NDR_OUT
) {
21172 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21174 return NDR_ERR_SUCCESS
;
21177 static enum ndr_err_code
ndr_pull_spoolss_AddPort(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPort
*r
)
21179 uint32_t _ptr_server_name
;
21180 TALLOC_CTX
*_mem_save_server_name_0
;
21181 if (flags
& NDR_IN
) {
21182 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
21183 if (_ptr_server_name
) {
21184 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
21186 r
->in
.server_name
= NULL
;
21188 if (r
->in
.server_name
) {
21189 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21190 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
21191 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
21192 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
21193 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
21194 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
21196 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
21197 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
21198 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
21200 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
21201 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.monitor_name
));
21202 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.monitor_name
));
21203 if (ndr_get_array_length(ndr
, &r
->in
.monitor_name
) > ndr_get_array_size(ndr
, &r
->in
.monitor_name
)) {
21204 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.monitor_name
), ndr_get_array_length(ndr
, &r
->in
.monitor_name
));
21206 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.monitor_name
), sizeof(uint16_t)));
21207 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.monitor_name
, ndr_get_array_length(ndr
, &r
->in
.monitor_name
), sizeof(uint16_t), CH_UTF16
));
21209 if (flags
& NDR_OUT
) {
21210 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21212 return NDR_ERR_SUCCESS
;
21215 _PUBLIC_
void ndr_print_spoolss_AddPort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPort
*r
)
21217 ndr_print_struct(ndr
, name
, "spoolss_AddPort");
21219 if (flags
& NDR_SET_VALUES
) {
21220 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21222 if (flags
& NDR_IN
) {
21223 ndr_print_struct(ndr
, "in", "spoolss_AddPort");
21225 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
21227 if (r
->in
.server_name
) {
21228 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
21231 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
21232 ndr_print_string(ndr
, "monitor_name", r
->in
.monitor_name
);
21235 if (flags
& NDR_OUT
) {
21236 ndr_print_struct(ndr
, "out", "spoolss_AddPort");
21238 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21244 static enum ndr_err_code
ndr_push_spoolss_ConfigurePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_ConfigurePort
*r
)
21246 if (flags
& NDR_IN
) {
21248 if (flags
& NDR_OUT
) {
21249 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21251 return NDR_ERR_SUCCESS
;
21254 static enum ndr_err_code
ndr_pull_spoolss_ConfigurePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_ConfigurePort
*r
)
21256 if (flags
& NDR_IN
) {
21258 if (flags
& NDR_OUT
) {
21259 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21261 return NDR_ERR_SUCCESS
;
21264 _PUBLIC_
void ndr_print_spoolss_ConfigurePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ConfigurePort
*r
)
21266 ndr_print_struct(ndr
, name
, "spoolss_ConfigurePort");
21268 if (flags
& NDR_SET_VALUES
) {
21269 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21271 if (flags
& NDR_IN
) {
21272 ndr_print_struct(ndr
, "in", "spoolss_ConfigurePort");
21276 if (flags
& NDR_OUT
) {
21277 ndr_print_struct(ndr
, "out", "spoolss_ConfigurePort");
21279 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21285 static enum ndr_err_code
ndr_push_spoolss_DeletePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePort
*r
)
21287 if (flags
& NDR_IN
) {
21289 if (flags
& NDR_OUT
) {
21290 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21292 return NDR_ERR_SUCCESS
;
21295 static enum ndr_err_code
ndr_pull_spoolss_DeletePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePort
*r
)
21297 if (flags
& NDR_IN
) {
21299 if (flags
& NDR_OUT
) {
21300 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21302 return NDR_ERR_SUCCESS
;
21305 _PUBLIC_
void ndr_print_spoolss_DeletePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePort
*r
)
21307 ndr_print_struct(ndr
, name
, "spoolss_DeletePort");
21309 if (flags
& NDR_SET_VALUES
) {
21310 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21312 if (flags
& NDR_IN
) {
21313 ndr_print_struct(ndr
, "in", "spoolss_DeletePort");
21317 if (flags
& NDR_OUT
) {
21318 ndr_print_struct(ndr
, "out", "spoolss_DeletePort");
21320 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21326 static enum ndr_err_code
ndr_push_spoolss_CreatePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
21328 if (flags
& NDR_IN
) {
21330 if (flags
& NDR_OUT
) {
21331 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21333 return NDR_ERR_SUCCESS
;
21336 static enum ndr_err_code
ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_CreatePrinterIC
*r
)
21338 if (flags
& NDR_IN
) {
21340 if (flags
& NDR_OUT
) {
21341 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21343 return NDR_ERR_SUCCESS
;
21346 _PUBLIC_
void ndr_print_spoolss_CreatePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
21348 ndr_print_struct(ndr
, name
, "spoolss_CreatePrinterIC");
21350 if (flags
& NDR_SET_VALUES
) {
21351 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21353 if (flags
& NDR_IN
) {
21354 ndr_print_struct(ndr
, "in", "spoolss_CreatePrinterIC");
21358 if (flags
& NDR_OUT
) {
21359 ndr_print_struct(ndr
, "out", "spoolss_CreatePrinterIC");
21361 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21367 static enum ndr_err_code
ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
21369 if (flags
& NDR_IN
) {
21371 if (flags
& NDR_OUT
) {
21372 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21374 return NDR_ERR_SUCCESS
;
21377 static enum ndr_err_code
ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
21379 if (flags
& NDR_IN
) {
21381 if (flags
& NDR_OUT
) {
21382 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21384 return NDR_ERR_SUCCESS
;
21387 _PUBLIC_
void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
21389 ndr_print_struct(ndr
, name
, "spoolss_PlayGDIScriptOnPrinterIC");
21391 if (flags
& NDR_SET_VALUES
) {
21392 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21394 if (flags
& NDR_IN
) {
21395 ndr_print_struct(ndr
, "in", "spoolss_PlayGDIScriptOnPrinterIC");
21399 if (flags
& NDR_OUT
) {
21400 ndr_print_struct(ndr
, "out", "spoolss_PlayGDIScriptOnPrinterIC");
21402 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21408 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
21410 if (flags
& NDR_IN
) {
21412 if (flags
& NDR_OUT
) {
21413 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21415 return NDR_ERR_SUCCESS
;
21418 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterIC
*r
)
21420 if (flags
& NDR_IN
) {
21422 if (flags
& NDR_OUT
) {
21423 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21425 return NDR_ERR_SUCCESS
;
21428 _PUBLIC_
void ndr_print_spoolss_DeletePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
21430 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterIC");
21432 if (flags
& NDR_SET_VALUES
) {
21433 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21435 if (flags
& NDR_IN
) {
21436 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterIC");
21440 if (flags
& NDR_OUT
) {
21441 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterIC");
21443 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21449 static enum ndr_err_code
ndr_push_spoolss_AddPrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
21451 if (flags
& NDR_IN
) {
21453 if (flags
& NDR_OUT
) {
21454 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21456 return NDR_ERR_SUCCESS
;
21459 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterConnection
*r
)
21461 if (flags
& NDR_IN
) {
21463 if (flags
& NDR_OUT
) {
21464 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21466 return NDR_ERR_SUCCESS
;
21469 _PUBLIC_
void ndr_print_spoolss_AddPrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
21471 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterConnection");
21473 if (flags
& NDR_SET_VALUES
) {
21474 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21476 if (flags
& NDR_IN
) {
21477 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterConnection");
21481 if (flags
& NDR_OUT
) {
21482 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterConnection");
21484 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21490 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
21492 if (flags
& NDR_IN
) {
21494 if (flags
& NDR_OUT
) {
21495 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21497 return NDR_ERR_SUCCESS
;
21500 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterConnection
*r
)
21502 if (flags
& NDR_IN
) {
21504 if (flags
& NDR_OUT
) {
21505 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21507 return NDR_ERR_SUCCESS
;
21510 _PUBLIC_
void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
21512 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterConnection");
21514 if (flags
& NDR_SET_VALUES
) {
21515 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21517 if (flags
& NDR_IN
) {
21518 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterConnection");
21522 if (flags
& NDR_OUT
) {
21523 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterConnection");
21525 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21531 static enum ndr_err_code
ndr_push_spoolss_PrinterMessageBox(struct ndr_push
*ndr
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
21533 if (flags
& NDR_IN
) {
21535 if (flags
& NDR_OUT
) {
21536 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21538 return NDR_ERR_SUCCESS
;
21541 static enum ndr_err_code
ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull
*ndr
, int flags
, struct spoolss_PrinterMessageBox
*r
)
21543 if (flags
& NDR_IN
) {
21545 if (flags
& NDR_OUT
) {
21546 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21548 return NDR_ERR_SUCCESS
;
21551 _PUBLIC_
void ndr_print_spoolss_PrinterMessageBox(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
21553 ndr_print_struct(ndr
, name
, "spoolss_PrinterMessageBox");
21555 if (flags
& NDR_SET_VALUES
) {
21556 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21558 if (flags
& NDR_IN
) {
21559 ndr_print_struct(ndr
, "in", "spoolss_PrinterMessageBox");
21563 if (flags
& NDR_OUT
) {
21564 ndr_print_struct(ndr
, "out", "spoolss_PrinterMessageBox");
21566 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21572 static enum ndr_err_code
ndr_push_spoolss_AddMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddMonitor
*r
)
21574 if (flags
& NDR_IN
) {
21576 if (flags
& NDR_OUT
) {
21577 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21579 return NDR_ERR_SUCCESS
;
21582 static enum ndr_err_code
ndr_pull_spoolss_AddMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddMonitor
*r
)
21584 if (flags
& NDR_IN
) {
21586 if (flags
& NDR_OUT
) {
21587 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21589 return NDR_ERR_SUCCESS
;
21592 _PUBLIC_
void ndr_print_spoolss_AddMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddMonitor
*r
)
21594 ndr_print_struct(ndr
, name
, "spoolss_AddMonitor");
21596 if (flags
& NDR_SET_VALUES
) {
21597 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21599 if (flags
& NDR_IN
) {
21600 ndr_print_struct(ndr
, "in", "spoolss_AddMonitor");
21604 if (flags
& NDR_OUT
) {
21605 ndr_print_struct(ndr
, "out", "spoolss_AddMonitor");
21607 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21613 static enum ndr_err_code
ndr_push_spoolss_DeleteMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteMonitor
*r
)
21615 if (flags
& NDR_IN
) {
21617 if (flags
& NDR_OUT
) {
21618 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21620 return NDR_ERR_SUCCESS
;
21623 static enum ndr_err_code
ndr_pull_spoolss_DeleteMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteMonitor
*r
)
21625 if (flags
& NDR_IN
) {
21627 if (flags
& NDR_OUT
) {
21628 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21630 return NDR_ERR_SUCCESS
;
21633 _PUBLIC_
void ndr_print_spoolss_DeleteMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteMonitor
*r
)
21635 ndr_print_struct(ndr
, name
, "spoolss_DeleteMonitor");
21637 if (flags
& NDR_SET_VALUES
) {
21638 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21640 if (flags
& NDR_IN
) {
21641 ndr_print_struct(ndr
, "in", "spoolss_DeleteMonitor");
21645 if (flags
& NDR_OUT
) {
21646 ndr_print_struct(ndr
, "out", "spoolss_DeleteMonitor");
21648 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21654 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
21656 if (flags
& NDR_IN
) {
21658 if (flags
& NDR_OUT
) {
21659 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21661 return NDR_ERR_SUCCESS
;
21664 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProcessor
*r
)
21666 if (flags
& NDR_IN
) {
21668 if (flags
& NDR_OUT
) {
21669 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21671 return NDR_ERR_SUCCESS
;
21674 _PUBLIC_
void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
21676 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProcessor");
21678 if (flags
& NDR_SET_VALUES
) {
21679 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21681 if (flags
& NDR_IN
) {
21682 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProcessor");
21686 if (flags
& NDR_OUT
) {
21687 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProcessor");
21689 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21695 static enum ndr_err_code
ndr_push_spoolss_AddPrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
21697 if (flags
& NDR_IN
) {
21699 if (flags
& NDR_OUT
) {
21700 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21702 return NDR_ERR_SUCCESS
;
21705 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProvidor
*r
)
21707 if (flags
& NDR_IN
) {
21709 if (flags
& NDR_OUT
) {
21710 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21712 return NDR_ERR_SUCCESS
;
21715 _PUBLIC_
void ndr_print_spoolss_AddPrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
21717 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProvidor");
21719 if (flags
& NDR_SET_VALUES
) {
21720 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21722 if (flags
& NDR_IN
) {
21723 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProvidor");
21727 if (flags
& NDR_OUT
) {
21728 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProvidor");
21730 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21736 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
21738 if (flags
& NDR_IN
) {
21740 if (flags
& NDR_OUT
) {
21741 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21743 return NDR_ERR_SUCCESS
;
21746 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProvidor
*r
)
21748 if (flags
& NDR_IN
) {
21750 if (flags
& NDR_OUT
) {
21751 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21753 return NDR_ERR_SUCCESS
;
21756 _PUBLIC_
void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
21758 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProvidor");
21760 if (flags
& NDR_SET_VALUES
) {
21761 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21763 if (flags
& NDR_IN
) {
21764 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProvidor");
21768 if (flags
& NDR_OUT
) {
21769 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProvidor");
21771 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21777 static enum ndr_err_code
ndr_push_spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrintProcDataTypes
*r
)
21779 if (flags
& NDR_IN
) {
21781 if (flags
& NDR_OUT
) {
21782 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21784 return NDR_ERR_SUCCESS
;
21787 static enum ndr_err_code
ndr_pull_spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrintProcDataTypes
*r
)
21789 if (flags
& NDR_IN
) {
21791 if (flags
& NDR_OUT
) {
21792 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21794 return NDR_ERR_SUCCESS
;
21797 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcDataTypes
*r
)
21799 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcDataTypes");
21801 if (flags
& NDR_SET_VALUES
) {
21802 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21804 if (flags
& NDR_IN
) {
21805 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcDataTypes");
21809 if (flags
& NDR_OUT
) {
21810 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcDataTypes");
21812 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21818 static enum ndr_err_code
ndr_push_spoolss_ResetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinter
*r
)
21820 if (flags
& NDR_IN
) {
21821 if (r
->in
.handle
== NULL
) {
21822 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21824 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21825 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_type
));
21826 if (r
->in
.data_type
) {
21827 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
21828 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21829 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
21830 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
));
21832 if (r
->in
.devmode_ctr
== NULL
) {
21833 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21835 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
21837 if (flags
& NDR_OUT
) {
21838 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21840 return NDR_ERR_SUCCESS
;
21843 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinter
*r
)
21845 uint32_t _ptr_data_type
;
21846 TALLOC_CTX
*_mem_save_handle_0
;
21847 TALLOC_CTX
*_mem_save_data_type_0
;
21848 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
21849 if (flags
& NDR_IN
) {
21850 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21851 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21853 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21854 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21855 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21856 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21857 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
21858 if (_ptr_data_type
) {
21859 NDR_PULL_ALLOC(ndr
, r
->in
.data_type
);
21861 r
->in
.data_type
= NULL
;
21863 if (r
->in
.data_type
) {
21864 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21865 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_type
, 0);
21866 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data_type
));
21867 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data_type
));
21868 if (ndr_get_array_length(ndr
, &r
->in
.data_type
) > ndr_get_array_size(ndr
, &r
->in
.data_type
)) {
21869 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.data_type
), ndr_get_array_length(ndr
, &r
->in
.data_type
));
21871 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.data_type
), sizeof(uint16_t)));
21872 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.data_type
, ndr_get_array_length(ndr
, &r
->in
.data_type
), sizeof(uint16_t), CH_UTF16
));
21873 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
21875 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21876 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
21878 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21879 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21880 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
21881 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21883 if (flags
& NDR_OUT
) {
21884 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21886 return NDR_ERR_SUCCESS
;
21889 _PUBLIC_
void ndr_print_spoolss_ResetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinter
*r
)
21891 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinter");
21893 if (flags
& NDR_SET_VALUES
) {
21894 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21896 if (flags
& NDR_IN
) {
21897 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinter");
21899 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21901 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21903 ndr_print_ptr(ndr
, "data_type", r
->in
.data_type
);
21905 if (r
->in
.data_type
) {
21906 ndr_print_string(ndr
, "data_type", r
->in
.data_type
);
21909 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
21911 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
21915 if (flags
& NDR_OUT
) {
21916 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinter");
21918 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21924 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver2(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
21926 if (flags
& NDR_IN
) {
21927 if (r
->in
.handle
== NULL
) {
21928 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21930 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21931 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
21932 if (r
->in
.architecture
) {
21933 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21935 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21936 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21938 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21939 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21940 if (r
->in
.buffer
) {
21941 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21943 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21944 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_major_version
));
21945 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_minor_version
));
21947 if (flags
& NDR_OUT
) {
21948 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21951 struct ndr_push
*_ndr_info
;
21952 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21953 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21954 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21955 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21958 if (r
->out
.needed
== NULL
) {
21959 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21962 if (r
->out
.server_major_version
== NULL
) {
21963 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_major_version
));
21966 if (r
->out
.server_minor_version
== NULL
) {
21967 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_minor_version
));
21970 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21972 return NDR_ERR_SUCCESS
;
21975 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver2
*r
)
21977 uint32_t _ptr_architecture
;
21978 uint32_t _ptr_buffer
;
21979 uint32_t _ptr_info
;
21980 TALLOC_CTX
*_mem_save_handle_0
;
21981 TALLOC_CTX
*_mem_save_architecture_0
;
21982 TALLOC_CTX
*_mem_save_buffer_0
;
21983 TALLOC_CTX
*_mem_save_info_0
;
21984 TALLOC_CTX
*_mem_save_needed_0
;
21985 TALLOC_CTX
*_mem_save_server_major_version_0
;
21986 TALLOC_CTX
*_mem_save_server_minor_version_0
;
21987 if (flags
& NDR_IN
) {
21988 ZERO_STRUCT(r
->out
);
21990 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21991 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21993 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21994 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21995 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21996 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21997 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
21998 if (_ptr_architecture
) {
21999 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
22001 r
->in
.architecture
= NULL
;
22003 if (r
->in
.architecture
) {
22004 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22005 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
22006 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
22007 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
22008 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
22009 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.architecture
), ndr_get_array_length(ndr
, &r
->in
.architecture
));
22011 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
22012 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
22013 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
22015 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22016 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22018 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22020 r
->in
.buffer
= NULL
;
22022 if (r
->in
.buffer
) {
22023 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22024 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22025 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22026 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22028 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22029 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_major_version
));
22030 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_minor_version
));
22031 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22032 ZERO_STRUCTP(r
->out
.needed
);
22033 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
22034 ZERO_STRUCTP(r
->out
.server_major_version
);
22035 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
22036 ZERO_STRUCTP(r
->out
.server_minor_version
);
22038 if (flags
& NDR_OUT
) {
22039 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22041 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22043 r
->out
.info
= NULL
;
22046 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22047 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22049 struct ndr_pull
*_ndr_info
;
22050 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22051 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22052 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
22053 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22055 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22057 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22058 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22060 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22061 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22062 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22063 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22064 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22065 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
22067 _mem_save_server_major_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22068 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_major_version
, LIBNDR_FLAG_REF_ALLOC
);
22069 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_major_version
));
22070 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_major_version_0
, LIBNDR_FLAG_REF_ALLOC
);
22071 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22072 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
22074 _mem_save_server_minor_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22075 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_minor_version
, LIBNDR_FLAG_REF_ALLOC
);
22076 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_minor_version
));
22077 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_minor_version_0
, LIBNDR_FLAG_REF_ALLOC
);
22078 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22080 return NDR_ERR_SUCCESS
;
22083 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
22085 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver2");
22087 if (flags
& NDR_SET_VALUES
) {
22088 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22090 if (flags
& NDR_IN
) {
22091 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver2");
22093 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22095 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22097 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
22099 if (r
->in
.architecture
) {
22100 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
22103 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22104 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22106 if (r
->in
.buffer
) {
22107 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22110 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22111 ndr_print_uint32(ndr
, "client_major_version", r
->in
.client_major_version
);
22112 ndr_print_uint32(ndr
, "client_minor_version", r
->in
.client_minor_version
);
22115 if (flags
& NDR_OUT
) {
22116 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver2");
22118 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22121 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22122 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
22125 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22127 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22129 ndr_print_ptr(ndr
, "server_major_version", r
->out
.server_major_version
);
22131 ndr_print_uint32(ndr
, "server_major_version", *r
->out
.server_major_version
);
22133 ndr_print_ptr(ndr
, "server_minor_version", r
->out
.server_minor_version
);
22135 ndr_print_uint32(ndr
, "server_minor_version", *r
->out
.server_minor_version
);
22137 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22143 static enum ndr_err_code
ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
22145 if (flags
& NDR_IN
) {
22147 if (flags
& NDR_OUT
) {
22148 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22150 return NDR_ERR_SUCCESS
;
22153 static enum ndr_err_code
ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindFirstPrinterChangeNotification
*r
)
22155 if (flags
& NDR_IN
) {
22157 if (flags
& NDR_OUT
) {
22158 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22160 return NDR_ERR_SUCCESS
;
22163 _PUBLIC_
void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
22165 ndr_print_struct(ndr
, name
, "spoolss_FindFirstPrinterChangeNotification");
22167 if (flags
& NDR_SET_VALUES
) {
22168 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22170 if (flags
& NDR_IN
) {
22171 ndr_print_struct(ndr
, "in", "spoolss_FindFirstPrinterChangeNotification");
22175 if (flags
& NDR_OUT
) {
22176 ndr_print_struct(ndr
, "out", "spoolss_FindFirstPrinterChangeNotification");
22178 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22184 static enum ndr_err_code
ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
22186 if (flags
& NDR_IN
) {
22188 if (flags
& NDR_OUT
) {
22189 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22191 return NDR_ERR_SUCCESS
;
22194 static enum ndr_err_code
ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindNextPrinterChangeNotification
*r
)
22196 if (flags
& NDR_IN
) {
22198 if (flags
& NDR_OUT
) {
22199 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22201 return NDR_ERR_SUCCESS
;
22204 _PUBLIC_
void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
22206 ndr_print_struct(ndr
, name
, "spoolss_FindNextPrinterChangeNotification");
22208 if (flags
& NDR_SET_VALUES
) {
22209 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22211 if (flags
& NDR_IN
) {
22212 ndr_print_struct(ndr
, "in", "spoolss_FindNextPrinterChangeNotification");
22216 if (flags
& NDR_OUT
) {
22217 ndr_print_struct(ndr
, "out", "spoolss_FindNextPrinterChangeNotification");
22219 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22225 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
22227 if (flags
& NDR_IN
) {
22228 if (r
->in
.handle
== NULL
) {
22229 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22231 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22233 if (flags
& NDR_OUT
) {
22234 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22236 return NDR_ERR_SUCCESS
;
22239 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindClosePrinterNotify
*r
)
22241 TALLOC_CTX
*_mem_save_handle_0
;
22242 if (flags
& NDR_IN
) {
22243 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22244 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22246 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22247 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22248 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22249 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22251 if (flags
& NDR_OUT
) {
22252 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22254 return NDR_ERR_SUCCESS
;
22257 _PUBLIC_
void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
22259 ndr_print_struct(ndr
, name
, "spoolss_FindClosePrinterNotify");
22261 if (flags
& NDR_SET_VALUES
) {
22262 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22264 if (flags
& NDR_IN
) {
22265 ndr_print_struct(ndr
, "in", "spoolss_FindClosePrinterNotify");
22267 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22269 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22273 if (flags
& NDR_OUT
) {
22274 ndr_print_struct(ndr
, "out", "spoolss_FindClosePrinterNotify");
22276 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22282 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
22284 if (flags
& NDR_IN
) {
22286 if (flags
& NDR_OUT
) {
22287 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22289 return NDR_ERR_SUCCESS
;
22292 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
22294 if (flags
& NDR_IN
) {
22296 if (flags
& NDR_OUT
) {
22297 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22299 return NDR_ERR_SUCCESS
;
22302 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
22304 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
22306 if (flags
& NDR_SET_VALUES
) {
22307 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22309 if (flags
& NDR_IN
) {
22310 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
22314 if (flags
& NDR_OUT
) {
22315 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
22317 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22323 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
22325 if (flags
& NDR_IN
) {
22326 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
22327 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22328 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
22329 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
));
22330 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
22331 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
22332 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
22333 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22334 if (r
->in
.buffer
) {
22335 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
22336 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
22339 if (flags
& NDR_OUT
) {
22340 if (r
->out
.handle
== NULL
) {
22341 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22343 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
22344 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22346 return NDR_ERR_SUCCESS
;
22349 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyOpenPrinter
*r
)
22351 uint32_t _ptr_buffer
;
22352 TALLOC_CTX
*_mem_save_buffer_0
;
22353 TALLOC_CTX
*_mem_save_handle_0
;
22354 if (flags
& NDR_IN
) {
22355 ZERO_STRUCT(r
->out
);
22357 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
22358 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
22359 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
22360 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
22362 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
22363 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
22364 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
22365 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
22366 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
22367 if (r
->in
.bufsize
> 512) {
22368 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
22370 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22372 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22374 r
->in
.buffer
= NULL
;
22376 if (r
->in
.buffer
) {
22377 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22378 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22379 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
22380 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
22381 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
22382 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22384 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
22385 ZERO_STRUCTP(r
->out
.handle
);
22386 if (r
->in
.buffer
) {
22387 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
22390 if (flags
& NDR_OUT
) {
22391 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22392 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
22394 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22395 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22396 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
22397 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22398 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22400 return NDR_ERR_SUCCESS
;
22403 _PUBLIC_
void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
22405 ndr_print_struct(ndr
, name
, "spoolss_ReplyOpenPrinter");
22407 if (flags
& NDR_SET_VALUES
) {
22408 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22410 if (flags
& NDR_IN
) {
22411 ndr_print_struct(ndr
, "in", "spoolss_ReplyOpenPrinter");
22413 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
22414 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
22415 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
22416 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
22417 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22419 if (r
->in
.buffer
) {
22420 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
22425 if (flags
& NDR_OUT
) {
22426 ndr_print_struct(ndr
, "out", "spoolss_ReplyOpenPrinter");
22428 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
22430 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
22432 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22438 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
22440 if (flags
& NDR_IN
) {
22441 if (r
->in
.handle
== NULL
) {
22442 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22444 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22445 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
22446 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
22447 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22448 if (r
->in
.buffer
) {
22449 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
22450 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
22453 if (flags
& NDR_OUT
) {
22454 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22456 return NDR_ERR_SUCCESS
;
22459 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinter
*r
)
22461 uint32_t _ptr_buffer
;
22462 TALLOC_CTX
*_mem_save_handle_0
;
22463 TALLOC_CTX
*_mem_save_buffer_0
;
22464 if (flags
& NDR_IN
) {
22465 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22466 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22468 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22469 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22470 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22471 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22472 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
22473 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
22474 if (r
->in
.bufsize
> 512) {
22475 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
22477 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22479 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22481 r
->in
.buffer
= NULL
;
22483 if (r
->in
.buffer
) {
22484 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22485 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22486 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
22487 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
22488 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
22489 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22491 if (r
->in
.buffer
) {
22492 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
22495 if (flags
& NDR_OUT
) {
22496 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22498 return NDR_ERR_SUCCESS
;
22501 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
22503 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinter");
22505 if (flags
& NDR_SET_VALUES
) {
22506 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22508 if (flags
& NDR_IN
) {
22509 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinter");
22511 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22513 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22515 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
22516 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
22517 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22519 if (r
->in
.buffer
) {
22520 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
22525 if (flags
& NDR_OUT
) {
22526 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinter");
22528 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22534 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
22536 if (flags
& NDR_IN
) {
22537 if (r
->in
.handle
== NULL
) {
22538 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22540 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22542 if (flags
& NDR_OUT
) {
22543 if (r
->out
.handle
== NULL
) {
22544 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22546 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
22547 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22549 return NDR_ERR_SUCCESS
;
22552 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyClosePrinter
*r
)
22554 TALLOC_CTX
*_mem_save_handle_0
;
22555 if (flags
& NDR_IN
) {
22556 ZERO_STRUCT(r
->out
);
22558 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22559 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22561 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22562 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22563 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22564 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22565 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
22566 *r
->out
.handle
= *r
->in
.handle
;
22568 if (flags
& NDR_OUT
) {
22569 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22570 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
22572 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22573 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22574 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
22575 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22576 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22578 return NDR_ERR_SUCCESS
;
22581 _PUBLIC_
void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
22583 ndr_print_struct(ndr
, name
, "spoolss_ReplyClosePrinter");
22585 if (flags
& NDR_SET_VALUES
) {
22586 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22588 if (flags
& NDR_IN
) {
22589 ndr_print_struct(ndr
, "in", "spoolss_ReplyClosePrinter");
22591 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22593 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22597 if (flags
& NDR_OUT
) {
22598 ndr_print_struct(ndr
, "out", "spoolss_ReplyClosePrinter");
22600 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
22602 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
22604 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22610 static enum ndr_err_code
ndr_push_spoolss_AddPortEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPortEx
*r
)
22612 if (flags
& NDR_IN
) {
22614 if (flags
& NDR_OUT
) {
22615 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22617 return NDR_ERR_SUCCESS
;
22620 static enum ndr_err_code
ndr_pull_spoolss_AddPortEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPortEx
*r
)
22622 if (flags
& NDR_IN
) {
22624 if (flags
& NDR_OUT
) {
22625 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22627 return NDR_ERR_SUCCESS
;
22630 _PUBLIC_
void ndr_print_spoolss_AddPortEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPortEx
*r
)
22632 ndr_print_struct(ndr
, name
, "spoolss_AddPortEx");
22634 if (flags
& NDR_SET_VALUES
) {
22635 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22637 if (flags
& NDR_IN
) {
22638 ndr_print_struct(ndr
, "in", "spoolss_AddPortEx");
22642 if (flags
& NDR_OUT
) {
22643 ndr_print_struct(ndr
, "out", "spoolss_AddPortEx");
22645 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22651 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
22653 if (flags
& NDR_IN
) {
22655 if (flags
& NDR_OUT
) {
22656 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22658 return NDR_ERR_SUCCESS
;
22661 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
22663 if (flags
& NDR_IN
) {
22665 if (flags
& NDR_OUT
) {
22666 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22668 return NDR_ERR_SUCCESS
;
22671 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
22673 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotification");
22675 if (flags
& NDR_SET_VALUES
) {
22676 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22678 if (flags
& NDR_IN
) {
22679 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
22683 if (flags
& NDR_OUT
) {
22684 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
22686 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22692 static enum ndr_err_code
ndr_push_spoolss_SpoolerInit(struct ndr_push
*ndr
, int flags
, const struct spoolss_SpoolerInit
*r
)
22694 if (flags
& NDR_IN
) {
22696 if (flags
& NDR_OUT
) {
22697 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22699 return NDR_ERR_SUCCESS
;
22702 static enum ndr_err_code
ndr_pull_spoolss_SpoolerInit(struct ndr_pull
*ndr
, int flags
, struct spoolss_SpoolerInit
*r
)
22704 if (flags
& NDR_IN
) {
22706 if (flags
& NDR_OUT
) {
22707 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22709 return NDR_ERR_SUCCESS
;
22712 _PUBLIC_
void ndr_print_spoolss_SpoolerInit(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SpoolerInit
*r
)
22714 ndr_print_struct(ndr
, name
, "spoolss_SpoolerInit");
22716 if (flags
& NDR_SET_VALUES
) {
22717 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22719 if (flags
& NDR_IN
) {
22720 ndr_print_struct(ndr
, "in", "spoolss_SpoolerInit");
22724 if (flags
& NDR_OUT
) {
22725 ndr_print_struct(ndr
, "out", "spoolss_SpoolerInit");
22727 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22733 static enum ndr_err_code
ndr_push_spoolss_ResetPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
22735 if (flags
& NDR_IN
) {
22737 if (flags
& NDR_OUT
) {
22738 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22740 return NDR_ERR_SUCCESS
;
22743 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinterEx
*r
)
22745 if (flags
& NDR_IN
) {
22747 if (flags
& NDR_OUT
) {
22748 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22750 return NDR_ERR_SUCCESS
;
22753 _PUBLIC_
void ndr_print_spoolss_ResetPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
22755 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinterEx");
22757 if (flags
& NDR_SET_VALUES
) {
22758 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22760 if (flags
& NDR_IN
) {
22761 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinterEx");
22765 if (flags
& NDR_OUT
) {
22766 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinterEx");
22768 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22774 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
22776 if (flags
& NDR_IN
) {
22777 if (r
->in
.handle
== NULL
) {
22778 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22780 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22781 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
22782 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.options
));
22783 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.local_machine
));
22784 if (r
->in
.local_machine
) {
22785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
22786 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22787 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
22788 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
));
22790 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
22791 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.notify_options
));
22792 if (r
->in
.notify_options
) {
22793 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
22796 if (flags
& NDR_OUT
) {
22797 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22799 return NDR_ERR_SUCCESS
;
22802 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
22804 uint32_t _ptr_local_machine
;
22805 uint32_t _ptr_notify_options
;
22806 TALLOC_CTX
*_mem_save_handle_0
;
22807 TALLOC_CTX
*_mem_save_local_machine_0
;
22808 TALLOC_CTX
*_mem_save_notify_options_0
;
22809 if (flags
& NDR_IN
) {
22810 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22811 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22813 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22814 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22815 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22816 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22817 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
22818 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.options
));
22819 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_local_machine
));
22820 if (_ptr_local_machine
) {
22821 NDR_PULL_ALLOC(ndr
, r
->in
.local_machine
);
22823 r
->in
.local_machine
= NULL
;
22825 if (r
->in
.local_machine
) {
22826 _mem_save_local_machine_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22827 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.local_machine
, 0);
22828 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.local_machine
));
22829 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.local_machine
));
22830 if (ndr_get_array_length(ndr
, &r
->in
.local_machine
) > ndr_get_array_size(ndr
, &r
->in
.local_machine
)) {
22831 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.local_machine
), ndr_get_array_length(ndr
, &r
->in
.local_machine
));
22833 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.local_machine
), sizeof(uint16_t)));
22834 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.local_machine
, ndr_get_array_length(ndr
, &r
->in
.local_machine
), sizeof(uint16_t), CH_UTF16
));
22835 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_local_machine_0
, 0);
22837 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
22838 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_options
));
22839 if (_ptr_notify_options
) {
22840 NDR_PULL_ALLOC(ndr
, r
->in
.notify_options
);
22842 r
->in
.notify_options
= NULL
;
22844 if (r
->in
.notify_options
) {
22845 _mem_save_notify_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22846 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.notify_options
, 0);
22847 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
22848 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_options_0
, 0);
22851 if (flags
& NDR_OUT
) {
22852 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22854 return NDR_ERR_SUCCESS
;
22857 _PUBLIC_
void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
22859 ndr_print_struct(ndr
, name
, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
22861 if (flags
& NDR_SET_VALUES
) {
22862 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22864 if (flags
& NDR_IN
) {
22865 ndr_print_struct(ndr
, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
22867 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22869 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22871 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
22872 ndr_print_uint32(ndr
, "options", r
->in
.options
);
22873 ndr_print_ptr(ndr
, "local_machine", r
->in
.local_machine
);
22875 if (r
->in
.local_machine
) {
22876 ndr_print_string(ndr
, "local_machine", r
->in
.local_machine
);
22879 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
22880 ndr_print_ptr(ndr
, "notify_options", r
->in
.notify_options
);
22882 if (r
->in
.notify_options
) {
22883 ndr_print_spoolss_NotifyOption(ndr
, "notify_options", r
->in
.notify_options
);
22888 if (flags
& NDR_OUT
) {
22889 ndr_print_struct(ndr
, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
22891 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22897 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
22899 if (flags
& NDR_IN
) {
22900 if (r
->in
.handle
== NULL
) {
22901 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22903 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22904 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.color
));
22905 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
22906 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reply_type
));
22907 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
22908 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22910 if (flags
& NDR_OUT
) {
22911 if (r
->out
.reply_result
== NULL
) {
22912 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22914 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, *r
->out
.reply_result
));
22915 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22917 return NDR_ERR_SUCCESS
;
22920 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinterEx
*r
)
22922 TALLOC_CTX
*_mem_save_handle_0
;
22923 TALLOC_CTX
*_mem_save_reply_result_0
;
22924 if (flags
& NDR_IN
) {
22925 ZERO_STRUCT(r
->out
);
22927 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22928 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22930 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22931 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22932 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22933 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22934 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.color
));
22935 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
22936 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reply_type
));
22937 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
22938 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22939 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
22940 ZERO_STRUCTP(r
->out
.reply_result
);
22942 if (flags
& NDR_OUT
) {
22943 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22944 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
22946 _mem_save_reply_result_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22947 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.reply_result
, LIBNDR_FLAG_REF_ALLOC
);
22948 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, r
->out
.reply_result
));
22949 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_reply_result_0
, LIBNDR_FLAG_REF_ALLOC
);
22950 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22952 return NDR_ERR_SUCCESS
;
22955 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
22957 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinterEx");
22959 if (flags
& NDR_SET_VALUES
) {
22960 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22962 if (flags
& NDR_IN
) {
22963 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinterEx");
22965 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22967 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22969 ndr_print_uint32(ndr
, "color", r
->in
.color
);
22970 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
22971 ndr_print_uint32(ndr
, "reply_type", r
->in
.reply_type
);
22972 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
);
22973 ndr_print_spoolss_ReplyPrinterInfo(ndr
, "info", &r
->in
.info
);
22976 if (flags
& NDR_OUT
) {
22977 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinterEx");
22979 ndr_print_ptr(ndr
, "reply_result", r
->out
.reply_result
);
22981 ndr_print_spoolss_PrinterNotifyFlags(ndr
, "reply_result", *r
->out
.reply_result
);
22983 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22989 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
22991 if (flags
& NDR_IN
) {
22992 if (r
->in
.handle
== NULL
) {
22993 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22995 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22996 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.change_low
));
22997 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.options
));
22998 if (r
->in
.options
) {
22999 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
23002 if (flags
& NDR_OUT
) {
23003 if (r
->out
.info
== NULL
) {
23004 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23006 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
23007 if (*r
->out
.info
) {
23008 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
23010 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23012 return NDR_ERR_SUCCESS
;
23015 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
23017 uint32_t _ptr_options
;
23018 uint32_t _ptr_info
;
23019 TALLOC_CTX
*_mem_save_handle_0
;
23020 TALLOC_CTX
*_mem_save_options_0
;
23021 TALLOC_CTX
*_mem_save_info_0
;
23022 TALLOC_CTX
*_mem_save_info_1
;
23023 if (flags
& NDR_IN
) {
23024 ZERO_STRUCT(r
->out
);
23026 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23027 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23029 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23030 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23031 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23032 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23033 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_low
));
23034 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_options
));
23035 if (_ptr_options
) {
23036 NDR_PULL_ALLOC(ndr
, r
->in
.options
);
23038 r
->in
.options
= NULL
;
23040 if (r
->in
.options
) {
23041 _mem_save_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23042 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.options
, 0);
23043 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
23044 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_options_0
, 0);
23046 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23047 ZERO_STRUCTP(r
->out
.info
);
23049 if (flags
& NDR_OUT
) {
23050 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23051 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23053 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23054 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
23055 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23057 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
23059 *r
->out
.info
= NULL
;
23061 if (*r
->out
.info
) {
23062 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
23063 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
23064 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
23065 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
23067 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
23068 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23070 return NDR_ERR_SUCCESS
;
23073 _PUBLIC_
void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
23075 ndr_print_struct(ndr
, name
, "spoolss_RouterRefreshPrinterChangeNotify");
23077 if (flags
& NDR_SET_VALUES
) {
23078 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23080 if (flags
& NDR_IN
) {
23081 ndr_print_struct(ndr
, "in", "spoolss_RouterRefreshPrinterChangeNotify");
23083 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23085 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23087 ndr_print_uint32(ndr
, "change_low", r
->in
.change_low
);
23088 ndr_print_ptr(ndr
, "options", r
->in
.options
);
23090 if (r
->in
.options
) {
23091 ndr_print_spoolss_NotifyOption(ndr
, "options", r
->in
.options
);
23096 if (flags
& NDR_OUT
) {
23097 ndr_print_struct(ndr
, "out", "spoolss_RouterRefreshPrinterChangeNotify");
23099 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23101 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
23103 if (*r
->out
.info
) {
23104 ndr_print_spoolss_NotifyInfo(ndr
, "info", *r
->out
.info
);
23108 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23114 static enum ndr_err_code
ndr_push_spoolss_44(struct ndr_push
*ndr
, int flags
, const struct spoolss_44
*r
)
23116 if (flags
& NDR_IN
) {
23118 if (flags
& NDR_OUT
) {
23119 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23121 return NDR_ERR_SUCCESS
;
23124 static enum ndr_err_code
ndr_pull_spoolss_44(struct ndr_pull
*ndr
, int flags
, struct spoolss_44
*r
)
23126 if (flags
& NDR_IN
) {
23128 if (flags
& NDR_OUT
) {
23129 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23131 return NDR_ERR_SUCCESS
;
23134 _PUBLIC_
void ndr_print_spoolss_44(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_44
*r
)
23136 ndr_print_struct(ndr
, name
, "spoolss_44");
23138 if (flags
& NDR_SET_VALUES
) {
23139 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23141 if (flags
& NDR_IN
) {
23142 ndr_print_struct(ndr
, "in", "spoolss_44");
23146 if (flags
& NDR_OUT
) {
23147 ndr_print_struct(ndr
, "out", "spoolss_44");
23149 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23155 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
23157 if (flags
& NDR_IN
) {
23158 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
23159 if (r
->in
.printername
) {
23160 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
23161 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
23163 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23165 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
23166 if (r
->in
.datatype
) {
23167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
23168 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23169 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
23170 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23172 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
23173 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
23174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23175 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
23176 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
23178 if (flags
& NDR_OUT
) {
23179 if (r
->out
.handle
== NULL
) {
23180 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23182 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
23183 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23185 return NDR_ERR_SUCCESS
;
23188 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinterEx
*r
)
23190 uint32_t _ptr_printername
;
23191 uint32_t _ptr_datatype
;
23192 TALLOC_CTX
*_mem_save_printername_0
;
23193 TALLOC_CTX
*_mem_save_datatype_0
;
23194 TALLOC_CTX
*_mem_save_handle_0
;
23195 if (flags
& NDR_IN
) {
23196 ZERO_STRUCT(r
->out
);
23198 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
23199 if (_ptr_printername
) {
23200 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
23202 r
->in
.printername
= NULL
;
23204 if (r
->in
.printername
) {
23205 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23206 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
23207 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
23208 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
23209 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
23210 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.printername
), ndr_get_array_length(ndr
, &r
->in
.printername
));
23212 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
23213 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
23214 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
23216 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
23217 if (_ptr_datatype
) {
23218 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
23220 r
->in
.datatype
= NULL
;
23222 if (r
->in
.datatype
) {
23223 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23224 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
23225 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
23226 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
23227 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
23228 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.datatype
), ndr_get_array_length(ndr
, &r
->in
.datatype
));
23230 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
23231 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
23232 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
23234 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
23235 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
23236 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23237 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
23238 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
23239 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
23240 ZERO_STRUCTP(r
->out
.handle
);
23242 if (flags
& NDR_OUT
) {
23243 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23244 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
23246 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23247 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23248 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
23249 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23250 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23252 return NDR_ERR_SUCCESS
;
23255 _PUBLIC_
void ndr_print_spoolss_OpenPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
23257 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinterEx");
23259 if (flags
& NDR_SET_VALUES
) {
23260 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23262 if (flags
& NDR_IN
) {
23263 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinterEx");
23265 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
23267 if (r
->in
.printername
) {
23268 ndr_print_string(ndr
, "printername", r
->in
.printername
);
23271 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
23273 if (r
->in
.datatype
) {
23274 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
23277 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
23278 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
23279 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23280 ndr_print_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
);
23281 ndr_print_spoolss_UserLevel(ndr
, "userlevel", &r
->in
.userlevel
);
23284 if (flags
& NDR_OUT
) {
23285 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinterEx");
23287 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
23289 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
23291 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23297 static enum ndr_err_code
ndr_push_spoolss_AddPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterEx
*r
)
23299 if (flags
& NDR_IN
) {
23300 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
23301 if (r
->in
.server
) {
23302 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
23303 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23304 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
23305 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23307 if (r
->in
.info_ctr
== NULL
) {
23308 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23310 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
23311 if (r
->in
.devmode_ctr
== NULL
) {
23312 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23314 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
23315 if (r
->in
.secdesc_ctr
== NULL
) {
23316 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23318 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
23319 if (r
->in
.userlevel_ctr
== NULL
) {
23320 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23322 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
23324 if (flags
& NDR_OUT
) {
23325 if (r
->out
.handle
== NULL
) {
23326 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23328 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
23329 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23331 return NDR_ERR_SUCCESS
;
23334 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterEx
*r
)
23336 uint32_t _ptr_server
;
23337 TALLOC_CTX
*_mem_save_server_0
;
23338 TALLOC_CTX
*_mem_save_info_ctr_0
;
23339 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
23340 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
23341 TALLOC_CTX
*_mem_save_userlevel_ctr_0
;
23342 TALLOC_CTX
*_mem_save_handle_0
;
23343 if (flags
& NDR_IN
) {
23344 ZERO_STRUCT(r
->out
);
23346 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
23348 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
23350 r
->in
.server
= NULL
;
23352 if (r
->in
.server
) {
23353 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23354 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
23355 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
23356 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
23357 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
23358 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
23360 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
23361 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
23362 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
23364 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23365 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
23367 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23368 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
23369 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
23370 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
23371 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23372 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
23374 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23375 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
23376 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
23377 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
23378 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23379 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
23381 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23382 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
23383 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
23384 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
23385 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23386 NDR_PULL_ALLOC(ndr
, r
->in
.userlevel_ctr
);
23388 _mem_save_userlevel_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23389 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.userlevel_ctr
, LIBNDR_FLAG_REF_ALLOC
);
23390 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
23391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_userlevel_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
23392 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
23393 ZERO_STRUCTP(r
->out
.handle
);
23395 if (flags
& NDR_OUT
) {
23396 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23397 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
23399 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23400 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23401 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
23402 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23403 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23405 return NDR_ERR_SUCCESS
;
23408 _PUBLIC_
void ndr_print_spoolss_AddPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterEx
*r
)
23410 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterEx");
23412 if (flags
& NDR_SET_VALUES
) {
23413 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23415 if (flags
& NDR_IN
) {
23416 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterEx");
23418 ndr_print_ptr(ndr
, "server", r
->in
.server
);
23420 if (r
->in
.server
) {
23421 ndr_print_string(ndr
, "server", r
->in
.server
);
23424 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
23426 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
23428 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
23430 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
23432 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
23434 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
23436 ndr_print_ptr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
23438 ndr_print_spoolss_UserLevelCtr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
23442 if (flags
& NDR_OUT
) {
23443 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterEx");
23445 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
23447 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
23449 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23455 static enum ndr_err_code
ndr_push_spoolss_47(struct ndr_push
*ndr
, int flags
, const struct spoolss_47
*r
)
23457 if (flags
& NDR_IN
) {
23459 if (flags
& NDR_OUT
) {
23460 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23462 return NDR_ERR_SUCCESS
;
23465 static enum ndr_err_code
ndr_pull_spoolss_47(struct ndr_pull
*ndr
, int flags
, struct spoolss_47
*r
)
23467 if (flags
& NDR_IN
) {
23469 if (flags
& NDR_OUT
) {
23470 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23472 return NDR_ERR_SUCCESS
;
23475 _PUBLIC_
void ndr_print_spoolss_47(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_47
*r
)
23477 ndr_print_struct(ndr
, name
, "spoolss_47");
23479 if (flags
& NDR_SET_VALUES
) {
23480 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23482 if (flags
& NDR_IN
) {
23483 ndr_print_struct(ndr
, "in", "spoolss_47");
23487 if (flags
& NDR_OUT
) {
23488 ndr_print_struct(ndr
, "out", "spoolss_47");
23490 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23496 static enum ndr_err_code
ndr_push_spoolss_EnumPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterData
*r
)
23498 if (flags
& NDR_IN
) {
23499 if (r
->in
.handle
== NULL
) {
23500 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23502 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23503 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
23504 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
));
23505 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
23507 if (flags
& NDR_OUT
) {
23508 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
/ 2));
23509 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.value_name
, r
->in
.value_offered
/ 2, sizeof(uint16_t), CH_UTF16
));
23510 if (r
->out
.value_needed
== NULL
) {
23511 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23513 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.value_needed
));
23514 if (r
->out
.printerdata_type
== NULL
) {
23515 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23517 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.printerdata_type
));
23518 if (r
->out
.buffer
== NULL
) {
23519 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23521 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.buffer
));
23522 if (r
->out
.data_needed
== NULL
) {
23523 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_needed
));
23526 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23528 return NDR_ERR_SUCCESS
;
23531 static enum ndr_err_code
ndr_pull_spoolss_EnumPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterData
*r
)
23533 TALLOC_CTX
*_mem_save_handle_0
;
23534 TALLOC_CTX
*_mem_save_value_needed_0
;
23535 TALLOC_CTX
*_mem_save_printerdata_type_0
;
23536 TALLOC_CTX
*_mem_save_buffer_0
;
23537 TALLOC_CTX
*_mem_save_data_needed_0
;
23538 if (flags
& NDR_IN
) {
23539 ZERO_STRUCT(r
->out
);
23541 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23542 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23544 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23545 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23546 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23547 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23548 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
23549 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.value_offered
));
23550 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_offered
));
23551 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
23552 ZERO_STRUCTP(r
->out
.value_needed
);
23553 NDR_PULL_ALLOC(ndr
, r
->out
.printerdata_type
);
23554 ZERO_STRUCTP(r
->out
.printerdata_type
);
23555 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
23556 ZERO_STRUCTP(r
->out
.buffer
);
23557 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
23558 ZERO_STRUCTP(r
->out
.data_needed
);
23560 if (flags
& NDR_OUT
) {
23561 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value_name
));
23562 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->out
.value_name
, ndr_get_array_size(ndr
, &r
->out
.value_name
), sizeof(uint16_t), CH_UTF16
));
23563 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23564 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
23566 _mem_save_value_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23567 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value_needed
, LIBNDR_FLAG_REF_ALLOC
);
23568 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.value_needed
));
23569 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23570 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23571 NDR_PULL_ALLOC(ndr
, r
->out
.printerdata_type
);
23573 _mem_save_printerdata_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23574 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.printerdata_type
, LIBNDR_FLAG_REF_ALLOC
);
23575 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.printerdata_type
));
23576 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printerdata_type_0
, LIBNDR_FLAG_REF_ALLOC
);
23577 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23578 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
23580 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23581 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
23582 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.buffer
));
23583 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
23584 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23585 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
23587 _mem_save_data_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23588 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_needed
, LIBNDR_FLAG_REF_ALLOC
);
23589 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_needed
));
23590 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23591 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23592 if (r
->out
.value_name
) {
23593 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value_name
, r
->in
.value_offered
/ 2));
23596 return NDR_ERR_SUCCESS
;
23599 _PUBLIC_
void ndr_print_spoolss_EnumPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterData
*r
)
23601 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterData");
23603 if (flags
& NDR_SET_VALUES
) {
23604 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23606 if (flags
& NDR_IN
) {
23607 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterData");
23609 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23611 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23613 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
23614 ndr_print_uint32(ndr
, "value_offered", r
->in
.value_offered
);
23615 ndr_print_uint32(ndr
, "data_offered", r
->in
.data_offered
);
23618 if (flags
& NDR_OUT
) {
23619 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterData");
23621 ndr_print_string(ndr
, "value_name", r
->out
.value_name
);
23622 ndr_print_ptr(ndr
, "value_needed", r
->out
.value_needed
);
23624 ndr_print_uint32(ndr
, "value_needed", *r
->out
.value_needed
);
23626 ndr_print_ptr(ndr
, "printerdata_type", r
->out
.printerdata_type
);
23628 ndr_print_uint32(ndr
, "printerdata_type", *r
->out
.printerdata_type
);
23630 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
23632 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->out
.buffer
);
23634 ndr_print_ptr(ndr
, "data_needed", r
->out
.data_needed
);
23636 ndr_print_uint32(ndr
, "data_needed", *r
->out
.data_needed
);
23638 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23644 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterData
*r
)
23646 if (flags
& NDR_IN
) {
23647 if (r
->in
.handle
== NULL
) {
23648 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23650 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23651 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
23652 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23653 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
23654 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
));
23656 if (flags
& NDR_OUT
) {
23657 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23659 return NDR_ERR_SUCCESS
;
23662 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterData
*r
)
23664 TALLOC_CTX
*_mem_save_handle_0
;
23665 if (flags
& NDR_IN
) {
23666 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23667 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23669 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23670 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23671 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23672 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23673 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
23674 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
23675 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
23676 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.value_name
), ndr_get_array_length(ndr
, &r
->in
.value_name
));
23678 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
23679 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t), CH_UTF16
));
23681 if (flags
& NDR_OUT
) {
23682 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23684 return NDR_ERR_SUCCESS
;
23687 _PUBLIC_
void ndr_print_spoolss_DeletePrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterData
*r
)
23689 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterData");
23691 if (flags
& NDR_SET_VALUES
) {
23692 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23694 if (flags
& NDR_IN
) {
23695 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterData");
23697 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23699 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23701 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
23704 if (flags
& NDR_OUT
) {
23705 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterData");
23707 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23713 static enum ndr_err_code
ndr_push_spoolss_4a(struct ndr_push
*ndr
, int flags
, const struct spoolss_4a
*r
)
23715 if (flags
& NDR_IN
) {
23717 if (flags
& NDR_OUT
) {
23718 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23720 return NDR_ERR_SUCCESS
;
23723 static enum ndr_err_code
ndr_pull_spoolss_4a(struct ndr_pull
*ndr
, int flags
, struct spoolss_4a
*r
)
23725 if (flags
& NDR_IN
) {
23727 if (flags
& NDR_OUT
) {
23728 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23730 return NDR_ERR_SUCCESS
;
23733 _PUBLIC_
void ndr_print_spoolss_4a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4a
*r
)
23735 ndr_print_struct(ndr
, name
, "spoolss_4a");
23737 if (flags
& NDR_SET_VALUES
) {
23738 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23740 if (flags
& NDR_IN
) {
23741 ndr_print_struct(ndr
, "in", "spoolss_4a");
23745 if (flags
& NDR_OUT
) {
23746 ndr_print_struct(ndr
, "out", "spoolss_4a");
23748 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23754 static enum ndr_err_code
ndr_push_spoolss_4b(struct ndr_push
*ndr
, int flags
, const struct spoolss_4b
*r
)
23756 if (flags
& NDR_IN
) {
23758 if (flags
& NDR_OUT
) {
23759 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23761 return NDR_ERR_SUCCESS
;
23764 static enum ndr_err_code
ndr_pull_spoolss_4b(struct ndr_pull
*ndr
, int flags
, struct spoolss_4b
*r
)
23766 if (flags
& NDR_IN
) {
23768 if (flags
& NDR_OUT
) {
23769 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23771 return NDR_ERR_SUCCESS
;
23774 _PUBLIC_
void ndr_print_spoolss_4b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4b
*r
)
23776 ndr_print_struct(ndr
, name
, "spoolss_4b");
23778 if (flags
& NDR_SET_VALUES
) {
23779 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23781 if (flags
& NDR_IN
) {
23782 ndr_print_struct(ndr
, "in", "spoolss_4b");
23786 if (flags
& NDR_OUT
) {
23787 ndr_print_struct(ndr
, "out", "spoolss_4b");
23789 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23795 static enum ndr_err_code
ndr_push_spoolss_4c(struct ndr_push
*ndr
, int flags
, const struct spoolss_4c
*r
)
23797 if (flags
& NDR_IN
) {
23799 if (flags
& NDR_OUT
) {
23800 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23802 return NDR_ERR_SUCCESS
;
23805 static enum ndr_err_code
ndr_pull_spoolss_4c(struct ndr_pull
*ndr
, int flags
, struct spoolss_4c
*r
)
23807 if (flags
& NDR_IN
) {
23809 if (flags
& NDR_OUT
) {
23810 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23812 return NDR_ERR_SUCCESS
;
23815 _PUBLIC_
void ndr_print_spoolss_4c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4c
*r
)
23817 ndr_print_struct(ndr
, name
, "spoolss_4c");
23819 if (flags
& NDR_SET_VALUES
) {
23820 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23822 if (flags
& NDR_IN
) {
23823 ndr_print_struct(ndr
, "in", "spoolss_4c");
23827 if (flags
& NDR_OUT
) {
23828 ndr_print_struct(ndr
, "out", "spoolss_4c");
23830 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23836 static enum ndr_err_code
ndr_push_spoolss_SetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
23838 if (flags
& NDR_IN
) {
23839 if (r
->in
.handle
== NULL
) {
23840 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23842 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23843 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
23844 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23845 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
23846 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
));
23847 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
23848 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23849 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
23850 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
));
23851 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.type
));
23852 if (r
->in
.buffer
== NULL
) {
23853 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23855 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23856 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
23857 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23859 if (flags
& NDR_OUT
) {
23860 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23862 return NDR_ERR_SUCCESS
;
23865 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterDataEx
*r
)
23867 TALLOC_CTX
*_mem_save_handle_0
;
23868 if (flags
& NDR_IN
) {
23869 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23870 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23872 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23873 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23874 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23875 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23876 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
23877 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
23878 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
23879 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.key_name
), ndr_get_array_length(ndr
, &r
->in
.key_name
));
23881 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
23882 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t), CH_UTF16
));
23883 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
23884 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
23885 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
23886 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.value_name
), ndr_get_array_length(ndr
, &r
->in
.value_name
));
23888 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
23889 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t), CH_UTF16
));
23890 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.type
));
23891 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
23892 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23893 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
23895 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
23896 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23897 if (r
->in
.buffer
) {
23898 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
23901 if (flags
& NDR_OUT
) {
23902 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23904 return NDR_ERR_SUCCESS
;
23907 _PUBLIC_
void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
23909 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterDataEx");
23911 if (flags
& NDR_SET_VALUES
) {
23912 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23914 if (flags
& NDR_IN
) {
23915 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterDataEx");
23917 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23919 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23921 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
23922 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
23923 ndr_print_uint32(ndr
, "type", r
->in
.type
);
23924 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23926 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
23928 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23931 if (flags
& NDR_OUT
) {
23932 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterDataEx");
23934 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23940 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
23942 if (flags
& NDR_IN
) {
23943 if (r
->in
.handle
== NULL
) {
23944 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23946 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23947 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
23948 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23949 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
23950 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
));
23951 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
23952 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23953 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
23954 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
));
23955 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23957 if (flags
& NDR_OUT
) {
23958 if (r
->out
.type
== NULL
) {
23959 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.type
));
23962 if (r
->out
.buffer
== NULL
) {
23963 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23966 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
23967 if (r
->out
.needed
== NULL
) {
23968 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23970 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23971 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23973 return NDR_ERR_SUCCESS
;
23976 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDataEx
*r
)
23978 TALLOC_CTX
*_mem_save_handle_0
;
23979 TALLOC_CTX
*_mem_save_type_0
;
23980 TALLOC_CTX
*_mem_save_needed_0
;
23981 if (flags
& NDR_IN
) {
23982 ZERO_STRUCT(r
->out
);
23984 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23985 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23987 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23988 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23989 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23990 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23991 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
23992 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
23993 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
23994 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.key_name
), ndr_get_array_length(ndr
, &r
->in
.key_name
));
23996 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
23997 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t), CH_UTF16
));
23998 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
23999 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
24000 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
24001 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.value_name
), ndr_get_array_length(ndr
, &r
->in
.value_name
));
24003 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
24004 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t), CH_UTF16
));
24005 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24006 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
24007 ZERO_STRUCTP(r
->out
.type
);
24008 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, r
->in
.offered
);
24009 memset(r
->out
.buffer
, 0, (r
->in
.offered
) * sizeof(*r
->out
.buffer
));
24010 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24011 ZERO_STRUCTP(r
->out
.needed
);
24013 if (flags
& NDR_OUT
) {
24014 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24015 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
24017 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24018 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
24019 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.type
));
24020 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
24021 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
24022 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24023 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
24025 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
24026 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24027 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24029 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24030 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24031 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24032 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24033 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24034 if (r
->out
.buffer
) {
24035 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
24038 return NDR_ERR_SUCCESS
;
24041 _PUBLIC_
void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
24043 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDataEx");
24045 if (flags
& NDR_SET_VALUES
) {
24046 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24048 if (flags
& NDR_IN
) {
24049 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDataEx");
24051 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24053 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24055 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
24056 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
24057 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24060 if (flags
& NDR_OUT
) {
24061 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDataEx");
24063 ndr_print_ptr(ndr
, "type", r
->out
.type
);
24065 ndr_print_uint32(ndr
, "type", *r
->out
.type
);
24067 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
24069 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
24071 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24073 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24075 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24081 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterDataEx
*r
)
24083 if (flags
& NDR_IN
) {
24084 if (r
->in
.handle
== NULL
) {
24085 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24087 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24088 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
24089 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24090 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
24091 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
));
24092 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24094 if (flags
& NDR_OUT
) {
24095 if (r
->out
.buffer
== NULL
) {
24096 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24098 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24099 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
24100 if (r
->out
.needed
== NULL
) {
24101 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24103 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24104 if (r
->out
.count
== NULL
) {
24105 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24107 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
24108 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24110 return NDR_ERR_SUCCESS
;
24113 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterDataEx
*r
)
24115 TALLOC_CTX
*_mem_save_handle_0
;
24116 TALLOC_CTX
*_mem_save_needed_0
;
24117 TALLOC_CTX
*_mem_save_count_0
;
24118 if (flags
& NDR_IN
) {
24119 ZERO_STRUCT(r
->out
);
24121 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24122 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24124 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24125 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24126 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24127 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24128 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
24129 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
24130 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
24131 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.key_name
), ndr_get_array_length(ndr
, &r
->in
.key_name
));
24133 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
24134 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t), CH_UTF16
));
24135 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24136 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, r
->in
.offered
);
24137 memset(r
->out
.buffer
, 0, (r
->in
.offered
) * sizeof(*r
->out
.buffer
));
24138 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24139 ZERO_STRUCTP(r
->out
.needed
);
24140 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24141 ZERO_STRUCTP(r
->out
.count
);
24143 if (flags
& NDR_OUT
) {
24144 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
24145 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24146 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
24148 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
24149 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24150 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24152 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24153 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24154 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24155 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24156 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24157 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24159 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24160 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
24161 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
24162 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
24163 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24164 if (r
->out
.buffer
) {
24165 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
24168 return NDR_ERR_SUCCESS
;
24171 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDataEx
*r
)
24173 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDataEx");
24175 if (flags
& NDR_SET_VALUES
) {
24176 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24178 if (flags
& NDR_IN
) {
24179 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDataEx");
24181 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24183 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24185 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
24186 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24189 if (flags
& NDR_OUT
) {
24190 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDataEx");
24192 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
24194 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
24196 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24198 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24200 ndr_print_ptr(ndr
, "count", r
->out
.count
);
24202 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
24204 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24210 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
24212 uint32_t cntr_key_buffer_1
;
24213 if (flags
& NDR_IN
) {
24214 if (r
->in
.handle
== NULL
) {
24215 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24217 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24218 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
24219 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24220 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
24221 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
));
24222 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.key_buffer_size
));
24224 if (flags
& NDR_OUT
) {
24225 if (r
->out
.key_buffer
== NULL
) {
24226 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24228 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.key_buffer_size
/ 2));
24229 for (cntr_key_buffer_1
= 0; cntr_key_buffer_1
< r
->in
.key_buffer_size
/ 2; cntr_key_buffer_1
++) {
24230 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->out
.key_buffer
[cntr_key_buffer_1
]));
24232 if (r
->out
.needed
== NULL
) {
24233 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24235 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24236 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24238 return NDR_ERR_SUCCESS
;
24241 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterKey
*r
)
24243 uint32_t cntr_key_buffer_1
;
24244 TALLOC_CTX
*_mem_save_handle_0
;
24245 TALLOC_CTX
*_mem_save_key_buffer_1
;
24246 TALLOC_CTX
*_mem_save_needed_0
;
24247 if (flags
& NDR_IN
) {
24248 ZERO_STRUCT(r
->out
);
24250 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24251 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24253 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24254 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24255 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24256 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24257 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
24258 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
24259 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
24260 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.key_name
), ndr_get_array_length(ndr
, &r
->in
.key_name
));
24262 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
24263 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t), CH_UTF16
));
24264 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.key_buffer_size
));
24265 NDR_PULL_ALLOC_N(ndr
, r
->out
.key_buffer
, r
->in
.key_buffer_size
/ 2);
24266 memset(r
->out
.key_buffer
, 0, (r
->in
.key_buffer_size
/ 2) * sizeof(*r
->out
.key_buffer
));
24267 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24268 ZERO_STRUCTP(r
->out
.needed
);
24270 if (flags
& NDR_OUT
) {
24271 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.key_buffer
));
24272 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24273 NDR_PULL_ALLOC_N(ndr
, r
->out
.key_buffer
, ndr_get_array_size(ndr
, &r
->out
.key_buffer
));
24275 _mem_save_key_buffer_1
= NDR_PULL_GET_MEM_CTX(ndr
);
24276 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.key_buffer
, 0);
24277 for (cntr_key_buffer_1
= 0; cntr_key_buffer_1
< r
->in
.key_buffer_size
/ 2; cntr_key_buffer_1
++) {
24278 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->out
.key_buffer
[cntr_key_buffer_1
]));
24280 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_buffer_1
, 0);
24281 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24282 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24284 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24285 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24286 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24287 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24288 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24289 if (r
->out
.key_buffer
) {
24290 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.key_buffer
, r
->in
.key_buffer_size
/ 2));
24293 return NDR_ERR_SUCCESS
;
24296 _PUBLIC_
void ndr_print_spoolss_EnumPrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
24298 uint32_t cntr_key_buffer_1
;
24299 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterKey");
24301 if (flags
& NDR_SET_VALUES
) {
24302 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24304 if (flags
& NDR_IN
) {
24305 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterKey");
24307 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24309 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24311 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
24312 ndr_print_uint32(ndr
, "key_buffer_size", r
->in
.key_buffer_size
);
24315 if (flags
& NDR_OUT
) {
24316 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterKey");
24318 ndr_print_ptr(ndr
, "key_buffer", r
->out
.key_buffer
);
24320 ndr
->print(ndr
, "%s: ARRAY(%d)", "key_buffer", (int)r
->in
.key_buffer_size
/ 2);
24322 for (cntr_key_buffer_1
=0;cntr_key_buffer_1
<r
->in
.key_buffer_size
/ 2;cntr_key_buffer_1
++) {
24324 if (asprintf(&idx_1
, "[%d]", cntr_key_buffer_1
) != -1) {
24325 ndr_print_uint16(ndr
, "key_buffer", r
->out
.key_buffer
[cntr_key_buffer_1
]);
24331 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24333 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24335 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24341 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
24343 if (flags
& NDR_IN
) {
24344 if (r
->in
.handle
== NULL
) {
24345 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24347 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24348 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
24349 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24350 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
24351 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
));
24352 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
24353 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24354 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
24355 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
));
24357 if (flags
& NDR_OUT
) {
24358 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24360 return NDR_ERR_SUCCESS
;
24363 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDataEx
*r
)
24365 TALLOC_CTX
*_mem_save_handle_0
;
24366 if (flags
& NDR_IN
) {
24367 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24368 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24370 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24371 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24372 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24373 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24374 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
24375 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
24376 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
24377 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.key_name
), ndr_get_array_length(ndr
, &r
->in
.key_name
));
24379 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
24380 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t), CH_UTF16
));
24381 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
24382 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
24383 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
24384 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.value_name
), ndr_get_array_length(ndr
, &r
->in
.value_name
));
24386 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
24387 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t), CH_UTF16
));
24389 if (flags
& NDR_OUT
) {
24390 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24392 return NDR_ERR_SUCCESS
;
24395 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
24397 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDataEx");
24399 if (flags
& NDR_SET_VALUES
) {
24400 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24402 if (flags
& NDR_IN
) {
24403 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDataEx");
24405 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24407 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24409 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
24410 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
24413 if (flags
& NDR_OUT
) {
24414 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDataEx");
24416 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24422 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
24424 if (flags
& NDR_IN
) {
24425 if (r
->in
.handle
== NULL
) {
24426 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24428 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24429 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
24430 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24431 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
24432 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
));
24434 if (flags
& NDR_OUT
) {
24435 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24437 return NDR_ERR_SUCCESS
;
24440 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterKey
*r
)
24442 TALLOC_CTX
*_mem_save_handle_0
;
24443 if (flags
& NDR_IN
) {
24444 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24445 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24447 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24448 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24449 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24451 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
24452 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
24453 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
24454 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.key_name
), ndr_get_array_length(ndr
, &r
->in
.key_name
));
24456 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
24457 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t), CH_UTF16
));
24459 if (flags
& NDR_OUT
) {
24460 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24462 return NDR_ERR_SUCCESS
;
24465 _PUBLIC_
void ndr_print_spoolss_DeletePrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
24467 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterKey");
24469 if (flags
& NDR_SET_VALUES
) {
24470 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24472 if (flags
& NDR_IN
) {
24473 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterKey");
24475 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24477 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24479 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
24482 if (flags
& NDR_OUT
) {
24483 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterKey");
24485 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24491 static enum ndr_err_code
ndr_push_spoolss_53(struct ndr_push
*ndr
, int flags
, const struct spoolss_53
*r
)
24493 if (flags
& NDR_IN
) {
24495 if (flags
& NDR_OUT
) {
24496 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24498 return NDR_ERR_SUCCESS
;
24501 static enum ndr_err_code
ndr_pull_spoolss_53(struct ndr_pull
*ndr
, int flags
, struct spoolss_53
*r
)
24503 if (flags
& NDR_IN
) {
24505 if (flags
& NDR_OUT
) {
24506 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24508 return NDR_ERR_SUCCESS
;
24511 _PUBLIC_
void ndr_print_spoolss_53(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_53
*r
)
24513 ndr_print_struct(ndr
, name
, "spoolss_53");
24515 if (flags
& NDR_SET_VALUES
) {
24516 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24518 if (flags
& NDR_IN
) {
24519 ndr_print_struct(ndr
, "in", "spoolss_53");
24523 if (flags
& NDR_OUT
) {
24524 ndr_print_struct(ndr
, "out", "spoolss_53");
24526 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24532 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
24534 if (flags
& NDR_IN
) {
24535 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
24536 if (r
->in
.server
) {
24537 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
24538 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24539 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
24540 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24542 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
24543 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24544 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
24545 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24546 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
24547 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24548 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
24549 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24550 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, r
->in
.delete_flags
));
24551 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.version
));
24553 if (flags
& NDR_OUT
) {
24554 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24556 return NDR_ERR_SUCCESS
;
24559 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriverEx
*r
)
24561 uint32_t _ptr_server
;
24562 TALLOC_CTX
*_mem_save_server_0
;
24563 if (flags
& NDR_IN
) {
24564 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
24566 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
24568 r
->in
.server
= NULL
;
24570 if (r
->in
.server
) {
24571 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24572 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
24573 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
24574 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
24575 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
24576 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
24578 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
24579 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
24580 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
24582 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
24583 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
24584 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
24585 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.architecture
), ndr_get_array_length(ndr
, &r
->in
.architecture
));
24587 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
24588 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
24589 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
24590 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
24591 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
24592 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.driver
), ndr_get_array_length(ndr
, &r
->in
.driver
));
24594 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
24595 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
24596 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, &r
->in
.delete_flags
));
24597 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.version
));
24599 if (flags
& NDR_OUT
) {
24600 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24602 return NDR_ERR_SUCCESS
;
24605 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
24607 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriverEx");
24609 if (flags
& NDR_SET_VALUES
) {
24610 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24612 if (flags
& NDR_IN
) {
24613 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriverEx");
24615 ndr_print_ptr(ndr
, "server", r
->in
.server
);
24617 if (r
->in
.server
) {
24618 ndr_print_string(ndr
, "server", r
->in
.server
);
24621 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
24622 ndr_print_string(ndr
, "driver", r
->in
.driver
);
24623 ndr_print_spoolss_DeleteDriverFlags(ndr
, "delete_flags", r
->in
.delete_flags
);
24624 ndr_print_uint32(ndr
, "version", r
->in
.version
);
24627 if (flags
& NDR_OUT
) {
24628 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriverEx");
24630 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24636 static enum ndr_err_code
ndr_push_spoolss_55(struct ndr_push
*ndr
, int flags
, const struct spoolss_55
*r
)
24638 if (flags
& NDR_IN
) {
24640 if (flags
& NDR_OUT
) {
24641 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24643 return NDR_ERR_SUCCESS
;
24646 static enum ndr_err_code
ndr_pull_spoolss_55(struct ndr_pull
*ndr
, int flags
, struct spoolss_55
*r
)
24648 if (flags
& NDR_IN
) {
24650 if (flags
& NDR_OUT
) {
24651 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24653 return NDR_ERR_SUCCESS
;
24656 _PUBLIC_
void ndr_print_spoolss_55(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_55
*r
)
24658 ndr_print_struct(ndr
, name
, "spoolss_55");
24660 if (flags
& NDR_SET_VALUES
) {
24661 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24663 if (flags
& NDR_IN
) {
24664 ndr_print_struct(ndr
, "in", "spoolss_55");
24668 if (flags
& NDR_OUT
) {
24669 ndr_print_struct(ndr
, "out", "spoolss_55");
24671 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24677 static enum ndr_err_code
ndr_push_spoolss_56(struct ndr_push
*ndr
, int flags
, const struct spoolss_56
*r
)
24679 if (flags
& NDR_IN
) {
24681 if (flags
& NDR_OUT
) {
24682 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24684 return NDR_ERR_SUCCESS
;
24687 static enum ndr_err_code
ndr_pull_spoolss_56(struct ndr_pull
*ndr
, int flags
, struct spoolss_56
*r
)
24689 if (flags
& NDR_IN
) {
24691 if (flags
& NDR_OUT
) {
24692 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24694 return NDR_ERR_SUCCESS
;
24697 _PUBLIC_
void ndr_print_spoolss_56(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_56
*r
)
24699 ndr_print_struct(ndr
, name
, "spoolss_56");
24701 if (flags
& NDR_SET_VALUES
) {
24702 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24704 if (flags
& NDR_IN
) {
24705 ndr_print_struct(ndr
, "in", "spoolss_56");
24709 if (flags
& NDR_OUT
) {
24710 ndr_print_struct(ndr
, "out", "spoolss_56");
24712 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24718 static enum ndr_err_code
ndr_push_spoolss_57(struct ndr_push
*ndr
, int flags
, const struct spoolss_57
*r
)
24720 if (flags
& NDR_IN
) {
24722 if (flags
& NDR_OUT
) {
24723 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24725 return NDR_ERR_SUCCESS
;
24728 static enum ndr_err_code
ndr_pull_spoolss_57(struct ndr_pull
*ndr
, int flags
, struct spoolss_57
*r
)
24730 if (flags
& NDR_IN
) {
24732 if (flags
& NDR_OUT
) {
24733 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24735 return NDR_ERR_SUCCESS
;
24738 _PUBLIC_
void ndr_print_spoolss_57(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_57
*r
)
24740 ndr_print_struct(ndr
, name
, "spoolss_57");
24742 if (flags
& NDR_SET_VALUES
) {
24743 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24745 if (flags
& NDR_IN
) {
24746 ndr_print_struct(ndr
, "in", "spoolss_57");
24750 if (flags
& NDR_OUT
) {
24751 ndr_print_struct(ndr
, "out", "spoolss_57");
24753 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24759 static enum ndr_err_code
ndr_push_spoolss_XcvData(struct ndr_push
*ndr
, int flags
, const struct spoolss_XcvData
*r
)
24761 if (flags
& NDR_IN
) {
24762 if (r
->in
.handle
== NULL
) {
24763 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24765 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24766 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
24767 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24768 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
24769 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
));
24770 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.in_data
));
24771 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.in_data
.length
));
24772 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
24773 if (r
->in
.status_code
== NULL
) {
24774 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24776 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.status_code
));
24778 if (flags
& NDR_OUT
) {
24779 if (r
->out
.out_data
== NULL
) {
24780 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24782 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
24783 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, r
->in
.out_data_size
));
24784 if (r
->out
.needed
== NULL
) {
24785 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24787 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24788 if (r
->out
.status_code
== NULL
) {
24789 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.status_code
));
24792 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24794 return NDR_ERR_SUCCESS
;
24797 static enum ndr_err_code
ndr_pull_spoolss_XcvData(struct ndr_pull
*ndr
, int flags
, struct spoolss_XcvData
*r
)
24799 TALLOC_CTX
*_mem_save_handle_0
;
24800 TALLOC_CTX
*_mem_save_needed_0
;
24801 TALLOC_CTX
*_mem_save_status_code_0
;
24802 if (flags
& NDR_IN
) {
24803 ZERO_STRUCT(r
->out
);
24805 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24806 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24808 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24809 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24810 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24811 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24812 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.function_name
));
24813 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.function_name
));
24814 if (ndr_get_array_length(ndr
, &r
->in
.function_name
) > ndr_get_array_size(ndr
, &r
->in
.function_name
)) {
24815 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.function_name
), ndr_get_array_length(ndr
, &r
->in
.function_name
));
24817 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.function_name
), sizeof(uint16_t)));
24818 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.function_name
, ndr_get_array_length(ndr
, &r
->in
.function_name
), sizeof(uint16_t), CH_UTF16
));
24819 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.in_data
));
24820 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._in_data_length
));
24821 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.out_data_size
));
24822 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24823 NDR_PULL_ALLOC(ndr
, r
->in
.status_code
);
24825 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24826 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
24827 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.status_code
));
24828 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
24829 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, r
->in
.out_data_size
);
24830 memset(r
->out
.out_data
, 0, (r
->in
.out_data_size
) * sizeof(*r
->out
.out_data
));
24831 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24832 ZERO_STRUCTP(r
->out
.needed
);
24833 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
24834 *r
->out
.status_code
= *r
->in
.status_code
;
24836 if (flags
& NDR_OUT
) {
24837 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.out_data
));
24838 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24839 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
));
24841 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
)));
24842 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24843 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24845 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24846 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24847 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24848 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24849 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24850 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
24852 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24853 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
24854 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.status_code
));
24855 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
24856 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24857 if (r
->out
.out_data
) {
24858 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.out_data
, r
->in
.out_data_size
));
24861 return NDR_ERR_SUCCESS
;
24864 _PUBLIC_
void ndr_print_spoolss_XcvData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_XcvData
*r
)
24866 ndr_print_struct(ndr
, name
, "spoolss_XcvData");
24868 if (flags
& NDR_SET_VALUES
) {
24869 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24871 if (flags
& NDR_IN
) {
24872 ndr_print_struct(ndr
, "in", "spoolss_XcvData");
24874 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24876 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24878 ndr_print_string(ndr
, "function_name", r
->in
.function_name
);
24879 ndr_print_DATA_BLOB(ndr
, "in_data", r
->in
.in_data
);
24880 ndr_print_uint32(ndr
, "_in_data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.in_data
.length
:r
->in
._in_data_length
);
24881 ndr_print_uint32(ndr
, "out_data_size", r
->in
.out_data_size
);
24882 ndr_print_ptr(ndr
, "status_code", r
->in
.status_code
);
24884 ndr_print_uint32(ndr
, "status_code", *r
->in
.status_code
);
24888 if (flags
& NDR_OUT
) {
24889 ndr_print_struct(ndr
, "out", "spoolss_XcvData");
24891 ndr_print_ptr(ndr
, "out_data", r
->out
.out_data
);
24893 ndr_print_array_uint8(ndr
, "out_data", r
->out
.out_data
, r
->in
.out_data_size
);
24895 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24897 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24899 ndr_print_ptr(ndr
, "status_code", r
->out
.status_code
);
24901 ndr_print_uint32(ndr
, "status_code", *r
->out
.status_code
);
24903 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24909 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
24911 if (flags
& NDR_IN
) {
24912 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
24913 if (r
->in
.servername
) {
24914 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24915 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24916 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24917 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24919 if (r
->in
.info_ctr
== NULL
) {
24920 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24922 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
24923 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
24925 if (flags
& NDR_OUT
) {
24926 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24928 return NDR_ERR_SUCCESS
;
24931 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriverEx
*r
)
24933 uint32_t _ptr_servername
;
24934 TALLOC_CTX
*_mem_save_servername_0
;
24935 TALLOC_CTX
*_mem_save_info_ctr_0
;
24936 if (flags
& NDR_IN
) {
24937 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
24938 if (_ptr_servername
) {
24939 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
24941 r
->in
.servername
= NULL
;
24943 if (r
->in
.servername
) {
24944 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24945 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
24946 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
24947 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
24948 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
24949 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.servername
), ndr_get_array_length(ndr
, &r
->in
.servername
));
24951 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
24952 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
24953 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
24955 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24956 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
24958 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24959 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
24960 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
24961 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
24962 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
24964 if (flags
& NDR_OUT
) {
24965 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24967 return NDR_ERR_SUCCESS
;
24970 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
24972 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriverEx");
24974 if (flags
& NDR_SET_VALUES
) {
24975 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24977 if (flags
& NDR_IN
) {
24978 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriverEx");
24980 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
24982 if (r
->in
.servername
) {
24983 ndr_print_string(ndr
, "servername", r
->in
.servername
);
24986 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
24988 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
24990 ndr_print_spoolss_AddPrinterDriverExFlags(ndr
, "flags", r
->in
.flags
);
24993 if (flags
& NDR_OUT
) {
24994 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriverEx");
24996 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25002 static enum ndr_err_code
ndr_push_spoolss_5a(struct ndr_push
*ndr
, int flags
, const struct spoolss_5a
*r
)
25004 if (flags
& NDR_IN
) {
25006 if (flags
& NDR_OUT
) {
25007 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25009 return NDR_ERR_SUCCESS
;
25012 static enum ndr_err_code
ndr_pull_spoolss_5a(struct ndr_pull
*ndr
, int flags
, struct spoolss_5a
*r
)
25014 if (flags
& NDR_IN
) {
25016 if (flags
& NDR_OUT
) {
25017 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25019 return NDR_ERR_SUCCESS
;
25022 _PUBLIC_
void ndr_print_spoolss_5a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5a
*r
)
25024 ndr_print_struct(ndr
, name
, "spoolss_5a");
25026 if (flags
& NDR_SET_VALUES
) {
25027 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25029 if (flags
& NDR_IN
) {
25030 ndr_print_struct(ndr
, "in", "spoolss_5a");
25034 if (flags
& NDR_OUT
) {
25035 ndr_print_struct(ndr
, "out", "spoolss_5a");
25037 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25043 static enum ndr_err_code
ndr_push_spoolss_5b(struct ndr_push
*ndr
, int flags
, const struct spoolss_5b
*r
)
25045 if (flags
& NDR_IN
) {
25047 if (flags
& NDR_OUT
) {
25048 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25050 return NDR_ERR_SUCCESS
;
25053 static enum ndr_err_code
ndr_pull_spoolss_5b(struct ndr_pull
*ndr
, int flags
, struct spoolss_5b
*r
)
25055 if (flags
& NDR_IN
) {
25057 if (flags
& NDR_OUT
) {
25058 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25060 return NDR_ERR_SUCCESS
;
25063 _PUBLIC_
void ndr_print_spoolss_5b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5b
*r
)
25065 ndr_print_struct(ndr
, name
, "spoolss_5b");
25067 if (flags
& NDR_SET_VALUES
) {
25068 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25070 if (flags
& NDR_IN
) {
25071 ndr_print_struct(ndr
, "in", "spoolss_5b");
25075 if (flags
& NDR_OUT
) {
25076 ndr_print_struct(ndr
, "out", "spoolss_5b");
25078 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25084 static enum ndr_err_code
ndr_push_spoolss_5c(struct ndr_push
*ndr
, int flags
, const struct spoolss_5c
*r
)
25086 if (flags
& NDR_IN
) {
25088 if (flags
& NDR_OUT
) {
25089 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25091 return NDR_ERR_SUCCESS
;
25094 static enum ndr_err_code
ndr_pull_spoolss_5c(struct ndr_pull
*ndr
, int flags
, struct spoolss_5c
*r
)
25096 if (flags
& NDR_IN
) {
25098 if (flags
& NDR_OUT
) {
25099 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25101 return NDR_ERR_SUCCESS
;
25104 _PUBLIC_
void ndr_print_spoolss_5c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5c
*r
)
25106 ndr_print_struct(ndr
, name
, "spoolss_5c");
25108 if (flags
& NDR_SET_VALUES
) {
25109 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25111 if (flags
& NDR_IN
) {
25112 ndr_print_struct(ndr
, "in", "spoolss_5c");
25116 if (flags
& NDR_OUT
) {
25117 ndr_print_struct(ndr
, "out", "spoolss_5c");
25119 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25125 static enum ndr_err_code
ndr_push_spoolss_5d(struct ndr_push
*ndr
, int flags
, const struct spoolss_5d
*r
)
25127 if (flags
& NDR_IN
) {
25129 if (flags
& NDR_OUT
) {
25130 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25132 return NDR_ERR_SUCCESS
;
25135 static enum ndr_err_code
ndr_pull_spoolss_5d(struct ndr_pull
*ndr
, int flags
, struct spoolss_5d
*r
)
25137 if (flags
& NDR_IN
) {
25139 if (flags
& NDR_OUT
) {
25140 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25142 return NDR_ERR_SUCCESS
;
25145 _PUBLIC_
void ndr_print_spoolss_5d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5d
*r
)
25147 ndr_print_struct(ndr
, name
, "spoolss_5d");
25149 if (flags
& NDR_SET_VALUES
) {
25150 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25152 if (flags
& NDR_IN
) {
25153 ndr_print_struct(ndr
, "in", "spoolss_5d");
25157 if (flags
& NDR_OUT
) {
25158 ndr_print_struct(ndr
, "out", "spoolss_5d");
25160 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25166 static enum ndr_err_code
ndr_push_spoolss_5e(struct ndr_push
*ndr
, int flags
, const struct spoolss_5e
*r
)
25168 if (flags
& NDR_IN
) {
25170 if (flags
& NDR_OUT
) {
25171 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25173 return NDR_ERR_SUCCESS
;
25176 static enum ndr_err_code
ndr_pull_spoolss_5e(struct ndr_pull
*ndr
, int flags
, struct spoolss_5e
*r
)
25178 if (flags
& NDR_IN
) {
25180 if (flags
& NDR_OUT
) {
25181 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25183 return NDR_ERR_SUCCESS
;
25186 _PUBLIC_
void ndr_print_spoolss_5e(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5e
*r
)
25188 ndr_print_struct(ndr
, name
, "spoolss_5e");
25190 if (flags
& NDR_SET_VALUES
) {
25191 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25193 if (flags
& NDR_IN
) {
25194 ndr_print_struct(ndr
, "in", "spoolss_5e");
25198 if (flags
& NDR_OUT
) {
25199 ndr_print_struct(ndr
, "out", "spoolss_5e");
25201 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25207 static enum ndr_err_code
ndr_push_spoolss_5f(struct ndr_push
*ndr
, int flags
, const struct spoolss_5f
*r
)
25209 if (flags
& NDR_IN
) {
25211 if (flags
& NDR_OUT
) {
25212 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25214 return NDR_ERR_SUCCESS
;
25217 static enum ndr_err_code
ndr_pull_spoolss_5f(struct ndr_pull
*ndr
, int flags
, struct spoolss_5f
*r
)
25219 if (flags
& NDR_IN
) {
25221 if (flags
& NDR_OUT
) {
25222 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25224 return NDR_ERR_SUCCESS
;
25227 _PUBLIC_
void ndr_print_spoolss_5f(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5f
*r
)
25229 ndr_print_struct(ndr
, name
, "spoolss_5f");
25231 if (flags
& NDR_SET_VALUES
) {
25232 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25234 if (flags
& NDR_IN
) {
25235 ndr_print_struct(ndr
, "in", "spoolss_5f");
25239 if (flags
& NDR_OUT
) {
25240 ndr_print_struct(ndr
, "out", "spoolss_5f");
25242 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25248 static const struct ndr_interface_call spoolss_calls
[] = {
25250 "spoolss_EnumPrinters",
25251 sizeof(struct spoolss_EnumPrinters
),
25252 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinters
,
25253 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinters
,
25254 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinters
,
25258 "spoolss_OpenPrinter",
25259 sizeof(struct spoolss_OpenPrinter
),
25260 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinter
,
25261 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinter
,
25262 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinter
,
25267 sizeof(struct spoolss_SetJob
),
25268 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetJob
,
25269 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetJob
,
25270 (ndr_print_function_t
) ndr_print_spoolss_SetJob
,
25275 sizeof(struct spoolss_GetJob
),
25276 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetJob
,
25277 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetJob
,
25278 (ndr_print_function_t
) ndr_print_spoolss_GetJob
,
25282 "spoolss_EnumJobs",
25283 sizeof(struct spoolss_EnumJobs
),
25284 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumJobs
,
25285 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumJobs
,
25286 (ndr_print_function_t
) ndr_print_spoolss_EnumJobs
,
25290 "spoolss_AddPrinter",
25291 sizeof(struct spoolss_AddPrinter
),
25292 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinter
,
25293 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinter
,
25294 (ndr_print_function_t
) ndr_print_spoolss_AddPrinter
,
25298 "spoolss_DeletePrinter",
25299 sizeof(struct spoolss_DeletePrinter
),
25300 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinter
,
25301 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinter
,
25302 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinter
,
25306 "spoolss_SetPrinter",
25307 sizeof(struct spoolss_SetPrinter
),
25308 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinter
,
25309 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinter
,
25310 (ndr_print_function_t
) ndr_print_spoolss_SetPrinter
,
25314 "spoolss_GetPrinter",
25315 sizeof(struct spoolss_GetPrinter
),
25316 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinter
,
25317 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinter
,
25318 (ndr_print_function_t
) ndr_print_spoolss_GetPrinter
,
25322 "spoolss_AddPrinterDriver",
25323 sizeof(struct spoolss_AddPrinterDriver
),
25324 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriver
,
25325 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriver
,
25326 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriver
,
25330 "spoolss_EnumPrinterDrivers",
25331 sizeof(struct spoolss_EnumPrinterDrivers
),
25332 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDrivers
,
25333 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDrivers
,
25334 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDrivers
,
25338 "spoolss_GetPrinterDriver",
25339 sizeof(struct spoolss_GetPrinterDriver
),
25340 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver
,
25341 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver
,
25342 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver
,
25346 "spoolss_GetPrinterDriverDirectory",
25347 sizeof(struct spoolss_GetPrinterDriverDirectory
),
25348 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverDirectory
,
25349 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverDirectory
,
25350 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverDirectory
,
25354 "spoolss_DeletePrinterDriver",
25355 sizeof(struct spoolss_DeletePrinterDriver
),
25356 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriver
,
25357 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriver
,
25358 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriver
,
25362 "spoolss_AddPrintProcessor",
25363 sizeof(struct spoolss_AddPrintProcessor
),
25364 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProcessor
,
25365 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProcessor
,
25366 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProcessor
,
25370 "spoolss_EnumPrintProcessors",
25371 sizeof(struct spoolss_EnumPrintProcessors
),
25372 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcessors
,
25373 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcessors
,
25374 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcessors
,
25378 "spoolss_GetPrintProcessorDirectory",
25379 sizeof(struct spoolss_GetPrintProcessorDirectory
),
25380 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrintProcessorDirectory
,
25381 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrintProcessorDirectory
,
25382 (ndr_print_function_t
) ndr_print_spoolss_GetPrintProcessorDirectory
,
25386 "spoolss_StartDocPrinter",
25387 sizeof(struct spoolss_StartDocPrinter
),
25388 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartDocPrinter
,
25389 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartDocPrinter
,
25390 (ndr_print_function_t
) ndr_print_spoolss_StartDocPrinter
,
25394 "spoolss_StartPagePrinter",
25395 sizeof(struct spoolss_StartPagePrinter
),
25396 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartPagePrinter
,
25397 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartPagePrinter
,
25398 (ndr_print_function_t
) ndr_print_spoolss_StartPagePrinter
,
25402 "spoolss_WritePrinter",
25403 sizeof(struct spoolss_WritePrinter
),
25404 (ndr_push_flags_fn_t
) ndr_push_spoolss_WritePrinter
,
25405 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WritePrinter
,
25406 (ndr_print_function_t
) ndr_print_spoolss_WritePrinter
,
25410 "spoolss_EndPagePrinter",
25411 sizeof(struct spoolss_EndPagePrinter
),
25412 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndPagePrinter
,
25413 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndPagePrinter
,
25414 (ndr_print_function_t
) ndr_print_spoolss_EndPagePrinter
,
25418 "spoolss_AbortPrinter",
25419 sizeof(struct spoolss_AbortPrinter
),
25420 (ndr_push_flags_fn_t
) ndr_push_spoolss_AbortPrinter
,
25421 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AbortPrinter
,
25422 (ndr_print_function_t
) ndr_print_spoolss_AbortPrinter
,
25426 "spoolss_ReadPrinter",
25427 sizeof(struct spoolss_ReadPrinter
),
25428 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReadPrinter
,
25429 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReadPrinter
,
25430 (ndr_print_function_t
) ndr_print_spoolss_ReadPrinter
,
25434 "spoolss_EndDocPrinter",
25435 sizeof(struct spoolss_EndDocPrinter
),
25436 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndDocPrinter
,
25437 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndDocPrinter
,
25438 (ndr_print_function_t
) ndr_print_spoolss_EndDocPrinter
,
25443 sizeof(struct spoolss_AddJob
),
25444 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddJob
,
25445 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddJob
,
25446 (ndr_print_function_t
) ndr_print_spoolss_AddJob
,
25450 "spoolss_ScheduleJob",
25451 sizeof(struct spoolss_ScheduleJob
),
25452 (ndr_push_flags_fn_t
) ndr_push_spoolss_ScheduleJob
,
25453 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ScheduleJob
,
25454 (ndr_print_function_t
) ndr_print_spoolss_ScheduleJob
,
25458 "spoolss_GetPrinterData",
25459 sizeof(struct spoolss_GetPrinterData
),
25460 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterData
,
25461 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterData
,
25462 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterData
,
25466 "spoolss_SetPrinterData",
25467 sizeof(struct spoolss_SetPrinterData
),
25468 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterData
,
25469 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterData
,
25470 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterData
,
25474 "spoolss_WaitForPrinterChange",
25475 sizeof(struct spoolss_WaitForPrinterChange
),
25476 (ndr_push_flags_fn_t
) ndr_push_spoolss_WaitForPrinterChange
,
25477 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WaitForPrinterChange
,
25478 (ndr_print_function_t
) ndr_print_spoolss_WaitForPrinterChange
,
25482 "spoolss_ClosePrinter",
25483 sizeof(struct spoolss_ClosePrinter
),
25484 (ndr_push_flags_fn_t
) ndr_push_spoolss_ClosePrinter
,
25485 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ClosePrinter
,
25486 (ndr_print_function_t
) ndr_print_spoolss_ClosePrinter
,
25491 sizeof(struct spoolss_AddForm
),
25492 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddForm
,
25493 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddForm
,
25494 (ndr_print_function_t
) ndr_print_spoolss_AddForm
,
25498 "spoolss_DeleteForm",
25499 sizeof(struct spoolss_DeleteForm
),
25500 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteForm
,
25501 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteForm
,
25502 (ndr_print_function_t
) ndr_print_spoolss_DeleteForm
,
25507 sizeof(struct spoolss_GetForm
),
25508 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetForm
,
25509 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetForm
,
25510 (ndr_print_function_t
) ndr_print_spoolss_GetForm
,
25515 sizeof(struct spoolss_SetForm
),
25516 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetForm
,
25517 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetForm
,
25518 (ndr_print_function_t
) ndr_print_spoolss_SetForm
,
25522 "spoolss_EnumForms",
25523 sizeof(struct spoolss_EnumForms
),
25524 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumForms
,
25525 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumForms
,
25526 (ndr_print_function_t
) ndr_print_spoolss_EnumForms
,
25530 "spoolss_EnumPorts",
25531 sizeof(struct spoolss_EnumPorts
),
25532 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPorts
,
25533 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPorts
,
25534 (ndr_print_function_t
) ndr_print_spoolss_EnumPorts
,
25538 "spoolss_EnumMonitors",
25539 sizeof(struct spoolss_EnumMonitors
),
25540 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumMonitors
,
25541 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumMonitors
,
25542 (ndr_print_function_t
) ndr_print_spoolss_EnumMonitors
,
25547 sizeof(struct spoolss_AddPort
),
25548 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPort
,
25549 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPort
,
25550 (ndr_print_function_t
) ndr_print_spoolss_AddPort
,
25554 "spoolss_ConfigurePort",
25555 sizeof(struct spoolss_ConfigurePort
),
25556 (ndr_push_flags_fn_t
) ndr_push_spoolss_ConfigurePort
,
25557 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ConfigurePort
,
25558 (ndr_print_function_t
) ndr_print_spoolss_ConfigurePort
,
25562 "spoolss_DeletePort",
25563 sizeof(struct spoolss_DeletePort
),
25564 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePort
,
25565 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePort
,
25566 (ndr_print_function_t
) ndr_print_spoolss_DeletePort
,
25570 "spoolss_CreatePrinterIC",
25571 sizeof(struct spoolss_CreatePrinterIC
),
25572 (ndr_push_flags_fn_t
) ndr_push_spoolss_CreatePrinterIC
,
25573 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_CreatePrinterIC
,
25574 (ndr_print_function_t
) ndr_print_spoolss_CreatePrinterIC
,
25578 "spoolss_PlayGDIScriptOnPrinterIC",
25579 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC
),
25580 (ndr_push_flags_fn_t
) ndr_push_spoolss_PlayGDIScriptOnPrinterIC
,
25581 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC
,
25582 (ndr_print_function_t
) ndr_print_spoolss_PlayGDIScriptOnPrinterIC
,
25586 "spoolss_DeletePrinterIC",
25587 sizeof(struct spoolss_DeletePrinterIC
),
25588 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterIC
,
25589 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterIC
,
25590 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterIC
,
25594 "spoolss_AddPrinterConnection",
25595 sizeof(struct spoolss_AddPrinterConnection
),
25596 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterConnection
,
25597 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterConnection
,
25598 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterConnection
,
25602 "spoolss_DeletePrinterConnection",
25603 sizeof(struct spoolss_DeletePrinterConnection
),
25604 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterConnection
,
25605 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterConnection
,
25606 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterConnection
,
25610 "spoolss_PrinterMessageBox",
25611 sizeof(struct spoolss_PrinterMessageBox
),
25612 (ndr_push_flags_fn_t
) ndr_push_spoolss_PrinterMessageBox
,
25613 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PrinterMessageBox
,
25614 (ndr_print_function_t
) ndr_print_spoolss_PrinterMessageBox
,
25618 "spoolss_AddMonitor",
25619 sizeof(struct spoolss_AddMonitor
),
25620 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddMonitor
,
25621 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddMonitor
,
25622 (ndr_print_function_t
) ndr_print_spoolss_AddMonitor
,
25626 "spoolss_DeleteMonitor",
25627 sizeof(struct spoolss_DeleteMonitor
),
25628 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteMonitor
,
25629 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteMonitor
,
25630 (ndr_print_function_t
) ndr_print_spoolss_DeleteMonitor
,
25634 "spoolss_DeletePrintProcessor",
25635 sizeof(struct spoolss_DeletePrintProcessor
),
25636 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProcessor
,
25637 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProcessor
,
25638 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProcessor
,
25642 "spoolss_AddPrintProvidor",
25643 sizeof(struct spoolss_AddPrintProvidor
),
25644 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProvidor
,
25645 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProvidor
,
25646 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProvidor
,
25650 "spoolss_DeletePrintProvidor",
25651 sizeof(struct spoolss_DeletePrintProvidor
),
25652 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProvidor
,
25653 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProvidor
,
25654 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProvidor
,
25658 "spoolss_EnumPrintProcDataTypes",
25659 sizeof(struct spoolss_EnumPrintProcDataTypes
),
25660 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcDataTypes
,
25661 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcDataTypes
,
25662 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcDataTypes
,
25666 "spoolss_ResetPrinter",
25667 sizeof(struct spoolss_ResetPrinter
),
25668 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinter
,
25669 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinter
,
25670 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinter
,
25674 "spoolss_GetPrinterDriver2",
25675 sizeof(struct spoolss_GetPrinterDriver2
),
25676 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver2
,
25677 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver2
,
25678 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver2
,
25682 "spoolss_FindFirstPrinterChangeNotification",
25683 sizeof(struct spoolss_FindFirstPrinterChangeNotification
),
25684 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindFirstPrinterChangeNotification
,
25685 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindFirstPrinterChangeNotification
,
25686 (ndr_print_function_t
) ndr_print_spoolss_FindFirstPrinterChangeNotification
,
25690 "spoolss_FindNextPrinterChangeNotification",
25691 sizeof(struct spoolss_FindNextPrinterChangeNotification
),
25692 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindNextPrinterChangeNotification
,
25693 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindNextPrinterChangeNotification
,
25694 (ndr_print_function_t
) ndr_print_spoolss_FindNextPrinterChangeNotification
,
25698 "spoolss_FindClosePrinterNotify",
25699 sizeof(struct spoolss_FindClosePrinterNotify
),
25700 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindClosePrinterNotify
,
25701 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindClosePrinterNotify
,
25702 (ndr_print_function_t
) ndr_print_spoolss_FindClosePrinterNotify
,
25706 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
25707 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld
),
25708 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
25709 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
25710 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
25714 "spoolss_ReplyOpenPrinter",
25715 sizeof(struct spoolss_ReplyOpenPrinter
),
25716 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyOpenPrinter
,
25717 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyOpenPrinter
,
25718 (ndr_print_function_t
) ndr_print_spoolss_ReplyOpenPrinter
,
25722 "spoolss_RouterReplyPrinter",
25723 sizeof(struct spoolss_RouterReplyPrinter
),
25724 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinter
,
25725 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinter
,
25726 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinter
,
25730 "spoolss_ReplyClosePrinter",
25731 sizeof(struct spoolss_ReplyClosePrinter
),
25732 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyClosePrinter
,
25733 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyClosePrinter
,
25734 (ndr_print_function_t
) ndr_print_spoolss_ReplyClosePrinter
,
25738 "spoolss_AddPortEx",
25739 sizeof(struct spoolss_AddPortEx
),
25740 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPortEx
,
25741 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPortEx
,
25742 (ndr_print_function_t
) ndr_print_spoolss_AddPortEx
,
25746 "spoolss_RouterFindFirstPrinterChangeNotification",
25747 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification
),
25748 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification
,
25749 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification
,
25750 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification
,
25754 "spoolss_SpoolerInit",
25755 sizeof(struct spoolss_SpoolerInit
),
25756 (ndr_push_flags_fn_t
) ndr_push_spoolss_SpoolerInit
,
25757 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SpoolerInit
,
25758 (ndr_print_function_t
) ndr_print_spoolss_SpoolerInit
,
25762 "spoolss_ResetPrinterEx",
25763 sizeof(struct spoolss_ResetPrinterEx
),
25764 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinterEx
,
25765 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinterEx
,
25766 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinterEx
,
25770 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
25771 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
),
25772 (ndr_push_flags_fn_t
) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
25773 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
25774 (ndr_print_function_t
) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
25778 "spoolss_RouterReplyPrinterEx",
25779 sizeof(struct spoolss_RouterReplyPrinterEx
),
25780 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinterEx
,
25781 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinterEx
,
25782 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinterEx
,
25786 "spoolss_RouterRefreshPrinterChangeNotify",
25787 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify
),
25788 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterRefreshPrinterChangeNotify
,
25789 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify
,
25790 (ndr_print_function_t
) ndr_print_spoolss_RouterRefreshPrinterChangeNotify
,
25795 sizeof(struct spoolss_44
),
25796 (ndr_push_flags_fn_t
) ndr_push_spoolss_44
,
25797 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_44
,
25798 (ndr_print_function_t
) ndr_print_spoolss_44
,
25802 "spoolss_OpenPrinterEx",
25803 sizeof(struct spoolss_OpenPrinterEx
),
25804 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinterEx
,
25805 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinterEx
,
25806 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinterEx
,
25810 "spoolss_AddPrinterEx",
25811 sizeof(struct spoolss_AddPrinterEx
),
25812 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterEx
,
25813 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterEx
,
25814 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterEx
,
25819 sizeof(struct spoolss_47
),
25820 (ndr_push_flags_fn_t
) ndr_push_spoolss_47
,
25821 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_47
,
25822 (ndr_print_function_t
) ndr_print_spoolss_47
,
25826 "spoolss_EnumPrinterData",
25827 sizeof(struct spoolss_EnumPrinterData
),
25828 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterData
,
25829 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterData
,
25830 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterData
,
25834 "spoolss_DeletePrinterData",
25835 sizeof(struct spoolss_DeletePrinterData
),
25836 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterData
,
25837 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterData
,
25838 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterData
,
25843 sizeof(struct spoolss_4a
),
25844 (ndr_push_flags_fn_t
) ndr_push_spoolss_4a
,
25845 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4a
,
25846 (ndr_print_function_t
) ndr_print_spoolss_4a
,
25851 sizeof(struct spoolss_4b
),
25852 (ndr_push_flags_fn_t
) ndr_push_spoolss_4b
,
25853 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4b
,
25854 (ndr_print_function_t
) ndr_print_spoolss_4b
,
25859 sizeof(struct spoolss_4c
),
25860 (ndr_push_flags_fn_t
) ndr_push_spoolss_4c
,
25861 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4c
,
25862 (ndr_print_function_t
) ndr_print_spoolss_4c
,
25866 "spoolss_SetPrinterDataEx",
25867 sizeof(struct spoolss_SetPrinterDataEx
),
25868 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterDataEx
,
25869 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterDataEx
,
25870 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterDataEx
,
25874 "spoolss_GetPrinterDataEx",
25875 sizeof(struct spoolss_GetPrinterDataEx
),
25876 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDataEx
,
25877 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDataEx
,
25878 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDataEx
,
25882 "spoolss_EnumPrinterDataEx",
25883 sizeof(struct spoolss_EnumPrinterDataEx
),
25884 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDataEx
,
25885 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDataEx
,
25886 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDataEx
,
25890 "spoolss_EnumPrinterKey",
25891 sizeof(struct spoolss_EnumPrinterKey
),
25892 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterKey
,
25893 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterKey
,
25894 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterKey
,
25898 "spoolss_DeletePrinterDataEx",
25899 sizeof(struct spoolss_DeletePrinterDataEx
),
25900 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDataEx
,
25901 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDataEx
,
25902 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDataEx
,
25906 "spoolss_DeletePrinterKey",
25907 sizeof(struct spoolss_DeletePrinterKey
),
25908 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterKey
,
25909 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterKey
,
25910 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterKey
,
25915 sizeof(struct spoolss_53
),
25916 (ndr_push_flags_fn_t
) ndr_push_spoolss_53
,
25917 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_53
,
25918 (ndr_print_function_t
) ndr_print_spoolss_53
,
25922 "spoolss_DeletePrinterDriverEx",
25923 sizeof(struct spoolss_DeletePrinterDriverEx
),
25924 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriverEx
,
25925 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriverEx
,
25926 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriverEx
,
25931 sizeof(struct spoolss_55
),
25932 (ndr_push_flags_fn_t
) ndr_push_spoolss_55
,
25933 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_55
,
25934 (ndr_print_function_t
) ndr_print_spoolss_55
,
25939 sizeof(struct spoolss_56
),
25940 (ndr_push_flags_fn_t
) ndr_push_spoolss_56
,
25941 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_56
,
25942 (ndr_print_function_t
) ndr_print_spoolss_56
,
25947 sizeof(struct spoolss_57
),
25948 (ndr_push_flags_fn_t
) ndr_push_spoolss_57
,
25949 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_57
,
25950 (ndr_print_function_t
) ndr_print_spoolss_57
,
25955 sizeof(struct spoolss_XcvData
),
25956 (ndr_push_flags_fn_t
) ndr_push_spoolss_XcvData
,
25957 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_XcvData
,
25958 (ndr_print_function_t
) ndr_print_spoolss_XcvData
,
25962 "spoolss_AddPrinterDriverEx",
25963 sizeof(struct spoolss_AddPrinterDriverEx
),
25964 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriverEx
,
25965 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriverEx
,
25966 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriverEx
,
25971 sizeof(struct spoolss_5a
),
25972 (ndr_push_flags_fn_t
) ndr_push_spoolss_5a
,
25973 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5a
,
25974 (ndr_print_function_t
) ndr_print_spoolss_5a
,
25979 sizeof(struct spoolss_5b
),
25980 (ndr_push_flags_fn_t
) ndr_push_spoolss_5b
,
25981 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5b
,
25982 (ndr_print_function_t
) ndr_print_spoolss_5b
,
25987 sizeof(struct spoolss_5c
),
25988 (ndr_push_flags_fn_t
) ndr_push_spoolss_5c
,
25989 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5c
,
25990 (ndr_print_function_t
) ndr_print_spoolss_5c
,
25995 sizeof(struct spoolss_5d
),
25996 (ndr_push_flags_fn_t
) ndr_push_spoolss_5d
,
25997 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5d
,
25998 (ndr_print_function_t
) ndr_print_spoolss_5d
,
26003 sizeof(struct spoolss_5e
),
26004 (ndr_push_flags_fn_t
) ndr_push_spoolss_5e
,
26005 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5e
,
26006 (ndr_print_function_t
) ndr_print_spoolss_5e
,
26011 sizeof(struct spoolss_5f
),
26012 (ndr_push_flags_fn_t
) ndr_push_spoolss_5f
,
26013 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5f
,
26014 (ndr_print_function_t
) ndr_print_spoolss_5f
,
26017 { NULL
, 0, NULL
, NULL
, NULL
, false }
26020 static const char * const spoolss_endpoint_strings
[] = {
26021 "ncacn_np:[\\pipe\\spoolss]",
26024 static const struct ndr_interface_string_array spoolss_endpoints
= {
26026 .names
= spoolss_endpoint_strings
26029 static const char * const spoolss_authservice_strings
[] = {
26033 static const struct ndr_interface_string_array spoolss_authservices
= {
26035 .names
= spoolss_authservice_strings
26039 const struct ndr_interface_table ndr_table_spoolss
= {
26042 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
26043 NDR_SPOOLSS_VERSION
26045 .helpstring
= NDR_SPOOLSS_HELPSTRING
,
26047 .calls
= spoolss_calls
,
26048 .endpoints
= &spoolss_endpoints
,
26049 .authservices
= &spoolss_authservices