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
));
21 NDR_CHECK(ndr_push_trailer_align(ndr
, 2));
23 if (ndr_flags
& NDR_BUFFERS
) {
25 return NDR_ERR_SUCCESS
;
28 static enum ndr_err_code
ndr_pull_spoolss_Time(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Time
*r
)
30 if (ndr_flags
& NDR_SCALARS
) {
31 NDR_CHECK(ndr_pull_align(ndr
, 2));
32 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->year
));
33 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->month
));
34 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->day_of_week
));
35 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->day
));
36 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->hour
));
37 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->minute
));
38 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->second
));
39 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->millisecond
));
40 NDR_CHECK(ndr_pull_trailer_align(ndr
, 2));
42 if (ndr_flags
& NDR_BUFFERS
) {
44 return NDR_ERR_SUCCESS
;
47 static size_t ndr_size_spoolss_Time(const struct spoolss_Time
*r
, struct smb_iconv_convenience
*ic
, int flags
)
49 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_Time
, ic
);
52 static enum ndr_err_code
ndr_push_spoolss_TimeCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_TimeCtr
*r
)
54 if (ndr_flags
& NDR_SCALARS
) {
55 NDR_CHECK(ndr_push_align(ndr
, 5));
56 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_Time(r
->time
, ndr
->iconv_convenience
, ndr
->flags
)));
57 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->time
));
58 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
60 if (ndr_flags
& NDR_BUFFERS
) {
62 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, r
->time
));
65 return NDR_ERR_SUCCESS
;
68 static enum ndr_err_code
ndr_pull_spoolss_TimeCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_TimeCtr
*r
)
71 TALLOC_CTX
*_mem_save_time_0
;
72 if (ndr_flags
& NDR_SCALARS
) {
73 NDR_CHECK(ndr_pull_align(ndr
, 5));
74 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
75 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_time
));
77 NDR_PULL_ALLOC(ndr
, r
->time
);
81 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
83 if (ndr_flags
& NDR_BUFFERS
) {
85 _mem_save_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
86 NDR_PULL_SET_MEM_CTX(ndr
, r
->time
, 0);
87 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, r
->time
));
88 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_time_0
, 0);
91 return NDR_ERR_SUCCESS
;
94 _PUBLIC_
void ndr_print_spoolss_TimeCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_TimeCtr
*r
)
96 ndr_print_struct(ndr
, name
, "spoolss_TimeCtr");
98 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_Time(r
->time
, ndr
->iconv_convenience
, ndr
->flags
):r
->size
);
99 ndr_print_ptr(ndr
, "time", r
->time
);
102 ndr_print_spoolss_Time(ndr
, "time", r
->time
);
108 static enum ndr_err_code
ndr_push_spoolss_ProcessorArchitecture(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_ProcessorArchitecture r
)
110 NDR_CHECK(ndr_push_enum_uint1632(ndr
, NDR_SCALARS
, r
));
111 return NDR_ERR_SUCCESS
;
114 static enum ndr_err_code
ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_ProcessorArchitecture
*r
)
117 NDR_CHECK(ndr_pull_enum_uint1632(ndr
, NDR_SCALARS
, &v
));
119 return NDR_ERR_SUCCESS
;
122 _PUBLIC_
void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print
*ndr
, const char *name
, enum spoolss_ProcessorArchitecture r
)
124 const char *val
= NULL
;
127 case PROCESSOR_ARCHITECTURE_INTEL
: val
= "PROCESSOR_ARCHITECTURE_INTEL"; break;
128 case PROCESSOR_ARCHITECTURE_IA64
: val
= "PROCESSOR_ARCHITECTURE_IA64"; break;
129 case PROCESSOR_ARCHITECTURE_AMD64
: val
= "PROCESSOR_ARCHITECTURE_AMD64"; break;
131 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
134 static enum ndr_err_code
ndr_push_spoolss_ProcessorType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_ProcessorType r
)
136 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
137 return NDR_ERR_SUCCESS
;
140 static enum ndr_err_code
ndr_pull_spoolss_ProcessorType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_ProcessorType
*r
)
143 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
145 return NDR_ERR_SUCCESS
;
148 _PUBLIC_
void ndr_print_spoolss_ProcessorType(struct ndr_print
*ndr
, const char *name
, enum spoolss_ProcessorType r
)
150 const char *val
= NULL
;
153 case PROCESSOR_INTEL_386
: val
= "PROCESSOR_INTEL_386"; break;
154 case PROCESSOR_INTEL_486
: val
= "PROCESSOR_INTEL_486"; break;
155 case PROCESSOR_INTEL_PENTIUM
: val
= "PROCESSOR_INTEL_PENTIUM"; break;
156 case PROCESSOR_INTEL_IA64
: val
= "PROCESSOR_INTEL_IA64"; break;
157 case PROCESSOR_AMD_X8664
: val
= "PROCESSOR_AMD_X8664"; break;
159 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
162 static enum ndr_err_code
ndr_push_spoolss_MajorVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_MajorVersion r
)
164 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
165 return NDR_ERR_SUCCESS
;
168 static enum ndr_err_code
ndr_pull_spoolss_MajorVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_MajorVersion
*r
)
171 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
173 return NDR_ERR_SUCCESS
;
176 _PUBLIC_
void ndr_print_spoolss_MajorVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_MajorVersion r
)
178 const char *val
= NULL
;
181 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME
: val
= "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
182 case SPOOLSS_MAJOR_VERSION_2000_2003_XP
: val
= "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
183 case SPOOLSS_MAJOR_VERSION_2008_VISTA
: val
= "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
185 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
188 static enum ndr_err_code
ndr_push_spoolss_MinorVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_MinorVersion r
)
190 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
191 return NDR_ERR_SUCCESS
;
194 static enum ndr_err_code
ndr_pull_spoolss_MinorVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_MinorVersion
*r
)
197 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
199 return NDR_ERR_SUCCESS
;
202 _PUBLIC_
void ndr_print_spoolss_MinorVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_MinorVersion r
)
204 const char *val
= NULL
;
207 case SPOOLSS_MINOR_VERSION_0
: val
= "SPOOLSS_MINOR_VERSION_0"; break;
208 case SPOOLSS_MINOR_VERSION_XP
: val
= "SPOOLSS_MINOR_VERSION_XP"; break;
209 case SPOOLSS_MINOR_VERSION_2003_XP64
: val
= "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
210 case SPOOLSS_MINOR_VERSION_98
: val
= "SPOOLSS_MINOR_VERSION_98"; break;
211 case SPOOLSS_MINOR_VERSION_ME
: val
= "SPOOLSS_MINOR_VERSION_ME"; break;
213 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
216 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterStatus(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
218 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
219 return NDR_ERR_SUCCESS
;
222 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterStatus(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
225 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
227 return NDR_ERR_SUCCESS
;
230 _PUBLIC_
void ndr_print_spoolss_PrinterStatus(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
232 ndr_print_uint32(ndr
, name
, r
);
234 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED
, r
);
235 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR
, r
);
236 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION
, r
);
237 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM
, r
);
238 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT
, r
);
239 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED
, r
);
240 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM
, r
);
241 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE
, r
);
242 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE
, r
);
243 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY
, r
);
244 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING
, r
);
245 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL
, r
);
246 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE
, r
);
247 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING
, r
);
248 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING
, r
);
249 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING
, r
);
250 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP
, r
);
251 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW
, r
);
252 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER
, r
);
253 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT
, r
);
254 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION
, r
);
255 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY
, r
);
256 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN
, r
);
257 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN
, r
);
258 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE
, r
);
262 static enum ndr_err_code
ndr_push_spoolss_JobStatus(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
264 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
265 return NDR_ERR_SUCCESS
;
268 static enum ndr_err_code
ndr_pull_spoolss_JobStatus(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
271 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
273 return NDR_ERR_SUCCESS
;
276 _PUBLIC_
void ndr_print_spoolss_JobStatus(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
278 ndr_print_uint32(ndr
, name
, r
);
280 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED
, r
);
281 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR
, r
);
282 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING
, r
);
283 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING
, r
);
284 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING
, r
);
285 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE
, r
);
286 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT
, r
);
287 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED
, r
);
288 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED
, r
);
289 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ
, r
);
290 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION
, r
);
291 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART
, r
);
292 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE
, r
);
296 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo0
*r
)
298 if (ndr_flags
& NDR_SCALARS
) {
299 NDR_CHECK(ndr_push_align(ndr
, 5));
301 uint32_t _flags_save_string
= ndr
->flags
;
302 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
303 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
304 ndr
->flags
= _flags_save_string
;
307 uint32_t _flags_save_string
= ndr
->flags
;
308 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
309 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
310 ndr
->flags
= _flags_save_string
;
312 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
313 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
314 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
315 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
316 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
317 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
318 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
319 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
320 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
321 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
322 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
323 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
325 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->job_error
));
326 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
327 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
328 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
329 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
330 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
331 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
332 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
333 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
334 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
335 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
336 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
338 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
339 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
341 if (ndr_flags
& NDR_BUFFERS
) {
343 uint32_t _flags_save_string
= ndr
->flags
;
344 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
345 if (r
->printername
) {
346 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printername
));
347 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
348 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printername
));
350 ndr
->flags
= _flags_save_string
;
353 uint32_t _flags_save_string
= ndr
->flags
;
354 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
356 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->servername
));
357 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
358 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->servername
));
360 ndr
->flags
= _flags_save_string
;
363 return NDR_ERR_SUCCESS
;
366 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo0
*r
)
368 uint32_t _ptr_printername
;
369 TALLOC_CTX
*_mem_save_printername_0
;
370 uint32_t _ptr_servername
;
371 TALLOC_CTX
*_mem_save_servername_0
;
372 if (ndr_flags
& NDR_SCALARS
) {
373 NDR_CHECK(ndr_pull_align(ndr
, 5));
375 uint32_t _flags_save_string
= ndr
->flags
;
376 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
377 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
378 if (_ptr_printername
) {
379 NDR_PULL_ALLOC(ndr
, r
->printername
);
380 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
382 r
->printername
= NULL
;
384 ndr
->flags
= _flags_save_string
;
387 uint32_t _flags_save_string
= ndr
->flags
;
388 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
389 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
390 if (_ptr_servername
) {
391 NDR_PULL_ALLOC(ndr
, r
->servername
);
392 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
394 r
->servername
= NULL
;
396 ndr
->flags
= _flags_save_string
;
398 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
399 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
400 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
401 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
402 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
403 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
404 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
405 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
406 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
407 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
408 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
409 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
410 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
411 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->job_error
));
412 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
413 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
414 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
415 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
416 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
417 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
418 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
419 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
420 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
421 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
422 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
423 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
424 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
425 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
427 if (ndr_flags
& NDR_BUFFERS
) {
429 uint32_t _flags_save_string
= ndr
->flags
;
430 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
431 if (r
->printername
) {
432 uint32_t _relative_save_offset
;
433 _relative_save_offset
= ndr
->offset
;
434 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
435 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
436 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
437 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
438 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
439 ndr
->offset
= _relative_save_offset
;
441 ndr
->flags
= _flags_save_string
;
444 uint32_t _flags_save_string
= ndr
->flags
;
445 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
447 uint32_t _relative_save_offset
;
448 _relative_save_offset
= ndr
->offset
;
449 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
450 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
451 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
452 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
453 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
454 ndr
->offset
= _relative_save_offset
;
456 ndr
->flags
= _flags_save_string
;
459 return NDR_ERR_SUCCESS
;
462 _PUBLIC_
void ndr_print_spoolss_PrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo0
*r
)
464 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo0");
466 ndr_print_ptr(ndr
, "printername", r
->printername
);
468 if (r
->printername
) {
469 ndr_print_string(ndr
, "printername", r
->printername
);
472 ndr_print_ptr(ndr
, "servername", r
->servername
);
475 ndr_print_string(ndr
, "servername", r
->servername
);
478 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
479 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
480 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
481 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
482 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
483 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
484 ndr_print_uint32(ndr
, "version", r
->version
);
485 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
486 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
487 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
488 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
489 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
490 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
491 ndr_print_spoolss_JobStatus(ndr
, "job_error", r
->job_error
);
492 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
493 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
494 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
495 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
496 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
497 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
498 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
499 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
500 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
501 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
502 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
503 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
504 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
508 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0
*r
, struct smb_iconv_convenience
*ic
, int flags
)
510 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo0
, ic
);
513 static enum ndr_err_code
ndr_push_spoolss_DeviceModeFields(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
516 return NDR_ERR_SUCCESS
;
519 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeFields(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
522 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
524 return NDR_ERR_SUCCESS
;
527 _PUBLIC_
void ndr_print_spoolss_DeviceModeFields(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
529 ndr_print_uint32(ndr
, name
, r
);
531 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION
, r
);
532 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE
, r
);
533 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH
, r
);
534 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH
, r
);
535 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE
, r
);
536 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION
, r
);
537 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP
, r
);
538 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES
, r
);
539 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE
, r
);
540 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY
, r
);
541 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR
, r
);
542 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX
, r
);
543 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION
, r
);
544 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION
, r
);
545 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE
, r
);
546 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME
, r
);
547 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS
, r
);
548 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL
, r
);
549 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH
, r
);
550 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT
, r
);
551 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS
, r
);
552 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY
, r
);
553 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD
, r
);
554 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT
, r
);
555 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE
, r
);
556 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE
, r
);
557 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH
, r
);
558 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT
, r
);
562 static enum ndr_err_code
ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeSpecVersion r
)
564 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
565 return NDR_ERR_SUCCESS
;
568 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeSpecVersion
*r
)
571 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
573 return NDR_ERR_SUCCESS
;
576 _PUBLIC_
void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeSpecVersion r
)
578 const char *val
= NULL
;
581 case DMSPEC_NT3
: val
= "DMSPEC_NT3"; break;
582 case DMSPEC_WIN95_98_ME
: val
= "DMSPEC_WIN95_98_ME"; break;
583 case DMSPEC_NT4_AND_ABOVE
: val
= "DMSPEC_NT4_AND_ABOVE"; break;
585 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
588 static enum ndr_err_code
ndr_push_spoolss_DeviceModeOrientation(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeOrientation r
)
590 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
591 return NDR_ERR_SUCCESS
;
594 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeOrientation
*r
)
597 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
599 return NDR_ERR_SUCCESS
;
602 _PUBLIC_
void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeOrientation r
)
604 const char *val
= NULL
;
607 case DMORIENT_PORTRAIT
: val
= "DMORIENT_PORTRAIT"; break;
608 case DMORIENT_LANDSCAPE
: val
= "DMORIENT_LANDSCAPE"; break;
610 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
613 static enum ndr_err_code
ndr_push_spoolss_DeviceModePaperSize(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModePaperSize r
)
615 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
616 return NDR_ERR_SUCCESS
;
619 static enum ndr_err_code
ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModePaperSize
*r
)
622 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
624 return NDR_ERR_SUCCESS
;
627 _PUBLIC_
void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModePaperSize r
)
629 const char *val
= NULL
;
632 case DMPAPER_LETTER
: val
= "DMPAPER_LETTER"; break;
633 case DMPAPER_LETTERSMALL
: val
= "DMPAPER_LETTERSMALL"; break;
634 case DMPAPER_TABLOID
: val
= "DMPAPER_TABLOID"; break;
635 case DMPAPER_LEDGER
: val
= "DMPAPER_LEDGER"; break;
636 case DMPAPER_LEGAL
: val
= "DMPAPER_LEGAL"; break;
637 case DMPAPER_STATEMENT
: val
= "DMPAPER_STATEMENT"; break;
638 case DMPAPER_EXECUTIVE
: val
= "DMPAPER_EXECUTIVE"; break;
639 case DMPAPER_A3
: val
= "DMPAPER_A3"; break;
640 case DMPAPER_A4
: val
= "DMPAPER_A4"; break;
641 case DMPAPER_A4SMALL
: val
= "DMPAPER_A4SMALL"; break;
642 case DMPAPER_A5
: val
= "DMPAPER_A5"; break;
643 case DMPAPER_B4
: val
= "DMPAPER_B4"; break;
644 case DMPAPER_B5
: val
= "DMPAPER_B5"; break;
645 case DMPAPER_FOLIO
: val
= "DMPAPER_FOLIO"; break;
646 case DMPAPER_QUARTO
: val
= "DMPAPER_QUARTO"; break;
647 case DMPAPER_10X14
: val
= "DMPAPER_10X14"; break;
648 case DMPAPER_11X17
: val
= "DMPAPER_11X17"; break;
649 case DMPAPER_NOTE
: val
= "DMPAPER_NOTE"; break;
650 case DMPAPER_ENV_9
: val
= "DMPAPER_ENV_9"; break;
651 case DMPAPER_ENV_10
: val
= "DMPAPER_ENV_10"; break;
652 case DMPAPER_ENV_11
: val
= "DMPAPER_ENV_11"; break;
653 case DMPAPER_ENV_12
: val
= "DMPAPER_ENV_12"; break;
654 case DMPAPER_ENV_14
: val
= "DMPAPER_ENV_14"; break;
655 case DMPAPER_CSHEET
: val
= "DMPAPER_CSHEET"; break;
656 case DMPAPER_DSHEET
: val
= "DMPAPER_DSHEET"; break;
657 case DMPAPER_ESHEET
: val
= "DMPAPER_ESHEET"; break;
658 case DMPAPER_ENV_DL
: val
= "DMPAPER_ENV_DL"; break;
659 case DMPAPER_ENV_C5
: val
= "DMPAPER_ENV_C5"; break;
660 case DMPAPER_ENV_C3
: val
= "DMPAPER_ENV_C3"; break;
661 case DMPAPER_ENV_C4
: val
= "DMPAPER_ENV_C4"; break;
662 case DMPAPER_ENV_C6
: val
= "DMPAPER_ENV_C6"; break;
663 case DMPAPER_ENV_C65
: val
= "DMPAPER_ENV_C65"; break;
664 case DMPAPER_ENV_B4
: val
= "DMPAPER_ENV_B4"; break;
665 case DMPAPER_ENV_B5
: val
= "DMPAPER_ENV_B5"; break;
666 case DMPAPER_ENV_B6
: val
= "DMPAPER_ENV_B6"; break;
667 case DMPAPER_ENV_ITALY
: val
= "DMPAPER_ENV_ITALY"; break;
668 case DMPAPER_ENV_MONARCH
: val
= "DMPAPER_ENV_MONARCH"; break;
669 case DMPAPER_ENV_PERSONAL
: val
= "DMPAPER_ENV_PERSONAL"; break;
670 case DMPAPER_FANFOLD_US
: val
= "DMPAPER_FANFOLD_US"; break;
671 case DMPAPER_FANFOLD_STD_GERMAN
: val
= "DMPAPER_FANFOLD_STD_GERMAN"; break;
672 case DMPAPER_FANFOLD_LGL_GERMAN
: val
= "DMPAPER_FANFOLD_LGL_GERMAN"; break;
673 case DMPAPER_DBL_JAPANESE_POSTCARD
: val
= "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
674 case DMPAPER_A6
: val
= "DMPAPER_A6"; break;
675 case DMPAPER_JENV_KAKU2
: val
= "DMPAPER_JENV_KAKU2"; break;
676 case DMPAPER_JENV_KAKU3
: val
= "DMPAPER_JENV_KAKU3"; break;
677 case DMPAPER_JENV_CHOU3
: val
= "DMPAPER_JENV_CHOU3"; break;
678 case DMPAPER_JENV_CHOU4
: val
= "DMPAPER_JENV_CHOU4"; break;
679 case DMPAPER_LETTER_ROTATED
: val
= "DMPAPER_LETTER_ROTATED"; break;
680 case DMPAPER_A3_ROTATED
: val
= "DMPAPER_A3_ROTATED"; break;
681 case DMPAPER_A4_ROTATED
: val
= "DMPAPER_A4_ROTATED"; break;
682 case DMPAPER_A5_ROTATED
: val
= "DMPAPER_A5_ROTATED"; break;
683 case DMPAPER_B4_JIS_ROTATED
: val
= "DMPAPER_B4_JIS_ROTATED"; break;
684 case DMPAPER_B5_JIS_ROTATED
: val
= "DMPAPER_B5_JIS_ROTATED"; break;
685 case DMPAPER_JAPANESE_POSTCARD_ROTATED
: val
= "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
686 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED
: val
= "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
687 case DMPAPER_A6_ROTATED
: val
= "DMPAPER_A6_ROTATED"; break;
688 case DMPAPER_JENV_KAKU2_ROTATED
: val
= "DMPAPER_JENV_KAKU2_ROTATED"; break;
689 case DMPAPER_JENV_KAKU3_ROTATED
: val
= "DMPAPER_JENV_KAKU3_ROTATED"; break;
690 case DMPAPER_JENV_CHOU3_ROTATED
: val
= "DMPAPER_JENV_CHOU3_ROTATED"; break;
691 case DMPAPER_JENV_CHOU4_ROTATED
: val
= "DMPAPER_JENV_CHOU4_ROTATED"; break;
692 case DMPAPER_B6_JIS
: val
= "DMPAPER_B6_JIS"; break;
693 case DMPAPER_B6_JIS_ROTATED
: val
= "DMPAPER_B6_JIS_ROTATED"; break;
694 case DMPAPER_12X11
: val
= "DMPAPER_12X11"; break;
695 case DMPAPER_JENV_YOU4
: val
= "DMPAPER_JENV_YOU4"; break;
696 case DMPAPER_JENV_YOU4_ROTATED
: val
= "DMPAPER_JENV_YOU4_ROTATED"; break;
697 case DMPAPER_P16K
: val
= "DMPAPER_P16K"; break;
698 case DMPAPER_P32K
: val
= "DMPAPER_P32K"; break;
699 case DMPAPER_P32KBIG
: val
= "DMPAPER_P32KBIG"; break;
700 case DMPAPER_PENV_1
: val
= "DMPAPER_PENV_1"; break;
701 case DMPAPER_PENV_2
: val
= "DMPAPER_PENV_2"; break;
702 case DMPAPER_PENV_3
: val
= "DMPAPER_PENV_3"; break;
703 case DMPAPER_PENV_4
: val
= "DMPAPER_PENV_4"; break;
704 case DMPAPER_PENV_5
: val
= "DMPAPER_PENV_5"; break;
705 case DMPAPER_PENV_6
: val
= "DMPAPER_PENV_6"; break;
706 case DMPAPER_PENV_7
: val
= "DMPAPER_PENV_7"; break;
707 case DMPAPER_PENV_8
: val
= "DMPAPER_PENV_8"; break;
708 case DMPAPER_PENV_9
: val
= "DMPAPER_PENV_9"; break;
709 case DMPAPER_PENV_10
: val
= "DMPAPER_PENV_10"; break;
710 case DMPAPER_P16K_ROTATED
: val
= "DMPAPER_P16K_ROTATED"; break;
711 case DMPAPER_P32K_ROTATED
: val
= "DMPAPER_P32K_ROTATED"; break;
712 case DMPAPER_P32KBIG_ROTATED
: val
= "DMPAPER_P32KBIG_ROTATED"; break;
713 case DMPAPER_PENV_1_ROTATED
: val
= "DMPAPER_PENV_1_ROTATED"; break;
714 case DMPAPER_PENV_2_ROTATED
: val
= "DMPAPER_PENV_2_ROTATED"; break;
715 case DMPAPER_PENV_3_ROTATED
: val
= "DMPAPER_PENV_3_ROTATED"; break;
716 case DMPAPER_PENV_4_ROTATED
: val
= "DMPAPER_PENV_4_ROTATED"; break;
717 case DMPAPER_PENV_5_ROTATED
: val
= "DMPAPER_PENV_5_ROTATED"; break;
718 case DMPAPER_PENV_6_ROTATED
: val
= "DMPAPER_PENV_6_ROTATED"; break;
719 case DMPAPER_PENV_7_ROTATED
: val
= "DMPAPER_PENV_7_ROTATED"; break;
720 case DMPAPER_PENV_8_ROTATED
: val
= "DMPAPER_PENV_8_ROTATED"; break;
721 case DMPAPER_PENV_9_ROTATED
: val
= "DMPAPER_PENV_9_ROTATED"; break;
722 case DMPAPER_PENV_10_ROTATED
: val
= "DMPAPER_PENV_10_ROTATED"; break;
724 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
727 static enum ndr_err_code
ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDefaultSource r
)
729 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
730 return NDR_ERR_SUCCESS
;
733 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDefaultSource
*r
)
736 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
738 return NDR_ERR_SUCCESS
;
741 _PUBLIC_
void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeDefaultSource r
)
743 const char *val
= NULL
;
746 case DMBIN_UPPER
: val
= "DMBIN_UPPER"; break;
747 case DMBIN_LOWER
: val
= "DMBIN_LOWER"; break;
748 case DMBIN_MIDDLE
: val
= "DMBIN_MIDDLE"; break;
749 case DMBIN_MANUAL
: val
= "DMBIN_MANUAL"; break;
750 case DMBIN_ENVELOPE
: val
= "DMBIN_ENVELOPE"; break;
751 case DMBIN_ENVMANUAL
: val
= "DMBIN_ENVMANUAL"; break;
752 case DMBIN_AUTO
: val
= "DMBIN_AUTO"; break;
753 case DMBIN_TRACTOR
: val
= "DMBIN_TRACTOR"; break;
754 case DMBIN_SMALLFMT
: val
= "DMBIN_SMALLFMT"; break;
755 case DMBIN_LARGEFMT
: val
= "DMBIN_LARGEFMT"; break;
756 case DMBIN_LARGECAPACITY
: val
= "DMBIN_LARGECAPACITY"; break;
757 case DMBIN_CASSETTE
: val
= "DMBIN_CASSETTE"; break;
758 case DMBIN_FORMSOURCE
: val
= "DMBIN_FORMSOURCE"; break;
760 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
763 static enum ndr_err_code
ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModePrintQuality r
)
765 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
766 return NDR_ERR_SUCCESS
;
769 static enum ndr_err_code
ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModePrintQuality
*r
)
772 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
774 return NDR_ERR_SUCCESS
;
777 _PUBLIC_
void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModePrintQuality r
)
779 const char *val
= NULL
;
782 case DMRES_HIGH
: val
= "DMRES_HIGH"; break;
783 case DMRES_MEDIUM
: val
= "DMRES_MEDIUM"; break;
784 case DMRES_LOW
: val
= "DMRES_LOW"; break;
785 case DMRES_DRAFT
: val
= "DMRES_DRAFT"; break;
787 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
790 static enum ndr_err_code
ndr_push_spoolss_DeviceModeColor(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeColor r
)
792 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
793 return NDR_ERR_SUCCESS
;
796 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeColor(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeColor
*r
)
799 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
801 return NDR_ERR_SUCCESS
;
804 _PUBLIC_
void ndr_print_spoolss_DeviceModeColor(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeColor r
)
806 const char *val
= NULL
;
809 case DMRES_MONOCHROME
: val
= "DMRES_MONOCHROME"; break;
810 case DMRES_COLOR
: val
= "DMRES_COLOR"; break;
812 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
815 static enum ndr_err_code
ndr_push_spoolss_DeviceModeDuplex(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDuplex r
)
817 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
818 return NDR_ERR_SUCCESS
;
821 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDuplex
*r
)
824 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
826 return NDR_ERR_SUCCESS
;
829 _PUBLIC_
void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeDuplex r
)
831 const char *val
= NULL
;
834 case DMDUP_SIMPLEX
: val
= "DMDUP_SIMPLEX"; break;
835 case DMDUP_VERTICAL
: val
= "DMDUP_VERTICAL"; break;
836 case DMDUP_HORIZONTAL
: val
= "DMDUP_HORIZONTAL"; break;
838 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
841 static enum ndr_err_code
ndr_push_spoolss_DeviceModeTTOption(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeTTOption r
)
843 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
844 return NDR_ERR_SUCCESS
;
847 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeTTOption
*r
)
850 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
852 return NDR_ERR_SUCCESS
;
855 _PUBLIC_
void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeTTOption r
)
857 const char *val
= NULL
;
860 case DMTT_BITMAP
: val
= "DMTT_BITMAP"; break;
861 case DMTT_DOWNLOAD
: val
= "DMTT_DOWNLOAD"; break;
862 case DMTT_SUBDEV
: val
= "DMTT_SUBDEV"; break;
863 case DMTT_DOWNLOAD_OUTLINE
: val
= "DMTT_DOWNLOAD_OUTLINE"; break;
865 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
868 static enum ndr_err_code
ndr_push_spoolss_DeviceModeCollate(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeCollate r
)
870 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
871 return NDR_ERR_SUCCESS
;
874 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeCollate
*r
)
877 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
879 return NDR_ERR_SUCCESS
;
882 _PUBLIC_
void ndr_print_spoolss_DeviceModeCollate(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeCollate r
)
884 const char *val
= NULL
;
887 case DMCOLLATE_FALSE
: val
= "DMCOLLATE_FALSE"; break;
888 case DMCOLLATE_TRUE
: val
= "DMCOLLATE_TRUE"; break;
890 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
893 static enum ndr_err_code
ndr_push_spoolss_DeviceModeNUp(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeNUp r
)
895 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
896 return NDR_ERR_SUCCESS
;
899 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeNUp
*r
)
902 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
904 return NDR_ERR_SUCCESS
;
907 _PUBLIC_
void ndr_print_spoolss_DeviceModeNUp(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeNUp r
)
909 const char *val
= NULL
;
912 case DMNUP_SYSTEM
: val
= "DMNUP_SYSTEM"; break;
913 case DMNUP_ONEUP
: val
= "DMNUP_ONEUP"; break;
915 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
918 static enum ndr_err_code
ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMMethod r
)
920 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
921 return NDR_ERR_SUCCESS
;
924 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMMethod
*r
)
927 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
929 return NDR_ERR_SUCCESS
;
932 _PUBLIC_
void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeICMMethod r
)
934 const char *val
= NULL
;
937 case DMICMMETHOD_NONE
: val
= "DMICMMETHOD_NONE"; break;
938 case DMICMMETHOD_SYSTEM
: val
= "DMICMMETHOD_SYSTEM"; break;
939 case DMICMMETHOD_DRIVER
: val
= "DMICMMETHOD_DRIVER"; break;
940 case DMICMMETHOD_DEVICE
: val
= "DMICMMETHOD_DEVICE"; break;
942 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
945 static enum ndr_err_code
ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMIntent r
)
947 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
948 return NDR_ERR_SUCCESS
;
951 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMIntent
*r
)
954 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
956 return NDR_ERR_SUCCESS
;
959 _PUBLIC_
void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeICMIntent r
)
961 const char *val
= NULL
;
964 case DMICM_SATURATE
: val
= "DMICM_SATURATE"; break;
965 case DMICM_CONTRAST
: val
= "DMICM_CONTRAST"; break;
966 case DMICM_COLORIMETRIC
: val
= "DMICM_COLORIMETRIC"; break;
967 case DMICM_ABS_COLORIMETRIC
: val
= "DMICM_ABS_COLORIMETRIC"; break;
969 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
972 static enum ndr_err_code
ndr_push_spoolss_DeviceModeMediaType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeMediaType r
)
974 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
975 return NDR_ERR_SUCCESS
;
978 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeMediaType
*r
)
981 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
983 return NDR_ERR_SUCCESS
;
986 _PUBLIC_
void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeMediaType r
)
988 const char *val
= NULL
;
991 case DMMEDIA_STANDARD
: val
= "DMMEDIA_STANDARD"; break;
992 case DMMEDIA_TRANSPARENCY
: val
= "DMMEDIA_TRANSPARENCY"; break;
993 case DMMEDIA_GLOSSY
: val
= "DMMEDIA_GLOSSY"; break;
995 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
998 static enum ndr_err_code
ndr_push_spoolss_DeviceModeDitherType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDitherType r
)
1000 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
1001 return NDR_ERR_SUCCESS
;
1004 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDitherType
*r
)
1007 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
1009 return NDR_ERR_SUCCESS
;
1012 _PUBLIC_
void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeDitherType r
)
1014 const char *val
= NULL
;
1017 case DMDITHER_NONE
: val
= "DMDITHER_NONE"; break;
1018 case DMDITHER_COARSE
: val
= "DMDITHER_COARSE"; break;
1019 case DMDITHER_FINE
: val
= "DMDITHER_FINE"; break;
1020 case DMDITHER_LINEART
: val
= "DMDITHER_LINEART"; break;
1021 case DMDITHER_ERRORDIFFUSION
: val
= "DMDITHER_ERRORDIFFUSION"; break;
1022 case DMDITHER_RESERVED6
: val
= "DMDITHER_RESERVED6"; break;
1023 case DMDITHER_RESERVED7
: val
= "DMDITHER_RESERVED7"; break;
1024 case DMDITHER_RESERVED8
: val
= "DMDITHER_RESERVED8"; break;
1025 case DMDITHER_RESERVED9
: val
= "DMDITHER_RESERVED9"; break;
1026 case DMDITHER_GRAYSCALE
: val
= "DMDITHER_GRAYSCALE"; break;
1028 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1031 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeviceMode(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceMode
*r
)
1033 if (ndr_flags
& NDR_SCALARS
) {
1034 NDR_CHECK(ndr_push_align(ndr
, 4));
1035 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->devicename
, MAXDEVICENAME
, sizeof(uint16_t), CH_UTF16
));
1036 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr
, NDR_SCALARS
, r
->specversion
));
1037 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverversion
));
1038 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
1039 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverextra_data
.length
));
1040 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, r
->fields
));
1041 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr
, NDR_SCALARS
, r
->orientation
));
1042 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr
, NDR_SCALARS
, r
->papersize
));
1043 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperlength
));
1044 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperwidth
));
1045 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->scale
));
1046 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->copies
));
1047 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr
, NDR_SCALARS
, r
->defaultsource
));
1048 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr
, NDR_SCALARS
, r
->printquality
));
1049 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr
, NDR_SCALARS
, r
->color
));
1050 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr
, NDR_SCALARS
, r
->duplex
));
1051 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->yresolution
));
1052 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr
, NDR_SCALARS
, r
->ttoption
));
1053 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr
, NDR_SCALARS
, r
->collate
));
1054 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, MAXDEVICENAME
, sizeof(uint16_t), CH_UTF16
));
1055 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logpixels
));
1056 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bitsperpel
));
1057 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelswidth
));
1058 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelsheight
));
1059 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr
, NDR_SCALARS
, r
->displayflags
));
1060 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayfrequency
));
1061 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr
, NDR_SCALARS
, r
->icmmethod
));
1062 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr
, NDR_SCALARS
, r
->icmintent
));
1063 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr
, NDR_SCALARS
, r
->mediatype
));
1064 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr
, NDR_SCALARS
, r
->dithertype
));
1065 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved1
));
1066 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
1067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningwidth
));
1068 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningheight
));
1070 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1071 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
1073 struct ndr_push
*_ndr_driverextra_data
;
1074 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
1075 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, r
->driverextra_data
));
1076 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
1078 ndr
->flags
= _flags_save_DATA_BLOB
;
1080 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
1082 if (ndr_flags
& NDR_BUFFERS
) {
1084 return NDR_ERR_SUCCESS
;
1087 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeviceMode(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceMode
*r
)
1089 uint32_t size_devicename_0
= 0;
1090 uint32_t size_formname_0
= 0;
1091 if (ndr_flags
& NDR_SCALARS
) {
1092 NDR_CHECK(ndr_pull_align(ndr
, 4));
1093 size_devicename_0
= MAXDEVICENAME
;
1094 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->devicename
, size_devicename_0
, sizeof(uint16_t), CH_UTF16
));
1095 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr
, NDR_SCALARS
, &r
->specversion
));
1096 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->driverversion
));
1097 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
1098 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->__driverextra_length
));
1099 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, &r
->fields
));
1100 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr
, NDR_SCALARS
, &r
->orientation
));
1101 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr
, NDR_SCALARS
, &r
->papersize
));
1102 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperlength
));
1103 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperwidth
));
1104 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->scale
));
1105 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->copies
));
1106 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr
, NDR_SCALARS
, &r
->defaultsource
));
1107 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr
, NDR_SCALARS
, &r
->printquality
));
1108 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr
, NDR_SCALARS
, &r
->color
));
1109 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr
, NDR_SCALARS
, &r
->duplex
));
1110 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->yresolution
));
1111 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr
, NDR_SCALARS
, &r
->ttoption
));
1112 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr
, NDR_SCALARS
, &r
->collate
));
1113 size_formname_0
= MAXDEVICENAME
;
1114 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, size_formname_0
, sizeof(uint16_t), CH_UTF16
));
1115 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logpixels
));
1116 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bitsperpel
));
1117 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelswidth
));
1118 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelsheight
));
1119 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr
, NDR_SCALARS
, &r
->displayflags
));
1120 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayfrequency
));
1121 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr
, NDR_SCALARS
, &r
->icmmethod
));
1122 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr
, NDR_SCALARS
, &r
->icmintent
));
1123 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr
, NDR_SCALARS
, &r
->mediatype
));
1124 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr
, NDR_SCALARS
, &r
->dithertype
));
1125 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved1
));
1126 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
1127 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningwidth
));
1128 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningheight
));
1130 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1131 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
1133 struct ndr_pull
*_ndr_driverextra_data
;
1134 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->__driverextra_length
));
1135 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, &r
->driverextra_data
));
1136 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->__driverextra_length
));
1138 ndr
->flags
= _flags_save_DATA_BLOB
;
1140 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
1142 if (ndr_flags
& NDR_BUFFERS
) {
1144 return NDR_ERR_SUCCESS
;
1147 _PUBLIC_
void ndr_print_spoolss_DeviceMode(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceMode
*r
)
1149 ndr_print_struct(ndr
, name
, "spoolss_DeviceMode");
1151 ndr_print_string(ndr
, "devicename", r
->devicename
);
1152 ndr_print_spoolss_DeviceModeSpecVersion(ndr
, "specversion", r
->specversion
);
1153 ndr_print_uint16(ndr
, "driverversion", r
->driverversion
);
1154 ndr_print_uint16(ndr
, "size", r
->size
);
1155 ndr_print_uint16(ndr
, "__driverextra_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->driverextra_data
.length
:r
->__driverextra_length
);
1156 ndr_print_spoolss_DeviceModeFields(ndr
, "fields", r
->fields
);
1157 ndr_print_spoolss_DeviceModeOrientation(ndr
, "orientation", r
->orientation
);
1158 ndr_print_spoolss_DeviceModePaperSize(ndr
, "papersize", r
->papersize
);
1159 ndr_print_uint16(ndr
, "paperlength", r
->paperlength
);
1160 ndr_print_uint16(ndr
, "paperwidth", r
->paperwidth
);
1161 ndr_print_uint16(ndr
, "scale", r
->scale
);
1162 ndr_print_uint16(ndr
, "copies", r
->copies
);
1163 ndr_print_spoolss_DeviceModeDefaultSource(ndr
, "defaultsource", r
->defaultsource
);
1164 ndr_print_spoolss_DeviceModePrintQuality(ndr
, "printquality", r
->printquality
);
1165 ndr_print_spoolss_DeviceModeColor(ndr
, "color", r
->color
);
1166 ndr_print_spoolss_DeviceModeDuplex(ndr
, "duplex", r
->duplex
);
1167 ndr_print_uint16(ndr
, "yresolution", r
->yresolution
);
1168 ndr_print_spoolss_DeviceModeTTOption(ndr
, "ttoption", r
->ttoption
);
1169 ndr_print_spoolss_DeviceModeCollate(ndr
, "collate", r
->collate
);
1170 ndr_print_string(ndr
, "formname", r
->formname
);
1171 ndr_print_uint16(ndr
, "logpixels", r
->logpixels
);
1172 ndr_print_uint32(ndr
, "bitsperpel", r
->bitsperpel
);
1173 ndr_print_uint32(ndr
, "pelswidth", r
->pelswidth
);
1174 ndr_print_uint32(ndr
, "pelsheight", r
->pelsheight
);
1175 ndr_print_spoolss_DeviceModeNUp(ndr
, "displayflags", r
->displayflags
);
1176 ndr_print_uint32(ndr
, "displayfrequency", r
->displayfrequency
);
1177 ndr_print_spoolss_DeviceModeICMMethod(ndr
, "icmmethod", r
->icmmethod
);
1178 ndr_print_spoolss_DeviceModeICMIntent(ndr
, "icmintent", r
->icmintent
);
1179 ndr_print_spoolss_DeviceModeMediaType(ndr
, "mediatype", r
->mediatype
);
1180 ndr_print_spoolss_DeviceModeDitherType(ndr
, "dithertype", r
->dithertype
);
1181 ndr_print_uint32(ndr
, "reserved1", r
->reserved1
);
1182 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
1183 ndr_print_uint32(ndr
, "panningwidth", r
->panningwidth
);
1184 ndr_print_uint32(ndr
, "panningheight", r
->panningheight
);
1185 ndr_print_DATA_BLOB(ndr
, "driverextra_data", r
->driverextra_data
);
1189 _PUBLIC_
size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1191 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DeviceMode
, ic
);
1194 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1196 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1197 return NDR_ERR_SUCCESS
;
1200 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1203 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1205 return NDR_ERR_SUCCESS
;
1208 _PUBLIC_
void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1210 ndr_print_uint32(ndr
, name
, r
);
1212 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT
, r
);
1213 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL
, r
);
1214 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS
, r
);
1215 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE
, r
);
1216 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME
, r
);
1217 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE
, r
);
1218 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED
, r
);
1219 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK
, r
);
1220 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND
, r
);
1221 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER
, r
);
1222 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1
, r
);
1223 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2
, r
);
1224 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3
, r
);
1225 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4
, r
);
1226 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5
, r
);
1227 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6
, r
);
1228 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7
, r
);
1229 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8
, r
);
1230 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE
, r
);
1234 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1236 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1237 return NDR_ERR_SUCCESS
;
1240 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1243 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1245 return NDR_ERR_SUCCESS
;
1248 _PUBLIC_
void ndr_print_spoolss_PrinterAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1250 ndr_print_uint32(ndr
, name
, r
);
1252 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED
, r
);
1253 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT
, r
);
1254 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT
, r
);
1255 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED
, r
);
1256 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK
, r
);
1257 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN
, r
);
1258 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL
, r
);
1259 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ
, r
);
1260 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS
, r
);
1261 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST
, r
);
1262 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE
, r
);
1263 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI
, r
);
1264 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY
, r
);
1265 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED
, r
);
1266 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX
, r
);
1267 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS
, r
);
1271 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo1
*r
)
1273 if (ndr_flags
& NDR_SCALARS
) {
1274 NDR_CHECK(ndr_push_align(ndr
, 5));
1275 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->flags
));
1277 uint32_t _flags_save_string
= ndr
->flags
;
1278 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1279 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
1280 ndr
->flags
= _flags_save_string
;
1283 uint32_t _flags_save_string
= ndr
->flags
;
1284 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1285 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name
));
1286 ndr
->flags
= _flags_save_string
;
1289 uint32_t _flags_save_string
= ndr
->flags
;
1290 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1291 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
1292 ndr
->flags
= _flags_save_string
;
1294 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
1296 if (ndr_flags
& NDR_BUFFERS
) {
1298 uint32_t _flags_save_string
= ndr
->flags
;
1299 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1300 if (r
->description
) {
1301 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->description
));
1302 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
1303 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->description
));
1305 ndr
->flags
= _flags_save_string
;
1308 uint32_t _flags_save_string
= ndr
->flags
;
1309 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1311 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->name
));
1312 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name
));
1313 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->name
));
1315 ndr
->flags
= _flags_save_string
;
1318 uint32_t _flags_save_string
= ndr
->flags
;
1319 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1321 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->comment
));
1322 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
1323 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->comment
));
1325 ndr
->flags
= _flags_save_string
;
1328 return NDR_ERR_SUCCESS
;
1331 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo1
*r
)
1333 uint32_t _ptr_description
;
1334 TALLOC_CTX
*_mem_save_description_0
;
1336 TALLOC_CTX
*_mem_save_name_0
;
1337 uint32_t _ptr_comment
;
1338 TALLOC_CTX
*_mem_save_comment_0
;
1339 if (ndr_flags
& NDR_SCALARS
) {
1340 NDR_CHECK(ndr_pull_align(ndr
, 5));
1341 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->flags
));
1343 uint32_t _flags_save_string
= ndr
->flags
;
1344 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1345 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
1346 if (_ptr_description
) {
1347 NDR_PULL_ALLOC(ndr
, r
->description
);
1348 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
1350 r
->description
= NULL
;
1352 ndr
->flags
= _flags_save_string
;
1355 uint32_t _flags_save_string
= ndr
->flags
;
1356 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1357 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
1359 NDR_PULL_ALLOC(ndr
, r
->name
);
1360 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name
, _ptr_name
));
1364 ndr
->flags
= _flags_save_string
;
1367 uint32_t _flags_save_string
= ndr
->flags
;
1368 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1369 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
1371 NDR_PULL_ALLOC(ndr
, r
->comment
);
1372 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
1376 ndr
->flags
= _flags_save_string
;
1378 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
1380 if (ndr_flags
& NDR_BUFFERS
) {
1382 uint32_t _flags_save_string
= ndr
->flags
;
1383 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1384 if (r
->description
) {
1385 uint32_t _relative_save_offset
;
1386 _relative_save_offset
= ndr
->offset
;
1387 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
1388 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1389 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
1390 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
1391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
1392 ndr
->offset
= _relative_save_offset
;
1394 ndr
->flags
= _flags_save_string
;
1397 uint32_t _flags_save_string
= ndr
->flags
;
1398 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1400 uint32_t _relative_save_offset
;
1401 _relative_save_offset
= ndr
->offset
;
1402 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name
));
1403 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1404 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
1405 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name
));
1406 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
1407 ndr
->offset
= _relative_save_offset
;
1409 ndr
->flags
= _flags_save_string
;
1412 uint32_t _flags_save_string
= ndr
->flags
;
1413 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1415 uint32_t _relative_save_offset
;
1416 _relative_save_offset
= ndr
->offset
;
1417 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
1418 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1419 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
1420 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
1421 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
1422 ndr
->offset
= _relative_save_offset
;
1424 ndr
->flags
= _flags_save_string
;
1427 return NDR_ERR_SUCCESS
;
1430 _PUBLIC_
void ndr_print_spoolss_PrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo1
*r
)
1432 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo1");
1434 ndr_print_spoolss_PrinterAttributes(ndr
, "flags", r
->flags
);
1435 ndr_print_ptr(ndr
, "description", r
->description
);
1437 if (r
->description
) {
1438 ndr_print_string(ndr
, "description", r
->description
);
1441 ndr_print_ptr(ndr
, "name", r
->name
);
1444 ndr_print_string(ndr
, "name", r
->name
);
1447 ndr_print_ptr(ndr
, "comment", r
->comment
);
1450 ndr_print_string(ndr
, "comment", r
->comment
);
1456 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1458 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo1
, ic
);
1461 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo2
*r
)
1463 uint32_t _ptr_servername
;
1464 TALLOC_CTX
*_mem_save_servername_0
;
1465 uint32_t _ptr_printername
;
1466 TALLOC_CTX
*_mem_save_printername_0
;
1467 uint32_t _ptr_sharename
;
1468 TALLOC_CTX
*_mem_save_sharename_0
;
1469 uint32_t _ptr_portname
;
1470 TALLOC_CTX
*_mem_save_portname_0
;
1471 uint32_t _ptr_drivername
;
1472 TALLOC_CTX
*_mem_save_drivername_0
;
1473 uint32_t _ptr_comment
;
1474 TALLOC_CTX
*_mem_save_comment_0
;
1475 uint32_t _ptr_location
;
1476 TALLOC_CTX
*_mem_save_location_0
;
1477 uint32_t _ptr_devmode
;
1478 TALLOC_CTX
*_mem_save_devmode_0
;
1479 uint32_t _ptr_sepfile
;
1480 TALLOC_CTX
*_mem_save_sepfile_0
;
1481 uint32_t _ptr_printprocessor
;
1482 TALLOC_CTX
*_mem_save_printprocessor_0
;
1483 uint32_t _ptr_datatype
;
1484 TALLOC_CTX
*_mem_save_datatype_0
;
1485 uint32_t _ptr_parameters
;
1486 TALLOC_CTX
*_mem_save_parameters_0
;
1487 uint32_t _ptr_secdesc
;
1488 TALLOC_CTX
*_mem_save_secdesc_0
;
1489 if (ndr_flags
& NDR_SCALARS
) {
1490 NDR_CHECK(ndr_pull_align(ndr
, 5));
1492 uint32_t _flags_save_string
= ndr
->flags
;
1493 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1494 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1495 if (_ptr_servername
) {
1496 NDR_PULL_ALLOC(ndr
, r
->servername
);
1497 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1499 r
->servername
= NULL
;
1501 ndr
->flags
= _flags_save_string
;
1504 uint32_t _flags_save_string
= ndr
->flags
;
1505 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1506 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1507 if (_ptr_printername
) {
1508 NDR_PULL_ALLOC(ndr
, r
->printername
);
1509 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1511 r
->printername
= NULL
;
1513 ndr
->flags
= _flags_save_string
;
1516 uint32_t _flags_save_string
= ndr
->flags
;
1517 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1518 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
1519 if (_ptr_sharename
) {
1520 NDR_PULL_ALLOC(ndr
, r
->sharename
);
1521 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sharename
, _ptr_sharename
));
1523 r
->sharename
= NULL
;
1525 ndr
->flags
= _flags_save_string
;
1528 uint32_t _flags_save_string
= ndr
->flags
;
1529 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1530 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
1531 if (_ptr_portname
) {
1532 NDR_PULL_ALLOC(ndr
, r
->portname
);
1533 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1537 ndr
->flags
= _flags_save_string
;
1540 uint32_t _flags_save_string
= ndr
->flags
;
1541 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1542 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
1543 if (_ptr_drivername
) {
1544 NDR_PULL_ALLOC(ndr
, r
->drivername
);
1545 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->drivername
, _ptr_drivername
));
1547 r
->drivername
= NULL
;
1549 ndr
->flags
= _flags_save_string
;
1552 uint32_t _flags_save_string
= ndr
->flags
;
1553 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1554 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
1556 NDR_PULL_ALLOC(ndr
, r
->comment
);
1557 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
1561 ndr
->flags
= _flags_save_string
;
1564 uint32_t _flags_save_string
= ndr
->flags
;
1565 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1566 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
1567 if (_ptr_location
) {
1568 NDR_PULL_ALLOC(ndr
, r
->location
);
1569 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->location
, _ptr_location
));
1573 ndr
->flags
= _flags_save_string
;
1576 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
1577 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1578 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
1580 NDR_PULL_ALLOC(ndr
, r
->devmode
);
1581 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
1585 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
1588 uint32_t _flags_save_string
= ndr
->flags
;
1589 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1590 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
1592 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
1593 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sepfile
, _ptr_sepfile
));
1597 ndr
->flags
= _flags_save_string
;
1600 uint32_t _flags_save_string
= ndr
->flags
;
1601 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1602 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
1603 if (_ptr_printprocessor
) {
1604 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
1605 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printprocessor
, _ptr_printprocessor
));
1607 r
->printprocessor
= NULL
;
1609 ndr
->flags
= _flags_save_string
;
1612 uint32_t _flags_save_string
= ndr
->flags
;
1613 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1614 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
1615 if (_ptr_datatype
) {
1616 NDR_PULL_ALLOC(ndr
, r
->datatype
);
1617 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->datatype
, _ptr_datatype
));
1621 ndr
->flags
= _flags_save_string
;
1624 uint32_t _flags_save_string
= ndr
->flags
;
1625 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1626 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
1627 if (_ptr_parameters
) {
1628 NDR_PULL_ALLOC(ndr
, r
->parameters
);
1629 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
1631 r
->parameters
= NULL
;
1633 ndr
->flags
= _flags_save_string
;
1636 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
1637 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1638 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1640 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1641 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1645 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
1647 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1648 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
1649 if (r
->priority
> 99) {
1650 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
1652 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
1653 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
1654 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
1655 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
1656 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
1657 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
1658 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
1660 if (ndr_flags
& NDR_BUFFERS
) {
1662 uint32_t _flags_save_string
= ndr
->flags
;
1663 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1664 if (r
->servername
) {
1665 uint32_t _relative_save_offset
;
1666 _relative_save_offset
= ndr
->offset
;
1667 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
1668 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1669 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
1670 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
1671 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
1672 ndr
->offset
= _relative_save_offset
;
1674 ndr
->flags
= _flags_save_string
;
1677 uint32_t _flags_save_string
= ndr
->flags
;
1678 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1679 if (r
->printername
) {
1680 uint32_t _relative_save_offset
;
1681 _relative_save_offset
= ndr
->offset
;
1682 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1683 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1684 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1685 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1686 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1687 ndr
->offset
= _relative_save_offset
;
1689 ndr
->flags
= _flags_save_string
;
1692 uint32_t _flags_save_string
= ndr
->flags
;
1693 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1695 uint32_t _relative_save_offset
;
1696 _relative_save_offset
= ndr
->offset
;
1697 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sharename
));
1698 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1699 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
1700 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sharename
));
1701 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
1702 ndr
->offset
= _relative_save_offset
;
1704 ndr
->flags
= _flags_save_string
;
1707 uint32_t _flags_save_string
= ndr
->flags
;
1708 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1710 uint32_t _relative_save_offset
;
1711 _relative_save_offset
= ndr
->offset
;
1712 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
1713 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1714 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
1715 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
1716 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
1717 ndr
->offset
= _relative_save_offset
;
1719 ndr
->flags
= _flags_save_string
;
1722 uint32_t _flags_save_string
= ndr
->flags
;
1723 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1724 if (r
->drivername
) {
1725 uint32_t _relative_save_offset
;
1726 _relative_save_offset
= ndr
->offset
;
1727 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->drivername
));
1728 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1729 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
1730 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->drivername
));
1731 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
1732 ndr
->offset
= _relative_save_offset
;
1734 ndr
->flags
= _flags_save_string
;
1737 uint32_t _flags_save_string
= ndr
->flags
;
1738 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1740 uint32_t _relative_save_offset
;
1741 _relative_save_offset
= ndr
->offset
;
1742 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
1743 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1744 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
1745 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
1746 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
1747 ndr
->offset
= _relative_save_offset
;
1749 ndr
->flags
= _flags_save_string
;
1752 uint32_t _flags_save_string
= ndr
->flags
;
1753 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1755 uint32_t _relative_save_offset
;
1756 _relative_save_offset
= ndr
->offset
;
1757 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->location
));
1758 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1759 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
1760 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->location
));
1761 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
1762 ndr
->offset
= _relative_save_offset
;
1764 ndr
->flags
= _flags_save_string
;
1767 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
1768 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1770 uint32_t _relative_save_offset
;
1771 _relative_save_offset
= ndr
->offset
;
1772 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
1773 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1774 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
1776 struct ndr_pull
*_ndr_devmode
;
1777 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
1778 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
1779 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
1781 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
1782 ndr
->offset
= _relative_save_offset
;
1784 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
1787 uint32_t _flags_save_string
= ndr
->flags
;
1788 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1790 uint32_t _relative_save_offset
;
1791 _relative_save_offset
= ndr
->offset
;
1792 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sepfile
));
1793 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1794 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
1795 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sepfile
));
1796 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
1797 ndr
->offset
= _relative_save_offset
;
1799 ndr
->flags
= _flags_save_string
;
1802 uint32_t _flags_save_string
= ndr
->flags
;
1803 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1804 if (r
->printprocessor
) {
1805 uint32_t _relative_save_offset
;
1806 _relative_save_offset
= ndr
->offset
;
1807 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printprocessor
));
1808 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1809 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
1810 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printprocessor
));
1811 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
1812 ndr
->offset
= _relative_save_offset
;
1814 ndr
->flags
= _flags_save_string
;
1817 uint32_t _flags_save_string
= ndr
->flags
;
1818 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1820 uint32_t _relative_save_offset
;
1821 _relative_save_offset
= ndr
->offset
;
1822 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->datatype
));
1823 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1824 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
1825 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->datatype
));
1826 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
1827 ndr
->offset
= _relative_save_offset
;
1829 ndr
->flags
= _flags_save_string
;
1832 uint32_t _flags_save_string
= ndr
->flags
;
1833 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
1834 if (r
->parameters
) {
1835 uint32_t _relative_save_offset
;
1836 _relative_save_offset
= ndr
->offset
;
1837 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
1838 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1839 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
1840 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
1841 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
1842 ndr
->offset
= _relative_save_offset
;
1844 ndr
->flags
= _flags_save_string
;
1847 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
1848 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1850 uint32_t _relative_save_offset
;
1851 _relative_save_offset
= ndr
->offset
;
1852 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
1853 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1854 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
1856 struct ndr_pull
*_ndr_secdesc
;
1857 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1858 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1859 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1861 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1862 ndr
->offset
= _relative_save_offset
;
1864 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
1867 return NDR_ERR_SUCCESS
;
1870 _PUBLIC_
void ndr_print_spoolss_PrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo2
*r
)
1872 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo2");
1874 ndr_print_ptr(ndr
, "servername", r
->servername
);
1876 if (r
->servername
) {
1877 ndr_print_string(ndr
, "servername", r
->servername
);
1880 ndr_print_ptr(ndr
, "printername", r
->printername
);
1882 if (r
->printername
) {
1883 ndr_print_string(ndr
, "printername", r
->printername
);
1886 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
1889 ndr_print_string(ndr
, "sharename", r
->sharename
);
1892 ndr_print_ptr(ndr
, "portname", r
->portname
);
1895 ndr_print_string(ndr
, "portname", r
->portname
);
1898 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
1900 if (r
->drivername
) {
1901 ndr_print_string(ndr
, "drivername", r
->drivername
);
1904 ndr_print_ptr(ndr
, "comment", r
->comment
);
1907 ndr_print_string(ndr
, "comment", r
->comment
);
1910 ndr_print_ptr(ndr
, "location", r
->location
);
1913 ndr_print_string(ndr
, "location", r
->location
);
1916 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
1919 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
1922 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
1925 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
1928 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
1930 if (r
->printprocessor
) {
1931 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
1934 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
1937 ndr_print_string(ndr
, "datatype", r
->datatype
);
1940 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
1942 if (r
->parameters
) {
1943 ndr_print_string(ndr
, "parameters", r
->parameters
);
1946 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
1949 ndr_print_spoolss_security_descriptor(ndr
, "secdesc", r
->secdesc
);
1952 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1953 ndr_print_uint32(ndr
, "priority", r
->priority
);
1954 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
1955 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
1956 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
1957 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
1958 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
1959 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
1963 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1965 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo2
, ic
);
1968 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo3
*r
)
1970 if (ndr_flags
& NDR_SCALARS
) {
1971 NDR_CHECK(ndr_push_align(ndr
, 5));
1973 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
1974 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1975 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
1976 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
1978 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
1980 if (ndr_flags
& NDR_BUFFERS
) {
1982 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
1983 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1985 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->secdesc
));
1987 struct ndr_push
*_ndr_secdesc
;
1988 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1989 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1990 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1992 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->secdesc
));
1994 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
1997 return NDR_ERR_SUCCESS
;
2000 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo3
*r
)
2002 uint32_t _ptr_secdesc
;
2003 TALLOC_CTX
*_mem_save_secdesc_0
;
2004 if (ndr_flags
& NDR_SCALARS
) {
2005 NDR_CHECK(ndr_pull_align(ndr
, 5));
2007 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
2008 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2009 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
2011 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
2012 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
2016 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
2018 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2020 if (ndr_flags
& NDR_BUFFERS
) {
2022 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
2023 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2025 uint32_t _relative_save_offset
;
2026 _relative_save_offset
= ndr
->offset
;
2027 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
2028 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2029 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
2031 struct ndr_pull
*_ndr_secdesc
;
2032 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
2033 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
2034 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
2036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
2037 ndr
->offset
= _relative_save_offset
;
2039 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
2042 return NDR_ERR_SUCCESS
;
2045 _PUBLIC_
void ndr_print_spoolss_PrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo3
*r
)
2047 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo3");
2049 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
2052 ndr_print_spoolss_security_descriptor(ndr
, "secdesc", r
->secdesc
);
2058 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2060 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo3
, ic
);
2063 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo4
*r
)
2065 if (ndr_flags
& NDR_SCALARS
) {
2066 NDR_CHECK(ndr_push_align(ndr
, 5));
2068 uint32_t _flags_save_string
= ndr
->flags
;
2069 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2070 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
2071 ndr
->flags
= _flags_save_string
;
2074 uint32_t _flags_save_string
= ndr
->flags
;
2075 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2076 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
2077 ndr
->flags
= _flags_save_string
;
2079 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
2080 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2082 if (ndr_flags
& NDR_BUFFERS
) {
2084 uint32_t _flags_save_string
= ndr
->flags
;
2085 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2086 if (r
->printername
) {
2087 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printername
));
2088 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
2089 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printername
));
2091 ndr
->flags
= _flags_save_string
;
2094 uint32_t _flags_save_string
= ndr
->flags
;
2095 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2096 if (r
->servername
) {
2097 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->servername
));
2098 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
2099 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->servername
));
2101 ndr
->flags
= _flags_save_string
;
2104 return NDR_ERR_SUCCESS
;
2107 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo4
*r
)
2109 uint32_t _ptr_printername
;
2110 TALLOC_CTX
*_mem_save_printername_0
;
2111 uint32_t _ptr_servername
;
2112 TALLOC_CTX
*_mem_save_servername_0
;
2113 if (ndr_flags
& NDR_SCALARS
) {
2114 NDR_CHECK(ndr_pull_align(ndr
, 5));
2116 uint32_t _flags_save_string
= ndr
->flags
;
2117 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2118 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
2119 if (_ptr_printername
) {
2120 NDR_PULL_ALLOC(ndr
, r
->printername
);
2121 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
2123 r
->printername
= NULL
;
2125 ndr
->flags
= _flags_save_string
;
2128 uint32_t _flags_save_string
= ndr
->flags
;
2129 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2130 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
2131 if (_ptr_servername
) {
2132 NDR_PULL_ALLOC(ndr
, r
->servername
);
2133 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
2135 r
->servername
= NULL
;
2137 ndr
->flags
= _flags_save_string
;
2139 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
2140 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2142 if (ndr_flags
& NDR_BUFFERS
) {
2144 uint32_t _flags_save_string
= ndr
->flags
;
2145 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2146 if (r
->printername
) {
2147 uint32_t _relative_save_offset
;
2148 _relative_save_offset
= ndr
->offset
;
2149 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
2150 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2151 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
2152 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
2153 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
2154 ndr
->offset
= _relative_save_offset
;
2156 ndr
->flags
= _flags_save_string
;
2159 uint32_t _flags_save_string
= ndr
->flags
;
2160 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2161 if (r
->servername
) {
2162 uint32_t _relative_save_offset
;
2163 _relative_save_offset
= ndr
->offset
;
2164 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
2165 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2166 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
2167 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
2168 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
2169 ndr
->offset
= _relative_save_offset
;
2171 ndr
->flags
= _flags_save_string
;
2174 return NDR_ERR_SUCCESS
;
2177 _PUBLIC_
void ndr_print_spoolss_PrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo4
*r
)
2179 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo4");
2181 ndr_print_ptr(ndr
, "printername", r
->printername
);
2183 if (r
->printername
) {
2184 ndr_print_string(ndr
, "printername", r
->printername
);
2187 ndr_print_ptr(ndr
, "servername", r
->servername
);
2189 if (r
->servername
) {
2190 ndr_print_string(ndr
, "servername", r
->servername
);
2193 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
2197 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2199 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo4
, ic
);
2202 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo5
*r
)
2204 if (ndr_flags
& NDR_SCALARS
) {
2205 NDR_CHECK(ndr_push_align(ndr
, 5));
2207 uint32_t _flags_save_string
= ndr
->flags
;
2208 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2209 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
2210 ndr
->flags
= _flags_save_string
;
2213 uint32_t _flags_save_string
= ndr
->flags
;
2214 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2215 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
2216 ndr
->flags
= _flags_save_string
;
2218 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
2219 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
2220 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
2221 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2223 if (ndr_flags
& NDR_BUFFERS
) {
2225 uint32_t _flags_save_string
= ndr
->flags
;
2226 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2227 if (r
->printername
) {
2228 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printername
));
2229 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
2230 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printername
));
2232 ndr
->flags
= _flags_save_string
;
2235 uint32_t _flags_save_string
= ndr
->flags
;
2236 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2238 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->portname
));
2239 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
2240 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->portname
));
2242 ndr
->flags
= _flags_save_string
;
2245 return NDR_ERR_SUCCESS
;
2248 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo5
*r
)
2250 uint32_t _ptr_printername
;
2251 TALLOC_CTX
*_mem_save_printername_0
;
2252 uint32_t _ptr_portname
;
2253 TALLOC_CTX
*_mem_save_portname_0
;
2254 if (ndr_flags
& NDR_SCALARS
) {
2255 NDR_CHECK(ndr_pull_align(ndr
, 5));
2257 uint32_t _flags_save_string
= ndr
->flags
;
2258 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2259 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
2260 if (_ptr_printername
) {
2261 NDR_PULL_ALLOC(ndr
, r
->printername
);
2262 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
2264 r
->printername
= NULL
;
2266 ndr
->flags
= _flags_save_string
;
2269 uint32_t _flags_save_string
= ndr
->flags
;
2270 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2271 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
2272 if (_ptr_portname
) {
2273 NDR_PULL_ALLOC(ndr
, r
->portname
);
2274 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
2278 ndr
->flags
= _flags_save_string
;
2280 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
2281 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
2282 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
2283 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2285 if (ndr_flags
& NDR_BUFFERS
) {
2287 uint32_t _flags_save_string
= ndr
->flags
;
2288 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2289 if (r
->printername
) {
2290 uint32_t _relative_save_offset
;
2291 _relative_save_offset
= ndr
->offset
;
2292 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
2293 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2294 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
2295 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
2296 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
2297 ndr
->offset
= _relative_save_offset
;
2299 ndr
->flags
= _flags_save_string
;
2302 uint32_t _flags_save_string
= ndr
->flags
;
2303 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2305 uint32_t _relative_save_offset
;
2306 _relative_save_offset
= ndr
->offset
;
2307 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
2308 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2309 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
2310 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
2311 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
2312 ndr
->offset
= _relative_save_offset
;
2314 ndr
->flags
= _flags_save_string
;
2317 return NDR_ERR_SUCCESS
;
2320 _PUBLIC_
void ndr_print_spoolss_PrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo5
*r
)
2322 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo5");
2324 ndr_print_ptr(ndr
, "printername", r
->printername
);
2326 if (r
->printername
) {
2327 ndr_print_string(ndr
, "printername", r
->printername
);
2330 ndr_print_ptr(ndr
, "portname", r
->portname
);
2333 ndr_print_string(ndr
, "portname", r
->portname
);
2336 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
2337 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
2338 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
2342 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2344 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo5
, ic
);
2347 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo6
*r
)
2349 if (ndr_flags
& NDR_SCALARS
) {
2350 NDR_CHECK(ndr_push_align(ndr
, 4));
2351 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
2352 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
2354 if (ndr_flags
& NDR_BUFFERS
) {
2356 return NDR_ERR_SUCCESS
;
2359 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo6
*r
)
2361 if (ndr_flags
& NDR_SCALARS
) {
2362 NDR_CHECK(ndr_pull_align(ndr
, 4));
2363 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
2364 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
2366 if (ndr_flags
& NDR_BUFFERS
) {
2368 return NDR_ERR_SUCCESS
;
2371 _PUBLIC_
void ndr_print_spoolss_PrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo6
*r
)
2373 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo6");
2375 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
2379 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2381 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo6
, ic
);
2384 static enum ndr_err_code
ndr_push_spoolss_DsPrintAction(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
2386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
2387 return NDR_ERR_SUCCESS
;
2390 static enum ndr_err_code
ndr_pull_spoolss_DsPrintAction(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
2393 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
2395 return NDR_ERR_SUCCESS
;
2398 _PUBLIC_
void ndr_print_spoolss_DsPrintAction(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
2400 ndr_print_uint32(ndr
, name
, r
);
2402 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH
, r
);
2403 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE
, r
);
2404 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH
, r
);
2405 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH
, r
);
2406 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING
, r
);
2410 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo7
*r
)
2412 if (ndr_flags
& NDR_SCALARS
) {
2413 NDR_CHECK(ndr_push_align(ndr
, 5));
2415 uint32_t _flags_save_string
= ndr
->flags
;
2416 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2417 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->guid
));
2418 ndr
->flags
= _flags_save_string
;
2420 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
2421 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2423 if (ndr_flags
& NDR_BUFFERS
) {
2425 uint32_t _flags_save_string
= ndr
->flags
;
2426 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2428 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->guid
));
2429 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->guid
));
2430 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->guid
));
2432 ndr
->flags
= _flags_save_string
;
2435 return NDR_ERR_SUCCESS
;
2438 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo7
*r
)
2441 TALLOC_CTX
*_mem_save_guid_0
;
2442 if (ndr_flags
& NDR_SCALARS
) {
2443 NDR_CHECK(ndr_pull_align(ndr
, 5));
2445 uint32_t _flags_save_string
= ndr
->flags
;
2446 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2447 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
2449 NDR_PULL_ALLOC(ndr
, r
->guid
);
2450 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->guid
, _ptr_guid
));
2454 ndr
->flags
= _flags_save_string
;
2456 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
2457 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2459 if (ndr_flags
& NDR_BUFFERS
) {
2461 uint32_t _flags_save_string
= ndr
->flags
;
2462 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2464 uint32_t _relative_save_offset
;
2465 _relative_save_offset
= ndr
->offset
;
2466 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->guid
));
2467 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2468 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
2469 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->guid
));
2470 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
2471 ndr
->offset
= _relative_save_offset
;
2473 ndr
->flags
= _flags_save_string
;
2476 return NDR_ERR_SUCCESS
;
2479 _PUBLIC_
void ndr_print_spoolss_PrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo7
*r
)
2481 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo7");
2483 ndr_print_ptr(ndr
, "guid", r
->guid
);
2486 ndr_print_string(ndr
, "guid", r
->guid
);
2489 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
2493 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2495 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo7
, ic
);
2498 static enum ndr_err_code
ndr_push_spoolss_DeviceModeInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceModeInfo
*r
)
2500 if (ndr_flags
& NDR_SCALARS
) {
2501 NDR_CHECK(ndr_push_align(ndr
, 5));
2503 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2504 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2505 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
2506 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2508 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2510 if (ndr_flags
& NDR_BUFFERS
) {
2512 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2513 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2515 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->devmode
));
2517 struct ndr_push
*_ndr_devmode
;
2518 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2519 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2520 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2522 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->devmode
));
2524 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2527 return NDR_ERR_SUCCESS
;
2530 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceModeInfo
*r
)
2532 uint32_t _ptr_devmode
;
2533 TALLOC_CTX
*_mem_save_devmode_0
;
2534 if (ndr_flags
& NDR_SCALARS
) {
2535 NDR_CHECK(ndr_pull_align(ndr
, 5));
2537 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2538 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2539 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2541 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2542 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
2546 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2548 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2550 if (ndr_flags
& NDR_BUFFERS
) {
2552 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2553 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2555 uint32_t _relative_save_offset
;
2556 _relative_save_offset
= ndr
->offset
;
2557 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
2558 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2559 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2561 struct ndr_pull
*_ndr_devmode
;
2562 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2563 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2564 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2566 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2567 ndr
->offset
= _relative_save_offset
;
2569 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2572 return NDR_ERR_SUCCESS
;
2575 _PUBLIC_
void ndr_print_spoolss_DeviceModeInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceModeInfo
*r
)
2577 ndr_print_struct(ndr
, name
, "spoolss_DeviceModeInfo");
2579 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2582 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2588 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterInfo
*r
)
2590 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
2592 uint32_t _flags_save_UNION
= ndr
->flags
;
2593 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
2594 if (ndr_flags
& NDR_SCALARS
) {
2595 int level
= ndr_push_get_switch_value(ndr
, r
);
2596 NDR_CHECK(ndr_push_union_align(ndr
, 5));
2599 NDR_CHECK(ndr_push_align(ndr
, 5));
2600 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2601 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2605 NDR_CHECK(ndr_push_align(ndr
, 5));
2606 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2607 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2611 NDR_CHECK(ndr_push_align(ndr
, 5));
2612 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2613 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2617 NDR_CHECK(ndr_push_align(ndr
, 5));
2618 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2619 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2623 NDR_CHECK(ndr_push_align(ndr
, 5));
2624 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2625 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2629 NDR_CHECK(ndr_push_align(ndr
, 5));
2630 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2631 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2635 NDR_CHECK(ndr_push_align(ndr
, 4));
2636 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2637 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2641 NDR_CHECK(ndr_push_align(ndr
, 5));
2642 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2643 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2647 NDR_CHECK(ndr_push_align(ndr
, 5));
2648 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2649 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2653 NDR_CHECK(ndr_push_align(ndr
, 5));
2654 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2655 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2663 if (ndr_flags
& NDR_BUFFERS
) {
2664 int level
= ndr_push_get_switch_value(ndr
, r
);
2665 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
2668 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2672 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2676 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2680 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2684 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2688 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2695 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2699 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2703 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2711 ndr
->flags
= _flags_save_UNION
;
2713 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2714 return NDR_ERR_SUCCESS
;
2717 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterInfo
*r
)
2719 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
2722 uint32_t _flags_save_UNION
= ndr
->flags
;
2723 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
2724 level
= ndr_pull_get_switch_value(ndr
, r
);
2725 if (ndr_flags
& NDR_SCALARS
) {
2726 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
2729 NDR_CHECK(ndr_pull_align(ndr
, 5));
2730 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2731 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2735 NDR_CHECK(ndr_pull_align(ndr
, 5));
2736 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2737 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2741 NDR_CHECK(ndr_pull_align(ndr
, 5));
2742 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2743 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2747 NDR_CHECK(ndr_pull_align(ndr
, 5));
2748 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2749 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2753 NDR_CHECK(ndr_pull_align(ndr
, 5));
2754 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2755 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2759 NDR_CHECK(ndr_pull_align(ndr
, 5));
2760 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2761 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2765 NDR_CHECK(ndr_pull_align(ndr
, 4));
2766 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2767 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2771 NDR_CHECK(ndr_pull_align(ndr
, 5));
2772 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2773 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2777 NDR_CHECK(ndr_pull_align(ndr
, 5));
2778 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2779 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2783 NDR_CHECK(ndr_pull_align(ndr
, 5));
2784 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2785 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2793 if (ndr_flags
& NDR_BUFFERS
) {
2794 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
2797 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2801 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2805 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2809 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2813 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2817 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2824 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2828 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2832 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2840 ndr
->flags
= _flags_save_UNION
;
2842 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2843 return NDR_ERR_SUCCESS
;
2846 _PUBLIC_
void ndr_print_spoolss_PrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterInfo
*r
)
2850 uint32_t _flags_save_UNION
= ndr
->flags
;
2851 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
2852 level
= ndr_print_get_switch_value(ndr
, r
);
2853 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterInfo");
2856 ndr_print_spoolss_PrinterInfo0(ndr
, "info0", &r
->info0
);
2860 ndr_print_spoolss_PrinterInfo1(ndr
, "info1", &r
->info1
);
2864 ndr_print_spoolss_PrinterInfo2(ndr
, "info2", &r
->info2
);
2868 ndr_print_spoolss_PrinterInfo3(ndr
, "info3", &r
->info3
);
2872 ndr_print_spoolss_PrinterInfo4(ndr
, "info4", &r
->info4
);
2876 ndr_print_spoolss_PrinterInfo5(ndr
, "info5", &r
->info5
);
2880 ndr_print_spoolss_PrinterInfo6(ndr
, "info6", &r
->info6
);
2884 ndr_print_spoolss_PrinterInfo7(ndr
, "info7", &r
->info7
);
2888 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", &r
->info8
);
2892 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", &r
->info9
);
2899 ndr
->flags
= _flags_save_UNION
;
2903 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
2905 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
2906 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo
, ic
);
2909 static enum ndr_err_code
ndr_push_spoolss_DevmodeContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DevmodeContainer
*r
)
2911 if (ndr_flags
& NDR_SCALARS
) {
2912 NDR_CHECK(ndr_push_align(ndr
, 5));
2913 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2914 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
2915 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2917 if (ndr_flags
& NDR_BUFFERS
) {
2920 struct ndr_push
*_ndr_devmode
;
2921 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2922 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2923 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2927 return NDR_ERR_SUCCESS
;
2930 static enum ndr_err_code
ndr_pull_spoolss_DevmodeContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DevmodeContainer
*r
)
2932 uint32_t _ptr_devmode
;
2933 TALLOC_CTX
*_mem_save_devmode_0
;
2934 if (ndr_flags
& NDR_SCALARS
) {
2935 NDR_CHECK(ndr_pull_align(ndr
, 5));
2936 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
2937 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2939 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2943 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2945 if (ndr_flags
& NDR_BUFFERS
) {
2947 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2948 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2950 struct ndr_pull
*_ndr_devmode
;
2951 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 4, r
->_ndr_size
));
2952 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2953 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 4, r
->_ndr_size
));
2955 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2958 return NDR_ERR_SUCCESS
;
2961 _PUBLIC_
void ndr_print_spoolss_DevmodeContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DevmodeContainer
*r
)
2963 ndr_print_struct(ndr
, name
, "spoolss_DevmodeContainer");
2965 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
);
2966 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2969 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2975 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo1
*r
)
2977 if (ndr_flags
& NDR_SCALARS
) {
2978 NDR_CHECK(ndr_push_align(ndr
, 5));
2979 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
2981 uint32_t _flags_save_string
= ndr
->flags
;
2982 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2983 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
2984 ndr
->flags
= _flags_save_string
;
2987 uint32_t _flags_save_string
= ndr
->flags
;
2988 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2989 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
2990 ndr
->flags
= _flags_save_string
;
2993 uint32_t _flags_save_string
= ndr
->flags
;
2994 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
2995 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
2996 ndr
->flags
= _flags_save_string
;
2999 uint32_t _flags_save_string
= ndr
->flags
;
3000 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3001 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
3002 ndr
->flags
= _flags_save_string
;
3005 uint32_t _flags_save_string
= ndr
->flags
;
3006 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3007 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3008 ndr
->flags
= _flags_save_string
;
3011 uint32_t _flags_save_string
= ndr
->flags
;
3012 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3013 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3014 ndr
->flags
= _flags_save_string
;
3016 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3017 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3018 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3019 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3020 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3021 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3022 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
3024 if (ndr_flags
& NDR_BUFFERS
) {
3026 uint32_t _flags_save_string
= ndr
->flags
;
3027 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3028 if (r
->printer_name
) {
3029 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printer_name
));
3030 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
3031 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printer_name
));
3033 ndr
->flags
= _flags_save_string
;
3036 uint32_t _flags_save_string
= ndr
->flags
;
3037 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3038 if (r
->server_name
) {
3039 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->server_name
));
3040 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3041 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->server_name
));
3043 ndr
->flags
= _flags_save_string
;
3046 uint32_t _flags_save_string
= ndr
->flags
;
3047 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3049 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->user_name
));
3050 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3051 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->user_name
));
3053 ndr
->flags
= _flags_save_string
;
3056 uint32_t _flags_save_string
= ndr
->flags
;
3057 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3058 if (r
->document_name
) {
3059 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->document_name
));
3060 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3061 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->document_name
));
3063 ndr
->flags
= _flags_save_string
;
3066 uint32_t _flags_save_string
= ndr
->flags
;
3067 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3069 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_type
));
3070 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3071 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_type
));
3073 ndr
->flags
= _flags_save_string
;
3076 uint32_t _flags_save_string
= ndr
->flags
;
3077 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3078 if (r
->text_status
) {
3079 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->text_status
));
3080 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3081 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->text_status
));
3083 ndr
->flags
= _flags_save_string
;
3086 return NDR_ERR_SUCCESS
;
3089 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo1
*r
)
3091 uint32_t _ptr_printer_name
;
3092 TALLOC_CTX
*_mem_save_printer_name_0
;
3093 uint32_t _ptr_server_name
;
3094 TALLOC_CTX
*_mem_save_server_name_0
;
3095 uint32_t _ptr_user_name
;
3096 TALLOC_CTX
*_mem_save_user_name_0
;
3097 uint32_t _ptr_document_name
;
3098 TALLOC_CTX
*_mem_save_document_name_0
;
3099 uint32_t _ptr_data_type
;
3100 TALLOC_CTX
*_mem_save_data_type_0
;
3101 uint32_t _ptr_text_status
;
3102 TALLOC_CTX
*_mem_save_text_status_0
;
3103 if (ndr_flags
& NDR_SCALARS
) {
3104 NDR_CHECK(ndr_pull_align(ndr
, 5));
3105 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3107 uint32_t _flags_save_string
= ndr
->flags
;
3108 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3109 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3110 if (_ptr_printer_name
) {
3111 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3112 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3114 r
->printer_name
= NULL
;
3116 ndr
->flags
= _flags_save_string
;
3119 uint32_t _flags_save_string
= ndr
->flags
;
3120 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3121 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3122 if (_ptr_server_name
) {
3123 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3124 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3126 r
->server_name
= NULL
;
3128 ndr
->flags
= _flags_save_string
;
3131 uint32_t _flags_save_string
= ndr
->flags
;
3132 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3133 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3134 if (_ptr_user_name
) {
3135 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3136 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3138 r
->user_name
= NULL
;
3140 ndr
->flags
= _flags_save_string
;
3143 uint32_t _flags_save_string
= ndr
->flags
;
3144 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3145 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3146 if (_ptr_document_name
) {
3147 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3148 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3150 r
->document_name
= NULL
;
3152 ndr
->flags
= _flags_save_string
;
3155 uint32_t _flags_save_string
= ndr
->flags
;
3156 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3157 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3158 if (_ptr_data_type
) {
3159 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3160 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3162 r
->data_type
= NULL
;
3164 ndr
->flags
= _flags_save_string
;
3167 uint32_t _flags_save_string
= ndr
->flags
;
3168 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3169 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3170 if (_ptr_text_status
) {
3171 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3172 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3174 r
->text_status
= NULL
;
3176 ndr
->flags
= _flags_save_string
;
3178 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3179 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3180 if (r
->priority
> 99) {
3181 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
3183 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3184 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3185 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3186 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3187 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
3189 if (ndr_flags
& NDR_BUFFERS
) {
3191 uint32_t _flags_save_string
= ndr
->flags
;
3192 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3193 if (r
->printer_name
) {
3194 uint32_t _relative_save_offset
;
3195 _relative_save_offset
= ndr
->offset
;
3196 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3197 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3198 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3199 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3200 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3201 ndr
->offset
= _relative_save_offset
;
3203 ndr
->flags
= _flags_save_string
;
3206 uint32_t _flags_save_string
= ndr
->flags
;
3207 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3208 if (r
->server_name
) {
3209 uint32_t _relative_save_offset
;
3210 _relative_save_offset
= ndr
->offset
;
3211 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3212 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3213 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3214 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3215 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3216 ndr
->offset
= _relative_save_offset
;
3218 ndr
->flags
= _flags_save_string
;
3221 uint32_t _flags_save_string
= ndr
->flags
;
3222 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3224 uint32_t _relative_save_offset
;
3225 _relative_save_offset
= ndr
->offset
;
3226 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3227 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3228 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3229 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3230 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3231 ndr
->offset
= _relative_save_offset
;
3233 ndr
->flags
= _flags_save_string
;
3236 uint32_t _flags_save_string
= ndr
->flags
;
3237 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3238 if (r
->document_name
) {
3239 uint32_t _relative_save_offset
;
3240 _relative_save_offset
= ndr
->offset
;
3241 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3242 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3243 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3244 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3245 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3246 ndr
->offset
= _relative_save_offset
;
3248 ndr
->flags
= _flags_save_string
;
3251 uint32_t _flags_save_string
= ndr
->flags
;
3252 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3254 uint32_t _relative_save_offset
;
3255 _relative_save_offset
= ndr
->offset
;
3256 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
3257 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3258 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
3259 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
3260 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
3261 ndr
->offset
= _relative_save_offset
;
3263 ndr
->flags
= _flags_save_string
;
3266 uint32_t _flags_save_string
= ndr
->flags
;
3267 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3268 if (r
->text_status
) {
3269 uint32_t _relative_save_offset
;
3270 _relative_save_offset
= ndr
->offset
;
3271 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
3272 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3273 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
3274 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
3275 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
3276 ndr
->offset
= _relative_save_offset
;
3278 ndr
->flags
= _flags_save_string
;
3281 return NDR_ERR_SUCCESS
;
3284 _PUBLIC_
void ndr_print_spoolss_JobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo1
*r
)
3286 ndr_print_struct(ndr
, name
, "spoolss_JobInfo1");
3288 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3289 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
3291 if (r
->printer_name
) {
3292 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
3295 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
3297 if (r
->server_name
) {
3298 ndr_print_string(ndr
, "server_name", r
->server_name
);
3301 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
3304 ndr_print_string(ndr
, "user_name", r
->user_name
);
3307 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
3309 if (r
->document_name
) {
3310 ndr_print_string(ndr
, "document_name", r
->document_name
);
3313 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
3316 ndr_print_string(ndr
, "data_type", r
->data_type
);
3319 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
3321 if (r
->text_status
) {
3322 ndr_print_string(ndr
, "text_status", r
->text_status
);
3325 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
3326 ndr_print_uint32(ndr
, "priority", r
->priority
);
3327 ndr_print_uint32(ndr
, "position", r
->position
);
3328 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
3329 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
3330 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
3334 _PUBLIC_
size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
3336 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo1
, ic
);
3339 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo2
*r
)
3341 if (ndr_flags
& NDR_SCALARS
) {
3342 NDR_CHECK(ndr_push_align(ndr
, 5));
3343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3345 uint32_t _flags_save_string
= ndr
->flags
;
3346 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3347 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
3348 ndr
->flags
= _flags_save_string
;
3351 uint32_t _flags_save_string
= ndr
->flags
;
3352 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3353 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
3354 ndr
->flags
= _flags_save_string
;
3357 uint32_t _flags_save_string
= ndr
->flags
;
3358 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3359 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
3360 ndr
->flags
= _flags_save_string
;
3363 uint32_t _flags_save_string
= ndr
->flags
;
3364 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3365 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
3366 ndr
->flags
= _flags_save_string
;
3369 uint32_t _flags_save_string
= ndr
->flags
;
3370 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3371 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
3372 ndr
->flags
= _flags_save_string
;
3375 uint32_t _flags_save_string
= ndr
->flags
;
3376 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3377 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3378 ndr
->flags
= _flags_save_string
;
3381 uint32_t _flags_save_string
= ndr
->flags
;
3382 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3383 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
3384 ndr
->flags
= _flags_save_string
;
3387 uint32_t _flags_save_string
= ndr
->flags
;
3388 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3389 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
3390 ndr
->flags
= _flags_save_string
;
3393 uint32_t _flags_save_string
= ndr
->flags
;
3394 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3395 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
3396 ndr
->flags
= _flags_save_string
;
3399 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
3400 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3401 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
3402 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
3405 uint32_t _flags_save_string
= ndr
->flags
;
3406 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3407 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3408 ndr
->flags
= _flags_save_string
;
3411 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
3412 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3413 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
3414 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
3416 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3417 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3418 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
3420 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
3421 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3422 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
3423 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3424 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
3425 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3426 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
3428 if (ndr_flags
& NDR_BUFFERS
) {
3430 uint32_t _flags_save_string
= ndr
->flags
;
3431 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3432 if (r
->printer_name
) {
3433 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printer_name
));
3434 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
3435 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printer_name
));
3437 ndr
->flags
= _flags_save_string
;
3440 uint32_t _flags_save_string
= ndr
->flags
;
3441 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3442 if (r
->server_name
) {
3443 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->server_name
));
3444 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3445 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->server_name
));
3447 ndr
->flags
= _flags_save_string
;
3450 uint32_t _flags_save_string
= ndr
->flags
;
3451 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3453 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->user_name
));
3454 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3455 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->user_name
));
3457 ndr
->flags
= _flags_save_string
;
3460 uint32_t _flags_save_string
= ndr
->flags
;
3461 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3462 if (r
->document_name
) {
3463 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->document_name
));
3464 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3465 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->document_name
));
3467 ndr
->flags
= _flags_save_string
;
3470 uint32_t _flags_save_string
= ndr
->flags
;
3471 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3472 if (r
->notify_name
) {
3473 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->notify_name
));
3474 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
3475 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->notify_name
));
3477 ndr
->flags
= _flags_save_string
;
3480 uint32_t _flags_save_string
= ndr
->flags
;
3481 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3483 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_type
));
3484 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3485 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_type
));
3487 ndr
->flags
= _flags_save_string
;
3490 uint32_t _flags_save_string
= ndr
->flags
;
3491 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3492 if (r
->print_processor
) {
3493 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->print_processor
));
3494 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
3495 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->print_processor
));
3497 ndr
->flags
= _flags_save_string
;
3500 uint32_t _flags_save_string
= ndr
->flags
;
3501 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3502 if (r
->parameters
) {
3503 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->parameters
));
3504 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3505 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->parameters
));
3507 ndr
->flags
= _flags_save_string
;
3510 uint32_t _flags_save_string
= ndr
->flags
;
3511 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3512 if (r
->driver_name
) {
3513 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
3514 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3515 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
3517 ndr
->flags
= _flags_save_string
;
3520 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
3521 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3523 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->devmode
));
3525 struct ndr_push
*_ndr_devmode
;
3526 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
3527 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
3528 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
3530 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->devmode
));
3532 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
3535 uint32_t _flags_save_string
= ndr
->flags
;
3536 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3537 if (r
->text_status
) {
3538 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->text_status
));
3539 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3540 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->text_status
));
3542 ndr
->flags
= _flags_save_string
;
3545 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
3546 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3548 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->secdesc
));
3550 struct ndr_push
*_ndr_secdesc
;
3551 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
3552 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3553 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
3555 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->secdesc
));
3557 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
3560 return NDR_ERR_SUCCESS
;
3563 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo2
*r
)
3565 uint32_t _ptr_printer_name
;
3566 TALLOC_CTX
*_mem_save_printer_name_0
;
3567 uint32_t _ptr_server_name
;
3568 TALLOC_CTX
*_mem_save_server_name_0
;
3569 uint32_t _ptr_user_name
;
3570 TALLOC_CTX
*_mem_save_user_name_0
;
3571 uint32_t _ptr_document_name
;
3572 TALLOC_CTX
*_mem_save_document_name_0
;
3573 uint32_t _ptr_notify_name
;
3574 TALLOC_CTX
*_mem_save_notify_name_0
;
3575 uint32_t _ptr_data_type
;
3576 TALLOC_CTX
*_mem_save_data_type_0
;
3577 uint32_t _ptr_print_processor
;
3578 TALLOC_CTX
*_mem_save_print_processor_0
;
3579 uint32_t _ptr_parameters
;
3580 TALLOC_CTX
*_mem_save_parameters_0
;
3581 uint32_t _ptr_driver_name
;
3582 TALLOC_CTX
*_mem_save_driver_name_0
;
3583 uint32_t _ptr_devmode
;
3584 TALLOC_CTX
*_mem_save_devmode_0
;
3585 uint32_t _ptr_text_status
;
3586 TALLOC_CTX
*_mem_save_text_status_0
;
3587 uint32_t _ptr_secdesc
;
3588 TALLOC_CTX
*_mem_save_secdesc_0
;
3589 if (ndr_flags
& NDR_SCALARS
) {
3590 NDR_CHECK(ndr_pull_align(ndr
, 5));
3591 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3593 uint32_t _flags_save_string
= ndr
->flags
;
3594 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3595 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3596 if (_ptr_printer_name
) {
3597 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3598 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3600 r
->printer_name
= NULL
;
3602 ndr
->flags
= _flags_save_string
;
3605 uint32_t _flags_save_string
= ndr
->flags
;
3606 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3607 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3608 if (_ptr_server_name
) {
3609 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3610 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3612 r
->server_name
= NULL
;
3614 ndr
->flags
= _flags_save_string
;
3617 uint32_t _flags_save_string
= ndr
->flags
;
3618 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3619 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3620 if (_ptr_user_name
) {
3621 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3622 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3624 r
->user_name
= NULL
;
3626 ndr
->flags
= _flags_save_string
;
3629 uint32_t _flags_save_string
= ndr
->flags
;
3630 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3631 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3632 if (_ptr_document_name
) {
3633 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3634 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3636 r
->document_name
= NULL
;
3638 ndr
->flags
= _flags_save_string
;
3641 uint32_t _flags_save_string
= ndr
->flags
;
3642 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3643 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
3644 if (_ptr_notify_name
) {
3645 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
3646 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
3648 r
->notify_name
= NULL
;
3650 ndr
->flags
= _flags_save_string
;
3653 uint32_t _flags_save_string
= ndr
->flags
;
3654 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3655 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3656 if (_ptr_data_type
) {
3657 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3658 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3660 r
->data_type
= NULL
;
3662 ndr
->flags
= _flags_save_string
;
3665 uint32_t _flags_save_string
= ndr
->flags
;
3666 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3667 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
3668 if (_ptr_print_processor
) {
3669 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
3670 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
3672 r
->print_processor
= NULL
;
3674 ndr
->flags
= _flags_save_string
;
3677 uint32_t _flags_save_string
= ndr
->flags
;
3678 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3679 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
3680 if (_ptr_parameters
) {
3681 NDR_PULL_ALLOC(ndr
, r
->parameters
);
3682 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
3684 r
->parameters
= NULL
;
3686 ndr
->flags
= _flags_save_string
;
3689 uint32_t _flags_save_string
= ndr
->flags
;
3690 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3691 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
3692 if (_ptr_driver_name
) {
3693 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
3694 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
3696 r
->driver_name
= NULL
;
3698 ndr
->flags
= _flags_save_string
;
3701 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
3702 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3703 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3705 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3706 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
3710 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
3713 uint32_t _flags_save_string
= ndr
->flags
;
3714 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3715 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3716 if (_ptr_text_status
) {
3717 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3718 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3720 r
->text_status
= NULL
;
3722 ndr
->flags
= _flags_save_string
;
3725 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
3726 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3727 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
3729 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
3730 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
3734 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
3736 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3737 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3738 if (r
->priority
> 99) {
3739 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
3741 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3742 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
3743 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
3744 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3745 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
3746 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3747 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
3748 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3749 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
3751 if (ndr_flags
& NDR_BUFFERS
) {
3753 uint32_t _flags_save_string
= ndr
->flags
;
3754 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3755 if (r
->printer_name
) {
3756 uint32_t _relative_save_offset
;
3757 _relative_save_offset
= ndr
->offset
;
3758 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3759 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3760 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3761 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3762 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3763 ndr
->offset
= _relative_save_offset
;
3765 ndr
->flags
= _flags_save_string
;
3768 uint32_t _flags_save_string
= ndr
->flags
;
3769 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3770 if (r
->server_name
) {
3771 uint32_t _relative_save_offset
;
3772 _relative_save_offset
= ndr
->offset
;
3773 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3774 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3775 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3776 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3777 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3778 ndr
->offset
= _relative_save_offset
;
3780 ndr
->flags
= _flags_save_string
;
3783 uint32_t _flags_save_string
= ndr
->flags
;
3784 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3786 uint32_t _relative_save_offset
;
3787 _relative_save_offset
= ndr
->offset
;
3788 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3789 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3790 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3791 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3792 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3793 ndr
->offset
= _relative_save_offset
;
3795 ndr
->flags
= _flags_save_string
;
3798 uint32_t _flags_save_string
= ndr
->flags
;
3799 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3800 if (r
->document_name
) {
3801 uint32_t _relative_save_offset
;
3802 _relative_save_offset
= ndr
->offset
;
3803 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3804 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3805 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3806 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3807 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3808 ndr
->offset
= _relative_save_offset
;
3810 ndr
->flags
= _flags_save_string
;
3813 uint32_t _flags_save_string
= ndr
->flags
;
3814 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3815 if (r
->notify_name
) {
3816 uint32_t _relative_save_offset
;
3817 _relative_save_offset
= ndr
->offset
;
3818 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
3819 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3820 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
3821 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
3822 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
3823 ndr
->offset
= _relative_save_offset
;
3825 ndr
->flags
= _flags_save_string
;
3828 uint32_t _flags_save_string
= ndr
->flags
;
3829 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3831 uint32_t _relative_save_offset
;
3832 _relative_save_offset
= ndr
->offset
;
3833 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
3834 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3835 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
3836 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
3837 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
3838 ndr
->offset
= _relative_save_offset
;
3840 ndr
->flags
= _flags_save_string
;
3843 uint32_t _flags_save_string
= ndr
->flags
;
3844 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3845 if (r
->print_processor
) {
3846 uint32_t _relative_save_offset
;
3847 _relative_save_offset
= ndr
->offset
;
3848 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
3849 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3850 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
3851 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
3852 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
3853 ndr
->offset
= _relative_save_offset
;
3855 ndr
->flags
= _flags_save_string
;
3858 uint32_t _flags_save_string
= ndr
->flags
;
3859 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3860 if (r
->parameters
) {
3861 uint32_t _relative_save_offset
;
3862 _relative_save_offset
= ndr
->offset
;
3863 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
3864 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3865 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
3866 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
3867 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
3868 ndr
->offset
= _relative_save_offset
;
3870 ndr
->flags
= _flags_save_string
;
3873 uint32_t _flags_save_string
= ndr
->flags
;
3874 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3875 if (r
->driver_name
) {
3876 uint32_t _relative_save_offset
;
3877 _relative_save_offset
= ndr
->offset
;
3878 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
3879 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3880 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
3881 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
3882 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
3883 ndr
->offset
= _relative_save_offset
;
3885 ndr
->flags
= _flags_save_string
;
3888 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
3889 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3891 uint32_t _relative_save_offset
;
3892 _relative_save_offset
= ndr
->offset
;
3893 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
3894 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3895 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
3897 struct ndr_pull
*_ndr_devmode
;
3898 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
3899 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
3900 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
3902 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
3903 ndr
->offset
= _relative_save_offset
;
3905 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
3908 uint32_t _flags_save_string
= ndr
->flags
;
3909 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
3910 if (r
->text_status
) {
3911 uint32_t _relative_save_offset
;
3912 _relative_save_offset
= ndr
->offset
;
3913 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
3914 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3915 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
3916 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
3917 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
3918 ndr
->offset
= _relative_save_offset
;
3920 ndr
->flags
= _flags_save_string
;
3923 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
3924 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3926 uint32_t _relative_save_offset
;
3927 _relative_save_offset
= ndr
->offset
;
3928 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
3929 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3930 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
3932 struct ndr_pull
*_ndr_secdesc
;
3933 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
3934 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3935 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
3937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
3938 ndr
->offset
= _relative_save_offset
;
3940 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
3943 return NDR_ERR_SUCCESS
;
3946 _PUBLIC_
void ndr_print_spoolss_JobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo2
*r
)
3948 ndr_print_struct(ndr
, name
, "spoolss_JobInfo2");
3950 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3951 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
3953 if (r
->printer_name
) {
3954 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
3957 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
3959 if (r
->server_name
) {
3960 ndr_print_string(ndr
, "server_name", r
->server_name
);
3963 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
3966 ndr_print_string(ndr
, "user_name", r
->user_name
);
3969 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
3971 if (r
->document_name
) {
3972 ndr_print_string(ndr
, "document_name", r
->document_name
);
3975 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
3977 if (r
->notify_name
) {
3978 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
3981 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
3984 ndr_print_string(ndr
, "data_type", r
->data_type
);
3987 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
3989 if (r
->print_processor
) {
3990 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
3993 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
3995 if (r
->parameters
) {
3996 ndr_print_string(ndr
, "parameters", r
->parameters
);
3999 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
4001 if (r
->driver_name
) {
4002 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
4005 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
4008 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
4011 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4013 if (r
->text_status
) {
4014 ndr_print_string(ndr
, "text_status", r
->text_status
);
4017 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
4020 ndr_print_spoolss_security_descriptor(ndr
, "secdesc", r
->secdesc
);
4023 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4024 ndr_print_uint32(ndr
, "priority", r
->priority
);
4025 ndr_print_uint32(ndr
, "position", r
->position
);
4026 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
4027 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
4028 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4029 ndr_print_uint32(ndr
, "size", r
->size
);
4030 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4031 ndr_print_uint32(ndr
, "time", r
->time
);
4032 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4036 _PUBLIC_
size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4038 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo2
, ic
);
4041 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo3
*r
)
4043 if (ndr_flags
& NDR_SCALARS
) {
4044 NDR_CHECK(ndr_push_align(ndr
, 4));
4045 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4046 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->next_job_id
));
4047 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
4048 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
4050 if (ndr_flags
& NDR_BUFFERS
) {
4052 return NDR_ERR_SUCCESS
;
4055 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo3
*r
)
4057 if (ndr_flags
& NDR_SCALARS
) {
4058 NDR_CHECK(ndr_pull_align(ndr
, 4));
4059 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4060 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->next_job_id
));
4061 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
4062 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
4064 if (ndr_flags
& NDR_BUFFERS
) {
4066 return NDR_ERR_SUCCESS
;
4069 _PUBLIC_
void ndr_print_spoolss_JobInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo3
*r
)
4071 ndr_print_struct(ndr
, name
, "spoolss_JobInfo3");
4073 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4074 ndr_print_uint32(ndr
, "next_job_id", r
->next_job_id
);
4075 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
4079 _PUBLIC_
size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4081 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo3
, ic
);
4084 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo4
*r
)
4086 if (ndr_flags
& NDR_SCALARS
) {
4087 NDR_CHECK(ndr_push_align(ndr
, 5));
4088 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4090 uint32_t _flags_save_string
= ndr
->flags
;
4091 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4092 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
4093 ndr
->flags
= _flags_save_string
;
4096 uint32_t _flags_save_string
= ndr
->flags
;
4097 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4098 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
4099 ndr
->flags
= _flags_save_string
;
4102 uint32_t _flags_save_string
= ndr
->flags
;
4103 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4104 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
4105 ndr
->flags
= _flags_save_string
;
4108 uint32_t _flags_save_string
= ndr
->flags
;
4109 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4110 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
4111 ndr
->flags
= _flags_save_string
;
4114 uint32_t _flags_save_string
= ndr
->flags
;
4115 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4116 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
4117 ndr
->flags
= _flags_save_string
;
4120 uint32_t _flags_save_string
= ndr
->flags
;
4121 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4122 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
4123 ndr
->flags
= _flags_save_string
;
4126 uint32_t _flags_save_string
= ndr
->flags
;
4127 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4128 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
4129 ndr
->flags
= _flags_save_string
;
4132 uint32_t _flags_save_string
= ndr
->flags
;
4133 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4134 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
4135 ndr
->flags
= _flags_save_string
;
4138 uint32_t _flags_save_string
= ndr
->flags
;
4139 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4140 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
4141 ndr
->flags
= _flags_save_string
;
4144 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
4145 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4146 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
4147 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
4150 uint32_t _flags_save_string
= ndr
->flags
;
4151 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4152 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
4153 ndr
->flags
= _flags_save_string
;
4156 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
4157 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4158 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
4159 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
4161 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4163 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4164 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
4165 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
4166 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
4168 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4169 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
4170 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4171 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
4172 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
4174 if (ndr_flags
& NDR_BUFFERS
) {
4176 uint32_t _flags_save_string
= ndr
->flags
;
4177 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4178 if (r
->printer_name
) {
4179 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printer_name
));
4180 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
4181 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printer_name
));
4183 ndr
->flags
= _flags_save_string
;
4186 uint32_t _flags_save_string
= ndr
->flags
;
4187 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4188 if (r
->server_name
) {
4189 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->server_name
));
4190 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
4191 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->server_name
));
4193 ndr
->flags
= _flags_save_string
;
4196 uint32_t _flags_save_string
= ndr
->flags
;
4197 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4199 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->user_name
));
4200 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
4201 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->user_name
));
4203 ndr
->flags
= _flags_save_string
;
4206 uint32_t _flags_save_string
= ndr
->flags
;
4207 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4208 if (r
->document_name
) {
4209 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->document_name
));
4210 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
4211 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->document_name
));
4213 ndr
->flags
= _flags_save_string
;
4216 uint32_t _flags_save_string
= ndr
->flags
;
4217 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4218 if (r
->notify_name
) {
4219 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->notify_name
));
4220 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
4221 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->notify_name
));
4223 ndr
->flags
= _flags_save_string
;
4226 uint32_t _flags_save_string
= ndr
->flags
;
4227 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4229 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_type
));
4230 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
4231 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_type
));
4233 ndr
->flags
= _flags_save_string
;
4236 uint32_t _flags_save_string
= ndr
->flags
;
4237 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4238 if (r
->print_processor
) {
4239 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->print_processor
));
4240 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
4241 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->print_processor
));
4243 ndr
->flags
= _flags_save_string
;
4246 uint32_t _flags_save_string
= ndr
->flags
;
4247 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4248 if (r
->parameters
) {
4249 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->parameters
));
4250 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
4251 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->parameters
));
4253 ndr
->flags
= _flags_save_string
;
4256 uint32_t _flags_save_string
= ndr
->flags
;
4257 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4258 if (r
->driver_name
) {
4259 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
4260 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
4261 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
4263 ndr
->flags
= _flags_save_string
;
4266 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
4267 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4269 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->devmode
));
4271 struct ndr_push
*_ndr_devmode
;
4272 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
4273 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
4274 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
4276 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->devmode
));
4278 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
4281 uint32_t _flags_save_string
= ndr
->flags
;
4282 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4283 if (r
->text_status
) {
4284 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->text_status
));
4285 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
4286 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->text_status
));
4288 ndr
->flags
= _flags_save_string
;
4291 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
4292 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4294 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->secdesc
));
4296 struct ndr_push
*_ndr_secdesc
;
4297 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
4298 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4299 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
4301 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->secdesc
));
4303 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
4306 return NDR_ERR_SUCCESS
;
4309 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo4
*r
)
4311 uint32_t _ptr_printer_name
;
4312 TALLOC_CTX
*_mem_save_printer_name_0
;
4313 uint32_t _ptr_server_name
;
4314 TALLOC_CTX
*_mem_save_server_name_0
;
4315 uint32_t _ptr_user_name
;
4316 TALLOC_CTX
*_mem_save_user_name_0
;
4317 uint32_t _ptr_document_name
;
4318 TALLOC_CTX
*_mem_save_document_name_0
;
4319 uint32_t _ptr_notify_name
;
4320 TALLOC_CTX
*_mem_save_notify_name_0
;
4321 uint32_t _ptr_data_type
;
4322 TALLOC_CTX
*_mem_save_data_type_0
;
4323 uint32_t _ptr_print_processor
;
4324 TALLOC_CTX
*_mem_save_print_processor_0
;
4325 uint32_t _ptr_parameters
;
4326 TALLOC_CTX
*_mem_save_parameters_0
;
4327 uint32_t _ptr_driver_name
;
4328 TALLOC_CTX
*_mem_save_driver_name_0
;
4329 uint32_t _ptr_devmode
;
4330 TALLOC_CTX
*_mem_save_devmode_0
;
4331 uint32_t _ptr_text_status
;
4332 TALLOC_CTX
*_mem_save_text_status_0
;
4333 uint32_t _ptr_secdesc
;
4334 TALLOC_CTX
*_mem_save_secdesc_0
;
4335 if (ndr_flags
& NDR_SCALARS
) {
4336 NDR_CHECK(ndr_pull_align(ndr
, 5));
4337 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4339 uint32_t _flags_save_string
= ndr
->flags
;
4340 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4341 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
4342 if (_ptr_printer_name
) {
4343 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
4344 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
4346 r
->printer_name
= NULL
;
4348 ndr
->flags
= _flags_save_string
;
4351 uint32_t _flags_save_string
= ndr
->flags
;
4352 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4353 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4354 if (_ptr_server_name
) {
4355 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4356 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
4358 r
->server_name
= NULL
;
4360 ndr
->flags
= _flags_save_string
;
4363 uint32_t _flags_save_string
= ndr
->flags
;
4364 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4365 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4366 if (_ptr_user_name
) {
4367 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4368 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
4370 r
->user_name
= NULL
;
4372 ndr
->flags
= _flags_save_string
;
4375 uint32_t _flags_save_string
= ndr
->flags
;
4376 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4377 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4378 if (_ptr_document_name
) {
4379 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4380 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
4382 r
->document_name
= NULL
;
4384 ndr
->flags
= _flags_save_string
;
4387 uint32_t _flags_save_string
= ndr
->flags
;
4388 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4389 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
4390 if (_ptr_notify_name
) {
4391 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
4392 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
4394 r
->notify_name
= NULL
;
4396 ndr
->flags
= _flags_save_string
;
4399 uint32_t _flags_save_string
= ndr
->flags
;
4400 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4401 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4402 if (_ptr_data_type
) {
4403 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4404 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
4406 r
->data_type
= NULL
;
4408 ndr
->flags
= _flags_save_string
;
4411 uint32_t _flags_save_string
= ndr
->flags
;
4412 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4413 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
4414 if (_ptr_print_processor
) {
4415 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
4416 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
4418 r
->print_processor
= NULL
;
4420 ndr
->flags
= _flags_save_string
;
4423 uint32_t _flags_save_string
= ndr
->flags
;
4424 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4425 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
4426 if (_ptr_parameters
) {
4427 NDR_PULL_ALLOC(ndr
, r
->parameters
);
4428 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
4430 r
->parameters
= NULL
;
4432 ndr
->flags
= _flags_save_string
;
4435 uint32_t _flags_save_string
= ndr
->flags
;
4436 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4437 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
4438 if (_ptr_driver_name
) {
4439 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
4440 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
4442 r
->driver_name
= NULL
;
4444 ndr
->flags
= _flags_save_string
;
4447 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
4448 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4449 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
4451 NDR_PULL_ALLOC(ndr
, r
->devmode
);
4452 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
4456 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
4459 uint32_t _flags_save_string
= ndr
->flags
;
4460 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4461 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4462 if (_ptr_text_status
) {
4463 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4464 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
4466 r
->text_status
= NULL
;
4468 ndr
->flags
= _flags_save_string
;
4471 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
4472 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4473 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
4475 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
4476 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
4480 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
4482 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4483 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4484 if (r
->priority
> 99) {
4485 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4487 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4488 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
4489 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
4490 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4491 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
4492 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4493 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
4494 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4495 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
4496 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
4498 if (ndr_flags
& NDR_BUFFERS
) {
4500 uint32_t _flags_save_string
= ndr
->flags
;
4501 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4502 if (r
->printer_name
) {
4503 uint32_t _relative_save_offset
;
4504 _relative_save_offset
= ndr
->offset
;
4505 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
4506 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4507 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4508 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
4509 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4510 ndr
->offset
= _relative_save_offset
;
4512 ndr
->flags
= _flags_save_string
;
4515 uint32_t _flags_save_string
= ndr
->flags
;
4516 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4517 if (r
->server_name
) {
4518 uint32_t _relative_save_offset
;
4519 _relative_save_offset
= ndr
->offset
;
4520 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
4521 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4522 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4523 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
4524 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4525 ndr
->offset
= _relative_save_offset
;
4527 ndr
->flags
= _flags_save_string
;
4530 uint32_t _flags_save_string
= ndr
->flags
;
4531 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4533 uint32_t _relative_save_offset
;
4534 _relative_save_offset
= ndr
->offset
;
4535 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
4536 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4537 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4538 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
4539 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4540 ndr
->offset
= _relative_save_offset
;
4542 ndr
->flags
= _flags_save_string
;
4545 uint32_t _flags_save_string
= ndr
->flags
;
4546 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4547 if (r
->document_name
) {
4548 uint32_t _relative_save_offset
;
4549 _relative_save_offset
= ndr
->offset
;
4550 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
4551 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4552 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4553 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
4554 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4555 ndr
->offset
= _relative_save_offset
;
4557 ndr
->flags
= _flags_save_string
;
4560 uint32_t _flags_save_string
= ndr
->flags
;
4561 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4562 if (r
->notify_name
) {
4563 uint32_t _relative_save_offset
;
4564 _relative_save_offset
= ndr
->offset
;
4565 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
4566 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4567 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
4568 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
4569 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
4570 ndr
->offset
= _relative_save_offset
;
4572 ndr
->flags
= _flags_save_string
;
4575 uint32_t _flags_save_string
= ndr
->flags
;
4576 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4578 uint32_t _relative_save_offset
;
4579 _relative_save_offset
= ndr
->offset
;
4580 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
4581 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4582 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4583 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
4584 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4585 ndr
->offset
= _relative_save_offset
;
4587 ndr
->flags
= _flags_save_string
;
4590 uint32_t _flags_save_string
= ndr
->flags
;
4591 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4592 if (r
->print_processor
) {
4593 uint32_t _relative_save_offset
;
4594 _relative_save_offset
= ndr
->offset
;
4595 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
4596 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4597 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
4598 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
4599 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
4600 ndr
->offset
= _relative_save_offset
;
4602 ndr
->flags
= _flags_save_string
;
4605 uint32_t _flags_save_string
= ndr
->flags
;
4606 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4607 if (r
->parameters
) {
4608 uint32_t _relative_save_offset
;
4609 _relative_save_offset
= ndr
->offset
;
4610 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
4611 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4612 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
4613 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
4614 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
4615 ndr
->offset
= _relative_save_offset
;
4617 ndr
->flags
= _flags_save_string
;
4620 uint32_t _flags_save_string
= ndr
->flags
;
4621 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4622 if (r
->driver_name
) {
4623 uint32_t _relative_save_offset
;
4624 _relative_save_offset
= ndr
->offset
;
4625 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
4626 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4627 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
4628 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
4629 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
4630 ndr
->offset
= _relative_save_offset
;
4632 ndr
->flags
= _flags_save_string
;
4635 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
4636 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4638 uint32_t _relative_save_offset
;
4639 _relative_save_offset
= ndr
->offset
;
4640 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
4641 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4642 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
4644 struct ndr_pull
*_ndr_devmode
;
4645 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
4646 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
4647 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
4649 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
4650 ndr
->offset
= _relative_save_offset
;
4652 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
4655 uint32_t _flags_save_string
= ndr
->flags
;
4656 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
4657 if (r
->text_status
) {
4658 uint32_t _relative_save_offset
;
4659 _relative_save_offset
= ndr
->offset
;
4660 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
4661 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4662 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4663 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
4664 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4665 ndr
->offset
= _relative_save_offset
;
4667 ndr
->flags
= _flags_save_string
;
4670 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
4671 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4673 uint32_t _relative_save_offset
;
4674 _relative_save_offset
= ndr
->offset
;
4675 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
4676 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4677 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
4679 struct ndr_pull
*_ndr_secdesc
;
4680 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
4681 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4682 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
4684 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
4685 ndr
->offset
= _relative_save_offset
;
4687 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
4690 return NDR_ERR_SUCCESS
;
4693 _PUBLIC_
void ndr_print_spoolss_JobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo4
*r
)
4695 ndr_print_struct(ndr
, name
, "spoolss_JobInfo4");
4697 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4698 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4700 if (r
->printer_name
) {
4701 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4704 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4706 if (r
->server_name
) {
4707 ndr_print_string(ndr
, "server_name", r
->server_name
);
4710 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4713 ndr_print_string(ndr
, "user_name", r
->user_name
);
4716 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4718 if (r
->document_name
) {
4719 ndr_print_string(ndr
, "document_name", r
->document_name
);
4722 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
4724 if (r
->notify_name
) {
4725 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
4728 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4731 ndr_print_string(ndr
, "data_type", r
->data_type
);
4734 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
4736 if (r
->print_processor
) {
4737 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
4740 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
4742 if (r
->parameters
) {
4743 ndr_print_string(ndr
, "parameters", r
->parameters
);
4746 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
4748 if (r
->driver_name
) {
4749 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
4752 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
4755 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
4758 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4760 if (r
->text_status
) {
4761 ndr_print_string(ndr
, "text_status", r
->text_status
);
4764 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
4767 ndr_print_spoolss_security_descriptor(ndr
, "secdesc", r
->secdesc
);
4770 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4771 ndr_print_uint32(ndr
, "priority", r
->priority
);
4772 ndr_print_uint32(ndr
, "position", r
->position
);
4773 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
4774 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
4775 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4776 ndr_print_uint32(ndr
, "size", r
->size
);
4777 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4778 ndr_print_uint32(ndr
, "time", r
->time
);
4779 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4780 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
4784 _PUBLIC_
size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4786 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo4
, ic
);
4789 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_JobInfo
*r
)
4791 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
4793 uint32_t _flags_save_UNION
= ndr
->flags
;
4794 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
4795 if (ndr_flags
& NDR_SCALARS
) {
4796 int level
= ndr_push_get_switch_value(ndr
, r
);
4797 NDR_CHECK(ndr_push_union_align(ndr
, 5));
4800 NDR_CHECK(ndr_push_align(ndr
, 5));
4801 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4802 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4806 NDR_CHECK(ndr_push_align(ndr
, 5));
4807 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4808 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4812 NDR_CHECK(ndr_push_align(ndr
, 4));
4813 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4814 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4818 NDR_CHECK(ndr_push_align(ndr
, 5));
4819 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4820 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4828 if (ndr_flags
& NDR_BUFFERS
) {
4829 int level
= ndr_push_get_switch_value(ndr
, r
);
4830 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
4833 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4837 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4844 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4852 ndr
->flags
= _flags_save_UNION
;
4854 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4855 return NDR_ERR_SUCCESS
;
4858 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_JobInfo
*r
)
4860 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
4863 uint32_t _flags_save_UNION
= ndr
->flags
;
4864 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
4865 level
= ndr_pull_get_switch_value(ndr
, r
);
4866 if (ndr_flags
& NDR_SCALARS
) {
4867 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
4870 NDR_CHECK(ndr_pull_align(ndr
, 5));
4871 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4872 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4876 NDR_CHECK(ndr_pull_align(ndr
, 5));
4877 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4878 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4882 NDR_CHECK(ndr_pull_align(ndr
, 4));
4883 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4884 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4888 NDR_CHECK(ndr_pull_align(ndr
, 5));
4889 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4890 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4898 if (ndr_flags
& NDR_BUFFERS
) {
4899 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
4902 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4906 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4913 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4921 ndr
->flags
= _flags_save_UNION
;
4923 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4924 return NDR_ERR_SUCCESS
;
4927 _PUBLIC_
void ndr_print_spoolss_JobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_JobInfo
*r
)
4931 uint32_t _flags_save_UNION
= ndr
->flags
;
4932 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
4933 level
= ndr_print_get_switch_value(ndr
, r
);
4934 ndr_print_union(ndr
, name
, level
, "spoolss_JobInfo");
4937 ndr_print_spoolss_JobInfo1(ndr
, "info1", &r
->info1
);
4941 ndr_print_spoolss_JobInfo2(ndr
, "info2", &r
->info2
);
4945 ndr_print_spoolss_JobInfo3(ndr
, "info3", &r
->info3
);
4949 ndr_print_spoolss_JobInfo4(ndr
, "info4", &r
->info4
);
4956 ndr
->flags
= _flags_save_UNION
;
4960 _PUBLIC_
size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
4962 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
4963 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo
, ic
);
4966 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo1
*r
)
4968 if (ndr_flags
& NDR_SCALARS
) {
4969 NDR_CHECK(ndr_push_align(ndr
, 5));
4970 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4971 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
4972 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
4973 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
4974 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
4975 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
4976 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
4977 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4978 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4979 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4982 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4983 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
4985 if (ndr_flags
& NDR_BUFFERS
) {
4986 if (r
->printer_name
) {
4987 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4988 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4989 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4990 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4992 if (r
->server_name
) {
4993 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4994 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4995 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4996 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4999 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5000 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5001 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5002 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5004 if (r
->document_name
) {
5005 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5006 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5007 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5008 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5011 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5012 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5013 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5014 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5016 if (r
->text_status
) {
5017 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5018 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5019 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5020 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5023 return NDR_ERR_SUCCESS
;
5026 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo1
*r
)
5028 uint32_t _ptr_printer_name
;
5029 uint32_t size_printer_name_1
= 0;
5030 uint32_t length_printer_name_1
= 0;
5031 TALLOC_CTX
*_mem_save_printer_name_0
;
5032 uint32_t _ptr_server_name
;
5033 uint32_t size_server_name_1
= 0;
5034 uint32_t length_server_name_1
= 0;
5035 TALLOC_CTX
*_mem_save_server_name_0
;
5036 uint32_t _ptr_user_name
;
5037 uint32_t size_user_name_1
= 0;
5038 uint32_t length_user_name_1
= 0;
5039 TALLOC_CTX
*_mem_save_user_name_0
;
5040 uint32_t _ptr_document_name
;
5041 uint32_t size_document_name_1
= 0;
5042 uint32_t length_document_name_1
= 0;
5043 TALLOC_CTX
*_mem_save_document_name_0
;
5044 uint32_t _ptr_data_type
;
5045 uint32_t size_data_type_1
= 0;
5046 uint32_t length_data_type_1
= 0;
5047 TALLOC_CTX
*_mem_save_data_type_0
;
5048 uint32_t _ptr_text_status
;
5049 uint32_t size_text_status_1
= 0;
5050 uint32_t length_text_status_1
= 0;
5051 TALLOC_CTX
*_mem_save_text_status_0
;
5052 if (ndr_flags
& NDR_SCALARS
) {
5053 NDR_CHECK(ndr_pull_align(ndr
, 5));
5054 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5055 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5056 if (_ptr_printer_name
) {
5057 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5059 r
->printer_name
= NULL
;
5061 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5062 if (_ptr_server_name
) {
5063 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5065 r
->server_name
= NULL
;
5067 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5068 if (_ptr_user_name
) {
5069 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5071 r
->user_name
= NULL
;
5073 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5074 if (_ptr_document_name
) {
5075 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5077 r
->document_name
= NULL
;
5079 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5080 if (_ptr_data_type
) {
5081 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5083 r
->data_type
= NULL
;
5085 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5086 if (_ptr_text_status
) {
5087 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5089 r
->text_status
= NULL
;
5091 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5092 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5093 if (r
->priority
> 99) {
5094 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5096 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5097 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5098 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5099 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5100 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
5102 if (ndr_flags
& NDR_BUFFERS
) {
5103 if (r
->printer_name
) {
5104 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5105 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5106 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5107 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5108 size_printer_name_1
= ndr_get_array_size(ndr
, &r
->printer_name
);
5109 length_printer_name_1
= ndr_get_array_length(ndr
, &r
->printer_name
);
5110 if (length_printer_name_1
> size_printer_name_1
) {
5111 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printer_name_1
, length_printer_name_1
);
5113 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printer_name_1
, sizeof(uint16_t)));
5114 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, length_printer_name_1
, sizeof(uint16_t), CH_UTF16
));
5115 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5117 if (r
->server_name
) {
5118 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5119 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5120 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5121 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5122 size_server_name_1
= ndr_get_array_size(ndr
, &r
->server_name
);
5123 length_server_name_1
= ndr_get_array_length(ndr
, &r
->server_name
);
5124 if (length_server_name_1
> size_server_name_1
) {
5125 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
5127 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
5128 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
5129 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5132 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5133 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5134 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5135 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5136 size_user_name_1
= ndr_get_array_size(ndr
, &r
->user_name
);
5137 length_user_name_1
= ndr_get_array_length(ndr
, &r
->user_name
);
5138 if (length_user_name_1
> size_user_name_1
) {
5139 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_user_name_1
, length_user_name_1
);
5141 NDR_CHECK(ndr_check_string_terminator(ndr
, length_user_name_1
, sizeof(uint16_t)));
5142 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, length_user_name_1
, sizeof(uint16_t), CH_UTF16
));
5143 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5145 if (r
->document_name
) {
5146 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5147 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5148 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5149 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5150 size_document_name_1
= ndr_get_array_size(ndr
, &r
->document_name
);
5151 length_document_name_1
= ndr_get_array_length(ndr
, &r
->document_name
);
5152 if (length_document_name_1
> size_document_name_1
) {
5153 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_document_name_1
, length_document_name_1
);
5155 NDR_CHECK(ndr_check_string_terminator(ndr
, length_document_name_1
, sizeof(uint16_t)));
5156 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, length_document_name_1
, sizeof(uint16_t), CH_UTF16
));
5157 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5160 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5161 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5162 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5163 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5164 size_data_type_1
= ndr_get_array_size(ndr
, &r
->data_type
);
5165 length_data_type_1
= ndr_get_array_length(ndr
, &r
->data_type
);
5166 if (length_data_type_1
> size_data_type_1
) {
5167 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_type_1
, length_data_type_1
);
5169 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_type_1
, sizeof(uint16_t)));
5170 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, length_data_type_1
, sizeof(uint16_t), CH_UTF16
));
5171 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5173 if (r
->text_status
) {
5174 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5175 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5176 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5177 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
5178 size_text_status_1
= ndr_get_array_size(ndr
, &r
->text_status
);
5179 length_text_status_1
= ndr_get_array_length(ndr
, &r
->text_status
);
5180 if (length_text_status_1
> size_text_status_1
) {
5181 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_text_status_1
, length_text_status_1
);
5183 NDR_CHECK(ndr_check_string_terminator(ndr
, length_text_status_1
, sizeof(uint16_t)));
5184 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, length_text_status_1
, sizeof(uint16_t), CH_UTF16
));
5185 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5188 return NDR_ERR_SUCCESS
;
5191 _PUBLIC_
void ndr_print_spoolss_SetJobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo1
*r
)
5193 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo1");
5195 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5196 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5198 if (r
->printer_name
) {
5199 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5202 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5204 if (r
->server_name
) {
5205 ndr_print_string(ndr
, "server_name", r
->server_name
);
5208 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5211 ndr_print_string(ndr
, "user_name", r
->user_name
);
5214 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5216 if (r
->document_name
) {
5217 ndr_print_string(ndr
, "document_name", r
->document_name
);
5220 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5223 ndr_print_string(ndr
, "data_type", r
->data_type
);
5226 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5228 if (r
->text_status
) {
5229 ndr_print_string(ndr
, "text_status", r
->text_status
);
5232 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5233 ndr_print_uint32(ndr
, "priority", r
->priority
);
5234 ndr_print_uint32(ndr
, "position", r
->position
);
5235 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5236 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5237 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5241 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo2
*r
)
5243 if (ndr_flags
& NDR_SCALARS
) {
5244 NDR_CHECK(ndr_push_align(ndr
, 5));
5245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
5246 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
5247 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
5248 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
5249 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
5250 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
5251 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
5252 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
5253 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
5254 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
5255 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
5256 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
5257 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
5258 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
5259 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
5260 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
5261 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
5262 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
5263 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5264 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
5265 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5266 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
5267 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
5268 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
5270 if (ndr_flags
& NDR_BUFFERS
) {
5271 if (r
->printer_name
) {
5272 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5273 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5274 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5275 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5277 if (r
->server_name
) {
5278 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5279 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5280 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5281 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5284 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5285 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5286 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5287 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5289 if (r
->document_name
) {
5290 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5291 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5292 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5293 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5295 if (r
->notify_name
) {
5296 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5297 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5298 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5299 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5302 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5303 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5304 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5305 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5307 if (r
->print_processor
) {
5308 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5309 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5310 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5311 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5313 if (r
->parameters
) {
5314 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5315 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5316 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5317 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5319 if (r
->driver_name
) {
5320 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5321 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5322 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5323 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5325 if (r
->text_status
) {
5326 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5327 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5328 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5329 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5332 return NDR_ERR_SUCCESS
;
5335 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo2
*r
)
5337 uint32_t _ptr_printer_name
;
5338 uint32_t size_printer_name_1
= 0;
5339 uint32_t length_printer_name_1
= 0;
5340 TALLOC_CTX
*_mem_save_printer_name_0
;
5341 uint32_t _ptr_server_name
;
5342 uint32_t size_server_name_1
= 0;
5343 uint32_t length_server_name_1
= 0;
5344 TALLOC_CTX
*_mem_save_server_name_0
;
5345 uint32_t _ptr_user_name
;
5346 uint32_t size_user_name_1
= 0;
5347 uint32_t length_user_name_1
= 0;
5348 TALLOC_CTX
*_mem_save_user_name_0
;
5349 uint32_t _ptr_document_name
;
5350 uint32_t size_document_name_1
= 0;
5351 uint32_t length_document_name_1
= 0;
5352 TALLOC_CTX
*_mem_save_document_name_0
;
5353 uint32_t _ptr_notify_name
;
5354 uint32_t size_notify_name_1
= 0;
5355 uint32_t length_notify_name_1
= 0;
5356 TALLOC_CTX
*_mem_save_notify_name_0
;
5357 uint32_t _ptr_data_type
;
5358 uint32_t size_data_type_1
= 0;
5359 uint32_t length_data_type_1
= 0;
5360 TALLOC_CTX
*_mem_save_data_type_0
;
5361 uint32_t _ptr_print_processor
;
5362 uint32_t size_print_processor_1
= 0;
5363 uint32_t length_print_processor_1
= 0;
5364 TALLOC_CTX
*_mem_save_print_processor_0
;
5365 uint32_t _ptr_parameters
;
5366 uint32_t size_parameters_1
= 0;
5367 uint32_t length_parameters_1
= 0;
5368 TALLOC_CTX
*_mem_save_parameters_0
;
5369 uint32_t _ptr_driver_name
;
5370 uint32_t size_driver_name_1
= 0;
5371 uint32_t length_driver_name_1
= 0;
5372 TALLOC_CTX
*_mem_save_driver_name_0
;
5373 uint32_t _ptr_text_status
;
5374 uint32_t size_text_status_1
= 0;
5375 uint32_t length_text_status_1
= 0;
5376 TALLOC_CTX
*_mem_save_text_status_0
;
5377 if (ndr_flags
& NDR_SCALARS
) {
5378 NDR_CHECK(ndr_pull_align(ndr
, 5));
5379 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5380 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5381 if (_ptr_printer_name
) {
5382 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5384 r
->printer_name
= NULL
;
5386 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5387 if (_ptr_server_name
) {
5388 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5390 r
->server_name
= NULL
;
5392 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5393 if (_ptr_user_name
) {
5394 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5396 r
->user_name
= NULL
;
5398 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5399 if (_ptr_document_name
) {
5400 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5402 r
->document_name
= NULL
;
5404 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
5405 if (_ptr_notify_name
) {
5406 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
5408 r
->notify_name
= NULL
;
5410 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5411 if (_ptr_data_type
) {
5412 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5414 r
->data_type
= NULL
;
5416 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
5417 if (_ptr_print_processor
) {
5418 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
5420 r
->print_processor
= NULL
;
5422 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
5423 if (_ptr_parameters
) {
5424 NDR_PULL_ALLOC(ndr
, r
->parameters
);
5426 r
->parameters
= NULL
;
5428 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
5429 if (_ptr_driver_name
) {
5430 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
5432 r
->driver_name
= NULL
;
5434 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
5435 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5436 if (_ptr_text_status
) {
5437 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5439 r
->text_status
= NULL
;
5441 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
5442 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5443 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5444 if (r
->priority
> 99) {
5445 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5447 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5448 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
5449 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
5450 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5451 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
5452 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5453 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
5454 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5455 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
5457 if (ndr_flags
& NDR_BUFFERS
) {
5458 if (r
->printer_name
) {
5459 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5460 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5461 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5462 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5463 size_printer_name_1
= ndr_get_array_size(ndr
, &r
->printer_name
);
5464 length_printer_name_1
= ndr_get_array_length(ndr
, &r
->printer_name
);
5465 if (length_printer_name_1
> size_printer_name_1
) {
5466 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printer_name_1
, length_printer_name_1
);
5468 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printer_name_1
, sizeof(uint16_t)));
5469 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, length_printer_name_1
, sizeof(uint16_t), CH_UTF16
));
5470 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5472 if (r
->server_name
) {
5473 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5474 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5475 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5476 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5477 size_server_name_1
= ndr_get_array_size(ndr
, &r
->server_name
);
5478 length_server_name_1
= ndr_get_array_length(ndr
, &r
->server_name
);
5479 if (length_server_name_1
> size_server_name_1
) {
5480 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
5482 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
5483 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
5484 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5487 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5488 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5489 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5490 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5491 size_user_name_1
= ndr_get_array_size(ndr
, &r
->user_name
);
5492 length_user_name_1
= ndr_get_array_length(ndr
, &r
->user_name
);
5493 if (length_user_name_1
> size_user_name_1
) {
5494 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_user_name_1
, length_user_name_1
);
5496 NDR_CHECK(ndr_check_string_terminator(ndr
, length_user_name_1
, sizeof(uint16_t)));
5497 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, length_user_name_1
, sizeof(uint16_t), CH_UTF16
));
5498 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5500 if (r
->document_name
) {
5501 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5502 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5503 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5504 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5505 size_document_name_1
= ndr_get_array_size(ndr
, &r
->document_name
);
5506 length_document_name_1
= ndr_get_array_length(ndr
, &r
->document_name
);
5507 if (length_document_name_1
> size_document_name_1
) {
5508 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_document_name_1
, length_document_name_1
);
5510 NDR_CHECK(ndr_check_string_terminator(ndr
, length_document_name_1
, sizeof(uint16_t)));
5511 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, length_document_name_1
, sizeof(uint16_t), CH_UTF16
));
5512 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5514 if (r
->notify_name
) {
5515 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5516 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
5517 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
5518 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
5519 size_notify_name_1
= ndr_get_array_size(ndr
, &r
->notify_name
);
5520 length_notify_name_1
= ndr_get_array_length(ndr
, &r
->notify_name
);
5521 if (length_notify_name_1
> size_notify_name_1
) {
5522 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_notify_name_1
, length_notify_name_1
);
5524 NDR_CHECK(ndr_check_string_terminator(ndr
, length_notify_name_1
, sizeof(uint16_t)));
5525 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, length_notify_name_1
, sizeof(uint16_t), CH_UTF16
));
5526 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
5529 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5530 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5531 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5532 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5533 size_data_type_1
= ndr_get_array_size(ndr
, &r
->data_type
);
5534 length_data_type_1
= ndr_get_array_length(ndr
, &r
->data_type
);
5535 if (length_data_type_1
> size_data_type_1
) {
5536 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_type_1
, length_data_type_1
);
5538 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_type_1
, sizeof(uint16_t)));
5539 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, length_data_type_1
, sizeof(uint16_t), CH_UTF16
));
5540 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5542 if (r
->print_processor
) {
5543 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5544 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
5545 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
5546 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
5547 size_print_processor_1
= ndr_get_array_size(ndr
, &r
->print_processor
);
5548 length_print_processor_1
= ndr_get_array_length(ndr
, &r
->print_processor
);
5549 if (length_print_processor_1
> size_print_processor_1
) {
5550 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_print_processor_1
, length_print_processor_1
);
5552 NDR_CHECK(ndr_check_string_terminator(ndr
, length_print_processor_1
, sizeof(uint16_t)));
5553 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, length_print_processor_1
, sizeof(uint16_t), CH_UTF16
));
5554 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
5556 if (r
->parameters
) {
5557 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5558 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
5559 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
5560 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
5561 size_parameters_1
= ndr_get_array_size(ndr
, &r
->parameters
);
5562 length_parameters_1
= ndr_get_array_length(ndr
, &r
->parameters
);
5563 if (length_parameters_1
> size_parameters_1
) {
5564 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_parameters_1
, length_parameters_1
);
5566 NDR_CHECK(ndr_check_string_terminator(ndr
, length_parameters_1
, sizeof(uint16_t)));
5567 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, length_parameters_1
, sizeof(uint16_t), CH_UTF16
));
5568 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
5570 if (r
->driver_name
) {
5571 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5572 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
5573 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
5574 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
5575 size_driver_name_1
= ndr_get_array_size(ndr
, &r
->driver_name
);
5576 length_driver_name_1
= ndr_get_array_length(ndr
, &r
->driver_name
);
5577 if (length_driver_name_1
> size_driver_name_1
) {
5578 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_name_1
, length_driver_name_1
);
5580 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_name_1
, sizeof(uint16_t)));
5581 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, length_driver_name_1
, sizeof(uint16_t), CH_UTF16
));
5582 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
5584 if (r
->text_status
) {
5585 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5586 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5587 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5588 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
5589 size_text_status_1
= ndr_get_array_size(ndr
, &r
->text_status
);
5590 length_text_status_1
= ndr_get_array_length(ndr
, &r
->text_status
);
5591 if (length_text_status_1
> size_text_status_1
) {
5592 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_text_status_1
, length_text_status_1
);
5594 NDR_CHECK(ndr_check_string_terminator(ndr
, length_text_status_1
, sizeof(uint16_t)));
5595 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, length_text_status_1
, sizeof(uint16_t), CH_UTF16
));
5596 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5599 return NDR_ERR_SUCCESS
;
5602 _PUBLIC_
void ndr_print_spoolss_SetJobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo2
*r
)
5604 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo2");
5606 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5607 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5609 if (r
->printer_name
) {
5610 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5613 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5615 if (r
->server_name
) {
5616 ndr_print_string(ndr
, "server_name", r
->server_name
);
5619 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5622 ndr_print_string(ndr
, "user_name", r
->user_name
);
5625 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5627 if (r
->document_name
) {
5628 ndr_print_string(ndr
, "document_name", r
->document_name
);
5631 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
5633 if (r
->notify_name
) {
5634 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
5637 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5640 ndr_print_string(ndr
, "data_type", r
->data_type
);
5643 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
5645 if (r
->print_processor
) {
5646 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
5649 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
5651 if (r
->parameters
) {
5652 ndr_print_string(ndr
, "parameters", r
->parameters
);
5655 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
5657 if (r
->driver_name
) {
5658 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
5661 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
5662 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5664 if (r
->text_status
) {
5665 ndr_print_string(ndr
, "text_status", r
->text_status
);
5668 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
5669 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5670 ndr_print_uint32(ndr
, "priority", r
->priority
);
5671 ndr_print_uint32(ndr
, "position", r
->position
);
5672 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
5673 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
5674 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5675 ndr_print_uint32(ndr
, "size", r
->size
);
5676 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5677 ndr_print_uint32(ndr
, "time", r
->time
);
5678 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5682 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo4
*r
)
5684 if (ndr_flags
& NDR_SCALARS
) {
5685 NDR_CHECK(ndr_push_align(ndr
, 5));
5686 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
5687 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
5688 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
5689 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
5690 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
5691 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
5692 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
5693 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
5694 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
5695 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
5696 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
5697 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
5698 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
5699 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
5700 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
5701 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
5702 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
5703 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
5704 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5705 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
5706 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5707 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
5708 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
5709 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
5710 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
5712 if (ndr_flags
& NDR_BUFFERS
) {
5713 if (r
->printer_name
) {
5714 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5715 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5716 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5717 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5719 if (r
->server_name
) {
5720 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5721 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5722 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5723 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5726 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5727 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5728 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5729 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5731 if (r
->document_name
) {
5732 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5733 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5734 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5735 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5737 if (r
->notify_name
) {
5738 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5739 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5740 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5741 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5744 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5745 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5746 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5747 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5749 if (r
->print_processor
) {
5750 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5751 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5752 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5753 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5755 if (r
->parameters
) {
5756 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5757 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5758 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5759 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5761 if (r
->driver_name
) {
5762 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5763 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5764 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5765 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5767 if (r
->text_status
) {
5768 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5769 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5770 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5771 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5774 return NDR_ERR_SUCCESS
;
5777 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo4
*r
)
5779 uint32_t _ptr_printer_name
;
5780 uint32_t size_printer_name_1
= 0;
5781 uint32_t length_printer_name_1
= 0;
5782 TALLOC_CTX
*_mem_save_printer_name_0
;
5783 uint32_t _ptr_server_name
;
5784 uint32_t size_server_name_1
= 0;
5785 uint32_t length_server_name_1
= 0;
5786 TALLOC_CTX
*_mem_save_server_name_0
;
5787 uint32_t _ptr_user_name
;
5788 uint32_t size_user_name_1
= 0;
5789 uint32_t length_user_name_1
= 0;
5790 TALLOC_CTX
*_mem_save_user_name_0
;
5791 uint32_t _ptr_document_name
;
5792 uint32_t size_document_name_1
= 0;
5793 uint32_t length_document_name_1
= 0;
5794 TALLOC_CTX
*_mem_save_document_name_0
;
5795 uint32_t _ptr_notify_name
;
5796 uint32_t size_notify_name_1
= 0;
5797 uint32_t length_notify_name_1
= 0;
5798 TALLOC_CTX
*_mem_save_notify_name_0
;
5799 uint32_t _ptr_data_type
;
5800 uint32_t size_data_type_1
= 0;
5801 uint32_t length_data_type_1
= 0;
5802 TALLOC_CTX
*_mem_save_data_type_0
;
5803 uint32_t _ptr_print_processor
;
5804 uint32_t size_print_processor_1
= 0;
5805 uint32_t length_print_processor_1
= 0;
5806 TALLOC_CTX
*_mem_save_print_processor_0
;
5807 uint32_t _ptr_parameters
;
5808 uint32_t size_parameters_1
= 0;
5809 uint32_t length_parameters_1
= 0;
5810 TALLOC_CTX
*_mem_save_parameters_0
;
5811 uint32_t _ptr_driver_name
;
5812 uint32_t size_driver_name_1
= 0;
5813 uint32_t length_driver_name_1
= 0;
5814 TALLOC_CTX
*_mem_save_driver_name_0
;
5815 uint32_t _ptr_text_status
;
5816 uint32_t size_text_status_1
= 0;
5817 uint32_t length_text_status_1
= 0;
5818 TALLOC_CTX
*_mem_save_text_status_0
;
5819 if (ndr_flags
& NDR_SCALARS
) {
5820 NDR_CHECK(ndr_pull_align(ndr
, 5));
5821 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5822 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5823 if (_ptr_printer_name
) {
5824 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5826 r
->printer_name
= NULL
;
5828 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5829 if (_ptr_server_name
) {
5830 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5832 r
->server_name
= NULL
;
5834 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5835 if (_ptr_user_name
) {
5836 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5838 r
->user_name
= NULL
;
5840 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5841 if (_ptr_document_name
) {
5842 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5844 r
->document_name
= NULL
;
5846 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
5847 if (_ptr_notify_name
) {
5848 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
5850 r
->notify_name
= NULL
;
5852 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5853 if (_ptr_data_type
) {
5854 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5856 r
->data_type
= NULL
;
5858 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
5859 if (_ptr_print_processor
) {
5860 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
5862 r
->print_processor
= NULL
;
5864 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
5865 if (_ptr_parameters
) {
5866 NDR_PULL_ALLOC(ndr
, r
->parameters
);
5868 r
->parameters
= NULL
;
5870 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
5871 if (_ptr_driver_name
) {
5872 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
5874 r
->driver_name
= NULL
;
5876 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
5877 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5878 if (_ptr_text_status
) {
5879 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5881 r
->text_status
= NULL
;
5883 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
5884 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5885 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5886 if (r
->priority
> 99) {
5887 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5889 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5890 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
5891 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
5892 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5893 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
5894 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5895 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
5896 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5897 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
5898 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
5900 if (ndr_flags
& NDR_BUFFERS
) {
5901 if (r
->printer_name
) {
5902 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5903 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5904 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5905 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5906 size_printer_name_1
= ndr_get_array_size(ndr
, &r
->printer_name
);
5907 length_printer_name_1
= ndr_get_array_length(ndr
, &r
->printer_name
);
5908 if (length_printer_name_1
> size_printer_name_1
) {
5909 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printer_name_1
, length_printer_name_1
);
5911 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printer_name_1
, sizeof(uint16_t)));
5912 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, length_printer_name_1
, sizeof(uint16_t), CH_UTF16
));
5913 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5915 if (r
->server_name
) {
5916 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5917 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5918 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5919 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5920 size_server_name_1
= ndr_get_array_size(ndr
, &r
->server_name
);
5921 length_server_name_1
= ndr_get_array_length(ndr
, &r
->server_name
);
5922 if (length_server_name_1
> size_server_name_1
) {
5923 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
5925 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
5926 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
5927 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5930 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5931 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5932 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5933 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5934 size_user_name_1
= ndr_get_array_size(ndr
, &r
->user_name
);
5935 length_user_name_1
= ndr_get_array_length(ndr
, &r
->user_name
);
5936 if (length_user_name_1
> size_user_name_1
) {
5937 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_user_name_1
, length_user_name_1
);
5939 NDR_CHECK(ndr_check_string_terminator(ndr
, length_user_name_1
, sizeof(uint16_t)));
5940 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, length_user_name_1
, sizeof(uint16_t), CH_UTF16
));
5941 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5943 if (r
->document_name
) {
5944 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5945 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5946 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5947 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5948 size_document_name_1
= ndr_get_array_size(ndr
, &r
->document_name
);
5949 length_document_name_1
= ndr_get_array_length(ndr
, &r
->document_name
);
5950 if (length_document_name_1
> size_document_name_1
) {
5951 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_document_name_1
, length_document_name_1
);
5953 NDR_CHECK(ndr_check_string_terminator(ndr
, length_document_name_1
, sizeof(uint16_t)));
5954 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, length_document_name_1
, sizeof(uint16_t), CH_UTF16
));
5955 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5957 if (r
->notify_name
) {
5958 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5959 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
5960 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
5961 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
5962 size_notify_name_1
= ndr_get_array_size(ndr
, &r
->notify_name
);
5963 length_notify_name_1
= ndr_get_array_length(ndr
, &r
->notify_name
);
5964 if (length_notify_name_1
> size_notify_name_1
) {
5965 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_notify_name_1
, length_notify_name_1
);
5967 NDR_CHECK(ndr_check_string_terminator(ndr
, length_notify_name_1
, sizeof(uint16_t)));
5968 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, length_notify_name_1
, sizeof(uint16_t), CH_UTF16
));
5969 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
5972 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5973 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5974 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5975 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5976 size_data_type_1
= ndr_get_array_size(ndr
, &r
->data_type
);
5977 length_data_type_1
= ndr_get_array_length(ndr
, &r
->data_type
);
5978 if (length_data_type_1
> size_data_type_1
) {
5979 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_type_1
, length_data_type_1
);
5981 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_type_1
, sizeof(uint16_t)));
5982 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, length_data_type_1
, sizeof(uint16_t), CH_UTF16
));
5983 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5985 if (r
->print_processor
) {
5986 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5987 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
5988 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
5989 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
5990 size_print_processor_1
= ndr_get_array_size(ndr
, &r
->print_processor
);
5991 length_print_processor_1
= ndr_get_array_length(ndr
, &r
->print_processor
);
5992 if (length_print_processor_1
> size_print_processor_1
) {
5993 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_print_processor_1
, length_print_processor_1
);
5995 NDR_CHECK(ndr_check_string_terminator(ndr
, length_print_processor_1
, sizeof(uint16_t)));
5996 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, length_print_processor_1
, sizeof(uint16_t), CH_UTF16
));
5997 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
5999 if (r
->parameters
) {
6000 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6001 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
6002 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
6003 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
6004 size_parameters_1
= ndr_get_array_size(ndr
, &r
->parameters
);
6005 length_parameters_1
= ndr_get_array_length(ndr
, &r
->parameters
);
6006 if (length_parameters_1
> size_parameters_1
) {
6007 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_parameters_1
, length_parameters_1
);
6009 NDR_CHECK(ndr_check_string_terminator(ndr
, length_parameters_1
, sizeof(uint16_t)));
6010 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, length_parameters_1
, sizeof(uint16_t), CH_UTF16
));
6011 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
6013 if (r
->driver_name
) {
6014 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6015 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
6016 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
6017 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
6018 size_driver_name_1
= ndr_get_array_size(ndr
, &r
->driver_name
);
6019 length_driver_name_1
= ndr_get_array_length(ndr
, &r
->driver_name
);
6020 if (length_driver_name_1
> size_driver_name_1
) {
6021 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_name_1
, length_driver_name_1
);
6023 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_name_1
, sizeof(uint16_t)));
6024 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, length_driver_name_1
, sizeof(uint16_t), CH_UTF16
));
6025 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
6027 if (r
->text_status
) {
6028 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6029 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
6030 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
6031 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
6032 size_text_status_1
= ndr_get_array_size(ndr
, &r
->text_status
);
6033 length_text_status_1
= ndr_get_array_length(ndr
, &r
->text_status
);
6034 if (length_text_status_1
> size_text_status_1
) {
6035 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_text_status_1
, length_text_status_1
);
6037 NDR_CHECK(ndr_check_string_terminator(ndr
, length_text_status_1
, sizeof(uint16_t)));
6038 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, length_text_status_1
, sizeof(uint16_t), CH_UTF16
));
6039 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
6042 return NDR_ERR_SUCCESS
;
6045 _PUBLIC_
void ndr_print_spoolss_SetJobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo4
*r
)
6047 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo4");
6049 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
6050 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
6052 if (r
->printer_name
) {
6053 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
6056 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
6058 if (r
->server_name
) {
6059 ndr_print_string(ndr
, "server_name", r
->server_name
);
6062 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
6065 ndr_print_string(ndr
, "user_name", r
->user_name
);
6068 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
6070 if (r
->document_name
) {
6071 ndr_print_string(ndr
, "document_name", r
->document_name
);
6074 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
6076 if (r
->notify_name
) {
6077 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
6080 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
6083 ndr_print_string(ndr
, "data_type", r
->data_type
);
6086 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
6088 if (r
->print_processor
) {
6089 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
6092 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
6094 if (r
->parameters
) {
6095 ndr_print_string(ndr
, "parameters", r
->parameters
);
6098 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
6100 if (r
->driver_name
) {
6101 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
6104 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
6105 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
6107 if (r
->text_status
) {
6108 ndr_print_string(ndr
, "text_status", r
->text_status
);
6111 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
6112 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
6113 ndr_print_uint32(ndr
, "priority", r
->priority
);
6114 ndr_print_uint32(ndr
, "position", r
->position
);
6115 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
6116 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
6117 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
6118 ndr_print_uint32(ndr
, "size", r
->size
);
6119 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
6120 ndr_print_uint32(ndr
, "time", r
->time
);
6121 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
6122 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
6126 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_SetJobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetJobInfo
*r
)
6128 if (ndr_flags
& NDR_SCALARS
) {
6129 int level
= ndr_push_get_switch_value(ndr
, r
);
6130 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6131 NDR_CHECK(ndr_push_union_align(ndr
, 5));
6134 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
6138 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
6142 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
6146 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
6154 if (ndr_flags
& NDR_BUFFERS
) {
6155 int level
= ndr_push_get_switch_value(ndr
, r
);
6159 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
6165 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6171 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
6177 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6186 return NDR_ERR_SUCCESS
;
6189 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_SetJobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetJobInfo
*r
)
6193 TALLOC_CTX
*_mem_save_info1_0
;
6194 uint32_t _ptr_info1
;
6195 TALLOC_CTX
*_mem_save_info2_0
;
6196 uint32_t _ptr_info2
;
6197 TALLOC_CTX
*_mem_save_info3_0
;
6198 uint32_t _ptr_info3
;
6199 TALLOC_CTX
*_mem_save_info4_0
;
6200 uint32_t _ptr_info4
;
6201 level
= ndr_pull_get_switch_value(ndr
, r
);
6202 if (ndr_flags
& NDR_SCALARS
) {
6203 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
6204 if (_level
!= level
) {
6205 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
6207 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
6210 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
6212 NDR_PULL_ALLOC(ndr
, r
->info1
);
6219 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
6221 NDR_PULL_ALLOC(ndr
, r
->info2
);
6228 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
6230 NDR_PULL_ALLOC(ndr
, r
->info3
);
6237 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
6239 NDR_PULL_ALLOC(ndr
, r
->info4
);
6250 if (ndr_flags
& NDR_BUFFERS
) {
6254 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6255 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
6256 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
6257 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
6263 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6264 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
6265 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6266 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
6272 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6273 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
6274 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
6275 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
6281 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6282 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
6283 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6284 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
6293 return NDR_ERR_SUCCESS
;
6296 _PUBLIC_
void ndr_print_spoolss_SetJobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetJobInfo
*r
)
6299 level
= ndr_print_get_switch_value(ndr
, r
);
6300 ndr_print_union(ndr
, name
, level
, "spoolss_SetJobInfo");
6303 ndr_print_ptr(ndr
, "info1", r
->info1
);
6306 ndr_print_spoolss_SetJobInfo1(ndr
, "info1", r
->info1
);
6312 ndr_print_ptr(ndr
, "info2", r
->info2
);
6315 ndr_print_spoolss_SetJobInfo2(ndr
, "info2", r
->info2
);
6321 ndr_print_ptr(ndr
, "info3", r
->info3
);
6324 ndr_print_spoolss_JobInfo3(ndr
, "info3", r
->info3
);
6330 ndr_print_ptr(ndr
, "info4", r
->info4
);
6333 ndr_print_spoolss_SetJobInfo4(ndr
, "info4", r
->info4
);
6344 static enum ndr_err_code
ndr_push_spoolss_JobInfoContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfoContainer
*r
)
6346 if (ndr_flags
& NDR_SCALARS
) {
6347 NDR_CHECK(ndr_push_align(ndr
, 5));
6348 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
6349 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
6350 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
6351 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6353 if (ndr_flags
& NDR_BUFFERS
) {
6354 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
6356 return NDR_ERR_SUCCESS
;
6359 static enum ndr_err_code
ndr_pull_spoolss_JobInfoContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfoContainer
*r
)
6361 if (ndr_flags
& NDR_SCALARS
) {
6362 NDR_CHECK(ndr_pull_align(ndr
, 5));
6363 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
6364 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
6365 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
6366 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6368 if (ndr_flags
& NDR_BUFFERS
) {
6369 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
6371 return NDR_ERR_SUCCESS
;
6374 _PUBLIC_
void ndr_print_spoolss_JobInfoContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfoContainer
*r
)
6376 ndr_print_struct(ndr
, name
, "spoolss_JobInfoContainer");
6378 ndr_print_uint32(ndr
, "level", r
->level
);
6379 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
6380 ndr_print_spoolss_SetJobInfo(ndr
, "info", &r
->info
);
6384 static enum ndr_err_code
ndr_push_spoolss_JobControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobControl r
)
6386 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
6387 return NDR_ERR_SUCCESS
;
6390 static enum ndr_err_code
ndr_pull_spoolss_JobControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobControl
*r
)
6393 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
6395 return NDR_ERR_SUCCESS
;
6398 _PUBLIC_
void ndr_print_spoolss_JobControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobControl r
)
6400 const char *val
= NULL
;
6403 case SPOOLSS_JOB_CONTROL_PAUSE
: val
= "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6404 case SPOOLSS_JOB_CONTROL_RESUME
: val
= "SPOOLSS_JOB_CONTROL_RESUME"; break;
6405 case SPOOLSS_JOB_CONTROL_CANCEL
: val
= "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6406 case SPOOLSS_JOB_CONTROL_RESTART
: val
= "SPOOLSS_JOB_CONTROL_RESTART"; break;
6407 case SPOOLSS_JOB_CONTROL_DELETE
: val
= "SPOOLSS_JOB_CONTROL_DELETE"; break;
6408 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER
: val
= "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6409 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED
: val
= "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6410 case SPOOLSS_JOB_CONTROL_RETAIN
: val
= "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6411 case SPOOLSS_JOB_CONTROL_RELEASE
: val
= "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6413 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6416 static enum ndr_err_code
ndr_push_spoolss_PrinterControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrinterControl r
)
6418 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
6419 return NDR_ERR_SUCCESS
;
6422 static enum ndr_err_code
ndr_pull_spoolss_PrinterControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrinterControl
*r
)
6425 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
6427 return NDR_ERR_SUCCESS
;
6430 _PUBLIC_
void ndr_print_spoolss_PrinterControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrinterControl r
)
6432 const char *val
= NULL
;
6435 case SPOOLSS_PRINTER_CONTROL_UNPAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6436 case SPOOLSS_PRINTER_CONTROL_PAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6437 case SPOOLSS_PRINTER_CONTROL_RESUME
: val
= "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6438 case SPOOLSS_PRINTER_CONTROL_PURGE
: val
= "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6439 case SPOOLSS_PRINTER_CONTROL_SET_STATUS
: val
= "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6441 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6444 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo0
*r
)
6446 if (ndr_flags
& NDR_SCALARS
) {
6447 NDR_CHECK(ndr_push_align(ndr
, 5));
6448 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6449 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6450 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
6451 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
6452 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
6453 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
6454 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
6455 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
6456 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
6457 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
6458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
6459 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
6460 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
6461 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
6462 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
6463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_error
));
6464 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
6465 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
6466 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
6467 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
6468 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
6469 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->status
));
6470 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
6471 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
6472 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
6473 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
6474 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
6475 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
6476 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
6477 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6479 if (ndr_flags
& NDR_BUFFERS
) {
6480 if (r
->servername
) {
6481 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6482 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6483 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6484 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6486 if (r
->printername
) {
6487 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6488 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6489 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6490 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6493 return NDR_ERR_SUCCESS
;
6496 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo0
*r
)
6498 uint32_t _ptr_servername
;
6499 uint32_t size_servername_1
= 0;
6500 uint32_t length_servername_1
= 0;
6501 TALLOC_CTX
*_mem_save_servername_0
;
6502 uint32_t _ptr_printername
;
6503 uint32_t size_printername_1
= 0;
6504 uint32_t length_printername_1
= 0;
6505 TALLOC_CTX
*_mem_save_printername_0
;
6506 if (ndr_flags
& NDR_SCALARS
) {
6507 NDR_CHECK(ndr_pull_align(ndr
, 5));
6508 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6509 if (_ptr_servername
) {
6510 NDR_PULL_ALLOC(ndr
, r
->servername
);
6512 r
->servername
= NULL
;
6514 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6515 if (_ptr_printername
) {
6516 NDR_PULL_ALLOC(ndr
, r
->printername
);
6518 r
->printername
= NULL
;
6520 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
6521 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
6522 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
6523 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
6524 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
6525 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
6526 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
6527 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
6528 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
6529 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
6530 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
6531 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
6532 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
6533 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_error
));
6534 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
6535 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
6536 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
6537 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
6538 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
6539 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->status
));
6540 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
6541 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
6542 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
6543 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
6544 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
6545 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
6546 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
6547 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6549 if (ndr_flags
& NDR_BUFFERS
) {
6550 if (r
->servername
) {
6551 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6552 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6553 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6554 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6555 size_servername_1
= ndr_get_array_size(ndr
, &r
->servername
);
6556 length_servername_1
= ndr_get_array_length(ndr
, &r
->servername
);
6557 if (length_servername_1
> size_servername_1
) {
6558 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
6560 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
6561 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
6562 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6564 if (r
->printername
) {
6565 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6566 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6567 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6568 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6569 size_printername_1
= ndr_get_array_size(ndr
, &r
->printername
);
6570 length_printername_1
= ndr_get_array_length(ndr
, &r
->printername
);
6571 if (length_printername_1
> size_printername_1
) {
6572 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printername_1
, length_printername_1
);
6574 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printername_1
, sizeof(uint16_t)));
6575 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, length_printername_1
, sizeof(uint16_t), CH_UTF16
));
6576 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6579 return NDR_ERR_SUCCESS
;
6582 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo0
*r
)
6584 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo0");
6586 ndr_print_ptr(ndr
, "servername", r
->servername
);
6588 if (r
->servername
) {
6589 ndr_print_string(ndr
, "servername", r
->servername
);
6592 ndr_print_ptr(ndr
, "printername", r
->printername
);
6594 if (r
->printername
) {
6595 ndr_print_string(ndr
, "printername", r
->printername
);
6598 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
6599 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
6600 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
6601 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
6602 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
6603 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
6604 ndr_print_uint32(ndr
, "version", r
->version
);
6605 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
6606 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
6607 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
6608 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
6609 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
6610 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
6611 ndr_print_uint32(ndr
, "job_error", r
->job_error
);
6612 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
6613 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
6614 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
6615 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
6616 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
6617 ndr_print_uint32(ndr
, "status", r
->status
);
6618 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
6619 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
6620 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
6621 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
6622 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
6623 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
6624 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
6628 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo1
*r
)
6630 if (ndr_flags
& NDR_SCALARS
) {
6631 NDR_CHECK(ndr_push_align(ndr
, 5));
6632 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->flags
));
6633 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->description
));
6634 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
6635 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
6636 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6638 if (ndr_flags
& NDR_BUFFERS
) {
6639 if (r
->description
) {
6640 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
6641 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6642 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
6643 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->description
, ndr_charset_length(r
->description
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6646 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
6647 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6648 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
6649 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6652 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6653 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6654 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6655 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6658 return NDR_ERR_SUCCESS
;
6661 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo1
*r
)
6663 uint32_t _ptr_description
;
6664 uint32_t size_description_1
= 0;
6665 uint32_t length_description_1
= 0;
6666 TALLOC_CTX
*_mem_save_description_0
;
6668 uint32_t size_name_1
= 0;
6669 uint32_t length_name_1
= 0;
6670 TALLOC_CTX
*_mem_save_name_0
;
6671 uint32_t _ptr_comment
;
6672 uint32_t size_comment_1
= 0;
6673 uint32_t length_comment_1
= 0;
6674 TALLOC_CTX
*_mem_save_comment_0
;
6675 if (ndr_flags
& NDR_SCALARS
) {
6676 NDR_CHECK(ndr_pull_align(ndr
, 5));
6677 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->flags
));
6678 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
6679 if (_ptr_description
) {
6680 NDR_PULL_ALLOC(ndr
, r
->description
);
6682 r
->description
= NULL
;
6684 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
6686 NDR_PULL_ALLOC(ndr
, r
->name
);
6690 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
6692 NDR_PULL_ALLOC(ndr
, r
->comment
);
6696 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6698 if (ndr_flags
& NDR_BUFFERS
) {
6699 if (r
->description
) {
6700 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6701 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
6702 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->description
));
6703 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->description
));
6704 size_description_1
= ndr_get_array_size(ndr
, &r
->description
);
6705 length_description_1
= ndr_get_array_length(ndr
, &r
->description
);
6706 if (length_description_1
> size_description_1
) {
6707 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_description_1
, length_description_1
);
6709 NDR_CHECK(ndr_check_string_terminator(ndr
, length_description_1
, sizeof(uint16_t)));
6710 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->description
, length_description_1
, sizeof(uint16_t), CH_UTF16
));
6711 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
6714 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6715 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
6716 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
6717 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
6718 size_name_1
= ndr_get_array_size(ndr
, &r
->name
);
6719 length_name_1
= ndr_get_array_length(ndr
, &r
->name
);
6720 if (length_name_1
> size_name_1
) {
6721 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_name_1
, length_name_1
);
6723 NDR_CHECK(ndr_check_string_terminator(ndr
, length_name_1
, sizeof(uint16_t)));
6724 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, length_name_1
, sizeof(uint16_t), CH_UTF16
));
6725 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
6728 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6729 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
6730 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
6731 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
6732 size_comment_1
= ndr_get_array_size(ndr
, &r
->comment
);
6733 length_comment_1
= ndr_get_array_length(ndr
, &r
->comment
);
6734 if (length_comment_1
> size_comment_1
) {
6735 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_comment_1
, length_comment_1
);
6737 NDR_CHECK(ndr_check_string_terminator(ndr
, length_comment_1
, sizeof(uint16_t)));
6738 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, length_comment_1
, sizeof(uint16_t), CH_UTF16
));
6739 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
6742 return NDR_ERR_SUCCESS
;
6745 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo1
*r
)
6747 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo1");
6749 ndr_print_spoolss_PrinterAttributes(ndr
, "flags", r
->flags
);
6750 ndr_print_ptr(ndr
, "description", r
->description
);
6752 if (r
->description
) {
6753 ndr_print_string(ndr
, "description", r
->description
);
6756 ndr_print_ptr(ndr
, "name", r
->name
);
6759 ndr_print_string(ndr
, "name", r
->name
);
6762 ndr_print_ptr(ndr
, "comment", r
->comment
);
6765 ndr_print_string(ndr
, "comment", r
->comment
);
6771 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo2
*r
)
6773 if (ndr_flags
& NDR_SCALARS
) {
6774 NDR_CHECK(ndr_push_align(ndr
, 5));
6775 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6776 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6777 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sharename
));
6778 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
6779 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->drivername
));
6780 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
6781 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->location
));
6782 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->devmode_ptr
));
6783 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sepfile
));
6784 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printprocessor
));
6785 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
6786 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
6787 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->secdesc_ptr
));
6788 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6789 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
6790 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
6791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
6792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
6793 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
6794 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
6795 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
6796 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6798 if (ndr_flags
& NDR_BUFFERS
) {
6799 if (r
->servername
) {
6800 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6801 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6802 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6803 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6805 if (r
->printername
) {
6806 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6807 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6808 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6809 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6812 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
6813 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6814 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
6815 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sharename
, ndr_charset_length(r
->sharename
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6818 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6819 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6820 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6821 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6823 if (r
->drivername
) {
6824 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
6825 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6826 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
6827 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->drivername
, ndr_charset_length(r
->drivername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6830 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6831 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6832 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6833 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6836 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
6837 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6838 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
6839 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->location
, ndr_charset_length(r
->location
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6842 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6843 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6844 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6845 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sepfile
, ndr_charset_length(r
->sepfile
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6847 if (r
->printprocessor
) {
6848 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6849 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6850 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6851 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printprocessor
, ndr_charset_length(r
->printprocessor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6854 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6855 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6856 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6857 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6859 if (r
->parameters
) {
6860 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6861 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6862 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6863 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6866 return NDR_ERR_SUCCESS
;
6869 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo2
*r
)
6871 uint32_t _ptr_servername
;
6872 uint32_t size_servername_1
= 0;
6873 uint32_t length_servername_1
= 0;
6874 TALLOC_CTX
*_mem_save_servername_0
;
6875 uint32_t _ptr_printername
;
6876 uint32_t size_printername_1
= 0;
6877 uint32_t length_printername_1
= 0;
6878 TALLOC_CTX
*_mem_save_printername_0
;
6879 uint32_t _ptr_sharename
;
6880 uint32_t size_sharename_1
= 0;
6881 uint32_t length_sharename_1
= 0;
6882 TALLOC_CTX
*_mem_save_sharename_0
;
6883 uint32_t _ptr_portname
;
6884 uint32_t size_portname_1
= 0;
6885 uint32_t length_portname_1
= 0;
6886 TALLOC_CTX
*_mem_save_portname_0
;
6887 uint32_t _ptr_drivername
;
6888 uint32_t size_drivername_1
= 0;
6889 uint32_t length_drivername_1
= 0;
6890 TALLOC_CTX
*_mem_save_drivername_0
;
6891 uint32_t _ptr_comment
;
6892 uint32_t size_comment_1
= 0;
6893 uint32_t length_comment_1
= 0;
6894 TALLOC_CTX
*_mem_save_comment_0
;
6895 uint32_t _ptr_location
;
6896 uint32_t size_location_1
= 0;
6897 uint32_t length_location_1
= 0;
6898 TALLOC_CTX
*_mem_save_location_0
;
6899 uint32_t _ptr_sepfile
;
6900 uint32_t size_sepfile_1
= 0;
6901 uint32_t length_sepfile_1
= 0;
6902 TALLOC_CTX
*_mem_save_sepfile_0
;
6903 uint32_t _ptr_printprocessor
;
6904 uint32_t size_printprocessor_1
= 0;
6905 uint32_t length_printprocessor_1
= 0;
6906 TALLOC_CTX
*_mem_save_printprocessor_0
;
6907 uint32_t _ptr_datatype
;
6908 uint32_t size_datatype_1
= 0;
6909 uint32_t length_datatype_1
= 0;
6910 TALLOC_CTX
*_mem_save_datatype_0
;
6911 uint32_t _ptr_parameters
;
6912 uint32_t size_parameters_1
= 0;
6913 uint32_t length_parameters_1
= 0;
6914 TALLOC_CTX
*_mem_save_parameters_0
;
6915 if (ndr_flags
& NDR_SCALARS
) {
6916 NDR_CHECK(ndr_pull_align(ndr
, 5));
6917 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6918 if (_ptr_servername
) {
6919 NDR_PULL_ALLOC(ndr
, r
->servername
);
6921 r
->servername
= NULL
;
6923 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6924 if (_ptr_printername
) {
6925 NDR_PULL_ALLOC(ndr
, r
->printername
);
6927 r
->printername
= NULL
;
6929 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
6930 if (_ptr_sharename
) {
6931 NDR_PULL_ALLOC(ndr
, r
->sharename
);
6933 r
->sharename
= NULL
;
6935 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
6936 if (_ptr_portname
) {
6937 NDR_PULL_ALLOC(ndr
, r
->portname
);
6941 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
6942 if (_ptr_drivername
) {
6943 NDR_PULL_ALLOC(ndr
, r
->drivername
);
6945 r
->drivername
= NULL
;
6947 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
6949 NDR_PULL_ALLOC(ndr
, r
->comment
);
6953 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
6954 if (_ptr_location
) {
6955 NDR_PULL_ALLOC(ndr
, r
->location
);
6959 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->devmode_ptr
));
6960 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
6962 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
6966 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
6967 if (_ptr_printprocessor
) {
6968 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
6970 r
->printprocessor
= NULL
;
6972 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
6973 if (_ptr_datatype
) {
6974 NDR_PULL_ALLOC(ndr
, r
->datatype
);
6978 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
6979 if (_ptr_parameters
) {
6980 NDR_PULL_ALLOC(ndr
, r
->parameters
);
6982 r
->parameters
= NULL
;
6984 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->secdesc_ptr
));
6985 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6986 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
6987 if (r
->priority
> 99) {
6988 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
6990 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
6991 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
6992 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
6993 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
6994 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
6995 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
6996 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6998 if (ndr_flags
& NDR_BUFFERS
) {
6999 if (r
->servername
) {
7000 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7001 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
7002 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
7003 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
7004 size_servername_1
= ndr_get_array_size(ndr
, &r
->servername
);
7005 length_servername_1
= ndr_get_array_length(ndr
, &r
->servername
);
7006 if (length_servername_1
> size_servername_1
) {
7007 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
7009 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
7010 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
7011 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
7013 if (r
->printername
) {
7014 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7015 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
7016 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
7017 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
7018 size_printername_1
= ndr_get_array_size(ndr
, &r
->printername
);
7019 length_printername_1
= ndr_get_array_length(ndr
, &r
->printername
);
7020 if (length_printername_1
> size_printername_1
) {
7021 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printername_1
, length_printername_1
);
7023 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printername_1
, sizeof(uint16_t)));
7024 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, length_printername_1
, sizeof(uint16_t), CH_UTF16
));
7025 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
7028 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7029 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
7030 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sharename
));
7031 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sharename
));
7032 size_sharename_1
= ndr_get_array_size(ndr
, &r
->sharename
);
7033 length_sharename_1
= ndr_get_array_length(ndr
, &r
->sharename
);
7034 if (length_sharename_1
> size_sharename_1
) {
7035 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_sharename_1
, length_sharename_1
);
7037 NDR_CHECK(ndr_check_string_terminator(ndr
, length_sharename_1
, sizeof(uint16_t)));
7038 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sharename
, length_sharename_1
, sizeof(uint16_t), CH_UTF16
));
7039 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
7042 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7043 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
7044 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
7045 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
7046 size_portname_1
= ndr_get_array_size(ndr
, &r
->portname
);
7047 length_portname_1
= ndr_get_array_length(ndr
, &r
->portname
);
7048 if (length_portname_1
> size_portname_1
) {
7049 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_portname_1
, length_portname_1
);
7051 NDR_CHECK(ndr_check_string_terminator(ndr
, length_portname_1
, sizeof(uint16_t)));
7052 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, length_portname_1
, sizeof(uint16_t), CH_UTF16
));
7053 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
7055 if (r
->drivername
) {
7056 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7057 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
7058 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->drivername
));
7059 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->drivername
));
7060 size_drivername_1
= ndr_get_array_size(ndr
, &r
->drivername
);
7061 length_drivername_1
= ndr_get_array_length(ndr
, &r
->drivername
);
7062 if (length_drivername_1
> size_drivername_1
) {
7063 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_drivername_1
, length_drivername_1
);
7065 NDR_CHECK(ndr_check_string_terminator(ndr
, length_drivername_1
, sizeof(uint16_t)));
7066 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->drivername
, length_drivername_1
, sizeof(uint16_t), CH_UTF16
));
7067 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
7070 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7071 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
7072 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
7073 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
7074 size_comment_1
= ndr_get_array_size(ndr
, &r
->comment
);
7075 length_comment_1
= ndr_get_array_length(ndr
, &r
->comment
);
7076 if (length_comment_1
> size_comment_1
) {
7077 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_comment_1
, length_comment_1
);
7079 NDR_CHECK(ndr_check_string_terminator(ndr
, length_comment_1
, sizeof(uint16_t)));
7080 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, length_comment_1
, sizeof(uint16_t), CH_UTF16
));
7081 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
7084 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7085 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
7086 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->location
));
7087 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->location
));
7088 size_location_1
= ndr_get_array_size(ndr
, &r
->location
);
7089 length_location_1
= ndr_get_array_length(ndr
, &r
->location
);
7090 if (length_location_1
> size_location_1
) {
7091 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_location_1
, length_location_1
);
7093 NDR_CHECK(ndr_check_string_terminator(ndr
, length_location_1
, sizeof(uint16_t)));
7094 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->location
, length_location_1
, sizeof(uint16_t), CH_UTF16
));
7095 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
7098 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7099 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
7100 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sepfile
));
7101 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sepfile
));
7102 size_sepfile_1
= ndr_get_array_size(ndr
, &r
->sepfile
);
7103 length_sepfile_1
= ndr_get_array_length(ndr
, &r
->sepfile
);
7104 if (length_sepfile_1
> size_sepfile_1
) {
7105 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_sepfile_1
, length_sepfile_1
);
7107 NDR_CHECK(ndr_check_string_terminator(ndr
, length_sepfile_1
, sizeof(uint16_t)));
7108 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sepfile
, length_sepfile_1
, sizeof(uint16_t), CH_UTF16
));
7109 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
7111 if (r
->printprocessor
) {
7112 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7113 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
7114 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printprocessor
));
7115 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printprocessor
));
7116 size_printprocessor_1
= ndr_get_array_size(ndr
, &r
->printprocessor
);
7117 length_printprocessor_1
= ndr_get_array_length(ndr
, &r
->printprocessor
);
7118 if (length_printprocessor_1
> size_printprocessor_1
) {
7119 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printprocessor_1
, length_printprocessor_1
);
7121 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printprocessor_1
, sizeof(uint16_t)));
7122 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printprocessor
, length_printprocessor_1
, sizeof(uint16_t), CH_UTF16
));
7123 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
7126 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7127 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
7128 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
7129 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
7130 size_datatype_1
= ndr_get_array_size(ndr
, &r
->datatype
);
7131 length_datatype_1
= ndr_get_array_length(ndr
, &r
->datatype
);
7132 if (length_datatype_1
> size_datatype_1
) {
7133 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_datatype_1
, length_datatype_1
);
7135 NDR_CHECK(ndr_check_string_terminator(ndr
, length_datatype_1
, sizeof(uint16_t)));
7136 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, length_datatype_1
, sizeof(uint16_t), CH_UTF16
));
7137 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
7139 if (r
->parameters
) {
7140 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7141 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
7142 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
7143 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
7144 size_parameters_1
= ndr_get_array_size(ndr
, &r
->parameters
);
7145 length_parameters_1
= ndr_get_array_length(ndr
, &r
->parameters
);
7146 if (length_parameters_1
> size_parameters_1
) {
7147 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_parameters_1
, length_parameters_1
);
7149 NDR_CHECK(ndr_check_string_terminator(ndr
, length_parameters_1
, sizeof(uint16_t)));
7150 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, length_parameters_1
, sizeof(uint16_t), CH_UTF16
));
7151 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
7154 return NDR_ERR_SUCCESS
;
7157 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo2
*r
)
7159 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo2");
7161 ndr_print_ptr(ndr
, "servername", r
->servername
);
7163 if (r
->servername
) {
7164 ndr_print_string(ndr
, "servername", r
->servername
);
7167 ndr_print_ptr(ndr
, "printername", r
->printername
);
7169 if (r
->printername
) {
7170 ndr_print_string(ndr
, "printername", r
->printername
);
7173 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
7176 ndr_print_string(ndr
, "sharename", r
->sharename
);
7179 ndr_print_ptr(ndr
, "portname", r
->portname
);
7182 ndr_print_string(ndr
, "portname", r
->portname
);
7185 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
7187 if (r
->drivername
) {
7188 ndr_print_string(ndr
, "drivername", r
->drivername
);
7191 ndr_print_ptr(ndr
, "comment", r
->comment
);
7194 ndr_print_string(ndr
, "comment", r
->comment
);
7197 ndr_print_ptr(ndr
, "location", r
->location
);
7200 ndr_print_string(ndr
, "location", r
->location
);
7203 ndr_print_uint32(ndr
, "devmode_ptr", r
->devmode_ptr
);
7204 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
7207 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
7210 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
7212 if (r
->printprocessor
) {
7213 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
7216 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
7219 ndr_print_string(ndr
, "datatype", r
->datatype
);
7222 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
7224 if (r
->parameters
) {
7225 ndr_print_string(ndr
, "parameters", r
->parameters
);
7228 ndr_print_uint32(ndr
, "secdesc_ptr", r
->secdesc_ptr
);
7229 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7230 ndr_print_uint32(ndr
, "priority", r
->priority
);
7231 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
7232 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
7233 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
7234 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
7235 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
7236 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
7240 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo3
*r
)
7242 if (ndr_flags
& NDR_SCALARS
) {
7243 NDR_CHECK(ndr_push_align(ndr
, 4));
7244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sec_desc_ptr
));
7245 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7247 if (ndr_flags
& NDR_BUFFERS
) {
7249 return NDR_ERR_SUCCESS
;
7252 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo3
*r
)
7254 if (ndr_flags
& NDR_SCALARS
) {
7255 NDR_CHECK(ndr_pull_align(ndr
, 4));
7256 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sec_desc_ptr
));
7257 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7259 if (ndr_flags
& NDR_BUFFERS
) {
7261 return NDR_ERR_SUCCESS
;
7264 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo3
*r
)
7266 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo3");
7268 ndr_print_uint32(ndr
, "sec_desc_ptr", r
->sec_desc_ptr
);
7272 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo4
*r
)
7274 if (ndr_flags
& NDR_SCALARS
) {
7275 NDR_CHECK(ndr_push_align(ndr
, 5));
7276 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
7277 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
7278 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
7279 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7281 if (ndr_flags
& NDR_BUFFERS
) {
7282 if (r
->printername
) {
7283 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7284 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7285 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7286 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7288 if (r
->servername
) {
7289 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
7290 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7291 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
7292 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7295 return NDR_ERR_SUCCESS
;
7298 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo4
*r
)
7300 uint32_t _ptr_printername
;
7301 uint32_t size_printername_1
= 0;
7302 uint32_t length_printername_1
= 0;
7303 TALLOC_CTX
*_mem_save_printername_0
;
7304 uint32_t _ptr_servername
;
7305 uint32_t size_servername_1
= 0;
7306 uint32_t length_servername_1
= 0;
7307 TALLOC_CTX
*_mem_save_servername_0
;
7308 if (ndr_flags
& NDR_SCALARS
) {
7309 NDR_CHECK(ndr_pull_align(ndr
, 5));
7310 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
7311 if (_ptr_printername
) {
7312 NDR_PULL_ALLOC(ndr
, r
->printername
);
7314 r
->printername
= NULL
;
7316 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
7317 if (_ptr_servername
) {
7318 NDR_PULL_ALLOC(ndr
, r
->servername
);
7320 r
->servername
= NULL
;
7322 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
7323 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7325 if (ndr_flags
& NDR_BUFFERS
) {
7326 if (r
->printername
) {
7327 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7328 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
7329 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
7330 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
7331 size_printername_1
= ndr_get_array_size(ndr
, &r
->printername
);
7332 length_printername_1
= ndr_get_array_length(ndr
, &r
->printername
);
7333 if (length_printername_1
> size_printername_1
) {
7334 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printername_1
, length_printername_1
);
7336 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printername_1
, sizeof(uint16_t)));
7337 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, length_printername_1
, sizeof(uint16_t), CH_UTF16
));
7338 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
7340 if (r
->servername
) {
7341 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7342 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
7343 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
7344 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
7345 size_servername_1
= ndr_get_array_size(ndr
, &r
->servername
);
7346 length_servername_1
= ndr_get_array_length(ndr
, &r
->servername
);
7347 if (length_servername_1
> size_servername_1
) {
7348 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
7350 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
7351 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
7352 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
7355 return NDR_ERR_SUCCESS
;
7358 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo4
*r
)
7360 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo4");
7362 ndr_print_ptr(ndr
, "printername", r
->printername
);
7364 if (r
->printername
) {
7365 ndr_print_string(ndr
, "printername", r
->printername
);
7368 ndr_print_ptr(ndr
, "servername", r
->servername
);
7370 if (r
->servername
) {
7371 ndr_print_string(ndr
, "servername", r
->servername
);
7374 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7378 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo5
*r
)
7380 if (ndr_flags
& NDR_SCALARS
) {
7381 NDR_CHECK(ndr_push_align(ndr
, 5));
7382 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
7383 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
7384 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
7385 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
7386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
7387 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7389 if (ndr_flags
& NDR_BUFFERS
) {
7390 if (r
->printername
) {
7391 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7392 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7393 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7394 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7397 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
7398 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7399 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
7400 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7403 return NDR_ERR_SUCCESS
;
7406 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo5
*r
)
7408 uint32_t _ptr_printername
;
7409 uint32_t size_printername_1
= 0;
7410 uint32_t length_printername_1
= 0;
7411 TALLOC_CTX
*_mem_save_printername_0
;
7412 uint32_t _ptr_portname
;
7413 uint32_t size_portname_1
= 0;
7414 uint32_t length_portname_1
= 0;
7415 TALLOC_CTX
*_mem_save_portname_0
;
7416 if (ndr_flags
& NDR_SCALARS
) {
7417 NDR_CHECK(ndr_pull_align(ndr
, 5));
7418 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
7419 if (_ptr_printername
) {
7420 NDR_PULL_ALLOC(ndr
, r
->printername
);
7422 r
->printername
= NULL
;
7424 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
7425 if (_ptr_portname
) {
7426 NDR_PULL_ALLOC(ndr
, r
->portname
);
7430 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
7431 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
7432 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
7433 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7435 if (ndr_flags
& NDR_BUFFERS
) {
7436 if (r
->printername
) {
7437 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7438 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
7439 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
7440 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
7441 size_printername_1
= ndr_get_array_size(ndr
, &r
->printername
);
7442 length_printername_1
= ndr_get_array_length(ndr
, &r
->printername
);
7443 if (length_printername_1
> size_printername_1
) {
7444 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printername_1
, length_printername_1
);
7446 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printername_1
, sizeof(uint16_t)));
7447 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, length_printername_1
, sizeof(uint16_t), CH_UTF16
));
7448 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
7451 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7452 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
7453 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
7454 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
7455 size_portname_1
= ndr_get_array_size(ndr
, &r
->portname
);
7456 length_portname_1
= ndr_get_array_length(ndr
, &r
->portname
);
7457 if (length_portname_1
> size_portname_1
) {
7458 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_portname_1
, length_portname_1
);
7460 NDR_CHECK(ndr_check_string_terminator(ndr
, length_portname_1
, sizeof(uint16_t)));
7461 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, length_portname_1
, sizeof(uint16_t), CH_UTF16
));
7462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
7465 return NDR_ERR_SUCCESS
;
7468 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo5
*r
)
7470 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo5");
7472 ndr_print_ptr(ndr
, "printername", r
->printername
);
7474 if (r
->printername
) {
7475 ndr_print_string(ndr
, "printername", r
->printername
);
7478 ndr_print_ptr(ndr
, "portname", r
->portname
);
7481 ndr_print_string(ndr
, "portname", r
->portname
);
7484 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7485 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
7486 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
7490 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo6
*r
)
7492 if (ndr_flags
& NDR_SCALARS
) {
7493 NDR_CHECK(ndr_push_align(ndr
, 4));
7494 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
7495 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7497 if (ndr_flags
& NDR_BUFFERS
) {
7499 return NDR_ERR_SUCCESS
;
7502 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo6
*r
)
7504 if (ndr_flags
& NDR_SCALARS
) {
7505 NDR_CHECK(ndr_pull_align(ndr
, 4));
7506 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
7507 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7509 if (ndr_flags
& NDR_BUFFERS
) {
7511 return NDR_ERR_SUCCESS
;
7514 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo6
*r
)
7516 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo6");
7518 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
7522 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo7
*r
)
7524 if (ndr_flags
& NDR_SCALARS
) {
7525 NDR_CHECK(ndr_push_align(ndr
, 5));
7526 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->guid
));
7527 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
7528 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7530 if (ndr_flags
& NDR_BUFFERS
) {
7532 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
7533 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7534 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
7535 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->guid
, ndr_charset_length(r
->guid
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7538 return NDR_ERR_SUCCESS
;
7541 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo7
*r
)
7544 uint32_t size_guid_1
= 0;
7545 uint32_t length_guid_1
= 0;
7546 TALLOC_CTX
*_mem_save_guid_0
;
7547 if (ndr_flags
& NDR_SCALARS
) {
7548 NDR_CHECK(ndr_pull_align(ndr
, 5));
7549 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
7551 NDR_PULL_ALLOC(ndr
, r
->guid
);
7555 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
7556 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7558 if (ndr_flags
& NDR_BUFFERS
) {
7560 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7561 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
7562 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->guid
));
7563 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->guid
));
7564 size_guid_1
= ndr_get_array_size(ndr
, &r
->guid
);
7565 length_guid_1
= ndr_get_array_length(ndr
, &r
->guid
);
7566 if (length_guid_1
> size_guid_1
) {
7567 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_guid_1
, length_guid_1
);
7569 NDR_CHECK(ndr_check_string_terminator(ndr
, length_guid_1
, sizeof(uint16_t)));
7570 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->guid
, length_guid_1
, sizeof(uint16_t), CH_UTF16
));
7571 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
7574 return NDR_ERR_SUCCESS
;
7577 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo7
*r
)
7579 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo7");
7581 ndr_print_ptr(ndr
, "guid", r
->guid
);
7584 ndr_print_string(ndr
, "guid", r
->guid
);
7587 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
7591 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo8
*r
)
7593 if (ndr_flags
& NDR_SCALARS
) {
7594 NDR_CHECK(ndr_push_align(ndr
, 4));
7595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->devmode_ptr
));
7596 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7598 if (ndr_flags
& NDR_BUFFERS
) {
7600 return NDR_ERR_SUCCESS
;
7603 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo8
*r
)
7605 if (ndr_flags
& NDR_SCALARS
) {
7606 NDR_CHECK(ndr_pull_align(ndr
, 4));
7607 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->devmode_ptr
));
7608 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7610 if (ndr_flags
& NDR_BUFFERS
) {
7612 return NDR_ERR_SUCCESS
;
7615 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo8
*r
)
7617 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo8");
7619 ndr_print_uint32(ndr
, "devmode_ptr", r
->devmode_ptr
);
7623 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo9(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo9
*r
)
7625 if (ndr_flags
& NDR_SCALARS
) {
7626 NDR_CHECK(ndr_push_align(ndr
, 4));
7627 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->devmode_ptr
));
7628 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7630 if (ndr_flags
& NDR_BUFFERS
) {
7632 return NDR_ERR_SUCCESS
;
7635 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo9(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo9
*r
)
7637 if (ndr_flags
& NDR_SCALARS
) {
7638 NDR_CHECK(ndr_pull_align(ndr
, 4));
7639 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->devmode_ptr
));
7640 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7642 if (ndr_flags
& NDR_BUFFERS
) {
7644 return NDR_ERR_SUCCESS
;
7647 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo9(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo9
*r
)
7649 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo9");
7651 ndr_print_uint32(ndr
, "devmode_ptr", r
->devmode_ptr
);
7655 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetPrinterInfo
*r
)
7657 if (ndr_flags
& NDR_SCALARS
) {
7658 int level
= ndr_push_get_switch_value(ndr
, r
);
7659 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7660 NDR_CHECK(ndr_push_union_align(ndr
, 5));
7663 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
7667 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
7671 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
7675 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
7679 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
7683 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info5
));
7687 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
7691 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info7
));
7695 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
7699 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info9
));
7707 if (ndr_flags
& NDR_BUFFERS
) {
7708 int level
= ndr_push_get_switch_value(ndr
, r
);
7712 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
7718 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7724 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
7730 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
7736 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
7742 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
7748 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
7754 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
7760 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo8(ndr
, NDR_SCALARS
, r
->info8
));
7766 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo9(ndr
, NDR_SCALARS
, r
->info9
));
7775 return NDR_ERR_SUCCESS
;
7778 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetPrinterInfo
*r
)
7782 TALLOC_CTX
*_mem_save_info0_0
;
7783 uint32_t _ptr_info0
;
7784 TALLOC_CTX
*_mem_save_info1_0
;
7785 uint32_t _ptr_info1
;
7786 TALLOC_CTX
*_mem_save_info2_0
;
7787 uint32_t _ptr_info2
;
7788 TALLOC_CTX
*_mem_save_info3_0
;
7789 uint32_t _ptr_info3
;
7790 TALLOC_CTX
*_mem_save_info4_0
;
7791 uint32_t _ptr_info4
;
7792 TALLOC_CTX
*_mem_save_info5_0
;
7793 uint32_t _ptr_info5
;
7794 TALLOC_CTX
*_mem_save_info6_0
;
7795 uint32_t _ptr_info6
;
7796 TALLOC_CTX
*_mem_save_info7_0
;
7797 uint32_t _ptr_info7
;
7798 TALLOC_CTX
*_mem_save_info8_0
;
7799 uint32_t _ptr_info8
;
7800 TALLOC_CTX
*_mem_save_info9_0
;
7801 uint32_t _ptr_info9
;
7802 level
= ndr_pull_get_switch_value(ndr
, r
);
7803 if (ndr_flags
& NDR_SCALARS
) {
7804 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7805 if (_level
!= level
) {
7806 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
7808 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
7811 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
7813 NDR_PULL_ALLOC(ndr
, r
->info0
);
7820 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
7822 NDR_PULL_ALLOC(ndr
, r
->info1
);
7829 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
7831 NDR_PULL_ALLOC(ndr
, r
->info2
);
7838 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
7840 NDR_PULL_ALLOC(ndr
, r
->info3
);
7847 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
7849 NDR_PULL_ALLOC(ndr
, r
->info4
);
7856 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info5
));
7858 NDR_PULL_ALLOC(ndr
, r
->info5
);
7865 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
7867 NDR_PULL_ALLOC(ndr
, r
->info6
);
7874 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info7
));
7876 NDR_PULL_ALLOC(ndr
, r
->info7
);
7883 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
7885 NDR_PULL_ALLOC(ndr
, r
->info8
);
7892 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info9
));
7894 NDR_PULL_ALLOC(ndr
, r
->info9
);
7905 if (ndr_flags
& NDR_BUFFERS
) {
7909 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7910 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
7911 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
7912 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
7918 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7919 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
7920 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7921 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
7927 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7928 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
7929 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
7930 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
7936 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7937 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
7938 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
7939 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
7945 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7946 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
7947 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
7948 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
7954 _mem_save_info5_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7955 NDR_PULL_SET_MEM_CTX(ndr
, r
->info5
, 0);
7956 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
7957 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info5_0
, 0);
7963 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7964 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
7965 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
7966 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
7972 _mem_save_info7_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7973 NDR_PULL_SET_MEM_CTX(ndr
, r
->info7
, 0);
7974 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
7975 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info7_0
, 0);
7981 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7982 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
7983 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo8(ndr
, NDR_SCALARS
, r
->info8
));
7984 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
7990 _mem_save_info9_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7991 NDR_PULL_SET_MEM_CTX(ndr
, r
->info9
, 0);
7992 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo9(ndr
, NDR_SCALARS
, r
->info9
));
7993 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info9_0
, 0);
8002 return NDR_ERR_SUCCESS
;
8005 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetPrinterInfo
*r
)
8008 level
= ndr_print_get_switch_value(ndr
, r
);
8009 ndr_print_union(ndr
, name
, level
, "spoolss_SetPrinterInfo");
8012 ndr_print_ptr(ndr
, "info0", r
->info0
);
8015 ndr_print_spoolss_SetPrinterInfo0(ndr
, "info0", r
->info0
);
8021 ndr_print_ptr(ndr
, "info1", r
->info1
);
8024 ndr_print_spoolss_SetPrinterInfo1(ndr
, "info1", r
->info1
);
8030 ndr_print_ptr(ndr
, "info2", r
->info2
);
8033 ndr_print_spoolss_SetPrinterInfo2(ndr
, "info2", r
->info2
);
8039 ndr_print_ptr(ndr
, "info3", r
->info3
);
8042 ndr_print_spoolss_SetPrinterInfo3(ndr
, "info3", r
->info3
);
8048 ndr_print_ptr(ndr
, "info4", r
->info4
);
8051 ndr_print_spoolss_SetPrinterInfo4(ndr
, "info4", r
->info4
);
8057 ndr_print_ptr(ndr
, "info5", r
->info5
);
8060 ndr_print_spoolss_SetPrinterInfo5(ndr
, "info5", r
->info5
);
8066 ndr_print_ptr(ndr
, "info6", r
->info6
);
8069 ndr_print_spoolss_SetPrinterInfo6(ndr
, "info6", r
->info6
);
8075 ndr_print_ptr(ndr
, "info7", r
->info7
);
8078 ndr_print_spoolss_SetPrinterInfo7(ndr
, "info7", r
->info7
);
8084 ndr_print_ptr(ndr
, "info8", r
->info8
);
8087 ndr_print_spoolss_SetPrinterInfo8(ndr
, "info8", r
->info8
);
8093 ndr_print_ptr(ndr
, "info9", r
->info9
);
8096 ndr_print_spoolss_SetPrinterInfo9(ndr
, "info9", r
->info9
);
8107 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfoCtr
*r
)
8109 if (ndr_flags
& NDR_SCALARS
) {
8110 NDR_CHECK(ndr_push_align(ndr
, 5));
8111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
8112 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
8113 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
8114 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8116 if (ndr_flags
& NDR_BUFFERS
) {
8117 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
8119 return NDR_ERR_SUCCESS
;
8122 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfoCtr
*r
)
8124 if (ndr_flags
& NDR_SCALARS
) {
8125 NDR_CHECK(ndr_pull_align(ndr
, 5));
8126 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
8127 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
8128 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
8129 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8131 if (ndr_flags
& NDR_BUFFERS
) {
8132 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
8134 return NDR_ERR_SUCCESS
;
8137 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfoCtr
*r
)
8139 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfoCtr");
8141 ndr_print_uint32(ndr
, "level", r
->level
);
8142 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
8143 ndr_print_spoolss_SetPrinterInfo(ndr
, "info", &r
->info
);
8147 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_StringArray(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_StringArray
*r
)
8149 if (ndr_flags
& NDR_SCALARS
) {
8150 NDR_CHECK(ndr_push_align(ndr
, 4));
8151 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, (ndr_size_spoolss_StringArray(r
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2));
8153 uint32_t _flags_save_string_array
= ndr
->flags
;
8154 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
8155 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string
));
8156 ndr
->flags
= _flags_save_string_array
;
8158 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
8160 if (ndr_flags
& NDR_BUFFERS
) {
8162 return NDR_ERR_SUCCESS
;
8165 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_StringArray(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_StringArray
*r
)
8167 if (ndr_flags
& NDR_SCALARS
) {
8168 NDR_CHECK(ndr_pull_align(ndr
, 4));
8169 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
8171 uint32_t _flags_save_string_array
= ndr
->flags
;
8172 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
8173 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string
));
8174 ndr
->flags
= _flags_save_string_array
;
8176 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
8178 if (ndr_flags
& NDR_BUFFERS
) {
8180 return NDR_ERR_SUCCESS
;
8183 _PUBLIC_
void ndr_print_spoolss_StringArray(struct ndr_print
*ndr
, const char *name
, const struct spoolss_StringArray
*r
)
8185 ndr_print_struct(ndr
, name
, "spoolss_StringArray");
8187 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
);
8188 ndr_print_string_array(ndr
, "string", r
->string
);
8192 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo1
*r
)
8194 if (ndr_flags
& NDR_SCALARS
) {
8195 NDR_CHECK(ndr_push_align(ndr
, 5));
8196 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8197 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8199 if (ndr_flags
& NDR_BUFFERS
) {
8200 if (r
->driver_name
) {
8201 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8202 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8203 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8204 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8207 return NDR_ERR_SUCCESS
;
8210 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo1
*r
)
8212 uint32_t _ptr_driver_name
;
8213 uint32_t size_driver_name_1
= 0;
8214 uint32_t length_driver_name_1
= 0;
8215 TALLOC_CTX
*_mem_save_driver_name_0
;
8216 if (ndr_flags
& NDR_SCALARS
) {
8217 NDR_CHECK(ndr_pull_align(ndr
, 5));
8218 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8219 if (_ptr_driver_name
) {
8220 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8222 r
->driver_name
= NULL
;
8224 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8226 if (ndr_flags
& NDR_BUFFERS
) {
8227 if (r
->driver_name
) {
8228 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8229 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8230 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8231 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8232 size_driver_name_1
= ndr_get_array_size(ndr
, &r
->driver_name
);
8233 length_driver_name_1
= ndr_get_array_length(ndr
, &r
->driver_name
);
8234 if (length_driver_name_1
> size_driver_name_1
) {
8235 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_name_1
, length_driver_name_1
);
8237 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_name_1
, sizeof(uint16_t)));
8238 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, length_driver_name_1
, sizeof(uint16_t), CH_UTF16
));
8239 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8242 return NDR_ERR_SUCCESS
;
8245 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo1
*r
)
8247 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo1");
8249 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8251 if (r
->driver_name
) {
8252 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8258 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverOSVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion r
)
8260 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
8261 return NDR_ERR_SUCCESS
;
8264 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverOSVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion
*r
)
8267 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
8269 return NDR_ERR_SUCCESS
;
8272 _PUBLIC_
void ndr_print_spoolss_DriverOSVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverOSVersion r
)
8274 const char *val
= NULL
;
8277 case SPOOLSS_DRIVER_VERSION_9X
: val
= "SPOOLSS_DRIVER_VERSION_9X"; break;
8278 case SPOOLSS_DRIVER_VERSION_NT35
: val
= "SPOOLSS_DRIVER_VERSION_NT35"; break;
8279 case SPOOLSS_DRIVER_VERSION_NT4
: val
= "SPOOLSS_DRIVER_VERSION_NT4"; break;
8280 case SPOOLSS_DRIVER_VERSION_200X
: val
= "SPOOLSS_DRIVER_VERSION_200X"; break;
8282 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
8285 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo2
*r
)
8287 if (ndr_flags
& NDR_SCALARS
) {
8288 NDR_CHECK(ndr_push_align(ndr
, 5));
8289 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8290 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8291 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8292 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8293 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8294 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8295 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8297 if (ndr_flags
& NDR_BUFFERS
) {
8298 if (r
->driver_name
) {
8299 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8300 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8301 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8302 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8304 if (r
->architecture
) {
8305 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8306 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8307 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8308 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8310 if (r
->driver_path
) {
8311 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8312 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8313 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8314 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8317 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8318 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8319 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8320 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8322 if (r
->config_file
) {
8323 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8324 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8325 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8326 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8329 return NDR_ERR_SUCCESS
;
8332 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo2
*r
)
8334 uint32_t _ptr_driver_name
;
8335 uint32_t size_driver_name_1
= 0;
8336 uint32_t length_driver_name_1
= 0;
8337 TALLOC_CTX
*_mem_save_driver_name_0
;
8338 uint32_t _ptr_architecture
;
8339 uint32_t size_architecture_1
= 0;
8340 uint32_t length_architecture_1
= 0;
8341 TALLOC_CTX
*_mem_save_architecture_0
;
8342 uint32_t _ptr_driver_path
;
8343 uint32_t size_driver_path_1
= 0;
8344 uint32_t length_driver_path_1
= 0;
8345 TALLOC_CTX
*_mem_save_driver_path_0
;
8346 uint32_t _ptr_data_file
;
8347 uint32_t size_data_file_1
= 0;
8348 uint32_t length_data_file_1
= 0;
8349 TALLOC_CTX
*_mem_save_data_file_0
;
8350 uint32_t _ptr_config_file
;
8351 uint32_t size_config_file_1
= 0;
8352 uint32_t length_config_file_1
= 0;
8353 TALLOC_CTX
*_mem_save_config_file_0
;
8354 if (ndr_flags
& NDR_SCALARS
) {
8355 NDR_CHECK(ndr_pull_align(ndr
, 5));
8356 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8357 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8358 if (_ptr_driver_name
) {
8359 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8361 r
->driver_name
= NULL
;
8363 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8364 if (_ptr_architecture
) {
8365 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8367 r
->architecture
= NULL
;
8369 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8370 if (_ptr_driver_path
) {
8371 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8373 r
->driver_path
= NULL
;
8375 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8376 if (_ptr_data_file
) {
8377 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8379 r
->data_file
= NULL
;
8381 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8382 if (_ptr_config_file
) {
8383 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8385 r
->config_file
= NULL
;
8387 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8389 if (ndr_flags
& NDR_BUFFERS
) {
8390 if (r
->driver_name
) {
8391 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8392 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8393 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8394 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8395 size_driver_name_1
= ndr_get_array_size(ndr
, &r
->driver_name
);
8396 length_driver_name_1
= ndr_get_array_length(ndr
, &r
->driver_name
);
8397 if (length_driver_name_1
> size_driver_name_1
) {
8398 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_name_1
, length_driver_name_1
);
8400 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_name_1
, sizeof(uint16_t)));
8401 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, length_driver_name_1
, sizeof(uint16_t), CH_UTF16
));
8402 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8404 if (r
->architecture
) {
8405 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8406 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8407 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8408 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8409 size_architecture_1
= ndr_get_array_size(ndr
, &r
->architecture
);
8410 length_architecture_1
= ndr_get_array_length(ndr
, &r
->architecture
);
8411 if (length_architecture_1
> size_architecture_1
) {
8412 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_1
, length_architecture_1
);
8414 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_1
, sizeof(uint16_t)));
8415 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, length_architecture_1
, sizeof(uint16_t), CH_UTF16
));
8416 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8418 if (r
->driver_path
) {
8419 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8420 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8421 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8422 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8423 size_driver_path_1
= ndr_get_array_size(ndr
, &r
->driver_path
);
8424 length_driver_path_1
= ndr_get_array_length(ndr
, &r
->driver_path
);
8425 if (length_driver_path_1
> size_driver_path_1
) {
8426 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_path_1
, length_driver_path_1
);
8428 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_path_1
, sizeof(uint16_t)));
8429 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, length_driver_path_1
, sizeof(uint16_t), CH_UTF16
));
8430 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8433 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8434 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8435 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8436 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8437 size_data_file_1
= ndr_get_array_size(ndr
, &r
->data_file
);
8438 length_data_file_1
= ndr_get_array_length(ndr
, &r
->data_file
);
8439 if (length_data_file_1
> size_data_file_1
) {
8440 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_file_1
, length_data_file_1
);
8442 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_file_1
, sizeof(uint16_t)));
8443 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, length_data_file_1
, sizeof(uint16_t), CH_UTF16
));
8444 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8446 if (r
->config_file
) {
8447 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8448 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8449 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8450 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8451 size_config_file_1
= ndr_get_array_size(ndr
, &r
->config_file
);
8452 length_config_file_1
= ndr_get_array_length(ndr
, &r
->config_file
);
8453 if (length_config_file_1
> size_config_file_1
) {
8454 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_config_file_1
, length_config_file_1
);
8456 NDR_CHECK(ndr_check_string_terminator(ndr
, length_config_file_1
, sizeof(uint16_t)));
8457 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, length_config_file_1
, sizeof(uint16_t), CH_UTF16
));
8458 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8461 return NDR_ERR_SUCCESS
;
8464 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo2
*r
)
8466 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo2");
8468 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8469 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8471 if (r
->driver_name
) {
8472 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8475 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8477 if (r
->architecture
) {
8478 ndr_print_string(ndr
, "architecture", r
->architecture
);
8481 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8483 if (r
->driver_path
) {
8484 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8487 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8490 ndr_print_string(ndr
, "data_file", r
->data_file
);
8493 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8495 if (r
->config_file
) {
8496 ndr_print_string(ndr
, "config_file", r
->config_file
);
8502 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo3
*r
)
8504 if (ndr_flags
& NDR_SCALARS
) {
8505 NDR_CHECK(ndr_push_align(ndr
, 5));
8506 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8507 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8508 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8509 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8510 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8511 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8512 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8513 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8514 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8516 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8517 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8519 if (ndr_flags
& NDR_BUFFERS
) {
8520 if (r
->driver_name
) {
8521 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8522 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8523 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8524 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8526 if (r
->architecture
) {
8527 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8528 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8529 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8530 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8532 if (r
->driver_path
) {
8533 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8534 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8535 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8536 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8539 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8540 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8541 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8542 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8544 if (r
->config_file
) {
8545 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8546 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8547 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8548 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8551 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8552 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8553 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8554 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8556 if (r
->monitor_name
) {
8557 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8558 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8559 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8560 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8562 if (r
->default_datatype
) {
8563 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8564 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8565 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8566 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8568 if (r
->dependent_files
) {
8569 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8572 return NDR_ERR_SUCCESS
;
8575 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo3
*r
)
8577 uint32_t _ptr_driver_name
;
8578 uint32_t size_driver_name_1
= 0;
8579 uint32_t length_driver_name_1
= 0;
8580 TALLOC_CTX
*_mem_save_driver_name_0
;
8581 uint32_t _ptr_architecture
;
8582 uint32_t size_architecture_1
= 0;
8583 uint32_t length_architecture_1
= 0;
8584 TALLOC_CTX
*_mem_save_architecture_0
;
8585 uint32_t _ptr_driver_path
;
8586 uint32_t size_driver_path_1
= 0;
8587 uint32_t length_driver_path_1
= 0;
8588 TALLOC_CTX
*_mem_save_driver_path_0
;
8589 uint32_t _ptr_data_file
;
8590 uint32_t size_data_file_1
= 0;
8591 uint32_t length_data_file_1
= 0;
8592 TALLOC_CTX
*_mem_save_data_file_0
;
8593 uint32_t _ptr_config_file
;
8594 uint32_t size_config_file_1
= 0;
8595 uint32_t length_config_file_1
= 0;
8596 TALLOC_CTX
*_mem_save_config_file_0
;
8597 uint32_t _ptr_help_file
;
8598 uint32_t size_help_file_1
= 0;
8599 uint32_t length_help_file_1
= 0;
8600 TALLOC_CTX
*_mem_save_help_file_0
;
8601 uint32_t _ptr_monitor_name
;
8602 uint32_t size_monitor_name_1
= 0;
8603 uint32_t length_monitor_name_1
= 0;
8604 TALLOC_CTX
*_mem_save_monitor_name_0
;
8605 uint32_t _ptr_default_datatype
;
8606 uint32_t size_default_datatype_1
= 0;
8607 uint32_t length_default_datatype_1
= 0;
8608 TALLOC_CTX
*_mem_save_default_datatype_0
;
8609 uint32_t _ptr_dependent_files
;
8610 TALLOC_CTX
*_mem_save_dependent_files_0
;
8611 if (ndr_flags
& NDR_SCALARS
) {
8612 NDR_CHECK(ndr_pull_align(ndr
, 5));
8613 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8614 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8615 if (_ptr_driver_name
) {
8616 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8618 r
->driver_name
= NULL
;
8620 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8621 if (_ptr_architecture
) {
8622 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8624 r
->architecture
= NULL
;
8626 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8627 if (_ptr_driver_path
) {
8628 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8630 r
->driver_path
= NULL
;
8632 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8633 if (_ptr_data_file
) {
8634 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8636 r
->data_file
= NULL
;
8638 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8639 if (_ptr_config_file
) {
8640 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8642 r
->config_file
= NULL
;
8644 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8645 if (_ptr_help_file
) {
8646 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8648 r
->help_file
= NULL
;
8650 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8651 if (_ptr_monitor_name
) {
8652 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8654 r
->monitor_name
= NULL
;
8656 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8657 if (_ptr_default_datatype
) {
8658 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8660 r
->default_datatype
= NULL
;
8662 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8663 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8664 if (_ptr_dependent_files
) {
8665 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8667 r
->dependent_files
= NULL
;
8669 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8671 if (ndr_flags
& NDR_BUFFERS
) {
8672 if (r
->driver_name
) {
8673 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8674 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8675 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8676 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8677 size_driver_name_1
= ndr_get_array_size(ndr
, &r
->driver_name
);
8678 length_driver_name_1
= ndr_get_array_length(ndr
, &r
->driver_name
);
8679 if (length_driver_name_1
> size_driver_name_1
) {
8680 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_name_1
, length_driver_name_1
);
8682 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_name_1
, sizeof(uint16_t)));
8683 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, length_driver_name_1
, sizeof(uint16_t), CH_UTF16
));
8684 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8686 if (r
->architecture
) {
8687 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8688 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8689 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8690 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8691 size_architecture_1
= ndr_get_array_size(ndr
, &r
->architecture
);
8692 length_architecture_1
= ndr_get_array_length(ndr
, &r
->architecture
);
8693 if (length_architecture_1
> size_architecture_1
) {
8694 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_1
, length_architecture_1
);
8696 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_1
, sizeof(uint16_t)));
8697 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, length_architecture_1
, sizeof(uint16_t), CH_UTF16
));
8698 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8700 if (r
->driver_path
) {
8701 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8702 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8703 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8704 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8705 size_driver_path_1
= ndr_get_array_size(ndr
, &r
->driver_path
);
8706 length_driver_path_1
= ndr_get_array_length(ndr
, &r
->driver_path
);
8707 if (length_driver_path_1
> size_driver_path_1
) {
8708 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_path_1
, length_driver_path_1
);
8710 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_path_1
, sizeof(uint16_t)));
8711 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, length_driver_path_1
, sizeof(uint16_t), CH_UTF16
));
8712 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8715 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8716 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8717 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8718 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8719 size_data_file_1
= ndr_get_array_size(ndr
, &r
->data_file
);
8720 length_data_file_1
= ndr_get_array_length(ndr
, &r
->data_file
);
8721 if (length_data_file_1
> size_data_file_1
) {
8722 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_file_1
, length_data_file_1
);
8724 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_file_1
, sizeof(uint16_t)));
8725 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, length_data_file_1
, sizeof(uint16_t), CH_UTF16
));
8726 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8728 if (r
->config_file
) {
8729 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8730 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8731 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8732 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8733 size_config_file_1
= ndr_get_array_size(ndr
, &r
->config_file
);
8734 length_config_file_1
= ndr_get_array_length(ndr
, &r
->config_file
);
8735 if (length_config_file_1
> size_config_file_1
) {
8736 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_config_file_1
, length_config_file_1
);
8738 NDR_CHECK(ndr_check_string_terminator(ndr
, length_config_file_1
, sizeof(uint16_t)));
8739 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, length_config_file_1
, sizeof(uint16_t), CH_UTF16
));
8740 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8743 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8744 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8745 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8746 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8747 size_help_file_1
= ndr_get_array_size(ndr
, &r
->help_file
);
8748 length_help_file_1
= ndr_get_array_length(ndr
, &r
->help_file
);
8749 if (length_help_file_1
> size_help_file_1
) {
8750 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_help_file_1
, length_help_file_1
);
8752 NDR_CHECK(ndr_check_string_terminator(ndr
, length_help_file_1
, sizeof(uint16_t)));
8753 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, length_help_file_1
, sizeof(uint16_t), CH_UTF16
));
8754 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8756 if (r
->monitor_name
) {
8757 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8758 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8759 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8760 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8761 size_monitor_name_1
= ndr_get_array_size(ndr
, &r
->monitor_name
);
8762 length_monitor_name_1
= ndr_get_array_length(ndr
, &r
->monitor_name
);
8763 if (length_monitor_name_1
> size_monitor_name_1
) {
8764 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_monitor_name_1
, length_monitor_name_1
);
8766 NDR_CHECK(ndr_check_string_terminator(ndr
, length_monitor_name_1
, sizeof(uint16_t)));
8767 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, length_monitor_name_1
, sizeof(uint16_t), CH_UTF16
));
8768 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8770 if (r
->default_datatype
) {
8771 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8772 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8773 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8774 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8775 size_default_datatype_1
= ndr_get_array_size(ndr
, &r
->default_datatype
);
8776 length_default_datatype_1
= ndr_get_array_length(ndr
, &r
->default_datatype
);
8777 if (length_default_datatype_1
> size_default_datatype_1
) {
8778 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_default_datatype_1
, length_default_datatype_1
);
8780 NDR_CHECK(ndr_check_string_terminator(ndr
, length_default_datatype_1
, sizeof(uint16_t)));
8781 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, length_default_datatype_1
, sizeof(uint16_t), CH_UTF16
));
8782 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8784 if (r
->dependent_files
) {
8785 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8786 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8787 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8788 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8791 return NDR_ERR_SUCCESS
;
8794 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo3
*r
)
8796 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo3");
8798 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8799 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8801 if (r
->driver_name
) {
8802 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8805 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8807 if (r
->architecture
) {
8808 ndr_print_string(ndr
, "architecture", r
->architecture
);
8811 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8813 if (r
->driver_path
) {
8814 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8817 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8820 ndr_print_string(ndr
, "data_file", r
->data_file
);
8823 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8825 if (r
->config_file
) {
8826 ndr_print_string(ndr
, "config_file", r
->config_file
);
8829 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8832 ndr_print_string(ndr
, "help_file", r
->help_file
);
8835 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8837 if (r
->monitor_name
) {
8838 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8841 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8843 if (r
->default_datatype
) {
8844 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8847 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
);
8848 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8850 if (r
->dependent_files
) {
8851 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8857 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo4
*r
)
8859 if (ndr_flags
& NDR_SCALARS
) {
8860 NDR_CHECK(ndr_push_align(ndr
, 5));
8861 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8862 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8863 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8864 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8865 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8866 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8867 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8868 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8869 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8870 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8871 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8872 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8873 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8874 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8876 if (ndr_flags
& NDR_BUFFERS
) {
8877 if (r
->driver_name
) {
8878 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8879 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8880 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8881 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8883 if (r
->architecture
) {
8884 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8885 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8886 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8887 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8889 if (r
->driver_path
) {
8890 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8891 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8892 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8893 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8896 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8897 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8898 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8899 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8901 if (r
->config_file
) {
8902 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8903 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8904 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8905 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8908 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8909 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8910 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8911 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8913 if (r
->monitor_name
) {
8914 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8915 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8916 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8917 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8919 if (r
->default_datatype
) {
8920 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8921 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8922 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8923 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8925 if (r
->dependent_files
) {
8926 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8928 if (r
->previous_names
) {
8929 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8932 return NDR_ERR_SUCCESS
;
8935 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo4
*r
)
8937 uint32_t _ptr_driver_name
;
8938 uint32_t size_driver_name_1
= 0;
8939 uint32_t length_driver_name_1
= 0;
8940 TALLOC_CTX
*_mem_save_driver_name_0
;
8941 uint32_t _ptr_architecture
;
8942 uint32_t size_architecture_1
= 0;
8943 uint32_t length_architecture_1
= 0;
8944 TALLOC_CTX
*_mem_save_architecture_0
;
8945 uint32_t _ptr_driver_path
;
8946 uint32_t size_driver_path_1
= 0;
8947 uint32_t length_driver_path_1
= 0;
8948 TALLOC_CTX
*_mem_save_driver_path_0
;
8949 uint32_t _ptr_data_file
;
8950 uint32_t size_data_file_1
= 0;
8951 uint32_t length_data_file_1
= 0;
8952 TALLOC_CTX
*_mem_save_data_file_0
;
8953 uint32_t _ptr_config_file
;
8954 uint32_t size_config_file_1
= 0;
8955 uint32_t length_config_file_1
= 0;
8956 TALLOC_CTX
*_mem_save_config_file_0
;
8957 uint32_t _ptr_help_file
;
8958 uint32_t size_help_file_1
= 0;
8959 uint32_t length_help_file_1
= 0;
8960 TALLOC_CTX
*_mem_save_help_file_0
;
8961 uint32_t _ptr_monitor_name
;
8962 uint32_t size_monitor_name_1
= 0;
8963 uint32_t length_monitor_name_1
= 0;
8964 TALLOC_CTX
*_mem_save_monitor_name_0
;
8965 uint32_t _ptr_default_datatype
;
8966 uint32_t size_default_datatype_1
= 0;
8967 uint32_t length_default_datatype_1
= 0;
8968 TALLOC_CTX
*_mem_save_default_datatype_0
;
8969 uint32_t _ptr_dependent_files
;
8970 TALLOC_CTX
*_mem_save_dependent_files_0
;
8971 uint32_t _ptr_previous_names
;
8972 TALLOC_CTX
*_mem_save_previous_names_0
;
8973 if (ndr_flags
& NDR_SCALARS
) {
8974 NDR_CHECK(ndr_pull_align(ndr
, 5));
8975 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8976 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8977 if (_ptr_driver_name
) {
8978 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8980 r
->driver_name
= NULL
;
8982 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8983 if (_ptr_architecture
) {
8984 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8986 r
->architecture
= NULL
;
8988 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8989 if (_ptr_driver_path
) {
8990 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8992 r
->driver_path
= NULL
;
8994 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8995 if (_ptr_data_file
) {
8996 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8998 r
->data_file
= NULL
;
9000 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9001 if (_ptr_config_file
) {
9002 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9004 r
->config_file
= NULL
;
9006 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9007 if (_ptr_help_file
) {
9008 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9010 r
->help_file
= NULL
;
9012 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9013 if (_ptr_monitor_name
) {
9014 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9016 r
->monitor_name
= NULL
;
9018 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9019 if (_ptr_default_datatype
) {
9020 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9022 r
->default_datatype
= NULL
;
9024 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9025 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9026 if (_ptr_dependent_files
) {
9027 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9029 r
->dependent_files
= NULL
;
9031 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9032 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9033 if (_ptr_previous_names
) {
9034 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9036 r
->previous_names
= NULL
;
9038 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
9040 if (ndr_flags
& NDR_BUFFERS
) {
9041 if (r
->driver_name
) {
9042 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9043 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9044 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9045 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9046 size_driver_name_1
= ndr_get_array_size(ndr
, &r
->driver_name
);
9047 length_driver_name_1
= ndr_get_array_length(ndr
, &r
->driver_name
);
9048 if (length_driver_name_1
> size_driver_name_1
) {
9049 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_name_1
, length_driver_name_1
);
9051 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_name_1
, sizeof(uint16_t)));
9052 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, length_driver_name_1
, sizeof(uint16_t), CH_UTF16
));
9053 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9055 if (r
->architecture
) {
9056 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9057 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9058 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9059 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9060 size_architecture_1
= ndr_get_array_size(ndr
, &r
->architecture
);
9061 length_architecture_1
= ndr_get_array_length(ndr
, &r
->architecture
);
9062 if (length_architecture_1
> size_architecture_1
) {
9063 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_1
, length_architecture_1
);
9065 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_1
, sizeof(uint16_t)));
9066 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, length_architecture_1
, sizeof(uint16_t), CH_UTF16
));
9067 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9069 if (r
->driver_path
) {
9070 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9071 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9072 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9073 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9074 size_driver_path_1
= ndr_get_array_size(ndr
, &r
->driver_path
);
9075 length_driver_path_1
= ndr_get_array_length(ndr
, &r
->driver_path
);
9076 if (length_driver_path_1
> size_driver_path_1
) {
9077 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_path_1
, length_driver_path_1
);
9079 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_path_1
, sizeof(uint16_t)));
9080 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, length_driver_path_1
, sizeof(uint16_t), CH_UTF16
));
9081 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9084 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9085 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9086 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9087 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9088 size_data_file_1
= ndr_get_array_size(ndr
, &r
->data_file
);
9089 length_data_file_1
= ndr_get_array_length(ndr
, &r
->data_file
);
9090 if (length_data_file_1
> size_data_file_1
) {
9091 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_file_1
, length_data_file_1
);
9093 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_file_1
, sizeof(uint16_t)));
9094 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, length_data_file_1
, sizeof(uint16_t), CH_UTF16
));
9095 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9097 if (r
->config_file
) {
9098 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9099 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9100 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9101 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9102 size_config_file_1
= ndr_get_array_size(ndr
, &r
->config_file
);
9103 length_config_file_1
= ndr_get_array_length(ndr
, &r
->config_file
);
9104 if (length_config_file_1
> size_config_file_1
) {
9105 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_config_file_1
, length_config_file_1
);
9107 NDR_CHECK(ndr_check_string_terminator(ndr
, length_config_file_1
, sizeof(uint16_t)));
9108 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, length_config_file_1
, sizeof(uint16_t), CH_UTF16
));
9109 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9112 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9113 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9114 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9115 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9116 size_help_file_1
= ndr_get_array_size(ndr
, &r
->help_file
);
9117 length_help_file_1
= ndr_get_array_length(ndr
, &r
->help_file
);
9118 if (length_help_file_1
> size_help_file_1
) {
9119 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_help_file_1
, length_help_file_1
);
9121 NDR_CHECK(ndr_check_string_terminator(ndr
, length_help_file_1
, sizeof(uint16_t)));
9122 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, length_help_file_1
, sizeof(uint16_t), CH_UTF16
));
9123 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9125 if (r
->monitor_name
) {
9126 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9127 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9128 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9129 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9130 size_monitor_name_1
= ndr_get_array_size(ndr
, &r
->monitor_name
);
9131 length_monitor_name_1
= ndr_get_array_length(ndr
, &r
->monitor_name
);
9132 if (length_monitor_name_1
> size_monitor_name_1
) {
9133 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_monitor_name_1
, length_monitor_name_1
);
9135 NDR_CHECK(ndr_check_string_terminator(ndr
, length_monitor_name_1
, sizeof(uint16_t)));
9136 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, length_monitor_name_1
, sizeof(uint16_t), CH_UTF16
));
9137 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9139 if (r
->default_datatype
) {
9140 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9141 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9142 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9143 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9144 size_default_datatype_1
= ndr_get_array_size(ndr
, &r
->default_datatype
);
9145 length_default_datatype_1
= ndr_get_array_length(ndr
, &r
->default_datatype
);
9146 if (length_default_datatype_1
> size_default_datatype_1
) {
9147 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_default_datatype_1
, length_default_datatype_1
);
9149 NDR_CHECK(ndr_check_string_terminator(ndr
, length_default_datatype_1
, sizeof(uint16_t)));
9150 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, length_default_datatype_1
, sizeof(uint16_t), CH_UTF16
));
9151 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9153 if (r
->dependent_files
) {
9154 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9155 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9156 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9157 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9159 if (r
->previous_names
) {
9160 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9161 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9162 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9163 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9166 return NDR_ERR_SUCCESS
;
9169 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo4
*r
)
9171 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo4");
9173 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9174 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9176 if (r
->driver_name
) {
9177 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9180 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9182 if (r
->architecture
) {
9183 ndr_print_string(ndr
, "architecture", r
->architecture
);
9186 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9188 if (r
->driver_path
) {
9189 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9192 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9195 ndr_print_string(ndr
, "data_file", r
->data_file
);
9198 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9200 if (r
->config_file
) {
9201 ndr_print_string(ndr
, "config_file", r
->config_file
);
9204 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9207 ndr_print_string(ndr
, "help_file", r
->help_file
);
9210 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9212 if (r
->monitor_name
) {
9213 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9216 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9218 if (r
->default_datatype
) {
9219 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9222 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
);
9223 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9225 if (r
->dependent_files
) {
9226 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9229 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
);
9230 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
9232 if (r
->previous_names
) {
9233 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
9239 static enum ndr_err_code
ndr_push_spoolss_DriverAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
9241 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
9242 return NDR_ERR_SUCCESS
;
9245 static enum ndr_err_code
ndr_pull_spoolss_DriverAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
9248 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
9250 return NDR_ERR_SUCCESS
;
9253 _PUBLIC_
void ndr_print_spoolss_DriverAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
9255 ndr_print_uint32(ndr
, name
, r
);
9257 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE
, r
);
9261 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo6
*r
)
9263 if (ndr_flags
& NDR_SCALARS
) {
9264 NDR_CHECK(ndr_push_align(ndr
, 8));
9265 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9266 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
9267 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
9268 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
9269 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
9270 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
9271 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
9272 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
9273 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
9274 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9275 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
9276 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9277 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
9278 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
9279 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
9280 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
9281 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
9282 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
9283 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
9284 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
9286 if (ndr_flags
& NDR_BUFFERS
) {
9287 if (r
->driver_name
) {
9288 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9289 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9290 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9291 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9293 if (r
->architecture
) {
9294 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9295 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9296 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9297 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9299 if (r
->driver_path
) {
9300 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9301 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9302 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9303 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9306 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9307 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9308 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9309 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9311 if (r
->config_file
) {
9312 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9313 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9314 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9315 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9318 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9319 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9320 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9321 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9323 if (r
->monitor_name
) {
9324 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9325 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9326 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9327 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9329 if (r
->default_datatype
) {
9330 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9331 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9332 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9333 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9335 if (r
->dependent_files
) {
9336 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9338 if (r
->previous_names
) {
9339 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9341 if (r
->manufacturer_name
) {
9342 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9343 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9344 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9345 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9347 if (r
->manufacturer_url
) {
9348 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9349 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9350 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9351 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9353 if (r
->hardware_id
) {
9354 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9355 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9356 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9357 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9360 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9361 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9362 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9363 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9366 return NDR_ERR_SUCCESS
;
9369 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo6
*r
)
9371 uint32_t _ptr_driver_name
;
9372 uint32_t size_driver_name_1
= 0;
9373 uint32_t length_driver_name_1
= 0;
9374 TALLOC_CTX
*_mem_save_driver_name_0
;
9375 uint32_t _ptr_architecture
;
9376 uint32_t size_architecture_1
= 0;
9377 uint32_t length_architecture_1
= 0;
9378 TALLOC_CTX
*_mem_save_architecture_0
;
9379 uint32_t _ptr_driver_path
;
9380 uint32_t size_driver_path_1
= 0;
9381 uint32_t length_driver_path_1
= 0;
9382 TALLOC_CTX
*_mem_save_driver_path_0
;
9383 uint32_t _ptr_data_file
;
9384 uint32_t size_data_file_1
= 0;
9385 uint32_t length_data_file_1
= 0;
9386 TALLOC_CTX
*_mem_save_data_file_0
;
9387 uint32_t _ptr_config_file
;
9388 uint32_t size_config_file_1
= 0;
9389 uint32_t length_config_file_1
= 0;
9390 TALLOC_CTX
*_mem_save_config_file_0
;
9391 uint32_t _ptr_help_file
;
9392 uint32_t size_help_file_1
= 0;
9393 uint32_t length_help_file_1
= 0;
9394 TALLOC_CTX
*_mem_save_help_file_0
;
9395 uint32_t _ptr_monitor_name
;
9396 uint32_t size_monitor_name_1
= 0;
9397 uint32_t length_monitor_name_1
= 0;
9398 TALLOC_CTX
*_mem_save_monitor_name_0
;
9399 uint32_t _ptr_default_datatype
;
9400 uint32_t size_default_datatype_1
= 0;
9401 uint32_t length_default_datatype_1
= 0;
9402 TALLOC_CTX
*_mem_save_default_datatype_0
;
9403 uint32_t _ptr_dependent_files
;
9404 TALLOC_CTX
*_mem_save_dependent_files_0
;
9405 uint32_t _ptr_previous_names
;
9406 TALLOC_CTX
*_mem_save_previous_names_0
;
9407 uint32_t _ptr_manufacturer_name
;
9408 uint32_t size_manufacturer_name_1
= 0;
9409 uint32_t length_manufacturer_name_1
= 0;
9410 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
9411 uint32_t _ptr_manufacturer_url
;
9412 uint32_t size_manufacturer_url_1
= 0;
9413 uint32_t length_manufacturer_url_1
= 0;
9414 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
9415 uint32_t _ptr_hardware_id
;
9416 uint32_t size_hardware_id_1
= 0;
9417 uint32_t length_hardware_id_1
= 0;
9418 TALLOC_CTX
*_mem_save_hardware_id_0
;
9419 uint32_t _ptr_provider
;
9420 uint32_t size_provider_1
= 0;
9421 uint32_t length_provider_1
= 0;
9422 TALLOC_CTX
*_mem_save_provider_0
;
9423 if (ndr_flags
& NDR_SCALARS
) {
9424 NDR_CHECK(ndr_pull_align(ndr
, 8));
9425 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9426 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9427 if (_ptr_driver_name
) {
9428 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9430 r
->driver_name
= NULL
;
9432 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9433 if (_ptr_architecture
) {
9434 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9436 r
->architecture
= NULL
;
9438 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9439 if (_ptr_driver_path
) {
9440 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9442 r
->driver_path
= NULL
;
9444 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9445 if (_ptr_data_file
) {
9446 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9448 r
->data_file
= NULL
;
9450 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9451 if (_ptr_config_file
) {
9452 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9454 r
->config_file
= NULL
;
9456 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9457 if (_ptr_help_file
) {
9458 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9460 r
->help_file
= NULL
;
9462 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9463 if (_ptr_monitor_name
) {
9464 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9466 r
->monitor_name
= NULL
;
9468 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9469 if (_ptr_default_datatype
) {
9470 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9472 r
->default_datatype
= NULL
;
9474 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9475 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9476 if (_ptr_dependent_files
) {
9477 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9479 r
->dependent_files
= NULL
;
9481 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9482 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9483 if (_ptr_previous_names
) {
9484 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9486 r
->previous_names
= NULL
;
9488 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
9489 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
9490 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
9491 if (_ptr_manufacturer_name
) {
9492 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
9494 r
->manufacturer_name
= NULL
;
9496 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
9497 if (_ptr_manufacturer_url
) {
9498 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
9500 r
->manufacturer_url
= NULL
;
9502 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
9503 if (_ptr_hardware_id
) {
9504 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
9506 r
->hardware_id
= NULL
;
9508 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
9509 if (_ptr_provider
) {
9510 NDR_PULL_ALLOC(ndr
, r
->provider
);
9514 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
9516 if (ndr_flags
& NDR_BUFFERS
) {
9517 if (r
->driver_name
) {
9518 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9519 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9520 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9521 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9522 size_driver_name_1
= ndr_get_array_size(ndr
, &r
->driver_name
);
9523 length_driver_name_1
= ndr_get_array_length(ndr
, &r
->driver_name
);
9524 if (length_driver_name_1
> size_driver_name_1
) {
9525 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_name_1
, length_driver_name_1
);
9527 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_name_1
, sizeof(uint16_t)));
9528 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, length_driver_name_1
, sizeof(uint16_t), CH_UTF16
));
9529 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9531 if (r
->architecture
) {
9532 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9533 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9534 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9535 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9536 size_architecture_1
= ndr_get_array_size(ndr
, &r
->architecture
);
9537 length_architecture_1
= ndr_get_array_length(ndr
, &r
->architecture
);
9538 if (length_architecture_1
> size_architecture_1
) {
9539 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_1
, length_architecture_1
);
9541 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_1
, sizeof(uint16_t)));
9542 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, length_architecture_1
, sizeof(uint16_t), CH_UTF16
));
9543 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9545 if (r
->driver_path
) {
9546 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9547 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9548 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9549 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9550 size_driver_path_1
= ndr_get_array_size(ndr
, &r
->driver_path
);
9551 length_driver_path_1
= ndr_get_array_length(ndr
, &r
->driver_path
);
9552 if (length_driver_path_1
> size_driver_path_1
) {
9553 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_path_1
, length_driver_path_1
);
9555 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_path_1
, sizeof(uint16_t)));
9556 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, length_driver_path_1
, sizeof(uint16_t), CH_UTF16
));
9557 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9560 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9561 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9562 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9563 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9564 size_data_file_1
= ndr_get_array_size(ndr
, &r
->data_file
);
9565 length_data_file_1
= ndr_get_array_length(ndr
, &r
->data_file
);
9566 if (length_data_file_1
> size_data_file_1
) {
9567 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_file_1
, length_data_file_1
);
9569 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_file_1
, sizeof(uint16_t)));
9570 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, length_data_file_1
, sizeof(uint16_t), CH_UTF16
));
9571 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9573 if (r
->config_file
) {
9574 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9575 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9576 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9577 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9578 size_config_file_1
= ndr_get_array_size(ndr
, &r
->config_file
);
9579 length_config_file_1
= ndr_get_array_length(ndr
, &r
->config_file
);
9580 if (length_config_file_1
> size_config_file_1
) {
9581 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_config_file_1
, length_config_file_1
);
9583 NDR_CHECK(ndr_check_string_terminator(ndr
, length_config_file_1
, sizeof(uint16_t)));
9584 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, length_config_file_1
, sizeof(uint16_t), CH_UTF16
));
9585 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9588 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9589 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9590 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9591 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9592 size_help_file_1
= ndr_get_array_size(ndr
, &r
->help_file
);
9593 length_help_file_1
= ndr_get_array_length(ndr
, &r
->help_file
);
9594 if (length_help_file_1
> size_help_file_1
) {
9595 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_help_file_1
, length_help_file_1
);
9597 NDR_CHECK(ndr_check_string_terminator(ndr
, length_help_file_1
, sizeof(uint16_t)));
9598 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, length_help_file_1
, sizeof(uint16_t), CH_UTF16
));
9599 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9601 if (r
->monitor_name
) {
9602 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9603 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9604 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9605 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9606 size_monitor_name_1
= ndr_get_array_size(ndr
, &r
->monitor_name
);
9607 length_monitor_name_1
= ndr_get_array_length(ndr
, &r
->monitor_name
);
9608 if (length_monitor_name_1
> size_monitor_name_1
) {
9609 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_monitor_name_1
, length_monitor_name_1
);
9611 NDR_CHECK(ndr_check_string_terminator(ndr
, length_monitor_name_1
, sizeof(uint16_t)));
9612 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, length_monitor_name_1
, sizeof(uint16_t), CH_UTF16
));
9613 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9615 if (r
->default_datatype
) {
9616 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9617 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9618 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9619 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9620 size_default_datatype_1
= ndr_get_array_size(ndr
, &r
->default_datatype
);
9621 length_default_datatype_1
= ndr_get_array_length(ndr
, &r
->default_datatype
);
9622 if (length_default_datatype_1
> size_default_datatype_1
) {
9623 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_default_datatype_1
, length_default_datatype_1
);
9625 NDR_CHECK(ndr_check_string_terminator(ndr
, length_default_datatype_1
, sizeof(uint16_t)));
9626 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, length_default_datatype_1
, sizeof(uint16_t), CH_UTF16
));
9627 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9629 if (r
->dependent_files
) {
9630 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9631 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9632 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9633 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9635 if (r
->previous_names
) {
9636 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9637 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9638 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9639 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9641 if (r
->manufacturer_name
) {
9642 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9643 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
9644 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
9645 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
9646 size_manufacturer_name_1
= ndr_get_array_size(ndr
, &r
->manufacturer_name
);
9647 length_manufacturer_name_1
= ndr_get_array_length(ndr
, &r
->manufacturer_name
);
9648 if (length_manufacturer_name_1
> size_manufacturer_name_1
) {
9649 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_manufacturer_name_1
, length_manufacturer_name_1
);
9651 NDR_CHECK(ndr_check_string_terminator(ndr
, length_manufacturer_name_1
, sizeof(uint16_t)));
9652 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, length_manufacturer_name_1
, sizeof(uint16_t), CH_UTF16
));
9653 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
9655 if (r
->manufacturer_url
) {
9656 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9657 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
9658 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
9659 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
9660 size_manufacturer_url_1
= ndr_get_array_size(ndr
, &r
->manufacturer_url
);
9661 length_manufacturer_url_1
= ndr_get_array_length(ndr
, &r
->manufacturer_url
);
9662 if (length_manufacturer_url_1
> size_manufacturer_url_1
) {
9663 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_manufacturer_url_1
, length_manufacturer_url_1
);
9665 NDR_CHECK(ndr_check_string_terminator(ndr
, length_manufacturer_url_1
, sizeof(uint16_t)));
9666 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, length_manufacturer_url_1
, sizeof(uint16_t), CH_UTF16
));
9667 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
9669 if (r
->hardware_id
) {
9670 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9671 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
9672 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
9673 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
9674 size_hardware_id_1
= ndr_get_array_size(ndr
, &r
->hardware_id
);
9675 length_hardware_id_1
= ndr_get_array_length(ndr
, &r
->hardware_id
);
9676 if (length_hardware_id_1
> size_hardware_id_1
) {
9677 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_hardware_id_1
, length_hardware_id_1
);
9679 NDR_CHECK(ndr_check_string_terminator(ndr
, length_hardware_id_1
, sizeof(uint16_t)));
9680 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, length_hardware_id_1
, sizeof(uint16_t), CH_UTF16
));
9681 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
9684 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9685 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
9686 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
9687 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
9688 size_provider_1
= ndr_get_array_size(ndr
, &r
->provider
);
9689 length_provider_1
= ndr_get_array_length(ndr
, &r
->provider
);
9690 if (length_provider_1
> size_provider_1
) {
9691 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_provider_1
, length_provider_1
);
9693 NDR_CHECK(ndr_check_string_terminator(ndr
, length_provider_1
, sizeof(uint16_t)));
9694 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, length_provider_1
, sizeof(uint16_t), CH_UTF16
));
9695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
9698 return NDR_ERR_SUCCESS
;
9701 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo6
*r
)
9703 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo6");
9705 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9706 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9708 if (r
->driver_name
) {
9709 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9712 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9714 if (r
->architecture
) {
9715 ndr_print_string(ndr
, "architecture", r
->architecture
);
9718 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9720 if (r
->driver_path
) {
9721 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9724 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9727 ndr_print_string(ndr
, "data_file", r
->data_file
);
9730 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9732 if (r
->config_file
) {
9733 ndr_print_string(ndr
, "config_file", r
->config_file
);
9736 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9739 ndr_print_string(ndr
, "help_file", r
->help_file
);
9742 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9744 if (r
->monitor_name
) {
9745 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9748 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9750 if (r
->default_datatype
) {
9751 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9754 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
);
9755 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9757 if (r
->dependent_files
) {
9758 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9761 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
);
9762 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
9764 if (r
->previous_names
) {
9765 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
9768 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
9769 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
9770 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
9772 if (r
->manufacturer_name
) {
9773 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
9776 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
9778 if (r
->manufacturer_url
) {
9779 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
9782 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
9784 if (r
->hardware_id
) {
9785 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
9788 ndr_print_ptr(ndr
, "provider", r
->provider
);
9791 ndr_print_string(ndr
, "provider", r
->provider
);
9797 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo8
*r
)
9799 if (ndr_flags
& NDR_SCALARS
) {
9800 NDR_CHECK(ndr_push_align(ndr
, 8));
9801 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9802 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
9803 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
9804 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
9805 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
9806 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
9807 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
9808 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
9809 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
9810 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9811 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
9812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9813 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
9814 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
9815 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
9816 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
9817 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
9818 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
9819 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
9820 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
9821 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->vendor_setup
));
9822 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->color_profiles
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9823 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->color_profiles
));
9824 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->inf_path
));
9825 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
9826 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->core_driver_dependencies
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9827 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->core_driver_dependencies
));
9828 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
9829 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
9830 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
9832 if (ndr_flags
& NDR_BUFFERS
) {
9833 if (r
->driver_name
) {
9834 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9835 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9836 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9837 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9839 if (r
->architecture
) {
9840 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9841 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9842 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9843 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9845 if (r
->driver_path
) {
9846 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9847 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9848 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9849 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9852 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9853 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9854 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9855 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9857 if (r
->config_file
) {
9858 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9859 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9860 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9861 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9864 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9865 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9866 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9867 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9869 if (r
->monitor_name
) {
9870 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9871 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9872 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9873 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9875 if (r
->default_datatype
) {
9876 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9877 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9878 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9879 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9881 if (r
->dependent_files
) {
9882 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9884 if (r
->previous_names
) {
9885 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9887 if (r
->manufacturer_name
) {
9888 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9889 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9890 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9891 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9893 if (r
->manufacturer_url
) {
9894 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9895 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9896 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9897 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9899 if (r
->hardware_id
) {
9900 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9901 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9902 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9903 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9906 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9907 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9908 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9909 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9911 if (r
->print_processor
) {
9912 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
9913 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9914 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
9915 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9917 if (r
->vendor_setup
) {
9918 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
9919 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9920 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
9921 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->vendor_setup
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9923 if (r
->color_profiles
) {
9924 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
9927 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
9928 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9929 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
9930 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->inf_path
, ndr_charset_length(r
->inf_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9932 if (r
->core_driver_dependencies
) {
9933 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
9936 return NDR_ERR_SUCCESS
;
9939 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo8
*r
)
9941 uint32_t _ptr_driver_name
;
9942 uint32_t size_driver_name_1
= 0;
9943 uint32_t length_driver_name_1
= 0;
9944 TALLOC_CTX
*_mem_save_driver_name_0
;
9945 uint32_t _ptr_architecture
;
9946 uint32_t size_architecture_1
= 0;
9947 uint32_t length_architecture_1
= 0;
9948 TALLOC_CTX
*_mem_save_architecture_0
;
9949 uint32_t _ptr_driver_path
;
9950 uint32_t size_driver_path_1
= 0;
9951 uint32_t length_driver_path_1
= 0;
9952 TALLOC_CTX
*_mem_save_driver_path_0
;
9953 uint32_t _ptr_data_file
;
9954 uint32_t size_data_file_1
= 0;
9955 uint32_t length_data_file_1
= 0;
9956 TALLOC_CTX
*_mem_save_data_file_0
;
9957 uint32_t _ptr_config_file
;
9958 uint32_t size_config_file_1
= 0;
9959 uint32_t length_config_file_1
= 0;
9960 TALLOC_CTX
*_mem_save_config_file_0
;
9961 uint32_t _ptr_help_file
;
9962 uint32_t size_help_file_1
= 0;
9963 uint32_t length_help_file_1
= 0;
9964 TALLOC_CTX
*_mem_save_help_file_0
;
9965 uint32_t _ptr_monitor_name
;
9966 uint32_t size_monitor_name_1
= 0;
9967 uint32_t length_monitor_name_1
= 0;
9968 TALLOC_CTX
*_mem_save_monitor_name_0
;
9969 uint32_t _ptr_default_datatype
;
9970 uint32_t size_default_datatype_1
= 0;
9971 uint32_t length_default_datatype_1
= 0;
9972 TALLOC_CTX
*_mem_save_default_datatype_0
;
9973 uint32_t _ptr_dependent_files
;
9974 TALLOC_CTX
*_mem_save_dependent_files_0
;
9975 uint32_t _ptr_previous_names
;
9976 TALLOC_CTX
*_mem_save_previous_names_0
;
9977 uint32_t _ptr_manufacturer_name
;
9978 uint32_t size_manufacturer_name_1
= 0;
9979 uint32_t length_manufacturer_name_1
= 0;
9980 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
9981 uint32_t _ptr_manufacturer_url
;
9982 uint32_t size_manufacturer_url_1
= 0;
9983 uint32_t length_manufacturer_url_1
= 0;
9984 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
9985 uint32_t _ptr_hardware_id
;
9986 uint32_t size_hardware_id_1
= 0;
9987 uint32_t length_hardware_id_1
= 0;
9988 TALLOC_CTX
*_mem_save_hardware_id_0
;
9989 uint32_t _ptr_provider
;
9990 uint32_t size_provider_1
= 0;
9991 uint32_t length_provider_1
= 0;
9992 TALLOC_CTX
*_mem_save_provider_0
;
9993 uint32_t _ptr_print_processor
;
9994 uint32_t size_print_processor_1
= 0;
9995 uint32_t length_print_processor_1
= 0;
9996 TALLOC_CTX
*_mem_save_print_processor_0
;
9997 uint32_t _ptr_vendor_setup
;
9998 uint32_t size_vendor_setup_1
= 0;
9999 uint32_t length_vendor_setup_1
= 0;
10000 TALLOC_CTX
*_mem_save_vendor_setup_0
;
10001 uint32_t _ptr_color_profiles
;
10002 TALLOC_CTX
*_mem_save_color_profiles_0
;
10003 uint32_t _ptr_inf_path
;
10004 uint32_t size_inf_path_1
= 0;
10005 uint32_t length_inf_path_1
= 0;
10006 TALLOC_CTX
*_mem_save_inf_path_0
;
10007 uint32_t _ptr_core_driver_dependencies
;
10008 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
10009 if (ndr_flags
& NDR_SCALARS
) {
10010 NDR_CHECK(ndr_pull_align(ndr
, 8));
10011 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10012 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10013 if (_ptr_driver_name
) {
10014 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10016 r
->driver_name
= NULL
;
10018 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10019 if (_ptr_architecture
) {
10020 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10022 r
->architecture
= NULL
;
10024 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10025 if (_ptr_driver_path
) {
10026 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10028 r
->driver_path
= NULL
;
10030 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10031 if (_ptr_data_file
) {
10032 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10034 r
->data_file
= NULL
;
10036 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10037 if (_ptr_config_file
) {
10038 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10040 r
->config_file
= NULL
;
10042 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
10043 if (_ptr_help_file
) {
10044 NDR_PULL_ALLOC(ndr
, r
->help_file
);
10046 r
->help_file
= NULL
;
10048 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
10049 if (_ptr_monitor_name
) {
10050 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
10052 r
->monitor_name
= NULL
;
10054 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
10055 if (_ptr_default_datatype
) {
10056 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
10058 r
->default_datatype
= NULL
;
10060 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
10061 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
10062 if (_ptr_dependent_files
) {
10063 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
10065 r
->dependent_files
= NULL
;
10067 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
10068 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
10069 if (_ptr_previous_names
) {
10070 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
10072 r
->previous_names
= NULL
;
10074 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
10075 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
10076 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
10077 if (_ptr_manufacturer_name
) {
10078 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
10080 r
->manufacturer_name
= NULL
;
10082 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
10083 if (_ptr_manufacturer_url
) {
10084 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
10086 r
->manufacturer_url
= NULL
;
10088 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
10089 if (_ptr_hardware_id
) {
10090 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
10092 r
->hardware_id
= NULL
;
10094 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
10095 if (_ptr_provider
) {
10096 NDR_PULL_ALLOC(ndr
, r
->provider
);
10098 r
->provider
= NULL
;
10100 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
10101 if (_ptr_print_processor
) {
10102 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
10104 r
->print_processor
= NULL
;
10106 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
10107 if (_ptr_vendor_setup
) {
10108 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
10110 r
->vendor_setup
= NULL
;
10112 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_color_profiles
));
10113 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
10114 if (_ptr_color_profiles
) {
10115 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
10117 r
->color_profiles
= NULL
;
10119 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
10120 if (_ptr_inf_path
) {
10121 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
10123 r
->inf_path
= NULL
;
10125 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
10126 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_core_driver_dependencies
));
10127 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
10128 if (_ptr_core_driver_dependencies
) {
10129 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
10131 r
->core_driver_dependencies
= NULL
;
10133 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
10134 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
10135 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
10137 if (ndr_flags
& NDR_BUFFERS
) {
10138 if (r
->driver_name
) {
10139 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10140 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10141 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
10142 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
10143 size_driver_name_1
= ndr_get_array_size(ndr
, &r
->driver_name
);
10144 length_driver_name_1
= ndr_get_array_length(ndr
, &r
->driver_name
);
10145 if (length_driver_name_1
> size_driver_name_1
) {
10146 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_name_1
, length_driver_name_1
);
10148 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_name_1
, sizeof(uint16_t)));
10149 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, length_driver_name_1
, sizeof(uint16_t), CH_UTF16
));
10150 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10152 if (r
->architecture
) {
10153 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10154 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10155 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
10156 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
10157 size_architecture_1
= ndr_get_array_size(ndr
, &r
->architecture
);
10158 length_architecture_1
= ndr_get_array_length(ndr
, &r
->architecture
);
10159 if (length_architecture_1
> size_architecture_1
) {
10160 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_1
, length_architecture_1
);
10162 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_1
, sizeof(uint16_t)));
10163 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, length_architecture_1
, sizeof(uint16_t), CH_UTF16
));
10164 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10166 if (r
->driver_path
) {
10167 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10168 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10169 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
10170 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
10171 size_driver_path_1
= ndr_get_array_size(ndr
, &r
->driver_path
);
10172 length_driver_path_1
= ndr_get_array_length(ndr
, &r
->driver_path
);
10173 if (length_driver_path_1
> size_driver_path_1
) {
10174 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_path_1
, length_driver_path_1
);
10176 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_path_1
, sizeof(uint16_t)));
10177 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, length_driver_path_1
, sizeof(uint16_t), CH_UTF16
));
10178 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10180 if (r
->data_file
) {
10181 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10182 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10183 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
10184 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
10185 size_data_file_1
= ndr_get_array_size(ndr
, &r
->data_file
);
10186 length_data_file_1
= ndr_get_array_length(ndr
, &r
->data_file
);
10187 if (length_data_file_1
> size_data_file_1
) {
10188 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_file_1
, length_data_file_1
);
10190 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_file_1
, sizeof(uint16_t)));
10191 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, length_data_file_1
, sizeof(uint16_t), CH_UTF16
));
10192 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10194 if (r
->config_file
) {
10195 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10196 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10197 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
10198 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
10199 size_config_file_1
= ndr_get_array_size(ndr
, &r
->config_file
);
10200 length_config_file_1
= ndr_get_array_length(ndr
, &r
->config_file
);
10201 if (length_config_file_1
> size_config_file_1
) {
10202 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_config_file_1
, length_config_file_1
);
10204 NDR_CHECK(ndr_check_string_terminator(ndr
, length_config_file_1
, sizeof(uint16_t)));
10205 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, length_config_file_1
, sizeof(uint16_t), CH_UTF16
));
10206 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10208 if (r
->help_file
) {
10209 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10210 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
10211 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
10212 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
10213 size_help_file_1
= ndr_get_array_size(ndr
, &r
->help_file
);
10214 length_help_file_1
= ndr_get_array_length(ndr
, &r
->help_file
);
10215 if (length_help_file_1
> size_help_file_1
) {
10216 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_help_file_1
, length_help_file_1
);
10218 NDR_CHECK(ndr_check_string_terminator(ndr
, length_help_file_1
, sizeof(uint16_t)));
10219 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, length_help_file_1
, sizeof(uint16_t), CH_UTF16
));
10220 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
10222 if (r
->monitor_name
) {
10223 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10224 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
10225 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
10226 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
10227 size_monitor_name_1
= ndr_get_array_size(ndr
, &r
->monitor_name
);
10228 length_monitor_name_1
= ndr_get_array_length(ndr
, &r
->monitor_name
);
10229 if (length_monitor_name_1
> size_monitor_name_1
) {
10230 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_monitor_name_1
, length_monitor_name_1
);
10232 NDR_CHECK(ndr_check_string_terminator(ndr
, length_monitor_name_1
, sizeof(uint16_t)));
10233 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, length_monitor_name_1
, sizeof(uint16_t), CH_UTF16
));
10234 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
10236 if (r
->default_datatype
) {
10237 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10238 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
10239 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
10240 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
10241 size_default_datatype_1
= ndr_get_array_size(ndr
, &r
->default_datatype
);
10242 length_default_datatype_1
= ndr_get_array_length(ndr
, &r
->default_datatype
);
10243 if (length_default_datatype_1
> size_default_datatype_1
) {
10244 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_default_datatype_1
, length_default_datatype_1
);
10246 NDR_CHECK(ndr_check_string_terminator(ndr
, length_default_datatype_1
, sizeof(uint16_t)));
10247 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, length_default_datatype_1
, sizeof(uint16_t), CH_UTF16
));
10248 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
10250 if (r
->dependent_files
) {
10251 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10252 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
10253 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
10254 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
10256 if (r
->previous_names
) {
10257 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10258 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
10259 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
10260 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
10262 if (r
->manufacturer_name
) {
10263 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10264 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
10265 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
10266 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
10267 size_manufacturer_name_1
= ndr_get_array_size(ndr
, &r
->manufacturer_name
);
10268 length_manufacturer_name_1
= ndr_get_array_length(ndr
, &r
->manufacturer_name
);
10269 if (length_manufacturer_name_1
> size_manufacturer_name_1
) {
10270 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_manufacturer_name_1
, length_manufacturer_name_1
);
10272 NDR_CHECK(ndr_check_string_terminator(ndr
, length_manufacturer_name_1
, sizeof(uint16_t)));
10273 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, length_manufacturer_name_1
, sizeof(uint16_t), CH_UTF16
));
10274 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
10276 if (r
->manufacturer_url
) {
10277 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10278 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
10279 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
10280 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
10281 size_manufacturer_url_1
= ndr_get_array_size(ndr
, &r
->manufacturer_url
);
10282 length_manufacturer_url_1
= ndr_get_array_length(ndr
, &r
->manufacturer_url
);
10283 if (length_manufacturer_url_1
> size_manufacturer_url_1
) {
10284 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_manufacturer_url_1
, length_manufacturer_url_1
);
10286 NDR_CHECK(ndr_check_string_terminator(ndr
, length_manufacturer_url_1
, sizeof(uint16_t)));
10287 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, length_manufacturer_url_1
, sizeof(uint16_t), CH_UTF16
));
10288 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
10290 if (r
->hardware_id
) {
10291 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10292 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
10293 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
10294 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
10295 size_hardware_id_1
= ndr_get_array_size(ndr
, &r
->hardware_id
);
10296 length_hardware_id_1
= ndr_get_array_length(ndr
, &r
->hardware_id
);
10297 if (length_hardware_id_1
> size_hardware_id_1
) {
10298 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_hardware_id_1
, length_hardware_id_1
);
10300 NDR_CHECK(ndr_check_string_terminator(ndr
, length_hardware_id_1
, sizeof(uint16_t)));
10301 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, length_hardware_id_1
, sizeof(uint16_t), CH_UTF16
));
10302 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
10305 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10306 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
10307 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
10308 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
10309 size_provider_1
= ndr_get_array_size(ndr
, &r
->provider
);
10310 length_provider_1
= ndr_get_array_length(ndr
, &r
->provider
);
10311 if (length_provider_1
> size_provider_1
) {
10312 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_provider_1
, length_provider_1
);
10314 NDR_CHECK(ndr_check_string_terminator(ndr
, length_provider_1
, sizeof(uint16_t)));
10315 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, length_provider_1
, sizeof(uint16_t), CH_UTF16
));
10316 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
10318 if (r
->print_processor
) {
10319 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10320 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
10321 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
10322 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
10323 size_print_processor_1
= ndr_get_array_size(ndr
, &r
->print_processor
);
10324 length_print_processor_1
= ndr_get_array_length(ndr
, &r
->print_processor
);
10325 if (length_print_processor_1
> size_print_processor_1
) {
10326 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_print_processor_1
, length_print_processor_1
);
10328 NDR_CHECK(ndr_check_string_terminator(ndr
, length_print_processor_1
, sizeof(uint16_t)));
10329 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, length_print_processor_1
, sizeof(uint16_t), CH_UTF16
));
10330 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
10332 if (r
->vendor_setup
) {
10333 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10334 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
10335 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->vendor_setup
));
10336 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->vendor_setup
));
10337 size_vendor_setup_1
= ndr_get_array_size(ndr
, &r
->vendor_setup
);
10338 length_vendor_setup_1
= ndr_get_array_length(ndr
, &r
->vendor_setup
);
10339 if (length_vendor_setup_1
> size_vendor_setup_1
) {
10340 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_vendor_setup_1
, length_vendor_setup_1
);
10342 NDR_CHECK(ndr_check_string_terminator(ndr
, length_vendor_setup_1
, sizeof(uint16_t)));
10343 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->vendor_setup
, length_vendor_setup_1
, sizeof(uint16_t), CH_UTF16
));
10344 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
10346 if (r
->color_profiles
) {
10347 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10348 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
10349 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
10350 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
10353 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10354 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
10355 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->inf_path
));
10356 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->inf_path
));
10357 size_inf_path_1
= ndr_get_array_size(ndr
, &r
->inf_path
);
10358 length_inf_path_1
= ndr_get_array_length(ndr
, &r
->inf_path
);
10359 if (length_inf_path_1
> size_inf_path_1
) {
10360 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_inf_path_1
, length_inf_path_1
);
10362 NDR_CHECK(ndr_check_string_terminator(ndr
, length_inf_path_1
, sizeof(uint16_t)));
10363 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->inf_path
, length_inf_path_1
, sizeof(uint16_t), CH_UTF16
));
10364 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
10366 if (r
->core_driver_dependencies
) {
10367 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10368 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
10369 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
10370 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
10373 return NDR_ERR_SUCCESS
;
10376 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo8
*r
)
10378 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo8");
10380 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10381 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10383 if (r
->driver_name
) {
10384 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10387 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10389 if (r
->architecture
) {
10390 ndr_print_string(ndr
, "architecture", r
->architecture
);
10393 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10395 if (r
->driver_path
) {
10396 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10399 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10401 if (r
->data_file
) {
10402 ndr_print_string(ndr
, "data_file", r
->data_file
);
10405 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10407 if (r
->config_file
) {
10408 ndr_print_string(ndr
, "config_file", r
->config_file
);
10411 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
10413 if (r
->help_file
) {
10414 ndr_print_string(ndr
, "help_file", r
->help_file
);
10417 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
10419 if (r
->monitor_name
) {
10420 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
10423 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
10425 if (r
->default_datatype
) {
10426 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
10429 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
);
10430 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
10432 if (r
->dependent_files
) {
10433 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
10436 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
);
10437 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
10439 if (r
->previous_names
) {
10440 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
10443 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
10444 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
10445 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
10447 if (r
->manufacturer_name
) {
10448 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
10451 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
10453 if (r
->manufacturer_url
) {
10454 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
10457 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
10459 if (r
->hardware_id
) {
10460 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
10463 ndr_print_ptr(ndr
, "provider", r
->provider
);
10466 ndr_print_string(ndr
, "provider", r
->provider
);
10469 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
10471 if (r
->print_processor
) {
10472 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
10475 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
10477 if (r
->vendor_setup
) {
10478 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
10481 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
);
10482 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
10484 if (r
->color_profiles
) {
10485 ndr_print_spoolss_StringArray(ndr
, "color_profiles", r
->color_profiles
);
10488 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
10491 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
10494 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
10495 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
);
10496 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
10498 if (r
->core_driver_dependencies
) {
10499 ndr_print_spoolss_StringArray(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
10502 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
10503 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
10507 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddDriverInfo
*r
)
10509 if (ndr_flags
& NDR_SCALARS
) {
10510 int level
= ndr_push_get_switch_value(ndr
, r
);
10511 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
10512 NDR_CHECK(ndr_push_union_align(ndr
, 5));
10515 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
10519 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
10523 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
10527 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
10531 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
10535 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
10539 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10542 if (ndr_flags
& NDR_BUFFERS
) {
10543 int level
= ndr_push_get_switch_value(ndr
, r
);
10547 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
10553 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
10559 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
10565 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
10571 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
10577 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
10582 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10585 return NDR_ERR_SUCCESS
;
10588 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddDriverInfo
*r
)
10592 TALLOC_CTX
*_mem_save_info1_0
;
10593 uint32_t _ptr_info1
;
10594 TALLOC_CTX
*_mem_save_info2_0
;
10595 uint32_t _ptr_info2
;
10596 TALLOC_CTX
*_mem_save_info3_0
;
10597 uint32_t _ptr_info3
;
10598 TALLOC_CTX
*_mem_save_info4_0
;
10599 uint32_t _ptr_info4
;
10600 TALLOC_CTX
*_mem_save_info6_0
;
10601 uint32_t _ptr_info6
;
10602 TALLOC_CTX
*_mem_save_info8_0
;
10603 uint32_t _ptr_info8
;
10604 level
= ndr_pull_get_switch_value(ndr
, r
);
10605 if (ndr_flags
& NDR_SCALARS
) {
10606 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
10607 if (_level
!= level
) {
10608 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
10610 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
10613 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
10615 NDR_PULL_ALLOC(ndr
, r
->info1
);
10622 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
10624 NDR_PULL_ALLOC(ndr
, r
->info2
);
10631 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
10633 NDR_PULL_ALLOC(ndr
, r
->info3
);
10640 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
10642 NDR_PULL_ALLOC(ndr
, r
->info4
);
10649 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
10651 NDR_PULL_ALLOC(ndr
, r
->info6
);
10658 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
10660 NDR_PULL_ALLOC(ndr
, r
->info8
);
10667 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10670 if (ndr_flags
& NDR_BUFFERS
) {
10674 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10675 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
10676 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
10677 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
10683 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10684 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
10685 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
10686 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
10692 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10693 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
10694 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
10695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
10701 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10702 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
10703 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
10704 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
10710 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10711 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
10712 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
10713 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
10719 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10720 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
10721 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
10722 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
10727 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10730 return NDR_ERR_SUCCESS
;
10733 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddDriverInfo
*r
)
10736 level
= ndr_print_get_switch_value(ndr
, r
);
10737 ndr_print_union(ndr
, name
, level
, "spoolss_AddDriverInfo");
10740 ndr_print_ptr(ndr
, "info1", r
->info1
);
10743 ndr_print_spoolss_AddDriverInfo1(ndr
, "info1", r
->info1
);
10749 ndr_print_ptr(ndr
, "info2", r
->info2
);
10752 ndr_print_spoolss_AddDriverInfo2(ndr
, "info2", r
->info2
);
10758 ndr_print_ptr(ndr
, "info3", r
->info3
);
10761 ndr_print_spoolss_AddDriverInfo3(ndr
, "info3", r
->info3
);
10767 ndr_print_ptr(ndr
, "info4", r
->info4
);
10770 ndr_print_spoolss_AddDriverInfo4(ndr
, "info4", r
->info4
);
10776 ndr_print_ptr(ndr
, "info6", r
->info6
);
10779 ndr_print_spoolss_AddDriverInfo6(ndr
, "info6", r
->info6
);
10785 ndr_print_ptr(ndr
, "info8", r
->info8
);
10788 ndr_print_spoolss_AddDriverInfo8(ndr
, "info8", r
->info8
);
10794 ndr_print_bad_level(ndr
, name
, level
);
10798 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfoCtr
*r
)
10800 if (ndr_flags
& NDR_SCALARS
) {
10801 NDR_CHECK(ndr_push_align(ndr
, 5));
10802 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
10803 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
10804 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
10805 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10807 if (ndr_flags
& NDR_BUFFERS
) {
10808 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
10810 return NDR_ERR_SUCCESS
;
10813 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfoCtr
*r
)
10815 if (ndr_flags
& NDR_SCALARS
) {
10816 NDR_CHECK(ndr_pull_align(ndr
, 5));
10817 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
10818 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
10819 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
10820 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
10822 if (ndr_flags
& NDR_BUFFERS
) {
10823 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
10825 return NDR_ERR_SUCCESS
;
10828 _PUBLIC_
void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfoCtr
*r
)
10830 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfoCtr");
10832 ndr_print_uint32(ndr
, "level", r
->level
);
10833 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
10834 ndr_print_spoolss_AddDriverInfo(ndr
, "info", &r
->info
);
10838 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo1
*r
)
10840 if (ndr_flags
& NDR_SCALARS
) {
10841 NDR_CHECK(ndr_push_align(ndr
, 5));
10843 uint32_t _flags_save_string
= ndr
->flags
;
10844 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
10845 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10846 ndr
->flags
= _flags_save_string
;
10848 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10850 if (ndr_flags
& NDR_BUFFERS
) {
10852 uint32_t _flags_save_string
= ndr
->flags
;
10853 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
10854 if (r
->driver_name
) {
10855 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
10856 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10857 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
10859 ndr
->flags
= _flags_save_string
;
10862 return NDR_ERR_SUCCESS
;
10865 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo1
*r
)
10867 uint32_t _ptr_driver_name
;
10868 TALLOC_CTX
*_mem_save_driver_name_0
;
10869 if (ndr_flags
& NDR_SCALARS
) {
10870 NDR_CHECK(ndr_pull_align(ndr
, 5));
10872 uint32_t _flags_save_string
= ndr
->flags
;
10873 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
10874 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10875 if (_ptr_driver_name
) {
10876 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10877 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10879 r
->driver_name
= NULL
;
10881 ndr
->flags
= _flags_save_string
;
10883 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
10885 if (ndr_flags
& NDR_BUFFERS
) {
10887 uint32_t _flags_save_string
= ndr
->flags
;
10888 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
10889 if (r
->driver_name
) {
10890 uint32_t _relative_save_offset
;
10891 _relative_save_offset
= ndr
->offset
;
10892 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10893 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10894 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10895 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10896 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10897 ndr
->offset
= _relative_save_offset
;
10899 ndr
->flags
= _flags_save_string
;
10902 return NDR_ERR_SUCCESS
;
10905 _PUBLIC_
void ndr_print_spoolss_DriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo1
*r
)
10907 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo1");
10909 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10911 if (r
->driver_name
) {
10912 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10918 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10920 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo1
, ic
);
10923 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo2
*r
)
10925 if (ndr_flags
& NDR_SCALARS
) {
10926 NDR_CHECK(ndr_push_align(ndr
, 5));
10927 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10929 uint32_t _flags_save_string
= ndr
->flags
;
10930 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
10931 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10932 ndr
->flags
= _flags_save_string
;
10935 uint32_t _flags_save_string
= ndr
->flags
;
10936 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
10937 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10938 ndr
->flags
= _flags_save_string
;
10941 uint32_t _flags_save_string
= ndr
->flags
;
10942 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
10943 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10944 ndr
->flags
= _flags_save_string
;
10947 uint32_t _flags_save_string
= ndr
->flags
;
10948 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
10949 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10950 ndr
->flags
= _flags_save_string
;
10953 uint32_t _flags_save_string
= ndr
->flags
;
10954 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
10955 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10956 ndr
->flags
= _flags_save_string
;
10958 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10960 if (ndr_flags
& NDR_BUFFERS
) {
10962 uint32_t _flags_save_string
= ndr
->flags
;
10963 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
10964 if (r
->driver_name
) {
10965 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
10966 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10967 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
10969 ndr
->flags
= _flags_save_string
;
10972 uint32_t _flags_save_string
= ndr
->flags
;
10973 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
10974 if (r
->architecture
) {
10975 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
10976 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10977 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
10979 ndr
->flags
= _flags_save_string
;
10982 uint32_t _flags_save_string
= ndr
->flags
;
10983 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
10984 if (r
->driver_path
) {
10985 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
10986 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10987 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
10989 ndr
->flags
= _flags_save_string
;
10992 uint32_t _flags_save_string
= ndr
->flags
;
10993 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
10994 if (r
->data_file
) {
10995 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
10996 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10997 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
10999 ndr
->flags
= _flags_save_string
;
11002 uint32_t _flags_save_string
= ndr
->flags
;
11003 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11004 if (r
->config_file
) {
11005 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
11006 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11007 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
11009 ndr
->flags
= _flags_save_string
;
11012 return NDR_ERR_SUCCESS
;
11015 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo2
*r
)
11017 uint32_t _ptr_driver_name
;
11018 TALLOC_CTX
*_mem_save_driver_name_0
;
11019 uint32_t _ptr_architecture
;
11020 TALLOC_CTX
*_mem_save_architecture_0
;
11021 uint32_t _ptr_driver_path
;
11022 TALLOC_CTX
*_mem_save_driver_path_0
;
11023 uint32_t _ptr_data_file
;
11024 TALLOC_CTX
*_mem_save_data_file_0
;
11025 uint32_t _ptr_config_file
;
11026 TALLOC_CTX
*_mem_save_config_file_0
;
11027 if (ndr_flags
& NDR_SCALARS
) {
11028 NDR_CHECK(ndr_pull_align(ndr
, 5));
11029 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11031 uint32_t _flags_save_string
= ndr
->flags
;
11032 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11033 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11034 if (_ptr_driver_name
) {
11035 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11036 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11038 r
->driver_name
= NULL
;
11040 ndr
->flags
= _flags_save_string
;
11043 uint32_t _flags_save_string
= ndr
->flags
;
11044 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11045 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11046 if (_ptr_architecture
) {
11047 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11048 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11050 r
->architecture
= NULL
;
11052 ndr
->flags
= _flags_save_string
;
11055 uint32_t _flags_save_string
= ndr
->flags
;
11056 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11057 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11058 if (_ptr_driver_path
) {
11059 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11060 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11062 r
->driver_path
= NULL
;
11064 ndr
->flags
= _flags_save_string
;
11067 uint32_t _flags_save_string
= ndr
->flags
;
11068 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11069 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11070 if (_ptr_data_file
) {
11071 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11072 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11074 r
->data_file
= NULL
;
11076 ndr
->flags
= _flags_save_string
;
11079 uint32_t _flags_save_string
= ndr
->flags
;
11080 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11081 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11082 if (_ptr_config_file
) {
11083 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11084 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11086 r
->config_file
= NULL
;
11088 ndr
->flags
= _flags_save_string
;
11090 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
11092 if (ndr_flags
& NDR_BUFFERS
) {
11094 uint32_t _flags_save_string
= ndr
->flags
;
11095 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11096 if (r
->driver_name
) {
11097 uint32_t _relative_save_offset
;
11098 _relative_save_offset
= ndr
->offset
;
11099 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11100 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11101 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11102 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11103 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11104 ndr
->offset
= _relative_save_offset
;
11106 ndr
->flags
= _flags_save_string
;
11109 uint32_t _flags_save_string
= ndr
->flags
;
11110 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11111 if (r
->architecture
) {
11112 uint32_t _relative_save_offset
;
11113 _relative_save_offset
= ndr
->offset
;
11114 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11115 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11116 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11117 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11118 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11119 ndr
->offset
= _relative_save_offset
;
11121 ndr
->flags
= _flags_save_string
;
11124 uint32_t _flags_save_string
= ndr
->flags
;
11125 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11126 if (r
->driver_path
) {
11127 uint32_t _relative_save_offset
;
11128 _relative_save_offset
= ndr
->offset
;
11129 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11130 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11131 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11132 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11133 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11134 ndr
->offset
= _relative_save_offset
;
11136 ndr
->flags
= _flags_save_string
;
11139 uint32_t _flags_save_string
= ndr
->flags
;
11140 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11141 if (r
->data_file
) {
11142 uint32_t _relative_save_offset
;
11143 _relative_save_offset
= ndr
->offset
;
11144 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11145 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11146 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11147 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11148 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11149 ndr
->offset
= _relative_save_offset
;
11151 ndr
->flags
= _flags_save_string
;
11154 uint32_t _flags_save_string
= ndr
->flags
;
11155 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11156 if (r
->config_file
) {
11157 uint32_t _relative_save_offset
;
11158 _relative_save_offset
= ndr
->offset
;
11159 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11160 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11161 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11162 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11163 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11164 ndr
->offset
= _relative_save_offset
;
11166 ndr
->flags
= _flags_save_string
;
11169 return NDR_ERR_SUCCESS
;
11172 _PUBLIC_
void ndr_print_spoolss_DriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo2
*r
)
11174 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo2");
11176 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11177 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11179 if (r
->driver_name
) {
11180 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11183 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11185 if (r
->architecture
) {
11186 ndr_print_string(ndr
, "architecture", r
->architecture
);
11189 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11191 if (r
->driver_path
) {
11192 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11195 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11197 if (r
->data_file
) {
11198 ndr_print_string(ndr
, "data_file", r
->data_file
);
11201 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11203 if (r
->config_file
) {
11204 ndr_print_string(ndr
, "config_file", r
->config_file
);
11210 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11212 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo2
, ic
);
11215 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo3
*r
)
11217 if (ndr_flags
& NDR_SCALARS
) {
11218 NDR_CHECK(ndr_push_align(ndr
, 5));
11219 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11221 uint32_t _flags_save_string
= ndr
->flags
;
11222 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11223 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11224 ndr
->flags
= _flags_save_string
;
11227 uint32_t _flags_save_string
= ndr
->flags
;
11228 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11229 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11230 ndr
->flags
= _flags_save_string
;
11233 uint32_t _flags_save_string
= ndr
->flags
;
11234 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11235 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11236 ndr
->flags
= _flags_save_string
;
11239 uint32_t _flags_save_string
= ndr
->flags
;
11240 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11241 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11242 ndr
->flags
= _flags_save_string
;
11245 uint32_t _flags_save_string
= ndr
->flags
;
11246 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11247 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11248 ndr
->flags
= _flags_save_string
;
11251 uint32_t _flags_save_string
= ndr
->flags
;
11252 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11253 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
11254 ndr
->flags
= _flags_save_string
;
11257 uint32_t _flags_save_string_array
= ndr
->flags
;
11258 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11259 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
11260 ndr
->flags
= _flags_save_string_array
;
11263 uint32_t _flags_save_string
= ndr
->flags
;
11264 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11265 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
11266 ndr
->flags
= _flags_save_string
;
11269 uint32_t _flags_save_string
= ndr
->flags
;
11270 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11271 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
11272 ndr
->flags
= _flags_save_string
;
11274 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
11276 if (ndr_flags
& NDR_BUFFERS
) {
11278 uint32_t _flags_save_string
= ndr
->flags
;
11279 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11280 if (r
->driver_name
) {
11281 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
11282 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11283 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
11285 ndr
->flags
= _flags_save_string
;
11288 uint32_t _flags_save_string
= ndr
->flags
;
11289 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11290 if (r
->architecture
) {
11291 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
11292 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11293 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
11295 ndr
->flags
= _flags_save_string
;
11298 uint32_t _flags_save_string
= ndr
->flags
;
11299 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11300 if (r
->driver_path
) {
11301 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
11302 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11303 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
11305 ndr
->flags
= _flags_save_string
;
11308 uint32_t _flags_save_string
= ndr
->flags
;
11309 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11310 if (r
->data_file
) {
11311 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
11312 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11313 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
11315 ndr
->flags
= _flags_save_string
;
11318 uint32_t _flags_save_string
= ndr
->flags
;
11319 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11320 if (r
->config_file
) {
11321 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
11322 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11323 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
11325 ndr
->flags
= _flags_save_string
;
11328 uint32_t _flags_save_string
= ndr
->flags
;
11329 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11330 if (r
->help_file
) {
11331 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->help_file
));
11332 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
11333 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->help_file
));
11335 ndr
->flags
= _flags_save_string
;
11338 uint32_t _flags_save_string_array
= ndr
->flags
;
11339 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11340 if (r
->dependent_files
) {
11341 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dependent_files
));
11342 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
11343 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dependent_files
));
11345 ndr
->flags
= _flags_save_string_array
;
11348 uint32_t _flags_save_string
= ndr
->flags
;
11349 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11350 if (r
->monitor_name
) {
11351 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
11352 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
11353 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
11355 ndr
->flags
= _flags_save_string
;
11358 uint32_t _flags_save_string
= ndr
->flags
;
11359 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11360 if (r
->default_datatype
) {
11361 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->default_datatype
));
11362 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
11363 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->default_datatype
));
11365 ndr
->flags
= _flags_save_string
;
11368 return NDR_ERR_SUCCESS
;
11371 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo3
*r
)
11373 uint32_t _ptr_driver_name
;
11374 TALLOC_CTX
*_mem_save_driver_name_0
;
11375 uint32_t _ptr_architecture
;
11376 TALLOC_CTX
*_mem_save_architecture_0
;
11377 uint32_t _ptr_driver_path
;
11378 TALLOC_CTX
*_mem_save_driver_path_0
;
11379 uint32_t _ptr_data_file
;
11380 TALLOC_CTX
*_mem_save_data_file_0
;
11381 uint32_t _ptr_config_file
;
11382 TALLOC_CTX
*_mem_save_config_file_0
;
11383 uint32_t _ptr_help_file
;
11384 TALLOC_CTX
*_mem_save_help_file_0
;
11385 uint32_t _ptr_dependent_files
;
11386 TALLOC_CTX
*_mem_save_dependent_files_0
;
11387 uint32_t _ptr_monitor_name
;
11388 TALLOC_CTX
*_mem_save_monitor_name_0
;
11389 uint32_t _ptr_default_datatype
;
11390 TALLOC_CTX
*_mem_save_default_datatype_0
;
11391 if (ndr_flags
& NDR_SCALARS
) {
11392 NDR_CHECK(ndr_pull_align(ndr
, 5));
11393 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11395 uint32_t _flags_save_string
= ndr
->flags
;
11396 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11397 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11398 if (_ptr_driver_name
) {
11399 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11400 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11402 r
->driver_name
= NULL
;
11404 ndr
->flags
= _flags_save_string
;
11407 uint32_t _flags_save_string
= ndr
->flags
;
11408 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11409 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11410 if (_ptr_architecture
) {
11411 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11412 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11414 r
->architecture
= NULL
;
11416 ndr
->flags
= _flags_save_string
;
11419 uint32_t _flags_save_string
= ndr
->flags
;
11420 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11421 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11422 if (_ptr_driver_path
) {
11423 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11424 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11426 r
->driver_path
= NULL
;
11428 ndr
->flags
= _flags_save_string
;
11431 uint32_t _flags_save_string
= ndr
->flags
;
11432 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11433 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11434 if (_ptr_data_file
) {
11435 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11436 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11438 r
->data_file
= NULL
;
11440 ndr
->flags
= _flags_save_string
;
11443 uint32_t _flags_save_string
= ndr
->flags
;
11444 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11445 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11446 if (_ptr_config_file
) {
11447 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11448 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11450 r
->config_file
= NULL
;
11452 ndr
->flags
= _flags_save_string
;
11455 uint32_t _flags_save_string
= ndr
->flags
;
11456 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11457 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
11458 if (_ptr_help_file
) {
11459 NDR_PULL_ALLOC(ndr
, r
->help_file
);
11460 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
11462 r
->help_file
= NULL
;
11464 ndr
->flags
= _flags_save_string
;
11467 uint32_t _flags_save_string_array
= ndr
->flags
;
11468 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11469 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
11470 if (_ptr_dependent_files
) {
11471 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
11472 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
11474 r
->dependent_files
= NULL
;
11476 ndr
->flags
= _flags_save_string_array
;
11479 uint32_t _flags_save_string
= ndr
->flags
;
11480 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11481 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
11482 if (_ptr_monitor_name
) {
11483 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
11484 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
11486 r
->monitor_name
= NULL
;
11488 ndr
->flags
= _flags_save_string
;
11491 uint32_t _flags_save_string
= ndr
->flags
;
11492 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11493 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
11494 if (_ptr_default_datatype
) {
11495 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
11496 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
11498 r
->default_datatype
= NULL
;
11500 ndr
->flags
= _flags_save_string
;
11502 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
11504 if (ndr_flags
& NDR_BUFFERS
) {
11506 uint32_t _flags_save_string
= ndr
->flags
;
11507 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11508 if (r
->driver_name
) {
11509 uint32_t _relative_save_offset
;
11510 _relative_save_offset
= ndr
->offset
;
11511 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11512 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11513 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11514 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11515 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11516 ndr
->offset
= _relative_save_offset
;
11518 ndr
->flags
= _flags_save_string
;
11521 uint32_t _flags_save_string
= ndr
->flags
;
11522 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11523 if (r
->architecture
) {
11524 uint32_t _relative_save_offset
;
11525 _relative_save_offset
= ndr
->offset
;
11526 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11527 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11528 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11529 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11530 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11531 ndr
->offset
= _relative_save_offset
;
11533 ndr
->flags
= _flags_save_string
;
11536 uint32_t _flags_save_string
= ndr
->flags
;
11537 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11538 if (r
->driver_path
) {
11539 uint32_t _relative_save_offset
;
11540 _relative_save_offset
= ndr
->offset
;
11541 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11542 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11543 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11544 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11545 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11546 ndr
->offset
= _relative_save_offset
;
11548 ndr
->flags
= _flags_save_string
;
11551 uint32_t _flags_save_string
= ndr
->flags
;
11552 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11553 if (r
->data_file
) {
11554 uint32_t _relative_save_offset
;
11555 _relative_save_offset
= ndr
->offset
;
11556 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11557 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11558 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11559 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11560 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11561 ndr
->offset
= _relative_save_offset
;
11563 ndr
->flags
= _flags_save_string
;
11566 uint32_t _flags_save_string
= ndr
->flags
;
11567 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11568 if (r
->config_file
) {
11569 uint32_t _relative_save_offset
;
11570 _relative_save_offset
= ndr
->offset
;
11571 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11572 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11573 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11574 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11575 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11576 ndr
->offset
= _relative_save_offset
;
11578 ndr
->flags
= _flags_save_string
;
11581 uint32_t _flags_save_string
= ndr
->flags
;
11582 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11583 if (r
->help_file
) {
11584 uint32_t _relative_save_offset
;
11585 _relative_save_offset
= ndr
->offset
;
11586 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11587 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11588 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11589 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11590 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11591 ndr
->offset
= _relative_save_offset
;
11593 ndr
->flags
= _flags_save_string
;
11596 uint32_t _flags_save_string_array
= ndr
->flags
;
11597 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11598 if (r
->dependent_files
) {
11599 uint32_t _relative_save_offset
;
11600 _relative_save_offset
= ndr
->offset
;
11601 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11602 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11603 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11604 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11605 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11606 ndr
->offset
= _relative_save_offset
;
11608 ndr
->flags
= _flags_save_string_array
;
11611 uint32_t _flags_save_string
= ndr
->flags
;
11612 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11613 if (r
->monitor_name
) {
11614 uint32_t _relative_save_offset
;
11615 _relative_save_offset
= ndr
->offset
;
11616 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11617 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11618 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11619 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11620 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11621 ndr
->offset
= _relative_save_offset
;
11623 ndr
->flags
= _flags_save_string
;
11626 uint32_t _flags_save_string
= ndr
->flags
;
11627 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11628 if (r
->default_datatype
) {
11629 uint32_t _relative_save_offset
;
11630 _relative_save_offset
= ndr
->offset
;
11631 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
11632 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11633 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
11634 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
11635 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
11636 ndr
->offset
= _relative_save_offset
;
11638 ndr
->flags
= _flags_save_string
;
11641 return NDR_ERR_SUCCESS
;
11644 _PUBLIC_
void ndr_print_spoolss_DriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo3
*r
)
11646 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo3");
11648 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11649 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11651 if (r
->driver_name
) {
11652 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11655 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11657 if (r
->architecture
) {
11658 ndr_print_string(ndr
, "architecture", r
->architecture
);
11661 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11663 if (r
->driver_path
) {
11664 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11667 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11669 if (r
->data_file
) {
11670 ndr_print_string(ndr
, "data_file", r
->data_file
);
11673 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11675 if (r
->config_file
) {
11676 ndr_print_string(ndr
, "config_file", r
->config_file
);
11679 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
11681 if (r
->help_file
) {
11682 ndr_print_string(ndr
, "help_file", r
->help_file
);
11685 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
11687 if (r
->dependent_files
) {
11688 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
11691 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
11693 if (r
->monitor_name
) {
11694 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
11697 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
11699 if (r
->default_datatype
) {
11700 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
11706 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11708 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo3
, ic
);
11711 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo4
*r
)
11713 if (ndr_flags
& NDR_SCALARS
) {
11714 NDR_CHECK(ndr_push_align(ndr
, 5));
11715 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11717 uint32_t _flags_save_string
= ndr
->flags
;
11718 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11719 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11720 ndr
->flags
= _flags_save_string
;
11723 uint32_t _flags_save_string
= ndr
->flags
;
11724 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11725 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11726 ndr
->flags
= _flags_save_string
;
11729 uint32_t _flags_save_string
= ndr
->flags
;
11730 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11731 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11732 ndr
->flags
= _flags_save_string
;
11735 uint32_t _flags_save_string
= ndr
->flags
;
11736 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11737 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11738 ndr
->flags
= _flags_save_string
;
11741 uint32_t _flags_save_string
= ndr
->flags
;
11742 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11743 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11744 ndr
->flags
= _flags_save_string
;
11747 uint32_t _flags_save_string
= ndr
->flags
;
11748 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11749 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
11750 ndr
->flags
= _flags_save_string
;
11753 uint32_t _flags_save_string_array
= ndr
->flags
;
11754 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11755 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
11756 ndr
->flags
= _flags_save_string_array
;
11759 uint32_t _flags_save_string
= ndr
->flags
;
11760 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11761 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
11762 ndr
->flags
= _flags_save_string
;
11765 uint32_t _flags_save_string
= ndr
->flags
;
11766 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11767 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
11768 ndr
->flags
= _flags_save_string
;
11771 uint32_t _flags_save_string_array
= ndr
->flags
;
11772 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11773 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
11774 ndr
->flags
= _flags_save_string_array
;
11776 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
11778 if (ndr_flags
& NDR_BUFFERS
) {
11780 uint32_t _flags_save_string
= ndr
->flags
;
11781 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11782 if (r
->driver_name
) {
11783 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
11784 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11785 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
11787 ndr
->flags
= _flags_save_string
;
11790 uint32_t _flags_save_string
= ndr
->flags
;
11791 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11792 if (r
->architecture
) {
11793 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
11794 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11795 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
11797 ndr
->flags
= _flags_save_string
;
11800 uint32_t _flags_save_string
= ndr
->flags
;
11801 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11802 if (r
->driver_path
) {
11803 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
11804 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11805 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
11807 ndr
->flags
= _flags_save_string
;
11810 uint32_t _flags_save_string
= ndr
->flags
;
11811 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11812 if (r
->data_file
) {
11813 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
11814 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11815 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
11817 ndr
->flags
= _flags_save_string
;
11820 uint32_t _flags_save_string
= ndr
->flags
;
11821 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11822 if (r
->config_file
) {
11823 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
11824 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11825 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
11827 ndr
->flags
= _flags_save_string
;
11830 uint32_t _flags_save_string
= ndr
->flags
;
11831 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11832 if (r
->help_file
) {
11833 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->help_file
));
11834 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
11835 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->help_file
));
11837 ndr
->flags
= _flags_save_string
;
11840 uint32_t _flags_save_string_array
= ndr
->flags
;
11841 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11842 if (r
->dependent_files
) {
11843 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dependent_files
));
11844 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
11845 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dependent_files
));
11847 ndr
->flags
= _flags_save_string_array
;
11850 uint32_t _flags_save_string
= ndr
->flags
;
11851 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11852 if (r
->monitor_name
) {
11853 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
11854 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
11855 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
11857 ndr
->flags
= _flags_save_string
;
11860 uint32_t _flags_save_string
= ndr
->flags
;
11861 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11862 if (r
->default_datatype
) {
11863 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->default_datatype
));
11864 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
11865 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->default_datatype
));
11867 ndr
->flags
= _flags_save_string
;
11870 uint32_t _flags_save_string_array
= ndr
->flags
;
11871 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11872 if (r
->previous_names
) {
11873 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->previous_names
));
11874 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
11875 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->previous_names
));
11877 ndr
->flags
= _flags_save_string_array
;
11880 return NDR_ERR_SUCCESS
;
11883 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo4
*r
)
11885 uint32_t _ptr_driver_name
;
11886 TALLOC_CTX
*_mem_save_driver_name_0
;
11887 uint32_t _ptr_architecture
;
11888 TALLOC_CTX
*_mem_save_architecture_0
;
11889 uint32_t _ptr_driver_path
;
11890 TALLOC_CTX
*_mem_save_driver_path_0
;
11891 uint32_t _ptr_data_file
;
11892 TALLOC_CTX
*_mem_save_data_file_0
;
11893 uint32_t _ptr_config_file
;
11894 TALLOC_CTX
*_mem_save_config_file_0
;
11895 uint32_t _ptr_help_file
;
11896 TALLOC_CTX
*_mem_save_help_file_0
;
11897 uint32_t _ptr_dependent_files
;
11898 TALLOC_CTX
*_mem_save_dependent_files_0
;
11899 uint32_t _ptr_monitor_name
;
11900 TALLOC_CTX
*_mem_save_monitor_name_0
;
11901 uint32_t _ptr_default_datatype
;
11902 TALLOC_CTX
*_mem_save_default_datatype_0
;
11903 uint32_t _ptr_previous_names
;
11904 TALLOC_CTX
*_mem_save_previous_names_0
;
11905 if (ndr_flags
& NDR_SCALARS
) {
11906 NDR_CHECK(ndr_pull_align(ndr
, 5));
11907 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11909 uint32_t _flags_save_string
= ndr
->flags
;
11910 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11911 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11912 if (_ptr_driver_name
) {
11913 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11914 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11916 r
->driver_name
= NULL
;
11918 ndr
->flags
= _flags_save_string
;
11921 uint32_t _flags_save_string
= ndr
->flags
;
11922 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11923 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11924 if (_ptr_architecture
) {
11925 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11926 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11928 r
->architecture
= NULL
;
11930 ndr
->flags
= _flags_save_string
;
11933 uint32_t _flags_save_string
= ndr
->flags
;
11934 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11935 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11936 if (_ptr_driver_path
) {
11937 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11938 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11940 r
->driver_path
= NULL
;
11942 ndr
->flags
= _flags_save_string
;
11945 uint32_t _flags_save_string
= ndr
->flags
;
11946 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11947 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11948 if (_ptr_data_file
) {
11949 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11950 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11952 r
->data_file
= NULL
;
11954 ndr
->flags
= _flags_save_string
;
11957 uint32_t _flags_save_string
= ndr
->flags
;
11958 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11959 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11960 if (_ptr_config_file
) {
11961 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11962 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11964 r
->config_file
= NULL
;
11966 ndr
->flags
= _flags_save_string
;
11969 uint32_t _flags_save_string
= ndr
->flags
;
11970 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11971 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
11972 if (_ptr_help_file
) {
11973 NDR_PULL_ALLOC(ndr
, r
->help_file
);
11974 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
11976 r
->help_file
= NULL
;
11978 ndr
->flags
= _flags_save_string
;
11981 uint32_t _flags_save_string_array
= ndr
->flags
;
11982 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11983 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
11984 if (_ptr_dependent_files
) {
11985 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
11986 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
11988 r
->dependent_files
= NULL
;
11990 ndr
->flags
= _flags_save_string_array
;
11993 uint32_t _flags_save_string
= ndr
->flags
;
11994 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
11995 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
11996 if (_ptr_monitor_name
) {
11997 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
11998 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
12000 r
->monitor_name
= NULL
;
12002 ndr
->flags
= _flags_save_string
;
12005 uint32_t _flags_save_string
= ndr
->flags
;
12006 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12007 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
12008 if (_ptr_default_datatype
) {
12009 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
12010 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
12012 r
->default_datatype
= NULL
;
12014 ndr
->flags
= _flags_save_string
;
12017 uint32_t _flags_save_string_array
= ndr
->flags
;
12018 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12019 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
12020 if (_ptr_previous_names
) {
12021 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
12022 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
12024 r
->previous_names
= NULL
;
12026 ndr
->flags
= _flags_save_string_array
;
12028 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
12030 if (ndr_flags
& NDR_BUFFERS
) {
12032 uint32_t _flags_save_string
= ndr
->flags
;
12033 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12034 if (r
->driver_name
) {
12035 uint32_t _relative_save_offset
;
12036 _relative_save_offset
= ndr
->offset
;
12037 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
12038 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12039 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
12040 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
12041 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
12042 ndr
->offset
= _relative_save_offset
;
12044 ndr
->flags
= _flags_save_string
;
12047 uint32_t _flags_save_string
= ndr
->flags
;
12048 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12049 if (r
->architecture
) {
12050 uint32_t _relative_save_offset
;
12051 _relative_save_offset
= ndr
->offset
;
12052 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12053 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12054 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12055 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12056 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12057 ndr
->offset
= _relative_save_offset
;
12059 ndr
->flags
= _flags_save_string
;
12062 uint32_t _flags_save_string
= ndr
->flags
;
12063 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12064 if (r
->driver_path
) {
12065 uint32_t _relative_save_offset
;
12066 _relative_save_offset
= ndr
->offset
;
12067 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12068 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12069 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12070 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12071 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12072 ndr
->offset
= _relative_save_offset
;
12074 ndr
->flags
= _flags_save_string
;
12077 uint32_t _flags_save_string
= ndr
->flags
;
12078 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12079 if (r
->data_file
) {
12080 uint32_t _relative_save_offset
;
12081 _relative_save_offset
= ndr
->offset
;
12082 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12083 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12084 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12085 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12086 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12087 ndr
->offset
= _relative_save_offset
;
12089 ndr
->flags
= _flags_save_string
;
12092 uint32_t _flags_save_string
= ndr
->flags
;
12093 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12094 if (r
->config_file
) {
12095 uint32_t _relative_save_offset
;
12096 _relative_save_offset
= ndr
->offset
;
12097 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12098 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12099 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12100 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12101 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12102 ndr
->offset
= _relative_save_offset
;
12104 ndr
->flags
= _flags_save_string
;
12107 uint32_t _flags_save_string
= ndr
->flags
;
12108 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12109 if (r
->help_file
) {
12110 uint32_t _relative_save_offset
;
12111 _relative_save_offset
= ndr
->offset
;
12112 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
12113 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12114 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
12115 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
12116 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
12117 ndr
->offset
= _relative_save_offset
;
12119 ndr
->flags
= _flags_save_string
;
12122 uint32_t _flags_save_string_array
= ndr
->flags
;
12123 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12124 if (r
->dependent_files
) {
12125 uint32_t _relative_save_offset
;
12126 _relative_save_offset
= ndr
->offset
;
12127 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
12128 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12129 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
12130 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
12131 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
12132 ndr
->offset
= _relative_save_offset
;
12134 ndr
->flags
= _flags_save_string_array
;
12137 uint32_t _flags_save_string
= ndr
->flags
;
12138 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12139 if (r
->monitor_name
) {
12140 uint32_t _relative_save_offset
;
12141 _relative_save_offset
= ndr
->offset
;
12142 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
12143 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12144 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
12145 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
12146 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
12147 ndr
->offset
= _relative_save_offset
;
12149 ndr
->flags
= _flags_save_string
;
12152 uint32_t _flags_save_string
= ndr
->flags
;
12153 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12154 if (r
->default_datatype
) {
12155 uint32_t _relative_save_offset
;
12156 _relative_save_offset
= ndr
->offset
;
12157 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
12158 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12159 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
12160 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
12161 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
12162 ndr
->offset
= _relative_save_offset
;
12164 ndr
->flags
= _flags_save_string
;
12167 uint32_t _flags_save_string_array
= ndr
->flags
;
12168 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12169 if (r
->previous_names
) {
12170 uint32_t _relative_save_offset
;
12171 _relative_save_offset
= ndr
->offset
;
12172 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
12173 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12174 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
12175 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
12176 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
12177 ndr
->offset
= _relative_save_offset
;
12179 ndr
->flags
= _flags_save_string_array
;
12182 return NDR_ERR_SUCCESS
;
12185 _PUBLIC_
void ndr_print_spoolss_DriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo4
*r
)
12187 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo4");
12189 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12190 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12192 if (r
->driver_name
) {
12193 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12196 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12198 if (r
->architecture
) {
12199 ndr_print_string(ndr
, "architecture", r
->architecture
);
12202 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12204 if (r
->driver_path
) {
12205 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12208 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12210 if (r
->data_file
) {
12211 ndr_print_string(ndr
, "data_file", r
->data_file
);
12214 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12216 if (r
->config_file
) {
12217 ndr_print_string(ndr
, "config_file", r
->config_file
);
12220 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
12222 if (r
->help_file
) {
12223 ndr_print_string(ndr
, "help_file", r
->help_file
);
12226 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
12228 if (r
->dependent_files
) {
12229 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
12232 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
12234 if (r
->monitor_name
) {
12235 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
12238 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
12240 if (r
->default_datatype
) {
12241 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
12244 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
12246 if (r
->previous_names
) {
12247 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
12253 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12255 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo4
, ic
);
12258 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo5
*r
)
12260 if (ndr_flags
& NDR_SCALARS
) {
12261 NDR_CHECK(ndr_push_align(ndr
, 5));
12262 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12264 uint32_t _flags_save_string
= ndr
->flags
;
12265 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12266 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12267 ndr
->flags
= _flags_save_string
;
12270 uint32_t _flags_save_string
= ndr
->flags
;
12271 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12272 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
12273 ndr
->flags
= _flags_save_string
;
12276 uint32_t _flags_save_string
= ndr
->flags
;
12277 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12278 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
12279 ndr
->flags
= _flags_save_string
;
12282 uint32_t _flags_save_string
= ndr
->flags
;
12283 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12284 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
12285 ndr
->flags
= _flags_save_string
;
12288 uint32_t _flags_save_string
= ndr
->flags
;
12289 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12290 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
12291 ndr
->flags
= _flags_save_string
;
12293 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr
, NDR_SCALARS
, r
->driver_attributes
));
12294 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->config_version
));
12295 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->driver_version
));
12296 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
12298 if (ndr_flags
& NDR_BUFFERS
) {
12300 uint32_t _flags_save_string
= ndr
->flags
;
12301 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12302 if (r
->driver_name
) {
12303 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
12304 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12305 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
12307 ndr
->flags
= _flags_save_string
;
12310 uint32_t _flags_save_string
= ndr
->flags
;
12311 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12312 if (r
->architecture
) {
12313 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
12314 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12315 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
12317 ndr
->flags
= _flags_save_string
;
12320 uint32_t _flags_save_string
= ndr
->flags
;
12321 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12322 if (r
->driver_path
) {
12323 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
12324 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
12325 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
12327 ndr
->flags
= _flags_save_string
;
12330 uint32_t _flags_save_string
= ndr
->flags
;
12331 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12332 if (r
->data_file
) {
12333 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
12334 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
12335 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
12337 ndr
->flags
= _flags_save_string
;
12340 uint32_t _flags_save_string
= ndr
->flags
;
12341 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12342 if (r
->config_file
) {
12343 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
12344 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
12345 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
12347 ndr
->flags
= _flags_save_string
;
12350 return NDR_ERR_SUCCESS
;
12353 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo5
*r
)
12355 uint32_t _ptr_driver_name
;
12356 TALLOC_CTX
*_mem_save_driver_name_0
;
12357 uint32_t _ptr_architecture
;
12358 TALLOC_CTX
*_mem_save_architecture_0
;
12359 uint32_t _ptr_driver_path
;
12360 TALLOC_CTX
*_mem_save_driver_path_0
;
12361 uint32_t _ptr_data_file
;
12362 TALLOC_CTX
*_mem_save_data_file_0
;
12363 uint32_t _ptr_config_file
;
12364 TALLOC_CTX
*_mem_save_config_file_0
;
12365 if (ndr_flags
& NDR_SCALARS
) {
12366 NDR_CHECK(ndr_pull_align(ndr
, 5));
12367 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
12369 uint32_t _flags_save_string
= ndr
->flags
;
12370 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12371 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
12372 if (_ptr_driver_name
) {
12373 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
12374 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
12376 r
->driver_name
= NULL
;
12378 ndr
->flags
= _flags_save_string
;
12381 uint32_t _flags_save_string
= ndr
->flags
;
12382 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12383 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
12384 if (_ptr_architecture
) {
12385 NDR_PULL_ALLOC(ndr
, r
->architecture
);
12386 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
12388 r
->architecture
= NULL
;
12390 ndr
->flags
= _flags_save_string
;
12393 uint32_t _flags_save_string
= ndr
->flags
;
12394 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12395 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
12396 if (_ptr_driver_path
) {
12397 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
12398 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
12400 r
->driver_path
= NULL
;
12402 ndr
->flags
= _flags_save_string
;
12405 uint32_t _flags_save_string
= ndr
->flags
;
12406 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12407 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
12408 if (_ptr_data_file
) {
12409 NDR_PULL_ALLOC(ndr
, r
->data_file
);
12410 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
12412 r
->data_file
= NULL
;
12414 ndr
->flags
= _flags_save_string
;
12417 uint32_t _flags_save_string
= ndr
->flags
;
12418 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12419 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
12420 if (_ptr_config_file
) {
12421 NDR_PULL_ALLOC(ndr
, r
->config_file
);
12422 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
12424 r
->config_file
= NULL
;
12426 ndr
->flags
= _flags_save_string
;
12428 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr
, NDR_SCALARS
, &r
->driver_attributes
));
12429 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->config_version
));
12430 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->driver_version
));
12431 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
12433 if (ndr_flags
& NDR_BUFFERS
) {
12435 uint32_t _flags_save_string
= ndr
->flags
;
12436 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12437 if (r
->driver_name
) {
12438 uint32_t _relative_save_offset
;
12439 _relative_save_offset
= ndr
->offset
;
12440 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
12441 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12442 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
12443 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
12444 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
12445 ndr
->offset
= _relative_save_offset
;
12447 ndr
->flags
= _flags_save_string
;
12450 uint32_t _flags_save_string
= ndr
->flags
;
12451 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12452 if (r
->architecture
) {
12453 uint32_t _relative_save_offset
;
12454 _relative_save_offset
= ndr
->offset
;
12455 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12456 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12457 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12458 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12459 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12460 ndr
->offset
= _relative_save_offset
;
12462 ndr
->flags
= _flags_save_string
;
12465 uint32_t _flags_save_string
= ndr
->flags
;
12466 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12467 if (r
->driver_path
) {
12468 uint32_t _relative_save_offset
;
12469 _relative_save_offset
= ndr
->offset
;
12470 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12471 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12472 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12473 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12474 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12475 ndr
->offset
= _relative_save_offset
;
12477 ndr
->flags
= _flags_save_string
;
12480 uint32_t _flags_save_string
= ndr
->flags
;
12481 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12482 if (r
->data_file
) {
12483 uint32_t _relative_save_offset
;
12484 _relative_save_offset
= ndr
->offset
;
12485 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12486 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12487 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12488 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12489 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12490 ndr
->offset
= _relative_save_offset
;
12492 ndr
->flags
= _flags_save_string
;
12495 uint32_t _flags_save_string
= ndr
->flags
;
12496 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12497 if (r
->config_file
) {
12498 uint32_t _relative_save_offset
;
12499 _relative_save_offset
= ndr
->offset
;
12500 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12501 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12502 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12503 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12504 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12505 ndr
->offset
= _relative_save_offset
;
12507 ndr
->flags
= _flags_save_string
;
12510 return NDR_ERR_SUCCESS
;
12513 _PUBLIC_
void ndr_print_spoolss_DriverInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo5
*r
)
12515 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo5");
12517 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12518 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12520 if (r
->driver_name
) {
12521 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12524 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12526 if (r
->architecture
) {
12527 ndr_print_string(ndr
, "architecture", r
->architecture
);
12530 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12532 if (r
->driver_path
) {
12533 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12536 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12538 if (r
->data_file
) {
12539 ndr_print_string(ndr
, "data_file", r
->data_file
);
12542 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12544 if (r
->config_file
) {
12545 ndr_print_string(ndr
, "config_file", r
->config_file
);
12548 ndr_print_spoolss_DriverAttributes(ndr
, "driver_attributes", r
->driver_attributes
);
12549 ndr_print_uint32(ndr
, "config_version", r
->config_version
);
12550 ndr_print_uint32(ndr
, "driver_version", r
->driver_version
);
12554 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12556 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo5
, ic
);
12559 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo6
*r
)
12561 if (ndr_flags
& NDR_SCALARS
) {
12562 NDR_CHECK(ndr_push_align(ndr
, 8));
12563 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12565 uint32_t _flags_save_string
= ndr
->flags
;
12566 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12567 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12568 ndr
->flags
= _flags_save_string
;
12571 uint32_t _flags_save_string
= ndr
->flags
;
12572 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12573 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
12574 ndr
->flags
= _flags_save_string
;
12577 uint32_t _flags_save_string
= ndr
->flags
;
12578 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12579 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
12580 ndr
->flags
= _flags_save_string
;
12583 uint32_t _flags_save_string
= ndr
->flags
;
12584 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12585 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
12586 ndr
->flags
= _flags_save_string
;
12589 uint32_t _flags_save_string
= ndr
->flags
;
12590 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12591 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
12592 ndr
->flags
= _flags_save_string
;
12595 uint32_t _flags_save_string
= ndr
->flags
;
12596 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12597 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
12598 ndr
->flags
= _flags_save_string
;
12601 uint32_t _flags_save_string_array
= ndr
->flags
;
12602 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12603 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
12604 ndr
->flags
= _flags_save_string_array
;
12607 uint32_t _flags_save_string
= ndr
->flags
;
12608 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12609 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
12610 ndr
->flags
= _flags_save_string
;
12613 uint32_t _flags_save_string
= ndr
->flags
;
12614 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12615 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
12616 ndr
->flags
= _flags_save_string
;
12619 uint32_t _flags_save_string_array
= ndr
->flags
;
12620 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12621 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
12622 ndr
->flags
= _flags_save_string_array
;
12624 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
12625 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
12627 uint32_t _flags_save_string
= ndr
->flags
;
12628 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12629 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
12630 ndr
->flags
= _flags_save_string
;
12633 uint32_t _flags_save_string
= ndr
->flags
;
12634 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12635 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
12636 ndr
->flags
= _flags_save_string
;
12639 uint32_t _flags_save_string
= ndr
->flags
;
12640 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12641 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
12642 ndr
->flags
= _flags_save_string
;
12645 uint32_t _flags_save_string
= ndr
->flags
;
12646 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12647 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
12648 ndr
->flags
= _flags_save_string
;
12650 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
12652 if (ndr_flags
& NDR_BUFFERS
) {
12654 uint32_t _flags_save_string
= ndr
->flags
;
12655 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12656 if (r
->driver_name
) {
12657 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
12658 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12659 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
12661 ndr
->flags
= _flags_save_string
;
12664 uint32_t _flags_save_string
= ndr
->flags
;
12665 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12666 if (r
->architecture
) {
12667 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
12668 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12669 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
12671 ndr
->flags
= _flags_save_string
;
12674 uint32_t _flags_save_string
= ndr
->flags
;
12675 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12676 if (r
->driver_path
) {
12677 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
12678 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
12679 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
12681 ndr
->flags
= _flags_save_string
;
12684 uint32_t _flags_save_string
= ndr
->flags
;
12685 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12686 if (r
->data_file
) {
12687 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
12688 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
12689 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
12691 ndr
->flags
= _flags_save_string
;
12694 uint32_t _flags_save_string
= ndr
->flags
;
12695 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12696 if (r
->config_file
) {
12697 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
12698 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
12699 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
12701 ndr
->flags
= _flags_save_string
;
12704 uint32_t _flags_save_string
= ndr
->flags
;
12705 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12706 if (r
->help_file
) {
12707 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->help_file
));
12708 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
12709 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->help_file
));
12711 ndr
->flags
= _flags_save_string
;
12714 uint32_t _flags_save_string_array
= ndr
->flags
;
12715 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12716 if (r
->dependent_files
) {
12717 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dependent_files
));
12718 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
12719 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dependent_files
));
12721 ndr
->flags
= _flags_save_string_array
;
12724 uint32_t _flags_save_string
= ndr
->flags
;
12725 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12726 if (r
->monitor_name
) {
12727 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
12728 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
12729 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
12731 ndr
->flags
= _flags_save_string
;
12734 uint32_t _flags_save_string
= ndr
->flags
;
12735 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12736 if (r
->default_datatype
) {
12737 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->default_datatype
));
12738 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
12739 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->default_datatype
));
12741 ndr
->flags
= _flags_save_string
;
12744 uint32_t _flags_save_string_array
= ndr
->flags
;
12745 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12746 if (r
->previous_names
) {
12747 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->previous_names
));
12748 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
12749 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->previous_names
));
12751 ndr
->flags
= _flags_save_string_array
;
12754 uint32_t _flags_save_string
= ndr
->flags
;
12755 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12756 if (r
->manufacturer_name
) {
12757 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->manufacturer_name
));
12758 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
12759 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->manufacturer_name
));
12761 ndr
->flags
= _flags_save_string
;
12764 uint32_t _flags_save_string
= ndr
->flags
;
12765 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12766 if (r
->manufacturer_url
) {
12767 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->manufacturer_url
));
12768 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
12769 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->manufacturer_url
));
12771 ndr
->flags
= _flags_save_string
;
12774 uint32_t _flags_save_string
= ndr
->flags
;
12775 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12776 if (r
->hardware_id
) {
12777 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->hardware_id
));
12778 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
12779 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->hardware_id
));
12781 ndr
->flags
= _flags_save_string
;
12784 uint32_t _flags_save_string
= ndr
->flags
;
12785 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12787 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->provider
));
12788 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
12789 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->provider
));
12791 ndr
->flags
= _flags_save_string
;
12794 return NDR_ERR_SUCCESS
;
12797 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo6
*r
)
12799 uint32_t _ptr_driver_name
;
12800 TALLOC_CTX
*_mem_save_driver_name_0
;
12801 uint32_t _ptr_architecture
;
12802 TALLOC_CTX
*_mem_save_architecture_0
;
12803 uint32_t _ptr_driver_path
;
12804 TALLOC_CTX
*_mem_save_driver_path_0
;
12805 uint32_t _ptr_data_file
;
12806 TALLOC_CTX
*_mem_save_data_file_0
;
12807 uint32_t _ptr_config_file
;
12808 TALLOC_CTX
*_mem_save_config_file_0
;
12809 uint32_t _ptr_help_file
;
12810 TALLOC_CTX
*_mem_save_help_file_0
;
12811 uint32_t _ptr_dependent_files
;
12812 TALLOC_CTX
*_mem_save_dependent_files_0
;
12813 uint32_t _ptr_monitor_name
;
12814 TALLOC_CTX
*_mem_save_monitor_name_0
;
12815 uint32_t _ptr_default_datatype
;
12816 TALLOC_CTX
*_mem_save_default_datatype_0
;
12817 uint32_t _ptr_previous_names
;
12818 TALLOC_CTX
*_mem_save_previous_names_0
;
12819 uint32_t _ptr_manufacturer_name
;
12820 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
12821 uint32_t _ptr_manufacturer_url
;
12822 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
12823 uint32_t _ptr_hardware_id
;
12824 TALLOC_CTX
*_mem_save_hardware_id_0
;
12825 uint32_t _ptr_provider
;
12826 TALLOC_CTX
*_mem_save_provider_0
;
12827 if (ndr_flags
& NDR_SCALARS
) {
12828 NDR_CHECK(ndr_pull_align(ndr
, 8));
12829 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
12831 uint32_t _flags_save_string
= ndr
->flags
;
12832 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12833 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
12834 if (_ptr_driver_name
) {
12835 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
12836 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
12838 r
->driver_name
= NULL
;
12840 ndr
->flags
= _flags_save_string
;
12843 uint32_t _flags_save_string
= ndr
->flags
;
12844 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12845 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
12846 if (_ptr_architecture
) {
12847 NDR_PULL_ALLOC(ndr
, r
->architecture
);
12848 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
12850 r
->architecture
= NULL
;
12852 ndr
->flags
= _flags_save_string
;
12855 uint32_t _flags_save_string
= ndr
->flags
;
12856 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12857 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
12858 if (_ptr_driver_path
) {
12859 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
12860 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
12862 r
->driver_path
= NULL
;
12864 ndr
->flags
= _flags_save_string
;
12867 uint32_t _flags_save_string
= ndr
->flags
;
12868 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12869 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
12870 if (_ptr_data_file
) {
12871 NDR_PULL_ALLOC(ndr
, r
->data_file
);
12872 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
12874 r
->data_file
= NULL
;
12876 ndr
->flags
= _flags_save_string
;
12879 uint32_t _flags_save_string
= ndr
->flags
;
12880 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12881 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
12882 if (_ptr_config_file
) {
12883 NDR_PULL_ALLOC(ndr
, r
->config_file
);
12884 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
12886 r
->config_file
= NULL
;
12888 ndr
->flags
= _flags_save_string
;
12891 uint32_t _flags_save_string
= ndr
->flags
;
12892 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12893 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
12894 if (_ptr_help_file
) {
12895 NDR_PULL_ALLOC(ndr
, r
->help_file
);
12896 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
12898 r
->help_file
= NULL
;
12900 ndr
->flags
= _flags_save_string
;
12903 uint32_t _flags_save_string_array
= ndr
->flags
;
12904 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12905 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
12906 if (_ptr_dependent_files
) {
12907 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
12908 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
12910 r
->dependent_files
= NULL
;
12912 ndr
->flags
= _flags_save_string_array
;
12915 uint32_t _flags_save_string
= ndr
->flags
;
12916 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12917 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
12918 if (_ptr_monitor_name
) {
12919 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
12920 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
12922 r
->monitor_name
= NULL
;
12924 ndr
->flags
= _flags_save_string
;
12927 uint32_t _flags_save_string
= ndr
->flags
;
12928 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12929 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
12930 if (_ptr_default_datatype
) {
12931 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
12932 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
12934 r
->default_datatype
= NULL
;
12936 ndr
->flags
= _flags_save_string
;
12939 uint32_t _flags_save_string_array
= ndr
->flags
;
12940 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12941 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
12942 if (_ptr_previous_names
) {
12943 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
12944 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
12946 r
->previous_names
= NULL
;
12948 ndr
->flags
= _flags_save_string_array
;
12950 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
12951 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
12953 uint32_t _flags_save_string
= ndr
->flags
;
12954 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12955 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
12956 if (_ptr_manufacturer_name
) {
12957 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
12958 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
12960 r
->manufacturer_name
= NULL
;
12962 ndr
->flags
= _flags_save_string
;
12965 uint32_t _flags_save_string
= ndr
->flags
;
12966 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12967 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
12968 if (_ptr_manufacturer_url
) {
12969 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
12970 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
12972 r
->manufacturer_url
= NULL
;
12974 ndr
->flags
= _flags_save_string
;
12977 uint32_t _flags_save_string
= ndr
->flags
;
12978 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12979 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
12980 if (_ptr_hardware_id
) {
12981 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
12982 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
12984 r
->hardware_id
= NULL
;
12986 ndr
->flags
= _flags_save_string
;
12989 uint32_t _flags_save_string
= ndr
->flags
;
12990 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
12991 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
12992 if (_ptr_provider
) {
12993 NDR_PULL_ALLOC(ndr
, r
->provider
);
12994 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
12996 r
->provider
= NULL
;
12998 ndr
->flags
= _flags_save_string
;
13000 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
13002 if (ndr_flags
& NDR_BUFFERS
) {
13004 uint32_t _flags_save_string
= ndr
->flags
;
13005 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13006 if (r
->driver_name
) {
13007 uint32_t _relative_save_offset
;
13008 _relative_save_offset
= ndr
->offset
;
13009 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
13010 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13011 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
13012 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
13013 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
13014 ndr
->offset
= _relative_save_offset
;
13016 ndr
->flags
= _flags_save_string
;
13019 uint32_t _flags_save_string
= ndr
->flags
;
13020 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13021 if (r
->architecture
) {
13022 uint32_t _relative_save_offset
;
13023 _relative_save_offset
= ndr
->offset
;
13024 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
13025 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13026 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
13027 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
13028 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
13029 ndr
->offset
= _relative_save_offset
;
13031 ndr
->flags
= _flags_save_string
;
13034 uint32_t _flags_save_string
= ndr
->flags
;
13035 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13036 if (r
->driver_path
) {
13037 uint32_t _relative_save_offset
;
13038 _relative_save_offset
= ndr
->offset
;
13039 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
13040 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13041 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
13042 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
13043 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
13044 ndr
->offset
= _relative_save_offset
;
13046 ndr
->flags
= _flags_save_string
;
13049 uint32_t _flags_save_string
= ndr
->flags
;
13050 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13051 if (r
->data_file
) {
13052 uint32_t _relative_save_offset
;
13053 _relative_save_offset
= ndr
->offset
;
13054 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
13055 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13056 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
13057 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
13058 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
13059 ndr
->offset
= _relative_save_offset
;
13061 ndr
->flags
= _flags_save_string
;
13064 uint32_t _flags_save_string
= ndr
->flags
;
13065 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13066 if (r
->config_file
) {
13067 uint32_t _relative_save_offset
;
13068 _relative_save_offset
= ndr
->offset
;
13069 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
13070 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13071 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
13072 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
13073 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
13074 ndr
->offset
= _relative_save_offset
;
13076 ndr
->flags
= _flags_save_string
;
13079 uint32_t _flags_save_string
= ndr
->flags
;
13080 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13081 if (r
->help_file
) {
13082 uint32_t _relative_save_offset
;
13083 _relative_save_offset
= ndr
->offset
;
13084 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
13085 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13086 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
13087 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
13088 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
13089 ndr
->offset
= _relative_save_offset
;
13091 ndr
->flags
= _flags_save_string
;
13094 uint32_t _flags_save_string_array
= ndr
->flags
;
13095 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13096 if (r
->dependent_files
) {
13097 uint32_t _relative_save_offset
;
13098 _relative_save_offset
= ndr
->offset
;
13099 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
13100 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13101 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
13102 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
13103 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
13104 ndr
->offset
= _relative_save_offset
;
13106 ndr
->flags
= _flags_save_string_array
;
13109 uint32_t _flags_save_string
= ndr
->flags
;
13110 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13111 if (r
->monitor_name
) {
13112 uint32_t _relative_save_offset
;
13113 _relative_save_offset
= ndr
->offset
;
13114 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
13115 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13116 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
13117 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
13118 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
13119 ndr
->offset
= _relative_save_offset
;
13121 ndr
->flags
= _flags_save_string
;
13124 uint32_t _flags_save_string
= ndr
->flags
;
13125 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13126 if (r
->default_datatype
) {
13127 uint32_t _relative_save_offset
;
13128 _relative_save_offset
= ndr
->offset
;
13129 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
13130 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13131 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
13132 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
13133 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
13134 ndr
->offset
= _relative_save_offset
;
13136 ndr
->flags
= _flags_save_string
;
13139 uint32_t _flags_save_string_array
= ndr
->flags
;
13140 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13141 if (r
->previous_names
) {
13142 uint32_t _relative_save_offset
;
13143 _relative_save_offset
= ndr
->offset
;
13144 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
13145 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13146 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
13147 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
13148 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
13149 ndr
->offset
= _relative_save_offset
;
13151 ndr
->flags
= _flags_save_string_array
;
13154 uint32_t _flags_save_string
= ndr
->flags
;
13155 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13156 if (r
->manufacturer_name
) {
13157 uint32_t _relative_save_offset
;
13158 _relative_save_offset
= ndr
->offset
;
13159 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
13160 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13161 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
13162 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
13163 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
13164 ndr
->offset
= _relative_save_offset
;
13166 ndr
->flags
= _flags_save_string
;
13169 uint32_t _flags_save_string
= ndr
->flags
;
13170 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13171 if (r
->manufacturer_url
) {
13172 uint32_t _relative_save_offset
;
13173 _relative_save_offset
= ndr
->offset
;
13174 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
13175 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13176 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
13177 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
13178 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
13179 ndr
->offset
= _relative_save_offset
;
13181 ndr
->flags
= _flags_save_string
;
13184 uint32_t _flags_save_string
= ndr
->flags
;
13185 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13186 if (r
->hardware_id
) {
13187 uint32_t _relative_save_offset
;
13188 _relative_save_offset
= ndr
->offset
;
13189 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
13190 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13191 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
13192 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
13193 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
13194 ndr
->offset
= _relative_save_offset
;
13196 ndr
->flags
= _flags_save_string
;
13199 uint32_t _flags_save_string
= ndr
->flags
;
13200 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13202 uint32_t _relative_save_offset
;
13203 _relative_save_offset
= ndr
->offset
;
13204 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
13205 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13206 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
13207 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
13208 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
13209 ndr
->offset
= _relative_save_offset
;
13211 ndr
->flags
= _flags_save_string
;
13214 return NDR_ERR_SUCCESS
;
13217 _PUBLIC_
void ndr_print_spoolss_DriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo6
*r
)
13219 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo6");
13221 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13222 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13224 if (r
->driver_name
) {
13225 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13228 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13230 if (r
->architecture
) {
13231 ndr_print_string(ndr
, "architecture", r
->architecture
);
13234 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
13236 if (r
->driver_path
) {
13237 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
13240 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
13242 if (r
->data_file
) {
13243 ndr_print_string(ndr
, "data_file", r
->data_file
);
13246 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
13248 if (r
->config_file
) {
13249 ndr_print_string(ndr
, "config_file", r
->config_file
);
13252 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
13254 if (r
->help_file
) {
13255 ndr_print_string(ndr
, "help_file", r
->help_file
);
13258 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
13260 if (r
->dependent_files
) {
13261 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
13264 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13266 if (r
->monitor_name
) {
13267 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
13270 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
13272 if (r
->default_datatype
) {
13273 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
13276 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
13278 if (r
->previous_names
) {
13279 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
13282 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
13283 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
13284 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
13286 if (r
->manufacturer_name
) {
13287 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
13290 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
13292 if (r
->manufacturer_url
) {
13293 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
13296 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
13298 if (r
->hardware_id
) {
13299 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
13302 ndr_print_ptr(ndr
, "provider", r
->provider
);
13305 ndr_print_string(ndr
, "provider", r
->provider
);
13311 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13313 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo6
, ic
);
13316 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo7
*r
)
13318 if (ndr_flags
& NDR_SCALARS
) {
13319 NDR_CHECK(ndr_push_align(ndr
, 5));
13320 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
13321 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
13323 uint32_t _flags_save_string
= ndr
->flags
;
13324 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13325 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
13326 ndr
->flags
= _flags_save_string
;
13329 uint32_t _flags_save_string
= ndr
->flags
;
13330 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13331 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->inf_name
));
13332 ndr
->flags
= _flags_save_string
;
13335 uint32_t _flags_save_string
= ndr
->flags
;
13336 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13337 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->install_source_root
));
13338 ndr
->flags
= _flags_save_string
;
13340 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
13342 if (ndr_flags
& NDR_BUFFERS
) {
13344 uint32_t _flags_save_string
= ndr
->flags
;
13345 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13346 if (r
->driver_name
) {
13347 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
13348 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
13349 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
13351 ndr
->flags
= _flags_save_string
;
13354 uint32_t _flags_save_string
= ndr
->flags
;
13355 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13357 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->inf_name
));
13358 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->inf_name
));
13359 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->inf_name
));
13361 ndr
->flags
= _flags_save_string
;
13364 uint32_t _flags_save_string
= ndr
->flags
;
13365 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13366 if (r
->install_source_root
) {
13367 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->install_source_root
));
13368 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->install_source_root
));
13369 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->install_source_root
));
13371 ndr
->flags
= _flags_save_string
;
13374 return NDR_ERR_SUCCESS
;
13377 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo7
*r
)
13379 uint32_t _ptr_driver_name
;
13380 TALLOC_CTX
*_mem_save_driver_name_0
;
13381 uint32_t _ptr_inf_name
;
13382 TALLOC_CTX
*_mem_save_inf_name_0
;
13383 uint32_t _ptr_install_source_root
;
13384 TALLOC_CTX
*_mem_save_install_source_root_0
;
13385 if (ndr_flags
& NDR_SCALARS
) {
13386 NDR_CHECK(ndr_pull_align(ndr
, 5));
13387 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
13388 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
13390 uint32_t _flags_save_string
= ndr
->flags
;
13391 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13392 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
13393 if (_ptr_driver_name
) {
13394 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
13395 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
13397 r
->driver_name
= NULL
;
13399 ndr
->flags
= _flags_save_string
;
13402 uint32_t _flags_save_string
= ndr
->flags
;
13403 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13404 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_name
));
13405 if (_ptr_inf_name
) {
13406 NDR_PULL_ALLOC(ndr
, r
->inf_name
);
13407 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->inf_name
, _ptr_inf_name
));
13409 r
->inf_name
= NULL
;
13411 ndr
->flags
= _flags_save_string
;
13414 uint32_t _flags_save_string
= ndr
->flags
;
13415 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13416 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_install_source_root
));
13417 if (_ptr_install_source_root
) {
13418 NDR_PULL_ALLOC(ndr
, r
->install_source_root
);
13419 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->install_source_root
, _ptr_install_source_root
));
13421 r
->install_source_root
= NULL
;
13423 ndr
->flags
= _flags_save_string
;
13425 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
13427 if (ndr_flags
& NDR_BUFFERS
) {
13429 uint32_t _flags_save_string
= ndr
->flags
;
13430 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13431 if (r
->driver_name
) {
13432 uint32_t _relative_save_offset
;
13433 _relative_save_offset
= ndr
->offset
;
13434 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
13435 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13436 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
13437 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
13438 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
13439 ndr
->offset
= _relative_save_offset
;
13441 ndr
->flags
= _flags_save_string
;
13444 uint32_t _flags_save_string
= ndr
->flags
;
13445 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13447 uint32_t _relative_save_offset
;
13448 _relative_save_offset
= ndr
->offset
;
13449 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->inf_name
));
13450 _mem_save_inf_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13451 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_name
, 0);
13452 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->inf_name
));
13453 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_name_0
, 0);
13454 ndr
->offset
= _relative_save_offset
;
13456 ndr
->flags
= _flags_save_string
;
13459 uint32_t _flags_save_string
= ndr
->flags
;
13460 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13461 if (r
->install_source_root
) {
13462 uint32_t _relative_save_offset
;
13463 _relative_save_offset
= ndr
->offset
;
13464 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->install_source_root
));
13465 _mem_save_install_source_root_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13466 NDR_PULL_SET_MEM_CTX(ndr
, r
->install_source_root
, 0);
13467 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->install_source_root
));
13468 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_install_source_root_0
, 0);
13469 ndr
->offset
= _relative_save_offset
;
13471 ndr
->flags
= _flags_save_string
;
13474 return NDR_ERR_SUCCESS
;
13477 _PUBLIC_
void ndr_print_spoolss_DriverInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo7
*r
)
13479 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo7");
13481 ndr_print_uint32(ndr
, "size", r
->size
);
13482 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13483 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13485 if (r
->driver_name
) {
13486 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13489 ndr_print_ptr(ndr
, "inf_name", r
->inf_name
);
13492 ndr_print_string(ndr
, "inf_name", r
->inf_name
);
13495 ndr_print_ptr(ndr
, "install_source_root", r
->install_source_root
);
13497 if (r
->install_source_root
) {
13498 ndr_print_string(ndr
, "install_source_root", r
->install_source_root
);
13504 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo7(const struct spoolss_DriverInfo7
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13506 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo7
, ic
);
13509 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo8
*r
)
13511 if (ndr_flags
& NDR_SCALARS
) {
13512 NDR_CHECK(ndr_push_align(ndr
, 8));
13513 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
13515 uint32_t _flags_save_string
= ndr
->flags
;
13516 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13517 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
13518 ndr
->flags
= _flags_save_string
;
13521 uint32_t _flags_save_string
= ndr
->flags
;
13522 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13523 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
13524 ndr
->flags
= _flags_save_string
;
13527 uint32_t _flags_save_string
= ndr
->flags
;
13528 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13529 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
13530 ndr
->flags
= _flags_save_string
;
13533 uint32_t _flags_save_string
= ndr
->flags
;
13534 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13535 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
13536 ndr
->flags
= _flags_save_string
;
13539 uint32_t _flags_save_string
= ndr
->flags
;
13540 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13541 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
13542 ndr
->flags
= _flags_save_string
;
13545 uint32_t _flags_save_string
= ndr
->flags
;
13546 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13547 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
13548 ndr
->flags
= _flags_save_string
;
13551 uint32_t _flags_save_string_array
= ndr
->flags
;
13552 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13553 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
13554 ndr
->flags
= _flags_save_string_array
;
13557 uint32_t _flags_save_string
= ndr
->flags
;
13558 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13559 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
13560 ndr
->flags
= _flags_save_string
;
13563 uint32_t _flags_save_string
= ndr
->flags
;
13564 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13565 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
13566 ndr
->flags
= _flags_save_string
;
13569 uint32_t _flags_save_string_array
= ndr
->flags
;
13570 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13571 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
13572 ndr
->flags
= _flags_save_string_array
;
13574 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
13575 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
13577 uint32_t _flags_save_string
= ndr
->flags
;
13578 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13579 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
13580 ndr
->flags
= _flags_save_string
;
13583 uint32_t _flags_save_string
= ndr
->flags
;
13584 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13585 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
13586 ndr
->flags
= _flags_save_string
;
13589 uint32_t _flags_save_string
= ndr
->flags
;
13590 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13591 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
13592 ndr
->flags
= _flags_save_string
;
13595 uint32_t _flags_save_string
= ndr
->flags
;
13596 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13597 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
13598 ndr
->flags
= _flags_save_string
;
13601 uint32_t _flags_save_string
= ndr
->flags
;
13602 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13603 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
13604 ndr
->flags
= _flags_save_string
;
13607 uint32_t _flags_save_string
= ndr
->flags
;
13608 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13609 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->vendor_setup
));
13610 ndr
->flags
= _flags_save_string
;
13613 uint32_t _flags_save_string_array
= ndr
->flags
;
13614 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13615 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->color_profiles
));
13616 ndr
->flags
= _flags_save_string_array
;
13619 uint32_t _flags_save_string
= ndr
->flags
;
13620 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13621 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->inf_path
));
13622 ndr
->flags
= _flags_save_string
;
13624 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
13626 uint32_t _flags_save_string_array
= ndr
->flags
;
13627 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13628 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->core_driver_dependencies
));
13629 ndr
->flags
= _flags_save_string_array
;
13631 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
13632 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
13633 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
13635 if (ndr_flags
& NDR_BUFFERS
) {
13637 uint32_t _flags_save_string
= ndr
->flags
;
13638 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13639 if (r
->driver_name
) {
13640 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
13641 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
13642 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
13644 ndr
->flags
= _flags_save_string
;
13647 uint32_t _flags_save_string
= ndr
->flags
;
13648 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13649 if (r
->architecture
) {
13650 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
13651 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
13652 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
13654 ndr
->flags
= _flags_save_string
;
13657 uint32_t _flags_save_string
= ndr
->flags
;
13658 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13659 if (r
->driver_path
) {
13660 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
13661 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
13662 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
13664 ndr
->flags
= _flags_save_string
;
13667 uint32_t _flags_save_string
= ndr
->flags
;
13668 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13669 if (r
->data_file
) {
13670 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
13671 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
13672 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
13674 ndr
->flags
= _flags_save_string
;
13677 uint32_t _flags_save_string
= ndr
->flags
;
13678 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13679 if (r
->config_file
) {
13680 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
13681 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
13682 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
13684 ndr
->flags
= _flags_save_string
;
13687 uint32_t _flags_save_string
= ndr
->flags
;
13688 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13689 if (r
->help_file
) {
13690 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->help_file
));
13691 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
13692 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->help_file
));
13694 ndr
->flags
= _flags_save_string
;
13697 uint32_t _flags_save_string_array
= ndr
->flags
;
13698 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13699 if (r
->dependent_files
) {
13700 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dependent_files
));
13701 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
13702 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dependent_files
));
13704 ndr
->flags
= _flags_save_string_array
;
13707 uint32_t _flags_save_string
= ndr
->flags
;
13708 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13709 if (r
->monitor_name
) {
13710 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
13711 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
13712 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
13714 ndr
->flags
= _flags_save_string
;
13717 uint32_t _flags_save_string
= ndr
->flags
;
13718 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13719 if (r
->default_datatype
) {
13720 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->default_datatype
));
13721 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
13722 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->default_datatype
));
13724 ndr
->flags
= _flags_save_string
;
13727 uint32_t _flags_save_string_array
= ndr
->flags
;
13728 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13729 if (r
->previous_names
) {
13730 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->previous_names
));
13731 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
13732 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->previous_names
));
13734 ndr
->flags
= _flags_save_string_array
;
13737 uint32_t _flags_save_string
= ndr
->flags
;
13738 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13739 if (r
->manufacturer_name
) {
13740 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->manufacturer_name
));
13741 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
13742 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->manufacturer_name
));
13744 ndr
->flags
= _flags_save_string
;
13747 uint32_t _flags_save_string
= ndr
->flags
;
13748 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13749 if (r
->manufacturer_url
) {
13750 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->manufacturer_url
));
13751 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
13752 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->manufacturer_url
));
13754 ndr
->flags
= _flags_save_string
;
13757 uint32_t _flags_save_string
= ndr
->flags
;
13758 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13759 if (r
->hardware_id
) {
13760 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->hardware_id
));
13761 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
13762 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->hardware_id
));
13764 ndr
->flags
= _flags_save_string
;
13767 uint32_t _flags_save_string
= ndr
->flags
;
13768 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13770 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->provider
));
13771 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
13772 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->provider
));
13774 ndr
->flags
= _flags_save_string
;
13777 uint32_t _flags_save_string
= ndr
->flags
;
13778 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13779 if (r
->print_processor
) {
13780 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->print_processor
));
13781 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
13782 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->print_processor
));
13784 ndr
->flags
= _flags_save_string
;
13787 uint32_t _flags_save_string
= ndr
->flags
;
13788 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13789 if (r
->vendor_setup
) {
13790 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->vendor_setup
));
13791 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->vendor_setup
));
13792 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->vendor_setup
));
13794 ndr
->flags
= _flags_save_string
;
13797 uint32_t _flags_save_string_array
= ndr
->flags
;
13798 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13799 if (r
->color_profiles
) {
13800 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->color_profiles
));
13801 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->color_profiles
));
13802 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->color_profiles
));
13804 ndr
->flags
= _flags_save_string_array
;
13807 uint32_t _flags_save_string
= ndr
->flags
;
13808 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13810 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->inf_path
));
13811 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->inf_path
));
13812 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->inf_path
));
13814 ndr
->flags
= _flags_save_string
;
13817 uint32_t _flags_save_string_array
= ndr
->flags
;
13818 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13819 if (r
->core_driver_dependencies
) {
13820 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->core_driver_dependencies
));
13821 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
13822 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->core_driver_dependencies
));
13824 ndr
->flags
= _flags_save_string_array
;
13827 return NDR_ERR_SUCCESS
;
13830 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo8
*r
)
13832 uint32_t _ptr_driver_name
;
13833 TALLOC_CTX
*_mem_save_driver_name_0
;
13834 uint32_t _ptr_architecture
;
13835 TALLOC_CTX
*_mem_save_architecture_0
;
13836 uint32_t _ptr_driver_path
;
13837 TALLOC_CTX
*_mem_save_driver_path_0
;
13838 uint32_t _ptr_data_file
;
13839 TALLOC_CTX
*_mem_save_data_file_0
;
13840 uint32_t _ptr_config_file
;
13841 TALLOC_CTX
*_mem_save_config_file_0
;
13842 uint32_t _ptr_help_file
;
13843 TALLOC_CTX
*_mem_save_help_file_0
;
13844 uint32_t _ptr_dependent_files
;
13845 TALLOC_CTX
*_mem_save_dependent_files_0
;
13846 uint32_t _ptr_monitor_name
;
13847 TALLOC_CTX
*_mem_save_monitor_name_0
;
13848 uint32_t _ptr_default_datatype
;
13849 TALLOC_CTX
*_mem_save_default_datatype_0
;
13850 uint32_t _ptr_previous_names
;
13851 TALLOC_CTX
*_mem_save_previous_names_0
;
13852 uint32_t _ptr_manufacturer_name
;
13853 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
13854 uint32_t _ptr_manufacturer_url
;
13855 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
13856 uint32_t _ptr_hardware_id
;
13857 TALLOC_CTX
*_mem_save_hardware_id_0
;
13858 uint32_t _ptr_provider
;
13859 TALLOC_CTX
*_mem_save_provider_0
;
13860 uint32_t _ptr_print_processor
;
13861 TALLOC_CTX
*_mem_save_print_processor_0
;
13862 uint32_t _ptr_vendor_setup
;
13863 TALLOC_CTX
*_mem_save_vendor_setup_0
;
13864 uint32_t _ptr_color_profiles
;
13865 TALLOC_CTX
*_mem_save_color_profiles_0
;
13866 uint32_t _ptr_inf_path
;
13867 TALLOC_CTX
*_mem_save_inf_path_0
;
13868 uint32_t _ptr_core_driver_dependencies
;
13869 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
13870 if (ndr_flags
& NDR_SCALARS
) {
13871 NDR_CHECK(ndr_pull_align(ndr
, 8));
13872 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
13874 uint32_t _flags_save_string
= ndr
->flags
;
13875 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13876 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
13877 if (_ptr_driver_name
) {
13878 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
13879 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
13881 r
->driver_name
= NULL
;
13883 ndr
->flags
= _flags_save_string
;
13886 uint32_t _flags_save_string
= ndr
->flags
;
13887 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13888 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
13889 if (_ptr_architecture
) {
13890 NDR_PULL_ALLOC(ndr
, r
->architecture
);
13891 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
13893 r
->architecture
= NULL
;
13895 ndr
->flags
= _flags_save_string
;
13898 uint32_t _flags_save_string
= ndr
->flags
;
13899 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13900 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
13901 if (_ptr_driver_path
) {
13902 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
13903 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
13905 r
->driver_path
= NULL
;
13907 ndr
->flags
= _flags_save_string
;
13910 uint32_t _flags_save_string
= ndr
->flags
;
13911 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13912 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
13913 if (_ptr_data_file
) {
13914 NDR_PULL_ALLOC(ndr
, r
->data_file
);
13915 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
13917 r
->data_file
= NULL
;
13919 ndr
->flags
= _flags_save_string
;
13922 uint32_t _flags_save_string
= ndr
->flags
;
13923 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13924 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
13925 if (_ptr_config_file
) {
13926 NDR_PULL_ALLOC(ndr
, r
->config_file
);
13927 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
13929 r
->config_file
= NULL
;
13931 ndr
->flags
= _flags_save_string
;
13934 uint32_t _flags_save_string
= ndr
->flags
;
13935 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13936 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
13937 if (_ptr_help_file
) {
13938 NDR_PULL_ALLOC(ndr
, r
->help_file
);
13939 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
13941 r
->help_file
= NULL
;
13943 ndr
->flags
= _flags_save_string
;
13946 uint32_t _flags_save_string_array
= ndr
->flags
;
13947 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13948 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
13949 if (_ptr_dependent_files
) {
13950 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
13951 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
13953 r
->dependent_files
= NULL
;
13955 ndr
->flags
= _flags_save_string_array
;
13958 uint32_t _flags_save_string
= ndr
->flags
;
13959 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13960 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
13961 if (_ptr_monitor_name
) {
13962 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
13963 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
13965 r
->monitor_name
= NULL
;
13967 ndr
->flags
= _flags_save_string
;
13970 uint32_t _flags_save_string
= ndr
->flags
;
13971 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13972 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
13973 if (_ptr_default_datatype
) {
13974 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
13975 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
13977 r
->default_datatype
= NULL
;
13979 ndr
->flags
= _flags_save_string
;
13982 uint32_t _flags_save_string_array
= ndr
->flags
;
13983 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13984 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
13985 if (_ptr_previous_names
) {
13986 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
13987 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
13989 r
->previous_names
= NULL
;
13991 ndr
->flags
= _flags_save_string_array
;
13993 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
13994 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
13996 uint32_t _flags_save_string
= ndr
->flags
;
13997 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
13998 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
13999 if (_ptr_manufacturer_name
) {
14000 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
14001 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
14003 r
->manufacturer_name
= NULL
;
14005 ndr
->flags
= _flags_save_string
;
14008 uint32_t _flags_save_string
= ndr
->flags
;
14009 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14010 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
14011 if (_ptr_manufacturer_url
) {
14012 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
14013 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
14015 r
->manufacturer_url
= NULL
;
14017 ndr
->flags
= _flags_save_string
;
14020 uint32_t _flags_save_string
= ndr
->flags
;
14021 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14022 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
14023 if (_ptr_hardware_id
) {
14024 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
14025 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
14027 r
->hardware_id
= NULL
;
14029 ndr
->flags
= _flags_save_string
;
14032 uint32_t _flags_save_string
= ndr
->flags
;
14033 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14034 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
14035 if (_ptr_provider
) {
14036 NDR_PULL_ALLOC(ndr
, r
->provider
);
14037 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
14039 r
->provider
= NULL
;
14041 ndr
->flags
= _flags_save_string
;
14044 uint32_t _flags_save_string
= ndr
->flags
;
14045 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14046 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
14047 if (_ptr_print_processor
) {
14048 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
14049 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
14051 r
->print_processor
= NULL
;
14053 ndr
->flags
= _flags_save_string
;
14056 uint32_t _flags_save_string
= ndr
->flags
;
14057 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14058 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
14059 if (_ptr_vendor_setup
) {
14060 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
14061 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->vendor_setup
, _ptr_vendor_setup
));
14063 r
->vendor_setup
= NULL
;
14065 ndr
->flags
= _flags_save_string
;
14068 uint32_t _flags_save_string_array
= ndr
->flags
;
14069 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14070 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
14071 if (_ptr_color_profiles
) {
14072 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
14073 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->color_profiles
, _ptr_color_profiles
));
14075 r
->color_profiles
= NULL
;
14077 ndr
->flags
= _flags_save_string_array
;
14080 uint32_t _flags_save_string
= ndr
->flags
;
14081 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14082 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
14083 if (_ptr_inf_path
) {
14084 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
14085 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->inf_path
, _ptr_inf_path
));
14087 r
->inf_path
= NULL
;
14089 ndr
->flags
= _flags_save_string
;
14091 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
14093 uint32_t _flags_save_string_array
= ndr
->flags
;
14094 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14095 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
14096 if (_ptr_core_driver_dependencies
) {
14097 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
14098 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->core_driver_dependencies
, _ptr_core_driver_dependencies
));
14100 r
->core_driver_dependencies
= NULL
;
14102 ndr
->flags
= _flags_save_string_array
;
14104 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
14105 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
14106 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
14108 if (ndr_flags
& NDR_BUFFERS
) {
14110 uint32_t _flags_save_string
= ndr
->flags
;
14111 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14112 if (r
->driver_name
) {
14113 uint32_t _relative_save_offset
;
14114 _relative_save_offset
= ndr
->offset
;
14115 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
14116 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14117 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
14118 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
14119 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
14120 ndr
->offset
= _relative_save_offset
;
14122 ndr
->flags
= _flags_save_string
;
14125 uint32_t _flags_save_string
= ndr
->flags
;
14126 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14127 if (r
->architecture
) {
14128 uint32_t _relative_save_offset
;
14129 _relative_save_offset
= ndr
->offset
;
14130 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
14131 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14132 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
14133 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
14134 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
14135 ndr
->offset
= _relative_save_offset
;
14137 ndr
->flags
= _flags_save_string
;
14140 uint32_t _flags_save_string
= ndr
->flags
;
14141 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14142 if (r
->driver_path
) {
14143 uint32_t _relative_save_offset
;
14144 _relative_save_offset
= ndr
->offset
;
14145 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
14146 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14147 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
14148 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
14149 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
14150 ndr
->offset
= _relative_save_offset
;
14152 ndr
->flags
= _flags_save_string
;
14155 uint32_t _flags_save_string
= ndr
->flags
;
14156 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14157 if (r
->data_file
) {
14158 uint32_t _relative_save_offset
;
14159 _relative_save_offset
= ndr
->offset
;
14160 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
14161 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14162 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
14163 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
14164 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
14165 ndr
->offset
= _relative_save_offset
;
14167 ndr
->flags
= _flags_save_string
;
14170 uint32_t _flags_save_string
= ndr
->flags
;
14171 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14172 if (r
->config_file
) {
14173 uint32_t _relative_save_offset
;
14174 _relative_save_offset
= ndr
->offset
;
14175 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
14176 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14177 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
14178 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
14179 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
14180 ndr
->offset
= _relative_save_offset
;
14182 ndr
->flags
= _flags_save_string
;
14185 uint32_t _flags_save_string
= ndr
->flags
;
14186 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14187 if (r
->help_file
) {
14188 uint32_t _relative_save_offset
;
14189 _relative_save_offset
= ndr
->offset
;
14190 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
14191 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14192 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
14193 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
14194 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
14195 ndr
->offset
= _relative_save_offset
;
14197 ndr
->flags
= _flags_save_string
;
14200 uint32_t _flags_save_string_array
= ndr
->flags
;
14201 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14202 if (r
->dependent_files
) {
14203 uint32_t _relative_save_offset
;
14204 _relative_save_offset
= ndr
->offset
;
14205 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
14206 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14207 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
14208 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
14209 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
14210 ndr
->offset
= _relative_save_offset
;
14212 ndr
->flags
= _flags_save_string_array
;
14215 uint32_t _flags_save_string
= ndr
->flags
;
14216 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14217 if (r
->monitor_name
) {
14218 uint32_t _relative_save_offset
;
14219 _relative_save_offset
= ndr
->offset
;
14220 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
14221 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14222 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
14223 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
14224 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
14225 ndr
->offset
= _relative_save_offset
;
14227 ndr
->flags
= _flags_save_string
;
14230 uint32_t _flags_save_string
= ndr
->flags
;
14231 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14232 if (r
->default_datatype
) {
14233 uint32_t _relative_save_offset
;
14234 _relative_save_offset
= ndr
->offset
;
14235 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
14236 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14237 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
14238 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
14239 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
14240 ndr
->offset
= _relative_save_offset
;
14242 ndr
->flags
= _flags_save_string
;
14245 uint32_t _flags_save_string_array
= ndr
->flags
;
14246 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14247 if (r
->previous_names
) {
14248 uint32_t _relative_save_offset
;
14249 _relative_save_offset
= ndr
->offset
;
14250 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
14251 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14252 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
14253 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
14254 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
14255 ndr
->offset
= _relative_save_offset
;
14257 ndr
->flags
= _flags_save_string_array
;
14260 uint32_t _flags_save_string
= ndr
->flags
;
14261 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14262 if (r
->manufacturer_name
) {
14263 uint32_t _relative_save_offset
;
14264 _relative_save_offset
= ndr
->offset
;
14265 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
14266 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14267 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
14268 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
14269 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
14270 ndr
->offset
= _relative_save_offset
;
14272 ndr
->flags
= _flags_save_string
;
14275 uint32_t _flags_save_string
= ndr
->flags
;
14276 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14277 if (r
->manufacturer_url
) {
14278 uint32_t _relative_save_offset
;
14279 _relative_save_offset
= ndr
->offset
;
14280 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
14281 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14282 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
14283 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
14284 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
14285 ndr
->offset
= _relative_save_offset
;
14287 ndr
->flags
= _flags_save_string
;
14290 uint32_t _flags_save_string
= ndr
->flags
;
14291 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14292 if (r
->hardware_id
) {
14293 uint32_t _relative_save_offset
;
14294 _relative_save_offset
= ndr
->offset
;
14295 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
14296 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14297 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
14298 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
14299 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
14300 ndr
->offset
= _relative_save_offset
;
14302 ndr
->flags
= _flags_save_string
;
14305 uint32_t _flags_save_string
= ndr
->flags
;
14306 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14308 uint32_t _relative_save_offset
;
14309 _relative_save_offset
= ndr
->offset
;
14310 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
14311 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14312 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
14313 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
14314 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
14315 ndr
->offset
= _relative_save_offset
;
14317 ndr
->flags
= _flags_save_string
;
14320 uint32_t _flags_save_string
= ndr
->flags
;
14321 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14322 if (r
->print_processor
) {
14323 uint32_t _relative_save_offset
;
14324 _relative_save_offset
= ndr
->offset
;
14325 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
14326 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14327 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
14328 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
14329 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
14330 ndr
->offset
= _relative_save_offset
;
14332 ndr
->flags
= _flags_save_string
;
14335 uint32_t _flags_save_string
= ndr
->flags
;
14336 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14337 if (r
->vendor_setup
) {
14338 uint32_t _relative_save_offset
;
14339 _relative_save_offset
= ndr
->offset
;
14340 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->vendor_setup
));
14341 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14342 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
14343 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->vendor_setup
));
14344 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
14345 ndr
->offset
= _relative_save_offset
;
14347 ndr
->flags
= _flags_save_string
;
14350 uint32_t _flags_save_string_array
= ndr
->flags
;
14351 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14352 if (r
->color_profiles
) {
14353 uint32_t _relative_save_offset
;
14354 _relative_save_offset
= ndr
->offset
;
14355 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->color_profiles
));
14356 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14357 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
14358 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->color_profiles
));
14359 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
14360 ndr
->offset
= _relative_save_offset
;
14362 ndr
->flags
= _flags_save_string_array
;
14365 uint32_t _flags_save_string
= ndr
->flags
;
14366 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14368 uint32_t _relative_save_offset
;
14369 _relative_save_offset
= ndr
->offset
;
14370 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->inf_path
));
14371 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14372 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
14373 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->inf_path
));
14374 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
14375 ndr
->offset
= _relative_save_offset
;
14377 ndr
->flags
= _flags_save_string
;
14380 uint32_t _flags_save_string_array
= ndr
->flags
;
14381 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14382 if (r
->core_driver_dependencies
) {
14383 uint32_t _relative_save_offset
;
14384 _relative_save_offset
= ndr
->offset
;
14385 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->core_driver_dependencies
));
14386 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14387 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
14388 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->core_driver_dependencies
));
14389 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
14390 ndr
->offset
= _relative_save_offset
;
14392 ndr
->flags
= _flags_save_string_array
;
14395 return NDR_ERR_SUCCESS
;
14398 _PUBLIC_
void ndr_print_spoolss_DriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo8
*r
)
14400 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo8");
14402 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
14403 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
14405 if (r
->driver_name
) {
14406 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
14409 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
14411 if (r
->architecture
) {
14412 ndr_print_string(ndr
, "architecture", r
->architecture
);
14415 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
14417 if (r
->driver_path
) {
14418 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
14421 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
14423 if (r
->data_file
) {
14424 ndr_print_string(ndr
, "data_file", r
->data_file
);
14427 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
14429 if (r
->config_file
) {
14430 ndr_print_string(ndr
, "config_file", r
->config_file
);
14433 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
14435 if (r
->help_file
) {
14436 ndr_print_string(ndr
, "help_file", r
->help_file
);
14439 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
14441 if (r
->dependent_files
) {
14442 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
14445 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
14447 if (r
->monitor_name
) {
14448 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
14451 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
14453 if (r
->default_datatype
) {
14454 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
14457 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
14459 if (r
->previous_names
) {
14460 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
14463 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
14464 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
14465 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
14467 if (r
->manufacturer_name
) {
14468 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
14471 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
14473 if (r
->manufacturer_url
) {
14474 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
14477 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
14479 if (r
->hardware_id
) {
14480 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
14483 ndr_print_ptr(ndr
, "provider", r
->provider
);
14486 ndr_print_string(ndr
, "provider", r
->provider
);
14489 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
14491 if (r
->print_processor
) {
14492 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
14495 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
14497 if (r
->vendor_setup
) {
14498 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
14501 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
14503 if (r
->color_profiles
) {
14504 ndr_print_string_array(ndr
, "color_profiles", r
->color_profiles
);
14507 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
14510 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
14513 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
14514 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
14516 if (r
->core_driver_dependencies
) {
14517 ndr_print_string_array(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
14520 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
14521 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
14525 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14527 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo8
, ic
);
14530 static enum ndr_err_code
ndr_push_spoolss_DriverFileType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverFileType r
)
14532 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
14533 return NDR_ERR_SUCCESS
;
14536 static enum ndr_err_code
ndr_pull_spoolss_DriverFileType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverFileType
*r
)
14539 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
14541 return NDR_ERR_SUCCESS
;
14544 _PUBLIC_
void ndr_print_spoolss_DriverFileType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverFileType r
)
14546 const char *val
= NULL
;
14549 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING
: val
= "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
14550 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION
: val
= "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
14551 case SPOOLSS_DRIVER_FILE_TYPE_DATA
: val
= "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
14552 case SPOOLSS_DRIVER_FILE_TYPE_HELP
: val
= "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
14553 case SPOOLSS_DRIVER_FILE_TYPE_OTHER
: val
= "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
14555 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
14558 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverFileInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverFileInfo
*r
)
14560 if (ndr_flags
& NDR_SCALARS
) {
14561 NDR_CHECK(ndr_push_align(ndr
, 5));
14563 uint32_t _flags_save_string
= ndr
->flags
;
14564 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14565 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->file_name
));
14566 ndr
->flags
= _flags_save_string
;
14568 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr
, NDR_SCALARS
, r
->file_type
));
14569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->file_version
));
14570 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
14572 if (ndr_flags
& NDR_BUFFERS
) {
14574 uint32_t _flags_save_string
= ndr
->flags
;
14575 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14576 if (r
->file_name
) {
14577 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->file_name
));
14578 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->file_name
));
14579 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->file_name
));
14581 ndr
->flags
= _flags_save_string
;
14584 return NDR_ERR_SUCCESS
;
14587 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverFileInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverFileInfo
*r
)
14589 uint32_t _ptr_file_name
;
14590 TALLOC_CTX
*_mem_save_file_name_0
;
14591 if (ndr_flags
& NDR_SCALARS
) {
14592 NDR_CHECK(ndr_pull_align(ndr
, 5));
14594 uint32_t _flags_save_string
= ndr
->flags
;
14595 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14596 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_file_name
));
14597 if (_ptr_file_name
) {
14598 NDR_PULL_ALLOC(ndr
, r
->file_name
);
14599 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->file_name
, _ptr_file_name
));
14601 r
->file_name
= NULL
;
14603 ndr
->flags
= _flags_save_string
;
14605 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr
, NDR_SCALARS
, &r
->file_type
));
14606 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->file_version
));
14607 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
14609 if (ndr_flags
& NDR_BUFFERS
) {
14611 uint32_t _flags_save_string
= ndr
->flags
;
14612 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
14613 if (r
->file_name
) {
14614 uint32_t _relative_save_offset
;
14615 _relative_save_offset
= ndr
->offset
;
14616 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->file_name
));
14617 _mem_save_file_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14618 NDR_PULL_SET_MEM_CTX(ndr
, r
->file_name
, 0);
14619 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->file_name
));
14620 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_file_name_0
, 0);
14621 ndr
->offset
= _relative_save_offset
;
14623 ndr
->flags
= _flags_save_string
;
14626 return NDR_ERR_SUCCESS
;
14629 _PUBLIC_
void ndr_print_spoolss_DriverFileInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverFileInfo
*r
)
14631 ndr_print_struct(ndr
, name
, "spoolss_DriverFileInfo");
14633 ndr_print_ptr(ndr
, "file_name", r
->file_name
);
14635 if (r
->file_name
) {
14636 ndr_print_string(ndr
, "file_name", r
->file_name
);
14639 ndr_print_spoolss_DriverFileType(ndr
, "file_type", r
->file_type
);
14640 ndr_print_uint32(ndr
, "file_version", r
->file_version
);
14644 _PUBLIC_
void ndr_print_spoolss_DriverInfo101(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo101
*r
)
14646 uint32_t cntr_file_info_1
;
14647 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo101");
14649 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
14650 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
14652 if (r
->driver_name
) {
14653 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
14656 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
14658 if (r
->architecture
) {
14659 ndr_print_string(ndr
, "architecture", r
->architecture
);
14662 ndr_print_ptr(ndr
, "file_info", r
->file_info
);
14664 if (r
->file_info
) {
14665 ndr
->print(ndr
, "%s: ARRAY(%d)", "file_info", (int)r
->file_count
);
14667 for (cntr_file_info_1
=0;cntr_file_info_1
<r
->file_count
;cntr_file_info_1
++) {
14669 if (asprintf(&idx_1
, "[%d]", cntr_file_info_1
) != -1) {
14670 ndr_print_spoolss_DriverFileInfo(ndr
, "file_info", &r
->file_info
[cntr_file_info_1
]);
14677 ndr_print_uint32(ndr
, "file_count", r
->file_count
);
14678 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
14680 if (r
->monitor_name
) {
14681 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
14684 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
14686 if (r
->default_datatype
) {
14687 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
14690 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
14692 if (r
->previous_names
) {
14693 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
14696 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
14697 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
14698 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
14700 if (r
->manufacturer_name
) {
14701 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
14704 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
14706 if (r
->manufacturer_url
) {
14707 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
14710 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
14712 if (r
->hardware_id
) {
14713 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
14716 ndr_print_ptr(ndr
, "provider", r
->provider
);
14719 ndr_print_string(ndr
, "provider", r
->provider
);
14725 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14727 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo101
, ic
);
14730 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverInfo
*r
)
14732 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14734 uint32_t _flags_save_UNION
= ndr
->flags
;
14735 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
14736 if (ndr_flags
& NDR_SCALARS
) {
14737 int level
= ndr_push_get_switch_value(ndr
, r
);
14738 NDR_CHECK(ndr_push_union_align(ndr
, 8));
14741 NDR_CHECK(ndr_push_align(ndr
, 5));
14742 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14743 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14747 NDR_CHECK(ndr_push_align(ndr
, 5));
14748 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14749 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
14753 NDR_CHECK(ndr_push_align(ndr
, 5));
14754 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14755 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
14759 NDR_CHECK(ndr_push_align(ndr
, 5));
14760 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14761 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
14765 NDR_CHECK(ndr_push_align(ndr
, 5));
14766 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14767 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
14771 NDR_CHECK(ndr_push_align(ndr
, 8));
14772 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14773 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
14777 NDR_CHECK(ndr_push_align(ndr
, 5));
14778 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14779 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
14783 NDR_CHECK(ndr_push_align(ndr
, 8));
14784 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14785 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
14789 NDR_CHECK(ndr_push_align(ndr
, 8));
14790 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14791 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
14799 if (ndr_flags
& NDR_BUFFERS
) {
14800 int level
= ndr_push_get_switch_value(ndr
, r
);
14801 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14804 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14808 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
14812 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
14816 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
14820 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
14824 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
14828 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
14832 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
14836 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
14844 ndr
->flags
= _flags_save_UNION
;
14846 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14847 return NDR_ERR_SUCCESS
;
14850 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverInfo
*r
)
14852 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14855 uint32_t _flags_save_UNION
= ndr
->flags
;
14856 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
14857 level
= ndr_pull_get_switch_value(ndr
, r
);
14858 if (ndr_flags
& NDR_SCALARS
) {
14859 NDR_CHECK(ndr_pull_union_align(ndr
, 8));
14862 NDR_CHECK(ndr_pull_align(ndr
, 5));
14863 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14864 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14868 NDR_CHECK(ndr_pull_align(ndr
, 5));
14869 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14870 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
14874 NDR_CHECK(ndr_pull_align(ndr
, 5));
14875 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14876 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
14880 NDR_CHECK(ndr_pull_align(ndr
, 5));
14881 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14882 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
14886 NDR_CHECK(ndr_pull_align(ndr
, 5));
14887 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14888 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
14892 NDR_CHECK(ndr_pull_align(ndr
, 8));
14893 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14894 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
14898 NDR_CHECK(ndr_pull_align(ndr
, 5));
14899 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14900 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
14904 NDR_CHECK(ndr_pull_align(ndr
, 8));
14905 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14906 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
14910 NDR_CHECK(ndr_pull_align(ndr
, 8));
14911 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14912 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
14920 if (ndr_flags
& NDR_BUFFERS
) {
14921 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14924 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14928 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
14932 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
14936 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
14940 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
14944 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
14948 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
14952 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
14956 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
14964 ndr
->flags
= _flags_save_UNION
;
14966 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14967 return NDR_ERR_SUCCESS
;
14970 _PUBLIC_
void ndr_print_spoolss_DriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverInfo
*r
)
14974 uint32_t _flags_save_UNION
= ndr
->flags
;
14975 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
14976 level
= ndr_print_get_switch_value(ndr
, r
);
14977 ndr_print_union(ndr
, name
, level
, "spoolss_DriverInfo");
14980 ndr_print_spoolss_DriverInfo1(ndr
, "info1", &r
->info1
);
14984 ndr_print_spoolss_DriverInfo2(ndr
, "info2", &r
->info2
);
14988 ndr_print_spoolss_DriverInfo3(ndr
, "info3", &r
->info3
);
14992 ndr_print_spoolss_DriverInfo4(ndr
, "info4", &r
->info4
);
14996 ndr_print_spoolss_DriverInfo5(ndr
, "info5", &r
->info5
);
15000 ndr_print_spoolss_DriverInfo6(ndr
, "info6", &r
->info6
);
15004 ndr_print_spoolss_DriverInfo7(ndr
, "info7", &r
->info7
);
15008 ndr_print_spoolss_DriverInfo8(ndr
, "info8", &r
->info8
);
15012 ndr_print_spoolss_DriverInfo101(ndr
, "info101", &r
->info101
);
15019 ndr
->flags
= _flags_save_UNION
;
15023 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15025 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
15026 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo
, ic
);
15029 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverDirectoryInfo1
*r
)
15031 if (ndr_flags
& NDR_SCALARS
) {
15032 NDR_CHECK(ndr_push_align(ndr
, 4));
15034 uint32_t _flags_save_string
= ndr
->flags
;
15035 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
15036 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
15037 ndr
->flags
= _flags_save_string
;
15039 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15041 if (ndr_flags
& NDR_BUFFERS
) {
15043 return NDR_ERR_SUCCESS
;
15046 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverDirectoryInfo1
*r
)
15048 if (ndr_flags
& NDR_SCALARS
) {
15049 NDR_CHECK(ndr_pull_align(ndr
, 4));
15051 uint32_t _flags_save_string
= ndr
->flags
;
15052 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
15053 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
15054 ndr
->flags
= _flags_save_string
;
15056 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15058 if (ndr_flags
& NDR_BUFFERS
) {
15060 return NDR_ERR_SUCCESS
;
15063 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverDirectoryInfo1
*r
)
15065 ndr_print_struct(ndr
, name
, "spoolss_DriverDirectoryInfo1");
15067 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
15071 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15073 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo1
, ic
);
15076 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverDirectoryInfo
*r
)
15078 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15080 uint32_t _flags_save_UNION
= ndr
->flags
;
15081 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15082 if (ndr_flags
& NDR_SCALARS
) {
15083 int level
= ndr_push_get_switch_value(ndr
, r
);
15084 NDR_CHECK(ndr_push_union_align(ndr
, 4));
15087 NDR_CHECK(ndr_push_align(ndr
, 4));
15088 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15089 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15093 NDR_CHECK(ndr_push_align(ndr
, 4));
15094 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15095 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15100 if (ndr_flags
& NDR_BUFFERS
) {
15101 int level
= ndr_push_get_switch_value(ndr
, r
);
15102 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15112 ndr
->flags
= _flags_save_UNION
;
15114 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15115 return NDR_ERR_SUCCESS
;
15118 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverDirectoryInfo
*r
)
15120 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15123 uint32_t _flags_save_UNION
= ndr
->flags
;
15124 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15125 level
= ndr_pull_get_switch_value(ndr
, r
);
15126 if (ndr_flags
& NDR_SCALARS
) {
15127 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
15130 NDR_CHECK(ndr_pull_align(ndr
, 4));
15131 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15132 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15136 NDR_CHECK(ndr_pull_align(ndr
, 4));
15137 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15138 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15143 if (ndr_flags
& NDR_BUFFERS
) {
15144 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15154 ndr
->flags
= _flags_save_UNION
;
15156 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15157 return NDR_ERR_SUCCESS
;
15160 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverDirectoryInfo
*r
)
15164 uint32_t _flags_save_UNION
= ndr
->flags
;
15165 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15166 level
= ndr_print_get_switch_value(ndr
, r
);
15167 ndr_print_union(ndr
, name
, level
, "spoolss_DriverDirectoryInfo");
15170 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
15174 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
15178 ndr
->flags
= _flags_save_UNION
;
15182 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15184 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
15185 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo
, ic
);
15188 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorInfo1
*r
)
15190 if (ndr_flags
& NDR_SCALARS
) {
15191 NDR_CHECK(ndr_push_align(ndr
, 5));
15193 uint32_t _flags_save_string
= ndr
->flags
;
15194 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
15195 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor_name
));
15196 ndr
->flags
= _flags_save_string
;
15198 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
15200 if (ndr_flags
& NDR_BUFFERS
) {
15202 uint32_t _flags_save_string
= ndr
->flags
;
15203 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
15204 if (r
->print_processor_name
) {
15205 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->print_processor_name
));
15206 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor_name
));
15207 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->print_processor_name
));
15209 ndr
->flags
= _flags_save_string
;
15212 return NDR_ERR_SUCCESS
;
15215 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorInfo1
*r
)
15217 uint32_t _ptr_print_processor_name
;
15218 TALLOC_CTX
*_mem_save_print_processor_name_0
;
15219 if (ndr_flags
& NDR_SCALARS
) {
15220 NDR_CHECK(ndr_pull_align(ndr
, 5));
15222 uint32_t _flags_save_string
= ndr
->flags
;
15223 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
15224 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
15225 if (_ptr_print_processor_name
) {
15226 NDR_PULL_ALLOC(ndr
, r
->print_processor_name
);
15227 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor_name
, _ptr_print_processor_name
));
15229 r
->print_processor_name
= NULL
;
15231 ndr
->flags
= _flags_save_string
;
15233 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
15235 if (ndr_flags
& NDR_BUFFERS
) {
15237 uint32_t _flags_save_string
= ndr
->flags
;
15238 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
15239 if (r
->print_processor_name
) {
15240 uint32_t _relative_save_offset
;
15241 _relative_save_offset
= ndr
->offset
;
15242 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor_name
));
15243 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15244 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor_name
, 0);
15245 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor_name
));
15246 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
15247 ndr
->offset
= _relative_save_offset
;
15249 ndr
->flags
= _flags_save_string
;
15252 return NDR_ERR_SUCCESS
;
15255 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorInfo1
*r
)
15257 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorInfo1");
15259 ndr_print_ptr(ndr
, "print_processor_name", r
->print_processor_name
);
15261 if (r
->print_processor_name
) {
15262 ndr_print_string(ndr
, "print_processor_name", r
->print_processor_name
);
15268 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15270 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorInfo1
, ic
);
15273 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorInfo
*r
)
15275 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15277 uint32_t _flags_save_UNION
= ndr
->flags
;
15278 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15279 if (ndr_flags
& NDR_SCALARS
) {
15280 int level
= ndr_push_get_switch_value(ndr
, r
);
15281 NDR_CHECK(ndr_push_union_align(ndr
, 5));
15284 NDR_CHECK(ndr_push_align(ndr
, 5));
15285 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15286 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15294 if (ndr_flags
& NDR_BUFFERS
) {
15295 int level
= ndr_push_get_switch_value(ndr
, r
);
15296 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15299 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15307 ndr
->flags
= _flags_save_UNION
;
15309 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15310 return NDR_ERR_SUCCESS
;
15313 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorInfo
*r
)
15315 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15318 uint32_t _flags_save_UNION
= ndr
->flags
;
15319 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15320 level
= ndr_pull_get_switch_value(ndr
, r
);
15321 if (ndr_flags
& NDR_SCALARS
) {
15322 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
15325 NDR_CHECK(ndr_pull_align(ndr
, 5));
15326 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15327 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15335 if (ndr_flags
& NDR_BUFFERS
) {
15336 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15339 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15347 ndr
->flags
= _flags_save_UNION
;
15349 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15350 return NDR_ERR_SUCCESS
;
15353 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorInfo
*r
)
15357 uint32_t _flags_save_UNION
= ndr
->flags
;
15358 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15359 level
= ndr_print_get_switch_value(ndr
, r
);
15360 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorInfo");
15363 ndr_print_spoolss_PrintProcessorInfo1(ndr
, "info1", &r
->info1
);
15370 ndr
->flags
= _flags_save_UNION
;
15374 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
15376 if (ndr_flags
& NDR_SCALARS
) {
15377 NDR_CHECK(ndr_push_align(ndr
, 4));
15379 uint32_t _flags_save_string
= ndr
->flags
;
15380 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
15381 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
15382 ndr
->flags
= _flags_save_string
;
15384 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15386 if (ndr_flags
& NDR_BUFFERS
) {
15388 return NDR_ERR_SUCCESS
;
15391 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorDirectoryInfo1
*r
)
15393 if (ndr_flags
& NDR_SCALARS
) {
15394 NDR_CHECK(ndr_pull_align(ndr
, 4));
15396 uint32_t _flags_save_string
= ndr
->flags
;
15397 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
15398 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
15399 ndr
->flags
= _flags_save_string
;
15401 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15403 if (ndr_flags
& NDR_BUFFERS
) {
15405 return NDR_ERR_SUCCESS
;
15408 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
15410 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorDirectoryInfo1");
15412 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
15416 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15418 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo1
, ic
);
15421 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
15423 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15425 uint32_t _flags_save_UNION
= ndr
->flags
;
15426 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15427 if (ndr_flags
& NDR_SCALARS
) {
15428 int level
= ndr_push_get_switch_value(ndr
, r
);
15429 NDR_CHECK(ndr_push_union_align(ndr
, 4));
15432 NDR_CHECK(ndr_push_align(ndr
, 4));
15433 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15434 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15438 NDR_CHECK(ndr_push_align(ndr
, 4));
15439 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15440 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15445 if (ndr_flags
& NDR_BUFFERS
) {
15446 int level
= ndr_push_get_switch_value(ndr
, r
);
15447 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15457 ndr
->flags
= _flags_save_UNION
;
15459 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15460 return NDR_ERR_SUCCESS
;
15463 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorDirectoryInfo
*r
)
15465 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15468 uint32_t _flags_save_UNION
= ndr
->flags
;
15469 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15470 level
= ndr_pull_get_switch_value(ndr
, r
);
15471 if (ndr_flags
& NDR_SCALARS
) {
15472 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
15475 NDR_CHECK(ndr_pull_align(ndr
, 4));
15476 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15477 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15481 NDR_CHECK(ndr_pull_align(ndr
, 4));
15482 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15483 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15488 if (ndr_flags
& NDR_BUFFERS
) {
15489 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15499 ndr
->flags
= _flags_save_UNION
;
15501 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15502 return NDR_ERR_SUCCESS
;
15505 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
15509 uint32_t _flags_save_UNION
= ndr
->flags
;
15510 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15511 level
= ndr_print_get_switch_value(ndr
, r
);
15512 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorDirectoryInfo");
15515 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
15519 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
15523 ndr
->flags
= _flags_save_UNION
;
15527 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15529 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
15530 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo
, ic
);
15533 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DocumentInfo1
*r
)
15535 if (ndr_flags
& NDR_SCALARS
) {
15536 NDR_CHECK(ndr_push_align(ndr
, 5));
15537 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
15538 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->output_file
));
15539 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
15540 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
15542 if (ndr_flags
& NDR_BUFFERS
) {
15543 if (r
->document_name
) {
15544 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
15545 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15546 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
15547 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15549 if (r
->output_file
) {
15550 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
15551 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15552 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
15553 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->output_file
, ndr_charset_length(r
->output_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15556 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
15557 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15558 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
15559 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15562 return NDR_ERR_SUCCESS
;
15565 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DocumentInfo1
*r
)
15567 uint32_t _ptr_document_name
;
15568 uint32_t size_document_name_1
= 0;
15569 uint32_t length_document_name_1
= 0;
15570 TALLOC_CTX
*_mem_save_document_name_0
;
15571 uint32_t _ptr_output_file
;
15572 uint32_t size_output_file_1
= 0;
15573 uint32_t length_output_file_1
= 0;
15574 TALLOC_CTX
*_mem_save_output_file_0
;
15575 uint32_t _ptr_datatype
;
15576 uint32_t size_datatype_1
= 0;
15577 uint32_t length_datatype_1
= 0;
15578 TALLOC_CTX
*_mem_save_datatype_0
;
15579 if (ndr_flags
& NDR_SCALARS
) {
15580 NDR_CHECK(ndr_pull_align(ndr
, 5));
15581 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
15582 if (_ptr_document_name
) {
15583 NDR_PULL_ALLOC(ndr
, r
->document_name
);
15585 r
->document_name
= NULL
;
15587 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_output_file
));
15588 if (_ptr_output_file
) {
15589 NDR_PULL_ALLOC(ndr
, r
->output_file
);
15591 r
->output_file
= NULL
;
15593 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
15594 if (_ptr_datatype
) {
15595 NDR_PULL_ALLOC(ndr
, r
->datatype
);
15597 r
->datatype
= NULL
;
15599 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
15601 if (ndr_flags
& NDR_BUFFERS
) {
15602 if (r
->document_name
) {
15603 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15604 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
15605 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
15606 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
15607 size_document_name_1
= ndr_get_array_size(ndr
, &r
->document_name
);
15608 length_document_name_1
= ndr_get_array_length(ndr
, &r
->document_name
);
15609 if (length_document_name_1
> size_document_name_1
) {
15610 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_document_name_1
, length_document_name_1
);
15612 NDR_CHECK(ndr_check_string_terminator(ndr
, length_document_name_1
, sizeof(uint16_t)));
15613 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, length_document_name_1
, sizeof(uint16_t), CH_UTF16
));
15614 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
15616 if (r
->output_file
) {
15617 _mem_save_output_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15618 NDR_PULL_SET_MEM_CTX(ndr
, r
->output_file
, 0);
15619 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->output_file
));
15620 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->output_file
));
15621 size_output_file_1
= ndr_get_array_size(ndr
, &r
->output_file
);
15622 length_output_file_1
= ndr_get_array_length(ndr
, &r
->output_file
);
15623 if (length_output_file_1
> size_output_file_1
) {
15624 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_output_file_1
, length_output_file_1
);
15626 NDR_CHECK(ndr_check_string_terminator(ndr
, length_output_file_1
, sizeof(uint16_t)));
15627 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->output_file
, length_output_file_1
, sizeof(uint16_t), CH_UTF16
));
15628 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_output_file_0
, 0);
15631 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15632 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
15633 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
15634 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
15635 size_datatype_1
= ndr_get_array_size(ndr
, &r
->datatype
);
15636 length_datatype_1
= ndr_get_array_length(ndr
, &r
->datatype
);
15637 if (length_datatype_1
> size_datatype_1
) {
15638 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_datatype_1
, length_datatype_1
);
15640 NDR_CHECK(ndr_check_string_terminator(ndr
, length_datatype_1
, sizeof(uint16_t)));
15641 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, length_datatype_1
, sizeof(uint16_t), CH_UTF16
));
15642 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
15645 return NDR_ERR_SUCCESS
;
15648 _PUBLIC_
void ndr_print_spoolss_DocumentInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DocumentInfo1
*r
)
15650 ndr_print_struct(ndr
, name
, "spoolss_DocumentInfo1");
15652 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
15654 if (r
->document_name
) {
15655 ndr_print_string(ndr
, "document_name", r
->document_name
);
15658 ndr_print_ptr(ndr
, "output_file", r
->output_file
);
15660 if (r
->output_file
) {
15661 ndr_print_string(ndr
, "output_file", r
->output_file
);
15664 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
15667 ndr_print_string(ndr
, "datatype", r
->datatype
);
15673 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DocumentInfo
*r
)
15675 if (ndr_flags
& NDR_SCALARS
) {
15676 int level
= ndr_push_get_switch_value(ndr
, r
);
15677 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
15678 NDR_CHECK(ndr_push_union_align(ndr
, 5));
15681 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
15695 if (ndr_flags
& NDR_BUFFERS
) {
15696 int level
= ndr_push_get_switch_value(ndr
, r
);
15700 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
15715 return NDR_ERR_SUCCESS
;
15718 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DocumentInfo
*r
)
15722 TALLOC_CTX
*_mem_save_info1_0
;
15723 uint32_t _ptr_info1
;
15724 level
= ndr_pull_get_switch_value(ndr
, r
);
15725 if (ndr_flags
& NDR_SCALARS
) {
15726 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
15727 if (_level
!= level
) {
15728 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
15730 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
15733 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
15735 NDR_PULL_ALLOC(ndr
, r
->info1
);
15752 if (ndr_flags
& NDR_BUFFERS
) {
15756 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15757 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
15758 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
15759 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
15774 return NDR_ERR_SUCCESS
;
15777 _PUBLIC_
void ndr_print_spoolss_DocumentInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DocumentInfo
*r
)
15780 level
= ndr_print_get_switch_value(ndr
, r
);
15781 ndr_print_union(ndr
, name
, level
, "spoolss_DocumentInfo");
15784 ndr_print_ptr(ndr
, "info1", r
->info1
);
15787 ndr_print_spoolss_DocumentInfo1(ndr
, "info1", r
->info1
);
15804 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersion(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersion
*r
)
15806 if (ndr_flags
& NDR_SCALARS
) {
15807 NDR_CHECK(ndr_push_align(ndr
, 4));
15808 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersion(r
, ndr
->iconv_convenience
, ndr
->flags
)));
15809 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
15810 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
15811 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
15812 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
15814 uint32_t _flags_save_string
= ndr
->flags
;
15815 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
15817 struct ndr_push
*_ndr_extra_string
;
15818 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15819 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
15820 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15822 ndr
->flags
= _flags_save_string
;
15824 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15826 if (ndr_flags
& NDR_BUFFERS
) {
15828 return NDR_ERR_SUCCESS
;
15831 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersion(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersion
*r
)
15833 if (ndr_flags
& NDR_SCALARS
) {
15834 NDR_CHECK(ndr_pull_align(ndr
, 4));
15835 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
15836 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
15837 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
15838 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
15839 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->platform_id
));
15841 uint32_t _flags_save_string
= ndr
->flags
;
15842 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
15844 struct ndr_pull
*_ndr_extra_string
;
15845 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15846 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
15847 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15849 ndr
->flags
= _flags_save_string
;
15851 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15853 if (ndr_flags
& NDR_BUFFERS
) {
15855 return NDR_ERR_SUCCESS
;
15858 _PUBLIC_
void ndr_print_spoolss_OSVersion(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersion
*r
)
15860 ndr_print_struct(ndr
, name
, "spoolss_OSVersion");
15862 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
);
15863 ndr_print_uint32(ndr
, "major", r
->major
);
15864 ndr_print_uint32(ndr
, "minor", r
->minor
);
15865 ndr_print_uint32(ndr
, "build", r
->build
);
15866 ndr_print_uint32(ndr
, "platform_id", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->platform_id
);
15867 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
15871 _PUBLIC_
size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15873 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersion
, ic
);
15876 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersionEx(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersionEx
*r
)
15878 if (ndr_flags
& NDR_SCALARS
) {
15879 NDR_CHECK(ndr_push_align(ndr
, 4));
15880 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersionEx(r
, ndr
->iconv_convenience
, ndr
->flags
)));
15881 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
15882 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
15883 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
15884 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
15886 uint32_t _flags_save_string
= ndr
->flags
;
15887 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
15889 struct ndr_push
*_ndr_extra_string
;
15890 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15891 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
15892 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15894 ndr
->flags
= _flags_save_string
;
15896 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->service_pack_major
));
15897 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->service_pack_minor
));
15898 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->suite_mask
));
15899 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->product_type
));
15900 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->reserved
));
15901 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15903 if (ndr_flags
& NDR_BUFFERS
) {
15905 return NDR_ERR_SUCCESS
;
15908 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersionEx(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersionEx
*r
)
15910 if (ndr_flags
& NDR_SCALARS
) {
15911 NDR_CHECK(ndr_pull_align(ndr
, 4));
15912 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
15913 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
15914 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
15915 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
15916 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->platform_id
));
15918 uint32_t _flags_save_string
= ndr
->flags
;
15919 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
15921 struct ndr_pull
*_ndr_extra_string
;
15922 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15923 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
15924 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15926 ndr
->flags
= _flags_save_string
;
15928 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->service_pack_major
));
15929 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->service_pack_minor
));
15930 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->suite_mask
));
15931 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->product_type
));
15932 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->reserved
));
15933 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15935 if (ndr_flags
& NDR_BUFFERS
) {
15937 return NDR_ERR_SUCCESS
;
15940 _PUBLIC_
void ndr_print_spoolss_OSVersionEx(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersionEx
*r
)
15942 ndr_print_struct(ndr
, name
, "spoolss_OSVersionEx");
15944 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
);
15945 ndr_print_uint32(ndr
, "major", r
->major
);
15946 ndr_print_uint32(ndr
, "minor", r
->minor
);
15947 ndr_print_uint32(ndr
, "build", r
->build
);
15948 ndr_print_uint32(ndr
, "platform_id", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->platform_id
);
15949 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
15950 ndr_print_uint16(ndr
, "service_pack_major", r
->service_pack_major
);
15951 ndr_print_uint16(ndr
, "service_pack_minor", r
->service_pack_minor
);
15952 ndr_print_uint16(ndr
, "suite_mask", r
->suite_mask
);
15953 ndr_print_uint8(ndr
, "product_type", r
->product_type
);
15954 ndr_print_uint8(ndr
, "reserved", r
->reserved
);
15958 _PUBLIC_
size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15960 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersionEx
, ic
);
15963 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterData
*r
)
15965 if (ndr_flags
& NDR_SCALARS
) {
15966 int level
= ndr_push_get_switch_value(ndr
, r
);
15967 NDR_CHECK(ndr_push_union_align(ndr
, 4));
15974 uint32_t _flags_save_string
= ndr
->flags
;
15975 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
15976 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->string
));
15977 ndr
->flags
= _flags_save_string
;
15983 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15984 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15985 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->binary
));
15986 ndr
->flags
= _flags_save_DATA_BLOB
;
15991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->value
));
15994 case REG_MULTI_SZ
: {
15996 uint32_t _flags_save_string_array
= ndr
->flags
;
15997 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
15998 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
15999 ndr
->flags
= _flags_save_string_array
;
16005 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
16006 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
16007 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->data
));
16008 ndr
->flags
= _flags_save_DATA_BLOB
;
16014 if (ndr_flags
& NDR_BUFFERS
) {
16015 int level
= ndr_push_get_switch_value(ndr
, r
);
16037 return NDR_ERR_SUCCESS
;
16040 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterData
*r
)
16043 level
= ndr_pull_get_switch_value(ndr
, r
);
16044 if (ndr_flags
& NDR_SCALARS
) {
16045 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
16052 uint32_t _flags_save_string
= ndr
->flags
;
16053 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16054 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->string
));
16055 ndr
->flags
= _flags_save_string
;
16061 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
16062 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
16063 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->binary
));
16064 ndr
->flags
= _flags_save_DATA_BLOB
;
16069 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value
));
16072 case REG_MULTI_SZ
: {
16074 uint32_t _flags_save_string_array
= ndr
->flags
;
16075 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16076 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
16077 ndr
->flags
= _flags_save_string_array
;
16083 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
16084 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
16085 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->data
));
16086 ndr
->flags
= _flags_save_DATA_BLOB
;
16092 if (ndr_flags
& NDR_BUFFERS
) {
16114 return NDR_ERR_SUCCESS
;
16117 _PUBLIC_
void ndr_print_spoolss_PrinterData(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterData
*r
)
16120 level
= ndr_print_get_switch_value(ndr
, r
);
16121 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterData");
16127 ndr_print_string(ndr
, "string", r
->string
);
16131 ndr_print_DATA_BLOB(ndr
, "binary", r
->binary
);
16135 ndr_print_uint32(ndr
, "value", r
->value
);
16139 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
16143 ndr_print_DATA_BLOB(ndr
, "data", r
->data
);
16149 static enum ndr_err_code
ndr_push_spoolss_FormFlags(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_FormFlags r
)
16151 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
16152 return NDR_ERR_SUCCESS
;
16155 static enum ndr_err_code
ndr_pull_spoolss_FormFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_FormFlags
*r
)
16158 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
16160 return NDR_ERR_SUCCESS
;
16163 _PUBLIC_
void ndr_print_spoolss_FormFlags(struct ndr_print
*ndr
, const char *name
, enum spoolss_FormFlags r
)
16165 const char *val
= NULL
;
16168 case SPOOLSS_FORM_USER
: val
= "SPOOLSS_FORM_USER"; break;
16169 case SPOOLSS_FORM_BUILTIN
: val
= "SPOOLSS_FORM_BUILTIN"; break;
16170 case SPOOLSS_FORM_PRINTER
: val
= "SPOOLSS_FORM_PRINTER"; break;
16172 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16175 static enum ndr_err_code
ndr_push_spoolss_FormSize(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormSize
*r
)
16177 if (ndr_flags
& NDR_SCALARS
) {
16178 NDR_CHECK(ndr_push_align(ndr
, 4));
16179 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->width
));
16180 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->height
));
16181 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
16183 if (ndr_flags
& NDR_BUFFERS
) {
16185 return NDR_ERR_SUCCESS
;
16188 static enum ndr_err_code
ndr_pull_spoolss_FormSize(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormSize
*r
)
16190 if (ndr_flags
& NDR_SCALARS
) {
16191 NDR_CHECK(ndr_pull_align(ndr
, 4));
16192 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->width
));
16193 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->height
));
16194 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
16196 if (ndr_flags
& NDR_BUFFERS
) {
16198 return NDR_ERR_SUCCESS
;
16201 _PUBLIC_
void ndr_print_spoolss_FormSize(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormSize
*r
)
16203 ndr_print_struct(ndr
, name
, "spoolss_FormSize");
16205 ndr_print_uint32(ndr
, "width", r
->width
);
16206 ndr_print_uint32(ndr
, "height", r
->height
);
16210 static enum ndr_err_code
ndr_push_spoolss_FormArea(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormArea
*r
)
16212 if (ndr_flags
& NDR_SCALARS
) {
16213 NDR_CHECK(ndr_push_align(ndr
, 4));
16214 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->left
));
16215 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->top
));
16216 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->right
));
16217 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bottom
));
16218 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
16220 if (ndr_flags
& NDR_BUFFERS
) {
16222 return NDR_ERR_SUCCESS
;
16225 static enum ndr_err_code
ndr_pull_spoolss_FormArea(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormArea
*r
)
16227 if (ndr_flags
& NDR_SCALARS
) {
16228 NDR_CHECK(ndr_pull_align(ndr
, 4));
16229 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->left
));
16230 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->top
));
16231 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->right
));
16232 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bottom
));
16233 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
16235 if (ndr_flags
& NDR_BUFFERS
) {
16237 return NDR_ERR_SUCCESS
;
16240 _PUBLIC_
void ndr_print_spoolss_FormArea(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormArea
*r
)
16242 ndr_print_struct(ndr
, name
, "spoolss_FormArea");
16244 ndr_print_uint32(ndr
, "left", r
->left
);
16245 ndr_print_uint32(ndr
, "top", r
->top
);
16246 ndr_print_uint32(ndr
, "right", r
->right
);
16247 ndr_print_uint32(ndr
, "bottom", r
->bottom
);
16251 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo1
*r
)
16253 if (ndr_flags
& NDR_SCALARS
) {
16254 NDR_CHECK(ndr_push_align(ndr
, 5));
16255 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
16257 uint32_t _flags_save_string
= ndr
->flags
;
16258 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16259 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
16260 ndr
->flags
= _flags_save_string
;
16262 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16263 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16264 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16266 if (ndr_flags
& NDR_BUFFERS
) {
16268 uint32_t _flags_save_string
= ndr
->flags
;
16269 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16270 if (r
->form_name
) {
16271 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->form_name
));
16272 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
16273 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->form_name
));
16275 ndr
->flags
= _flags_save_string
;
16278 return NDR_ERR_SUCCESS
;
16281 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo1
*r
)
16283 uint32_t _ptr_form_name
;
16284 TALLOC_CTX
*_mem_save_form_name_0
;
16285 if (ndr_flags
& NDR_SCALARS
) {
16286 NDR_CHECK(ndr_pull_align(ndr
, 5));
16287 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
16289 uint32_t _flags_save_string
= ndr
->flags
;
16290 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16291 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
16292 if (_ptr_form_name
) {
16293 NDR_PULL_ALLOC(ndr
, r
->form_name
);
16294 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
16296 r
->form_name
= NULL
;
16298 ndr
->flags
= _flags_save_string
;
16300 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16301 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16302 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16304 if (ndr_flags
& NDR_BUFFERS
) {
16306 uint32_t _flags_save_string
= ndr
->flags
;
16307 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16308 if (r
->form_name
) {
16309 uint32_t _relative_save_offset
;
16310 _relative_save_offset
= ndr
->offset
;
16311 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
16312 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16313 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
16314 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
16315 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
16316 ndr
->offset
= _relative_save_offset
;
16318 ndr
->flags
= _flags_save_string
;
16321 return NDR_ERR_SUCCESS
;
16324 _PUBLIC_
void ndr_print_spoolss_FormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo1
*r
)
16326 ndr_print_struct(ndr
, name
, "spoolss_FormInfo1");
16328 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16329 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16331 if (r
->form_name
) {
16332 ndr_print_string(ndr
, "form_name", r
->form_name
);
16335 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
16336 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
16340 _PUBLIC_
size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16342 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo1
, ic
);
16345 static enum ndr_err_code
ndr_push_spoolss_FormStringType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
16347 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16348 return NDR_ERR_SUCCESS
;
16351 static enum ndr_err_code
ndr_pull_spoolss_FormStringType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
16354 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16356 return NDR_ERR_SUCCESS
;
16359 _PUBLIC_
void ndr_print_spoolss_FormStringType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
16361 ndr_print_uint32(ndr
, name
, r
);
16363 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE
, r
);
16364 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL
, r
);
16365 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR
, r
);
16369 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo2
*r
)
16371 if (ndr_flags
& NDR_SCALARS
) {
16372 NDR_CHECK(ndr_push_align(ndr
, 5));
16373 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
16375 uint32_t _flags_save_string
= ndr
->flags
;
16376 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16377 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
16378 ndr
->flags
= _flags_save_string
;
16380 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16381 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16383 uint32_t _flags_save_string
= ndr
->flags
;
16384 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
16385 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->keyword
));
16386 ndr
->flags
= _flags_save_string
;
16388 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
16390 uint32_t _flags_save_string
= ndr
->flags
;
16391 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16392 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->mui_dll
));
16393 ndr
->flags
= _flags_save_string
;
16395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
16397 uint32_t _flags_save_string
= ndr
->flags
;
16398 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16399 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->display_name
));
16400 ndr
->flags
= _flags_save_string
;
16402 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lang_id
));
16403 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unused
));
16404 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16406 if (ndr_flags
& NDR_BUFFERS
) {
16408 uint32_t _flags_save_string
= ndr
->flags
;
16409 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16410 if (r
->form_name
) {
16411 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->form_name
));
16412 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
16413 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->form_name
));
16415 ndr
->flags
= _flags_save_string
;
16418 uint32_t _flags_save_string
= ndr
->flags
;
16419 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
16421 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->keyword
));
16422 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->keyword
));
16423 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->keyword
));
16425 ndr
->flags
= _flags_save_string
;
16428 uint32_t _flags_save_string
= ndr
->flags
;
16429 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16431 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->mui_dll
));
16432 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mui_dll
));
16433 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->mui_dll
));
16435 ndr
->flags
= _flags_save_string
;
16438 uint32_t _flags_save_string
= ndr
->flags
;
16439 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16440 if (r
->display_name
) {
16441 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->display_name
));
16442 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->display_name
));
16443 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->display_name
));
16445 ndr
->flags
= _flags_save_string
;
16448 return NDR_ERR_SUCCESS
;
16451 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo2
*r
)
16453 uint32_t _ptr_form_name
;
16454 TALLOC_CTX
*_mem_save_form_name_0
;
16455 uint32_t _ptr_keyword
;
16456 TALLOC_CTX
*_mem_save_keyword_0
;
16457 uint32_t _ptr_mui_dll
;
16458 TALLOC_CTX
*_mem_save_mui_dll_0
;
16459 uint32_t _ptr_display_name
;
16460 TALLOC_CTX
*_mem_save_display_name_0
;
16461 if (ndr_flags
& NDR_SCALARS
) {
16462 NDR_CHECK(ndr_pull_align(ndr
, 5));
16463 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
16465 uint32_t _flags_save_string
= ndr
->flags
;
16466 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16467 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
16468 if (_ptr_form_name
) {
16469 NDR_PULL_ALLOC(ndr
, r
->form_name
);
16470 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
16472 r
->form_name
= NULL
;
16474 ndr
->flags
= _flags_save_string
;
16476 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16477 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16479 uint32_t _flags_save_string
= ndr
->flags
;
16480 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
16481 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
16482 if (_ptr_keyword
) {
16483 NDR_PULL_ALLOC(ndr
, r
->keyword
);
16484 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->keyword
, _ptr_keyword
));
16488 ndr
->flags
= _flags_save_string
;
16490 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
16492 uint32_t _flags_save_string
= ndr
->flags
;
16493 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16494 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
16495 if (_ptr_mui_dll
) {
16496 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
16497 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->mui_dll
, _ptr_mui_dll
));
16501 ndr
->flags
= _flags_save_string
;
16503 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
16505 uint32_t _flags_save_string
= ndr
->flags
;
16506 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16507 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
16508 if (_ptr_display_name
) {
16509 NDR_PULL_ALLOC(ndr
, r
->display_name
);
16510 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->display_name
, _ptr_display_name
));
16512 r
->display_name
= NULL
;
16514 ndr
->flags
= _flags_save_string
;
16516 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lang_id
));
16517 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unused
));
16518 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16520 if (ndr_flags
& NDR_BUFFERS
) {
16522 uint32_t _flags_save_string
= ndr
->flags
;
16523 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16524 if (r
->form_name
) {
16525 uint32_t _relative_save_offset
;
16526 _relative_save_offset
= ndr
->offset
;
16527 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
16528 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16529 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
16530 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
16531 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
16532 ndr
->offset
= _relative_save_offset
;
16534 ndr
->flags
= _flags_save_string
;
16537 uint32_t _flags_save_string
= ndr
->flags
;
16538 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
16540 uint32_t _relative_save_offset
;
16541 _relative_save_offset
= ndr
->offset
;
16542 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->keyword
));
16543 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16544 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
16545 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->keyword
));
16546 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
16547 ndr
->offset
= _relative_save_offset
;
16549 ndr
->flags
= _flags_save_string
;
16552 uint32_t _flags_save_string
= ndr
->flags
;
16553 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16555 uint32_t _relative_save_offset
;
16556 _relative_save_offset
= ndr
->offset
;
16557 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->mui_dll
));
16558 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16559 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
16560 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mui_dll
));
16561 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
16562 ndr
->offset
= _relative_save_offset
;
16564 ndr
->flags
= _flags_save_string
;
16567 uint32_t _flags_save_string
= ndr
->flags
;
16568 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
16569 if (r
->display_name
) {
16570 uint32_t _relative_save_offset
;
16571 _relative_save_offset
= ndr
->offset
;
16572 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->display_name
));
16573 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16574 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
16575 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->display_name
));
16576 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
16577 ndr
->offset
= _relative_save_offset
;
16579 ndr
->flags
= _flags_save_string
;
16582 return NDR_ERR_SUCCESS
;
16585 _PUBLIC_
void ndr_print_spoolss_FormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo2
*r
)
16587 ndr_print_struct(ndr
, name
, "spoolss_FormInfo2");
16589 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16590 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16592 if (r
->form_name
) {
16593 ndr_print_string(ndr
, "form_name", r
->form_name
);
16596 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
16597 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
16598 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
16601 ndr_print_string(ndr
, "keyword", r
->keyword
);
16604 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
16605 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
16608 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
16611 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
16612 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
16614 if (r
->display_name
) {
16615 ndr_print_string(ndr
, "display_name", r
->display_name
);
16618 ndr_print_uint16(ndr
, "lang_id", r
->lang_id
);
16619 ndr_print_uint16(ndr
, "unused", r
->unused
);
16623 _PUBLIC_
size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16625 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo2
, ic
);
16628 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_FormInfo
*r
)
16630 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16632 uint32_t _flags_save_UNION
= ndr
->flags
;
16633 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
16634 if (ndr_flags
& NDR_SCALARS
) {
16635 int level
= ndr_push_get_switch_value(ndr
, r
);
16636 NDR_CHECK(ndr_push_union_align(ndr
, 5));
16639 NDR_CHECK(ndr_push_align(ndr
, 5));
16640 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16641 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16645 NDR_CHECK(ndr_push_align(ndr
, 5));
16646 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16647 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16655 if (ndr_flags
& NDR_BUFFERS
) {
16656 int level
= ndr_push_get_switch_value(ndr
, r
);
16657 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16660 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16664 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16672 ndr
->flags
= _flags_save_UNION
;
16674 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16675 return NDR_ERR_SUCCESS
;
16678 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_FormInfo
*r
)
16680 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16683 uint32_t _flags_save_UNION
= ndr
->flags
;
16684 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
16685 level
= ndr_pull_get_switch_value(ndr
, r
);
16686 if (ndr_flags
& NDR_SCALARS
) {
16687 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
16690 NDR_CHECK(ndr_pull_align(ndr
, 5));
16691 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16692 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16696 NDR_CHECK(ndr_pull_align(ndr
, 5));
16697 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16698 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16706 if (ndr_flags
& NDR_BUFFERS
) {
16707 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
16710 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16714 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16722 ndr
->flags
= _flags_save_UNION
;
16724 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16725 return NDR_ERR_SUCCESS
;
16728 _PUBLIC_
void ndr_print_spoolss_FormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_FormInfo
*r
)
16732 uint32_t _flags_save_UNION
= ndr
->flags
;
16733 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
16734 level
= ndr_print_get_switch_value(ndr
, r
);
16735 ndr_print_union(ndr
, name
, level
, "spoolss_FormInfo");
16738 ndr_print_spoolss_FormInfo1(ndr
, "info1", &r
->info1
);
16742 ndr_print_spoolss_FormInfo2(ndr
, "info2", &r
->info2
);
16749 ndr
->flags
= _flags_save_UNION
;
16753 _PUBLIC_
size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
16755 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
16756 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo
, ic
);
16759 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo1
*r
)
16761 if (ndr_flags
& NDR_SCALARS
) {
16762 NDR_CHECK(ndr_push_align(ndr
, 5));
16763 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
16764 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
16765 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16766 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16767 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16769 if (ndr_flags
& NDR_BUFFERS
) {
16770 if (r
->form_name
) {
16771 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
16772 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16773 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
16774 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16777 return NDR_ERR_SUCCESS
;
16780 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo1
*r
)
16782 uint32_t _ptr_form_name
;
16783 uint32_t size_form_name_1
= 0;
16784 uint32_t length_form_name_1
= 0;
16785 TALLOC_CTX
*_mem_save_form_name_0
;
16786 if (ndr_flags
& NDR_SCALARS
) {
16787 NDR_CHECK(ndr_pull_align(ndr
, 5));
16788 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
16789 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
16790 if (_ptr_form_name
) {
16791 NDR_PULL_ALLOC(ndr
, r
->form_name
);
16793 r
->form_name
= NULL
;
16795 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16796 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16797 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16799 if (ndr_flags
& NDR_BUFFERS
) {
16800 if (r
->form_name
) {
16801 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16802 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
16803 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
16804 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
16805 size_form_name_1
= ndr_get_array_size(ndr
, &r
->form_name
);
16806 length_form_name_1
= ndr_get_array_length(ndr
, &r
->form_name
);
16807 if (length_form_name_1
> size_form_name_1
) {
16808 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_form_name_1
, length_form_name_1
);
16810 NDR_CHECK(ndr_check_string_terminator(ndr
, length_form_name_1
, sizeof(uint16_t)));
16811 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, length_form_name_1
, sizeof(uint16_t), CH_UTF16
));
16812 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
16815 return NDR_ERR_SUCCESS
;
16818 _PUBLIC_
void ndr_print_spoolss_AddFormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo1
*r
)
16820 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo1");
16822 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16823 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16825 if (r
->form_name
) {
16826 ndr_print_string(ndr
, "form_name", r
->form_name
);
16829 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
16830 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
16834 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo2
*r
)
16836 if (ndr_flags
& NDR_SCALARS
) {
16837 NDR_CHECK(ndr_push_align(ndr
, 5));
16838 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
16839 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
16840 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16841 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16842 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->keyword
));
16843 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
16844 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->mui_dll
));
16845 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
16846 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->display_name
));
16847 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
16848 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16850 if (ndr_flags
& NDR_BUFFERS
) {
16851 if (r
->form_name
) {
16852 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
16853 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16854 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
16855 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16858 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
16859 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16860 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
16861 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->keyword
, ndr_charset_length(r
->keyword
, CH_DOS
), sizeof(uint8_t), CH_DOS
));
16864 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
16865 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16866 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
16867 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->mui_dll
, ndr_charset_length(r
->mui_dll
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16869 if (r
->display_name
) {
16870 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
16871 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16872 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
16873 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->display_name
, ndr_charset_length(r
->display_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16876 return NDR_ERR_SUCCESS
;
16879 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo2
*r
)
16881 uint32_t _ptr_form_name
;
16882 uint32_t size_form_name_1
= 0;
16883 uint32_t length_form_name_1
= 0;
16884 TALLOC_CTX
*_mem_save_form_name_0
;
16885 uint32_t _ptr_keyword
;
16886 uint32_t size_keyword_1
= 0;
16887 uint32_t length_keyword_1
= 0;
16888 TALLOC_CTX
*_mem_save_keyword_0
;
16889 uint32_t _ptr_mui_dll
;
16890 uint32_t size_mui_dll_1
= 0;
16891 uint32_t length_mui_dll_1
= 0;
16892 TALLOC_CTX
*_mem_save_mui_dll_0
;
16893 uint32_t _ptr_display_name
;
16894 uint32_t size_display_name_1
= 0;
16895 uint32_t length_display_name_1
= 0;
16896 TALLOC_CTX
*_mem_save_display_name_0
;
16897 if (ndr_flags
& NDR_SCALARS
) {
16898 NDR_CHECK(ndr_pull_align(ndr
, 5));
16899 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
16900 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
16901 if (_ptr_form_name
) {
16902 NDR_PULL_ALLOC(ndr
, r
->form_name
);
16904 r
->form_name
= NULL
;
16906 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16907 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16908 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
16909 if (_ptr_keyword
) {
16910 NDR_PULL_ALLOC(ndr
, r
->keyword
);
16914 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
16915 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
16916 if (_ptr_mui_dll
) {
16917 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
16921 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
16922 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
16923 if (_ptr_display_name
) {
16924 NDR_PULL_ALLOC(ndr
, r
->display_name
);
16926 r
->display_name
= NULL
;
16928 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
16929 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16931 if (ndr_flags
& NDR_BUFFERS
) {
16932 if (r
->form_name
) {
16933 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16934 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
16935 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
16936 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
16937 size_form_name_1
= ndr_get_array_size(ndr
, &r
->form_name
);
16938 length_form_name_1
= ndr_get_array_length(ndr
, &r
->form_name
);
16939 if (length_form_name_1
> size_form_name_1
) {
16940 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_form_name_1
, length_form_name_1
);
16942 NDR_CHECK(ndr_check_string_terminator(ndr
, length_form_name_1
, sizeof(uint16_t)));
16943 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, length_form_name_1
, sizeof(uint16_t), CH_UTF16
));
16944 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
16947 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16948 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
16949 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->keyword
));
16950 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->keyword
));
16951 size_keyword_1
= ndr_get_array_size(ndr
, &r
->keyword
);
16952 length_keyword_1
= ndr_get_array_length(ndr
, &r
->keyword
);
16953 if (length_keyword_1
> size_keyword_1
) {
16954 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_keyword_1
, length_keyword_1
);
16956 NDR_CHECK(ndr_check_string_terminator(ndr
, length_keyword_1
, sizeof(uint8_t)));
16957 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->keyword
, length_keyword_1
, sizeof(uint8_t), CH_DOS
));
16958 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
16961 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16962 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
16963 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->mui_dll
));
16964 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->mui_dll
));
16965 size_mui_dll_1
= ndr_get_array_size(ndr
, &r
->mui_dll
);
16966 length_mui_dll_1
= ndr_get_array_length(ndr
, &r
->mui_dll
);
16967 if (length_mui_dll_1
> size_mui_dll_1
) {
16968 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_mui_dll_1
, length_mui_dll_1
);
16970 NDR_CHECK(ndr_check_string_terminator(ndr
, length_mui_dll_1
, sizeof(uint16_t)));
16971 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->mui_dll
, length_mui_dll_1
, sizeof(uint16_t), CH_UTF16
));
16972 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
16974 if (r
->display_name
) {
16975 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16976 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
16977 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->display_name
));
16978 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->display_name
));
16979 size_display_name_1
= ndr_get_array_size(ndr
, &r
->display_name
);
16980 length_display_name_1
= ndr_get_array_length(ndr
, &r
->display_name
);
16981 if (length_display_name_1
> size_display_name_1
) {
16982 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_display_name_1
, length_display_name_1
);
16984 NDR_CHECK(ndr_check_string_terminator(ndr
, length_display_name_1
, sizeof(uint16_t)));
16985 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->display_name
, length_display_name_1
, sizeof(uint16_t), CH_UTF16
));
16986 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
16989 return NDR_ERR_SUCCESS
;
16992 _PUBLIC_
void ndr_print_spoolss_AddFormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo2
*r
)
16994 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo2");
16996 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16997 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16999 if (r
->form_name
) {
17000 ndr_print_string(ndr
, "form_name", r
->form_name
);
17003 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
17004 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
17005 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
17008 ndr_print_string(ndr
, "keyword", r
->keyword
);
17011 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
17012 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
17015 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
17018 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
17019 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
17021 if (r
->display_name
) {
17022 ndr_print_string(ndr
, "display_name", r
->display_name
);
17025 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
17029 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddFormInfo
*r
)
17031 if (ndr_flags
& NDR_SCALARS
) {
17032 int level
= ndr_push_get_switch_value(ndr
, r
);
17033 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
17034 NDR_CHECK(ndr_push_union_align(ndr
, 5));
17037 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
17041 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
17045 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
17048 if (ndr_flags
& NDR_BUFFERS
) {
17049 int level
= ndr_push_get_switch_value(ndr
, r
);
17053 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
17059 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
17064 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
17067 return NDR_ERR_SUCCESS
;
17070 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddFormInfo
*r
)
17074 TALLOC_CTX
*_mem_save_info1_0
;
17075 uint32_t _ptr_info1
;
17076 TALLOC_CTX
*_mem_save_info2_0
;
17077 uint32_t _ptr_info2
;
17078 level
= ndr_pull_get_switch_value(ndr
, r
);
17079 if (ndr_flags
& NDR_SCALARS
) {
17080 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
17081 if (_level
!= level
) {
17082 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
17084 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
17087 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
17089 NDR_PULL_ALLOC(ndr
, r
->info1
);
17096 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
17098 NDR_PULL_ALLOC(ndr
, r
->info2
);
17105 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
17108 if (ndr_flags
& NDR_BUFFERS
) {
17112 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17113 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
17114 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
17115 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
17121 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17122 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
17123 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
17124 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
17129 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
17132 return NDR_ERR_SUCCESS
;
17135 _PUBLIC_
void ndr_print_spoolss_AddFormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddFormInfo
*r
)
17138 level
= ndr_print_get_switch_value(ndr
, r
);
17139 ndr_print_union(ndr
, name
, level
, "spoolss_AddFormInfo");
17142 ndr_print_ptr(ndr
, "info1", r
->info1
);
17145 ndr_print_spoolss_AddFormInfo1(ndr
, "info1", r
->info1
);
17151 ndr_print_ptr(ndr
, "info2", r
->info2
);
17154 ndr_print_spoolss_AddFormInfo2(ndr
, "info2", r
->info2
);
17160 ndr_print_bad_level(ndr
, name
, level
);
17164 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo1
*r
)
17166 if (ndr_flags
& NDR_SCALARS
) {
17167 NDR_CHECK(ndr_push_align(ndr
, 5));
17169 uint32_t _flags_save_string
= ndr
->flags
;
17170 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17171 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
17172 ndr
->flags
= _flags_save_string
;
17174 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17176 if (ndr_flags
& NDR_BUFFERS
) {
17178 uint32_t _flags_save_string
= ndr
->flags
;
17179 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17180 if (r
->port_name
) {
17181 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->port_name
));
17182 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
17183 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->port_name
));
17185 ndr
->flags
= _flags_save_string
;
17188 return NDR_ERR_SUCCESS
;
17191 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo1
*r
)
17193 uint32_t _ptr_port_name
;
17194 TALLOC_CTX
*_mem_save_port_name_0
;
17195 if (ndr_flags
& NDR_SCALARS
) {
17196 NDR_CHECK(ndr_pull_align(ndr
, 5));
17198 uint32_t _flags_save_string
= ndr
->flags
;
17199 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17200 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
17201 if (_ptr_port_name
) {
17202 NDR_PULL_ALLOC(ndr
, r
->port_name
);
17203 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
17205 r
->port_name
= NULL
;
17207 ndr
->flags
= _flags_save_string
;
17209 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17211 if (ndr_flags
& NDR_BUFFERS
) {
17213 uint32_t _flags_save_string
= ndr
->flags
;
17214 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17215 if (r
->port_name
) {
17216 uint32_t _relative_save_offset
;
17217 _relative_save_offset
= ndr
->offset
;
17218 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
17219 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17220 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
17221 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
17222 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
17223 ndr
->offset
= _relative_save_offset
;
17225 ndr
->flags
= _flags_save_string
;
17228 return NDR_ERR_SUCCESS
;
17231 _PUBLIC_
void ndr_print_spoolss_PortInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo1
*r
)
17233 ndr_print_struct(ndr
, name
, "spoolss_PortInfo1");
17235 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
17237 if (r
->port_name
) {
17238 ndr_print_string(ndr
, "port_name", r
->port_name
);
17244 _PUBLIC_
size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17246 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo1
, ic
);
17249 static enum ndr_err_code
ndr_push_spoolss_PortType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17251 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17252 return NDR_ERR_SUCCESS
;
17255 static enum ndr_err_code
ndr_pull_spoolss_PortType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17258 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17260 return NDR_ERR_SUCCESS
;
17263 _PUBLIC_
void ndr_print_spoolss_PortType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17265 ndr_print_uint32(ndr
, name
, r
);
17267 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE
, r
);
17268 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ
, r
);
17269 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED
, r
);
17270 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED
, r
);
17274 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo2
*r
)
17276 if (ndr_flags
& NDR_SCALARS
) {
17277 NDR_CHECK(ndr_push_align(ndr
, 5));
17279 uint32_t _flags_save_string
= ndr
->flags
;
17280 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17281 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
17282 ndr
->flags
= _flags_save_string
;
17285 uint32_t _flags_save_string
= ndr
->flags
;
17286 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17287 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
17288 ndr
->flags
= _flags_save_string
;
17291 uint32_t _flags_save_string
= ndr
->flags
;
17292 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17293 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
17294 ndr
->flags
= _flags_save_string
;
17296 NDR_CHECK(ndr_push_spoolss_PortType(ndr
, NDR_SCALARS
, r
->port_type
));
17297 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
17298 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17300 if (ndr_flags
& NDR_BUFFERS
) {
17302 uint32_t _flags_save_string
= ndr
->flags
;
17303 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17304 if (r
->port_name
) {
17305 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->port_name
));
17306 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
17307 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->port_name
));
17309 ndr
->flags
= _flags_save_string
;
17312 uint32_t _flags_save_string
= ndr
->flags
;
17313 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17314 if (r
->monitor_name
) {
17315 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
17316 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
17317 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
17319 ndr
->flags
= _flags_save_string
;
17322 uint32_t _flags_save_string
= ndr
->flags
;
17323 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17324 if (r
->description
) {
17325 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->description
));
17326 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
17327 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->description
));
17329 ndr
->flags
= _flags_save_string
;
17332 return NDR_ERR_SUCCESS
;
17335 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo2
*r
)
17337 uint32_t _ptr_port_name
;
17338 TALLOC_CTX
*_mem_save_port_name_0
;
17339 uint32_t _ptr_monitor_name
;
17340 TALLOC_CTX
*_mem_save_monitor_name_0
;
17341 uint32_t _ptr_description
;
17342 TALLOC_CTX
*_mem_save_description_0
;
17343 if (ndr_flags
& NDR_SCALARS
) {
17344 NDR_CHECK(ndr_pull_align(ndr
, 5));
17346 uint32_t _flags_save_string
= ndr
->flags
;
17347 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17348 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
17349 if (_ptr_port_name
) {
17350 NDR_PULL_ALLOC(ndr
, r
->port_name
);
17351 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
17353 r
->port_name
= NULL
;
17355 ndr
->flags
= _flags_save_string
;
17358 uint32_t _flags_save_string
= ndr
->flags
;
17359 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17360 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
17361 if (_ptr_monitor_name
) {
17362 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
17363 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
17365 r
->monitor_name
= NULL
;
17367 ndr
->flags
= _flags_save_string
;
17370 uint32_t _flags_save_string
= ndr
->flags
;
17371 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17372 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
17373 if (_ptr_description
) {
17374 NDR_PULL_ALLOC(ndr
, r
->description
);
17375 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
17377 r
->description
= NULL
;
17379 ndr
->flags
= _flags_save_string
;
17381 NDR_CHECK(ndr_pull_spoolss_PortType(ndr
, NDR_SCALARS
, &r
->port_type
));
17382 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
17383 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17385 if (ndr_flags
& NDR_BUFFERS
) {
17387 uint32_t _flags_save_string
= ndr
->flags
;
17388 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17389 if (r
->port_name
) {
17390 uint32_t _relative_save_offset
;
17391 _relative_save_offset
= ndr
->offset
;
17392 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
17393 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17394 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
17395 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
17396 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
17397 ndr
->offset
= _relative_save_offset
;
17399 ndr
->flags
= _flags_save_string
;
17402 uint32_t _flags_save_string
= ndr
->flags
;
17403 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17404 if (r
->monitor_name
) {
17405 uint32_t _relative_save_offset
;
17406 _relative_save_offset
= ndr
->offset
;
17407 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
17408 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17409 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
17410 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
17411 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
17412 ndr
->offset
= _relative_save_offset
;
17414 ndr
->flags
= _flags_save_string
;
17417 uint32_t _flags_save_string
= ndr
->flags
;
17418 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17419 if (r
->description
) {
17420 uint32_t _relative_save_offset
;
17421 _relative_save_offset
= ndr
->offset
;
17422 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
17423 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17424 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
17425 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
17426 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
17427 ndr
->offset
= _relative_save_offset
;
17429 ndr
->flags
= _flags_save_string
;
17432 return NDR_ERR_SUCCESS
;
17435 _PUBLIC_
void ndr_print_spoolss_PortInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo2
*r
)
17437 ndr_print_struct(ndr
, name
, "spoolss_PortInfo2");
17439 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
17441 if (r
->port_name
) {
17442 ndr_print_string(ndr
, "port_name", r
->port_name
);
17445 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
17447 if (r
->monitor_name
) {
17448 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
17451 ndr_print_ptr(ndr
, "description", r
->description
);
17453 if (r
->description
) {
17454 ndr_print_string(ndr
, "description", r
->description
);
17457 ndr_print_spoolss_PortType(ndr
, "port_type", r
->port_type
);
17458 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
17462 _PUBLIC_
size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17464 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo2
, ic
);
17467 static enum ndr_err_code
ndr_push_spoolss_PortStatus(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortStatus r
)
17469 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
17470 return NDR_ERR_SUCCESS
;
17473 static enum ndr_err_code
ndr_pull_spoolss_PortStatus(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortStatus
*r
)
17476 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
17478 return NDR_ERR_SUCCESS
;
17481 _PUBLIC_
void ndr_print_spoolss_PortStatus(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortStatus r
)
17483 const char *val
= NULL
;
17486 case PORT_STATUS_CLEAR
: val
= "PORT_STATUS_CLEAR"; break;
17487 case PORT_STATUS_OFFLINE
: val
= "PORT_STATUS_OFFLINE"; break;
17488 case PORT_STATUS_PAPER_JAM
: val
= "PORT_STATUS_PAPER_JAM"; break;
17489 case PORT_STATUS_PAPER_OUT
: val
= "PORT_STATUS_PAPER_OUT"; break;
17490 case PORT_STATUS_OUTPUT_BIN_FULL
: val
= "PORT_STATUS_OUTPUT_BIN_FULL"; break;
17491 case PORT_STATUS_PAPER_PROBLEM
: val
= "PORT_STATUS_PAPER_PROBLEM"; break;
17492 case PORT_STATUS_NO_TONER
: val
= "PORT_STATUS_NO_TONER"; break;
17493 case PORT_STATUS_DOOR_OPEN
: val
= "PORT_STATUS_DOOR_OPEN"; break;
17494 case PORT_STATUS_USER_INTERVENTION
: val
= "PORT_STATUS_USER_INTERVENTION"; break;
17495 case PORT_STATUS_OUT_OF_MEMORY
: val
= "PORT_STATUS_OUT_OF_MEMORY"; break;
17496 case PORT_STATUS_TONER_LOW
: val
= "PORT_STATUS_TONER_LOW"; break;
17497 case PORT_STATUS_WARMING_UP
: val
= "PORT_STATUS_WARMING_UP"; break;
17498 case PORT_STATUS_POWER_SAVE
: val
= "PORT_STATUS_POWER_SAVE"; break;
17500 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17503 static enum ndr_err_code
ndr_push_spoolss_PortSeverity(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortSeverity r
)
17505 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
17506 return NDR_ERR_SUCCESS
;
17509 static enum ndr_err_code
ndr_pull_spoolss_PortSeverity(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortSeverity
*r
)
17512 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
17514 return NDR_ERR_SUCCESS
;
17517 _PUBLIC_
void ndr_print_spoolss_PortSeverity(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortSeverity r
)
17519 const char *val
= NULL
;
17522 case PORT_STATUS_TYPE_ERROR
: val
= "PORT_STATUS_TYPE_ERROR"; break;
17523 case PORT_STATUS_TYPE_WARNING
: val
= "PORT_STATUS_TYPE_WARNING"; break;
17524 case PORT_STATUS_TYPE_INFO
: val
= "PORT_STATUS_TYPE_INFO"; break;
17526 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17529 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo3
*r
)
17531 if (ndr_flags
& NDR_SCALARS
) {
17532 NDR_CHECK(ndr_push_align(ndr
, 5));
17533 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr
, NDR_SCALARS
, r
->status
));
17535 uint32_t _flags_save_string
= ndr
->flags
;
17536 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17537 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->status_string
));
17538 ndr
->flags
= _flags_save_string
;
17540 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr
, NDR_SCALARS
, r
->severity
));
17541 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17543 if (ndr_flags
& NDR_BUFFERS
) {
17545 uint32_t _flags_save_string
= ndr
->flags
;
17546 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17547 if (r
->status_string
) {
17548 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->status_string
));
17549 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->status_string
));
17550 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->status_string
));
17552 ndr
->flags
= _flags_save_string
;
17555 return NDR_ERR_SUCCESS
;
17558 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo3
*r
)
17560 uint32_t _ptr_status_string
;
17561 TALLOC_CTX
*_mem_save_status_string_0
;
17562 if (ndr_flags
& NDR_SCALARS
) {
17563 NDR_CHECK(ndr_pull_align(ndr
, 5));
17564 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr
, NDR_SCALARS
, &r
->status
));
17566 uint32_t _flags_save_string
= ndr
->flags
;
17567 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17568 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_status_string
));
17569 if (_ptr_status_string
) {
17570 NDR_PULL_ALLOC(ndr
, r
->status_string
);
17571 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->status_string
, _ptr_status_string
));
17573 r
->status_string
= NULL
;
17575 ndr
->flags
= _flags_save_string
;
17577 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr
, NDR_SCALARS
, &r
->severity
));
17578 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17580 if (ndr_flags
& NDR_BUFFERS
) {
17582 uint32_t _flags_save_string
= ndr
->flags
;
17583 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17584 if (r
->status_string
) {
17585 uint32_t _relative_save_offset
;
17586 _relative_save_offset
= ndr
->offset
;
17587 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->status_string
));
17588 _mem_save_status_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17589 NDR_PULL_SET_MEM_CTX(ndr
, r
->status_string
, 0);
17590 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->status_string
));
17591 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_string_0
, 0);
17592 ndr
->offset
= _relative_save_offset
;
17594 ndr
->flags
= _flags_save_string
;
17597 return NDR_ERR_SUCCESS
;
17600 _PUBLIC_
void ndr_print_spoolss_PortInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo3
*r
)
17602 ndr_print_struct(ndr
, name
, "spoolss_PortInfo3");
17604 ndr_print_spoolss_PortStatus(ndr
, "status", r
->status
);
17605 ndr_print_ptr(ndr
, "status_string", r
->status_string
);
17607 if (r
->status_string
) {
17608 ndr_print_string(ndr
, "status_string", r
->status_string
);
17611 ndr_print_spoolss_PortSeverity(ndr
, "severity", r
->severity
);
17615 _PUBLIC_
size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17617 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo3
, ic
);
17620 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfoFF(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfoFF
*r
)
17622 if (ndr_flags
& NDR_SCALARS
) {
17623 NDR_CHECK(ndr_push_align(ndr
, 5));
17625 uint32_t _flags_save_string
= ndr
->flags
;
17626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17627 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
17628 ndr
->flags
= _flags_save_string
;
17630 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->monitor_data
));
17631 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17633 if (ndr_flags
& NDR_BUFFERS
) {
17635 uint32_t _flags_save_string
= ndr
->flags
;
17636 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17637 if (r
->port_name
) {
17638 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->port_name
));
17639 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
17640 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->port_name
));
17642 ndr
->flags
= _flags_save_string
;
17645 return NDR_ERR_SUCCESS
;
17648 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfoFF(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfoFF
*r
)
17650 uint32_t _ptr_port_name
;
17651 TALLOC_CTX
*_mem_save_port_name_0
;
17652 if (ndr_flags
& NDR_SCALARS
) {
17653 NDR_CHECK(ndr_pull_align(ndr
, 5));
17655 uint32_t _flags_save_string
= ndr
->flags
;
17656 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17657 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
17658 if (_ptr_port_name
) {
17659 NDR_PULL_ALLOC(ndr
, r
->port_name
);
17660 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
17662 r
->port_name
= NULL
;
17664 ndr
->flags
= _flags_save_string
;
17666 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->monitor_data
));
17667 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17669 if (ndr_flags
& NDR_BUFFERS
) {
17671 uint32_t _flags_save_string
= ndr
->flags
;
17672 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17673 if (r
->port_name
) {
17674 uint32_t _relative_save_offset
;
17675 _relative_save_offset
= ndr
->offset
;
17676 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
17677 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17678 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
17679 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
17680 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
17681 ndr
->offset
= _relative_save_offset
;
17683 ndr
->flags
= _flags_save_string
;
17686 return NDR_ERR_SUCCESS
;
17689 _PUBLIC_
void ndr_print_spoolss_PortInfoFF(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfoFF
*r
)
17691 ndr_print_struct(ndr
, name
, "spoolss_PortInfoFF");
17693 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
17695 if (r
->port_name
) {
17696 ndr_print_string(ndr
, "port_name", r
->port_name
);
17699 ndr_print_DATA_BLOB(ndr
, "monitor_data", r
->monitor_data
);
17703 _PUBLIC_
size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17705 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfoFF
, ic
);
17708 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PortInfo
*r
)
17710 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
17712 uint32_t _flags_save_UNION
= ndr
->flags
;
17713 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
17714 if (ndr_flags
& NDR_SCALARS
) {
17715 int level
= ndr_push_get_switch_value(ndr
, r
);
17716 NDR_CHECK(ndr_push_union_align(ndr
, 5));
17719 NDR_CHECK(ndr_push_align(ndr
, 5));
17720 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17721 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17725 NDR_CHECK(ndr_push_align(ndr
, 5));
17726 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17727 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
17731 NDR_CHECK(ndr_push_align(ndr
, 5));
17732 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17733 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
17737 NDR_CHECK(ndr_push_align(ndr
, 5));
17738 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17739 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
17747 if (ndr_flags
& NDR_BUFFERS
) {
17748 int level
= ndr_push_get_switch_value(ndr
, r
);
17749 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
17752 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17756 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
17760 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
17764 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
17772 ndr
->flags
= _flags_save_UNION
;
17774 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17775 return NDR_ERR_SUCCESS
;
17778 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PortInfo
*r
)
17780 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
17783 uint32_t _flags_save_UNION
= ndr
->flags
;
17784 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
17785 level
= ndr_pull_get_switch_value(ndr
, r
);
17786 if (ndr_flags
& NDR_SCALARS
) {
17787 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
17790 NDR_CHECK(ndr_pull_align(ndr
, 5));
17791 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17792 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17796 NDR_CHECK(ndr_pull_align(ndr
, 5));
17797 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17798 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
17802 NDR_CHECK(ndr_pull_align(ndr
, 5));
17803 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17804 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
17808 NDR_CHECK(ndr_pull_align(ndr
, 5));
17809 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17810 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
17818 if (ndr_flags
& NDR_BUFFERS
) {
17819 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
17822 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17826 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
17830 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
17834 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
17842 ndr
->flags
= _flags_save_UNION
;
17844 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17845 return NDR_ERR_SUCCESS
;
17848 _PUBLIC_
void ndr_print_spoolss_PortInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PortInfo
*r
)
17852 uint32_t _flags_save_UNION
= ndr
->flags
;
17853 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
17854 level
= ndr_print_get_switch_value(ndr
, r
);
17855 ndr_print_union(ndr
, name
, level
, "spoolss_PortInfo");
17858 ndr_print_spoolss_PortInfo1(ndr
, "info1", &r
->info1
);
17862 ndr_print_spoolss_PortInfo2(ndr
, "info2", &r
->info2
);
17866 ndr_print_spoolss_PortInfo3(ndr
, "info3", &r
->info3
);
17870 ndr_print_spoolss_PortInfoFF(ndr
, "infoFF", &r
->infoFF
);
17877 ndr
->flags
= _flags_save_UNION
;
17881 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo1
*r
)
17883 if (ndr_flags
& NDR_SCALARS
) {
17884 NDR_CHECK(ndr_push_align(ndr
, 5));
17886 uint32_t _flags_save_string
= ndr
->flags
;
17887 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17888 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
17889 ndr
->flags
= _flags_save_string
;
17891 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17893 if (ndr_flags
& NDR_BUFFERS
) {
17895 uint32_t _flags_save_string
= ndr
->flags
;
17896 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17897 if (r
->monitor_name
) {
17898 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
17899 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
17900 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
17902 ndr
->flags
= _flags_save_string
;
17905 return NDR_ERR_SUCCESS
;
17908 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo1
*r
)
17910 uint32_t _ptr_monitor_name
;
17911 TALLOC_CTX
*_mem_save_monitor_name_0
;
17912 if (ndr_flags
& NDR_SCALARS
) {
17913 NDR_CHECK(ndr_pull_align(ndr
, 5));
17915 uint32_t _flags_save_string
= ndr
->flags
;
17916 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17917 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
17918 if (_ptr_monitor_name
) {
17919 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
17920 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
17922 r
->monitor_name
= NULL
;
17924 ndr
->flags
= _flags_save_string
;
17926 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17928 if (ndr_flags
& NDR_BUFFERS
) {
17930 uint32_t _flags_save_string
= ndr
->flags
;
17931 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17932 if (r
->monitor_name
) {
17933 uint32_t _relative_save_offset
;
17934 _relative_save_offset
= ndr
->offset
;
17935 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
17936 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17937 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
17938 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
17939 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
17940 ndr
->offset
= _relative_save_offset
;
17942 ndr
->flags
= _flags_save_string
;
17945 return NDR_ERR_SUCCESS
;
17948 _PUBLIC_
void ndr_print_spoolss_MonitorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo1
*r
)
17950 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo1");
17952 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
17954 if (r
->monitor_name
) {
17955 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
17961 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17963 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo1
, ic
);
17966 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo2
*r
)
17968 if (ndr_flags
& NDR_SCALARS
) {
17969 NDR_CHECK(ndr_push_align(ndr
, 5));
17971 uint32_t _flags_save_string
= ndr
->flags
;
17972 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17973 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
17974 ndr
->flags
= _flags_save_string
;
17977 uint32_t _flags_save_string
= ndr
->flags
;
17978 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17979 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->environment
));
17980 ndr
->flags
= _flags_save_string
;
17983 uint32_t _flags_save_string
= ndr
->flags
;
17984 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17985 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dll_name
));
17986 ndr
->flags
= _flags_save_string
;
17988 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17990 if (ndr_flags
& NDR_BUFFERS
) {
17992 uint32_t _flags_save_string
= ndr
->flags
;
17993 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
17994 if (r
->monitor_name
) {
17995 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
17996 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
17997 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
17999 ndr
->flags
= _flags_save_string
;
18002 uint32_t _flags_save_string
= ndr
->flags
;
18003 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
18004 if (r
->environment
) {
18005 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->environment
));
18006 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->environment
));
18007 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->environment
));
18009 ndr
->flags
= _flags_save_string
;
18012 uint32_t _flags_save_string
= ndr
->flags
;
18013 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
18015 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dll_name
));
18016 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
18017 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dll_name
));
18019 ndr
->flags
= _flags_save_string
;
18022 return NDR_ERR_SUCCESS
;
18025 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo2
*r
)
18027 uint32_t _ptr_monitor_name
;
18028 TALLOC_CTX
*_mem_save_monitor_name_0
;
18029 uint32_t _ptr_environment
;
18030 TALLOC_CTX
*_mem_save_environment_0
;
18031 uint32_t _ptr_dll_name
;
18032 TALLOC_CTX
*_mem_save_dll_name_0
;
18033 if (ndr_flags
& NDR_SCALARS
) {
18034 NDR_CHECK(ndr_pull_align(ndr
, 5));
18036 uint32_t _flags_save_string
= ndr
->flags
;
18037 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
18038 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
18039 if (_ptr_monitor_name
) {
18040 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
18041 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
18043 r
->monitor_name
= NULL
;
18045 ndr
->flags
= _flags_save_string
;
18048 uint32_t _flags_save_string
= ndr
->flags
;
18049 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
18050 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
18051 if (_ptr_environment
) {
18052 NDR_PULL_ALLOC(ndr
, r
->environment
);
18053 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->environment
, _ptr_environment
));
18055 r
->environment
= NULL
;
18057 ndr
->flags
= _flags_save_string
;
18060 uint32_t _flags_save_string
= ndr
->flags
;
18061 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
18062 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dll_name
));
18063 if (_ptr_dll_name
) {
18064 NDR_PULL_ALLOC(ndr
, r
->dll_name
);
18065 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dll_name
, _ptr_dll_name
));
18067 r
->dll_name
= NULL
;
18069 ndr
->flags
= _flags_save_string
;
18071 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18073 if (ndr_flags
& NDR_BUFFERS
) {
18075 uint32_t _flags_save_string
= ndr
->flags
;
18076 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
18077 if (r
->monitor_name
) {
18078 uint32_t _relative_save_offset
;
18079 _relative_save_offset
= ndr
->offset
;
18080 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
18081 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18082 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
18083 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
18084 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
18085 ndr
->offset
= _relative_save_offset
;
18087 ndr
->flags
= _flags_save_string
;
18090 uint32_t _flags_save_string
= ndr
->flags
;
18091 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
18092 if (r
->environment
) {
18093 uint32_t _relative_save_offset
;
18094 _relative_save_offset
= ndr
->offset
;
18095 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->environment
));
18096 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18097 NDR_PULL_SET_MEM_CTX(ndr
, r
->environment
, 0);
18098 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->environment
));
18099 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
18100 ndr
->offset
= _relative_save_offset
;
18102 ndr
->flags
= _flags_save_string
;
18105 uint32_t _flags_save_string
= ndr
->flags
;
18106 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
18108 uint32_t _relative_save_offset
;
18109 _relative_save_offset
= ndr
->offset
;
18110 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dll_name
));
18111 _mem_save_dll_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18112 NDR_PULL_SET_MEM_CTX(ndr
, r
->dll_name
, 0);
18113 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
18114 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dll_name_0
, 0);
18115 ndr
->offset
= _relative_save_offset
;
18117 ndr
->flags
= _flags_save_string
;
18120 return NDR_ERR_SUCCESS
;
18123 _PUBLIC_
void ndr_print_spoolss_MonitorInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo2
*r
)
18125 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo2");
18127 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
18129 if (r
->monitor_name
) {
18130 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
18133 ndr_print_ptr(ndr
, "environment", r
->environment
);
18135 if (r
->environment
) {
18136 ndr_print_string(ndr
, "environment", r
->environment
);
18139 ndr_print_ptr(ndr
, "dll_name", r
->dll_name
);
18142 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
18148 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
18150 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo2
, ic
);
18153 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_MonitorInfo
*r
)
18155 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
18157 uint32_t _flags_save_UNION
= ndr
->flags
;
18158 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18159 if (ndr_flags
& NDR_SCALARS
) {
18160 int level
= ndr_push_get_switch_value(ndr
, r
);
18161 NDR_CHECK(ndr_push_union_align(ndr
, 5));
18164 NDR_CHECK(ndr_push_align(ndr
, 5));
18165 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18166 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
18170 NDR_CHECK(ndr_push_align(ndr
, 5));
18171 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18172 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
18180 if (ndr_flags
& NDR_BUFFERS
) {
18181 int level
= ndr_push_get_switch_value(ndr
, r
);
18182 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
18185 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
18189 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
18197 ndr
->flags
= _flags_save_UNION
;
18199 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18200 return NDR_ERR_SUCCESS
;
18203 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_MonitorInfo
*r
)
18205 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
18208 uint32_t _flags_save_UNION
= ndr
->flags
;
18209 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18210 level
= ndr_pull_get_switch_value(ndr
, r
);
18211 if (ndr_flags
& NDR_SCALARS
) {
18212 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
18215 NDR_CHECK(ndr_pull_align(ndr
, 5));
18216 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18217 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
18221 NDR_CHECK(ndr_pull_align(ndr
, 5));
18222 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18223 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
18231 if (ndr_flags
& NDR_BUFFERS
) {
18232 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
18235 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
18239 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
18247 ndr
->flags
= _flags_save_UNION
;
18249 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18250 return NDR_ERR_SUCCESS
;
18253 _PUBLIC_
void ndr_print_spoolss_MonitorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_MonitorInfo
*r
)
18257 uint32_t _flags_save_UNION
= ndr
->flags
;
18258 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18259 level
= ndr_print_get_switch_value(ndr
, r
);
18260 ndr_print_union(ndr
, name
, level
, "spoolss_MonitorInfo");
18263 ndr_print_spoolss_MonitorInfo1(ndr
, "info1", &r
->info1
);
18267 ndr_print_spoolss_MonitorInfo2(ndr
, "info2", &r
->info2
);
18274 ndr
->flags
= _flags_save_UNION
;
18278 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
18280 if (ndr_flags
& NDR_SCALARS
) {
18281 NDR_CHECK(ndr_push_align(ndr
, 5));
18283 uint32_t _flags_save_string
= ndr
->flags
;
18284 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
18285 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name_array
));
18286 ndr
->flags
= _flags_save_string
;
18288 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18290 if (ndr_flags
& NDR_BUFFERS
) {
18292 uint32_t _flags_save_string
= ndr
->flags
;
18293 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
18294 if (r
->name_array
) {
18295 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->name_array
));
18296 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name_array
));
18297 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->name_array
));
18299 ndr
->flags
= _flags_save_string
;
18302 return NDR_ERR_SUCCESS
;
18305 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcDataTypesInfo1
*r
)
18307 uint32_t _ptr_name_array
;
18308 TALLOC_CTX
*_mem_save_name_array_0
;
18309 if (ndr_flags
& NDR_SCALARS
) {
18310 NDR_CHECK(ndr_pull_align(ndr
, 5));
18312 uint32_t _flags_save_string
= ndr
->flags
;
18313 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
18314 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name_array
));
18315 if (_ptr_name_array
) {
18316 NDR_PULL_ALLOC(ndr
, r
->name_array
);
18317 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name_array
, _ptr_name_array
));
18319 r
->name_array
= NULL
;
18321 ndr
->flags
= _flags_save_string
;
18323 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18325 if (ndr_flags
& NDR_BUFFERS
) {
18327 uint32_t _flags_save_string
= ndr
->flags
;
18328 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
18329 if (r
->name_array
) {
18330 uint32_t _relative_save_offset
;
18331 _relative_save_offset
= ndr
->offset
;
18332 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name_array
));
18333 _mem_save_name_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18334 NDR_PULL_SET_MEM_CTX(ndr
, r
->name_array
, 0);
18335 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name_array
));
18336 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_array_0
, 0);
18337 ndr
->offset
= _relative_save_offset
;
18339 ndr
->flags
= _flags_save_string
;
18342 return NDR_ERR_SUCCESS
;
18345 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
18347 ndr_print_struct(ndr
, name
, "spoolss_PrintProcDataTypesInfo1");
18349 ndr_print_ptr(ndr
, "name_array", r
->name_array
);
18351 if (r
->name_array
) {
18352 ndr_print_string(ndr
, "name_array", r
->name_array
);
18358 _PUBLIC_
size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
18360 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcDataTypesInfo1
, ic
);
18363 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcDataTypesInfo
*r
)
18365 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
18367 uint32_t _flags_save_UNION
= ndr
->flags
;
18368 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18369 if (ndr_flags
& NDR_SCALARS
) {
18370 int level
= ndr_push_get_switch_value(ndr
, r
);
18371 NDR_CHECK(ndr_push_union_align(ndr
, 5));
18374 NDR_CHECK(ndr_push_align(ndr
, 5));
18375 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18376 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
18384 if (ndr_flags
& NDR_BUFFERS
) {
18385 int level
= ndr_push_get_switch_value(ndr
, r
);
18386 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
18389 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
18397 ndr
->flags
= _flags_save_UNION
;
18399 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18400 return NDR_ERR_SUCCESS
;
18403 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcDataTypesInfo
*r
)
18405 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
18408 uint32_t _flags_save_UNION
= ndr
->flags
;
18409 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18410 level
= ndr_pull_get_switch_value(ndr
, r
);
18411 if (ndr_flags
& NDR_SCALARS
) {
18412 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
18415 NDR_CHECK(ndr_pull_align(ndr
, 5));
18416 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18417 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
18425 if (ndr_flags
& NDR_BUFFERS
) {
18426 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
18429 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
18437 ndr
->flags
= _flags_save_UNION
;
18439 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18440 return NDR_ERR_SUCCESS
;
18443 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcDataTypesInfo
*r
)
18447 uint32_t _flags_save_UNION
= ndr
->flags
;
18448 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18449 level
= ndr_print_get_switch_value(ndr
, r
);
18450 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcDataTypesInfo");
18453 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr
, "info1", &r
->info1
);
18460 ndr
->flags
= _flags_save_UNION
;
18464 static enum ndr_err_code
ndr_push_spoolss_PrinterChangeFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18466 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18467 return NDR_ERR_SUCCESS
;
18470 static enum ndr_err_code
ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18473 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18475 return NDR_ERR_SUCCESS
;
18478 _PUBLIC_
void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18480 ndr_print_uint32(ndr
, name
, r
);
18482 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER
, r
);
18483 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER
, r
);
18484 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER
, r
);
18485 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER
, r
);
18486 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB
, r
);
18487 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB
, r
);
18488 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB
, r
);
18489 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB
, r
);
18490 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM
, r
);
18491 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM
, r
);
18492 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM
, r
);
18493 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT
, r
);
18494 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT
, r
);
18495 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT
, r
);
18496 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR
, r
);
18497 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR
, r
);
18498 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER
, r
);
18499 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER
, r
);
18500 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER
, r
);
18501 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER
, r
);
18502 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT
, r
);
18506 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobNotifyField(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobNotifyField r
)
18508 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
18509 return NDR_ERR_SUCCESS
;
18512 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobNotifyField(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobNotifyField
*r
)
18515 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
18517 return NDR_ERR_SUCCESS
;
18520 _PUBLIC_
void ndr_print_spoolss_JobNotifyField(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobNotifyField r
)
18522 const char *val
= NULL
;
18525 case JOB_NOTIFY_FIELD_PRINTER_NAME
: val
= "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
18526 case JOB_NOTIFY_FIELD_MACHINE_NAME
: val
= "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
18527 case JOB_NOTIFY_FIELD_PORT_NAME
: val
= "JOB_NOTIFY_FIELD_PORT_NAME"; break;
18528 case JOB_NOTIFY_FIELD_USER_NAME
: val
= "JOB_NOTIFY_FIELD_USER_NAME"; break;
18529 case JOB_NOTIFY_FIELD_NOTIFY_NAME
: val
= "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
18530 case JOB_NOTIFY_FIELD_DATATYPE
: val
= "JOB_NOTIFY_FIELD_DATATYPE"; break;
18531 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR
: val
= "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18532 case JOB_NOTIFY_FIELD_PARAMETERS
: val
= "JOB_NOTIFY_FIELD_PARAMETERS"; break;
18533 case JOB_NOTIFY_FIELD_DRIVER_NAME
: val
= "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
18534 case JOB_NOTIFY_FIELD_DEVMODE
: val
= "JOB_NOTIFY_FIELD_DEVMODE"; break;
18535 case JOB_NOTIFY_FIELD_STATUS
: val
= "JOB_NOTIFY_FIELD_STATUS"; break;
18536 case JOB_NOTIFY_FIELD_STATUS_STRING
: val
= "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
18537 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: val
= "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18538 case JOB_NOTIFY_FIELD_DOCUMENT
: val
= "JOB_NOTIFY_FIELD_DOCUMENT"; break;
18539 case JOB_NOTIFY_FIELD_PRIORITY
: val
= "JOB_NOTIFY_FIELD_PRIORITY"; break;
18540 case JOB_NOTIFY_FIELD_POSITION
: val
= "JOB_NOTIFY_FIELD_POSITION"; break;
18541 case JOB_NOTIFY_FIELD_SUBMITTED
: val
= "JOB_NOTIFY_FIELD_SUBMITTED"; break;
18542 case JOB_NOTIFY_FIELD_START_TIME
: val
= "JOB_NOTIFY_FIELD_START_TIME"; break;
18543 case JOB_NOTIFY_FIELD_UNTIL_TIME
: val
= "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
18544 case JOB_NOTIFY_FIELD_TIME
: val
= "JOB_NOTIFY_FIELD_TIME"; break;
18545 case JOB_NOTIFY_FIELD_TOTAL_PAGES
: val
= "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
18546 case JOB_NOTIFY_FIELD_PAGES_PRINTED
: val
= "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
18547 case JOB_NOTIFY_FIELD_TOTAL_BYTES
: val
= "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
18548 case JOB_NOTIFY_FIELD_BYTES_PRINTED
: val
= "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
18550 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18553 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintNotifyField(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrintNotifyField r
)
18555 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
18556 return NDR_ERR_SUCCESS
;
18559 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintNotifyField(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrintNotifyField
*r
)
18562 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
18564 return NDR_ERR_SUCCESS
;
18567 _PUBLIC_
void ndr_print_spoolss_PrintNotifyField(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrintNotifyField r
)
18569 const char *val
= NULL
;
18572 case PRINTER_NOTIFY_FIELD_SERVER_NAME
: val
= "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
18573 case PRINTER_NOTIFY_FIELD_PRINTER_NAME
: val
= "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
18574 case PRINTER_NOTIFY_FIELD_SHARE_NAME
: val
= "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
18575 case PRINTER_NOTIFY_FIELD_PORT_NAME
: val
= "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
18576 case PRINTER_NOTIFY_FIELD_DRIVER_NAME
: val
= "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
18577 case PRINTER_NOTIFY_FIELD_COMMENT
: val
= "PRINTER_NOTIFY_FIELD_COMMENT"; break;
18578 case PRINTER_NOTIFY_FIELD_LOCATION
: val
= "PRINTER_NOTIFY_FIELD_LOCATION"; break;
18579 case PRINTER_NOTIFY_FIELD_DEVMODE
: val
= "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
18580 case PRINTER_NOTIFY_FIELD_SEPFILE
: val
= "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
18581 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR
: val
= "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18582 case PRINTER_NOTIFY_FIELD_PARAMETERS
: val
= "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
18583 case PRINTER_NOTIFY_FIELD_DATATYPE
: val
= "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
18584 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: val
= "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18585 case PRINTER_NOTIFY_FIELD_ATTRIBUTES
: val
= "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
18586 case PRINTER_NOTIFY_FIELD_PRIORITY
: val
= "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
18587 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY
: val
= "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
18588 case PRINTER_NOTIFY_FIELD_START_TIME
: val
= "PRINTER_NOTIFY_FIELD_START_TIME"; break;
18589 case PRINTER_NOTIFY_FIELD_UNTIL_TIME
: val
= "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
18590 case PRINTER_NOTIFY_FIELD_STATUS
: val
= "PRINTER_NOTIFY_FIELD_STATUS"; break;
18591 case PRINTER_NOTIFY_FIELD_STATUS_STRING
: val
= "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
18592 case PRINTER_NOTIFY_FIELD_CJOBS
: val
= "PRINTER_NOTIFY_FIELD_CJOBS"; break;
18593 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM
: val
= "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
18594 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES
: val
= "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
18595 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED
: val
= "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
18596 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES
: val
= "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
18597 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED
: val
= "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
18598 case PRINTER_NOTIFY_FIELD_OBJECT_GUID
: val
= "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
18599 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME
: val
= "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
18601 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18604 static enum ndr_err_code
ndr_push_spoolss_NotifyType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyType r
)
18606 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
18607 return NDR_ERR_SUCCESS
;
18610 static enum ndr_err_code
ndr_pull_spoolss_NotifyType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyType
*r
)
18613 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
18615 return NDR_ERR_SUCCESS
;
18618 _PUBLIC_
void ndr_print_spoolss_NotifyType(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyType r
)
18620 const char *val
= NULL
;
18623 case PRINTER_NOTIFY_TYPE
: val
= "PRINTER_NOTIFY_TYPE"; break;
18624 case JOB_NOTIFY_TYPE
: val
= "JOB_NOTIFY_TYPE"; break;
18626 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18629 static enum ndr_err_code
ndr_push_spoolss_Field(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_Field
*r
)
18631 if (ndr_flags
& NDR_SCALARS
) {
18632 int level
= ndr_push_get_switch_value(ndr
, r
);
18633 NDR_CHECK(ndr_push_union_align(ndr
, 2));
18635 case PRINTER_NOTIFY_TYPE
: {
18636 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
18639 case JOB_NOTIFY_TYPE
: {
18640 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
18644 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
18649 if (ndr_flags
& NDR_BUFFERS
) {
18650 int level
= ndr_push_get_switch_value(ndr
, r
);
18652 case PRINTER_NOTIFY_TYPE
:
18655 case JOB_NOTIFY_TYPE
:
18663 return NDR_ERR_SUCCESS
;
18666 static enum ndr_err_code
ndr_pull_spoolss_Field(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_Field
*r
)
18669 level
= ndr_pull_get_switch_value(ndr
, r
);
18670 if (ndr_flags
& NDR_SCALARS
) {
18671 NDR_CHECK(ndr_pull_union_align(ndr
, 2));
18673 case PRINTER_NOTIFY_TYPE
: {
18674 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
18677 case JOB_NOTIFY_TYPE
: {
18678 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
18682 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
18687 if (ndr_flags
& NDR_BUFFERS
) {
18689 case PRINTER_NOTIFY_TYPE
:
18692 case JOB_NOTIFY_TYPE
:
18700 return NDR_ERR_SUCCESS
;
18703 static enum ndr_err_code
ndr_push_spoolss_NotifyOptionType(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOptionType
*r
)
18705 uint32_t cntr_fields_1
;
18706 if (ndr_flags
& NDR_SCALARS
) {
18707 NDR_CHECK(ndr_push_align(ndr
, 5));
18708 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
18709 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->u1
));
18710 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u2
));
18711 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u3
));
18712 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
18713 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->fields
));
18714 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18716 if (ndr_flags
& NDR_BUFFERS
) {
18718 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
18719 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
18720 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
));
18721 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
18725 return NDR_ERR_SUCCESS
;
18728 static enum ndr_err_code
ndr_pull_spoolss_NotifyOptionType(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOptionType
*r
)
18730 uint32_t _ptr_fields
;
18731 uint32_t size_fields_1
= 0;
18732 uint32_t cntr_fields_1
;
18733 TALLOC_CTX
*_mem_save_fields_0
;
18734 TALLOC_CTX
*_mem_save_fields_1
;
18735 if (ndr_flags
& NDR_SCALARS
) {
18736 NDR_CHECK(ndr_pull_align(ndr
, 5));
18737 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
18738 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->u1
));
18739 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u2
));
18740 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u3
));
18741 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
18742 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_fields
));
18744 NDR_PULL_ALLOC(ndr
, r
->fields
);
18748 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18750 if (ndr_flags
& NDR_BUFFERS
) {
18752 _mem_save_fields_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18753 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
18754 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->fields
));
18755 size_fields_1
= ndr_get_array_size(ndr
, &r
->fields
);
18756 NDR_PULL_ALLOC_N(ndr
, r
->fields
, size_fields_1
);
18757 _mem_save_fields_1
= NDR_PULL_GET_MEM_CTX(ndr
);
18758 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
18759 for (cntr_fields_1
= 0; cntr_fields_1
< size_fields_1
; cntr_fields_1
++) {
18760 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
));
18761 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
18763 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_1
, 0);
18764 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_0
, 0);
18767 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->fields
, r
->count
));
18770 return NDR_ERR_SUCCESS
;
18773 _PUBLIC_
void ndr_print_spoolss_NotifyOptionType(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOptionType
*r
)
18775 uint32_t cntr_fields_1
;
18776 ndr_print_struct(ndr
, name
, "spoolss_NotifyOptionType");
18778 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
18779 ndr_print_uint16(ndr
, "u1", r
->u1
);
18780 ndr_print_uint32(ndr
, "u2", r
->u2
);
18781 ndr_print_uint32(ndr
, "u3", r
->u3
);
18782 ndr_print_uint32(ndr
, "count", r
->count
);
18783 ndr_print_ptr(ndr
, "fields", r
->fields
);
18786 ndr
->print(ndr
, "%s: ARRAY(%d)", "fields", (int)r
->count
);
18788 for (cntr_fields_1
=0;cntr_fields_1
<r
->count
;cntr_fields_1
++) {
18790 if (asprintf(&idx_1
, "[%d]", cntr_fields_1
) != -1) {
18791 ndr_print_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
);
18792 ndr_print_spoolss_Field(ndr
, "fields", &r
->fields
[cntr_fields_1
]);
18802 static enum ndr_err_code
ndr_push_spoolssNotifyOptionFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18804 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18805 return NDR_ERR_SUCCESS
;
18808 static enum ndr_err_code
ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18811 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18813 return NDR_ERR_SUCCESS
;
18816 _PUBLIC_
void ndr_print_spoolssNotifyOptionFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18818 ndr_print_uint32(ndr
, name
, r
);
18820 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH
, r
);
18824 static enum ndr_err_code
ndr_push_spoolss_NotifyOption(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOption
*r
)
18826 uint32_t cntr_types_1
;
18827 if (ndr_flags
& NDR_SCALARS
) {
18828 NDR_CHECK(ndr_push_align(ndr
, 5));
18829 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
18830 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, r
->flags
));
18831 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
18832 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->types
));
18833 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18835 if (ndr_flags
& NDR_BUFFERS
) {
18837 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
18838 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
18839 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
18841 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
18842 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
18846 return NDR_ERR_SUCCESS
;
18849 static enum ndr_err_code
ndr_pull_spoolss_NotifyOption(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOption
*r
)
18851 uint32_t _ptr_types
;
18852 uint32_t size_types_1
= 0;
18853 uint32_t cntr_types_1
;
18854 TALLOC_CTX
*_mem_save_types_0
;
18855 TALLOC_CTX
*_mem_save_types_1
;
18856 if (ndr_flags
& NDR_SCALARS
) {
18857 NDR_CHECK(ndr_pull_align(ndr
, 5));
18858 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
18859 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, &r
->flags
));
18860 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
18861 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_types
));
18863 NDR_PULL_ALLOC(ndr
, r
->types
);
18867 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18869 if (ndr_flags
& NDR_BUFFERS
) {
18871 _mem_save_types_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18872 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
18873 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->types
));
18874 size_types_1
= ndr_get_array_size(ndr
, &r
->types
);
18875 NDR_PULL_ALLOC_N(ndr
, r
->types
, size_types_1
);
18876 _mem_save_types_1
= NDR_PULL_GET_MEM_CTX(ndr
);
18877 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
18878 for (cntr_types_1
= 0; cntr_types_1
< size_types_1
; cntr_types_1
++) {
18879 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
18881 for (cntr_types_1
= 0; cntr_types_1
< size_types_1
; cntr_types_1
++) {
18882 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
18884 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_1
, 0);
18885 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_0
, 0);
18888 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->types
, r
->count
));
18891 return NDR_ERR_SUCCESS
;
18894 _PUBLIC_
void ndr_print_spoolss_NotifyOption(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOption
*r
)
18896 uint32_t cntr_types_1
;
18897 ndr_print_struct(ndr
, name
, "spoolss_NotifyOption");
18899 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
18900 ndr_print_spoolssNotifyOptionFlags(ndr
, "flags", r
->flags
);
18901 ndr_print_uint32(ndr
, "count", r
->count
);
18902 ndr_print_ptr(ndr
, "types", r
->types
);
18905 ndr
->print(ndr
, "%s: ARRAY(%d)", "types", (int)r
->count
);
18907 for (cntr_types_1
=0;cntr_types_1
<r
->count
;cntr_types_1
++) {
18909 if (asprintf(&idx_1
, "[%d]", cntr_types_1
) != -1) {
18910 ndr_print_spoolss_NotifyOptionType(ndr
, "types", &r
->types
[cntr_types_1
]);
18920 static enum ndr_err_code
ndr_push_spoolss_NotifyString(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyString
*r
)
18922 if (ndr_flags
& NDR_SCALARS
) {
18923 NDR_CHECK(ndr_push_align(ndr
, 5));
18924 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
18925 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->string
));
18926 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18928 if (ndr_flags
& NDR_BUFFERS
) {
18930 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
/ 2));
18931 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->string
, r
->size
/ 2, sizeof(uint16_t), CH_UTF16
));
18934 return NDR_ERR_SUCCESS
;
18937 static enum ndr_err_code
ndr_pull_spoolss_NotifyString(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyString
*r
)
18939 uint32_t _ptr_string
;
18940 uint32_t size_string_1
= 0;
18941 TALLOC_CTX
*_mem_save_string_0
;
18942 if (ndr_flags
& NDR_SCALARS
) {
18943 NDR_CHECK(ndr_pull_align(ndr
, 5));
18944 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18945 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_string
));
18947 NDR_PULL_ALLOC(ndr
, r
->string
);
18951 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18953 if (ndr_flags
& NDR_BUFFERS
) {
18955 _mem_save_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18956 NDR_PULL_SET_MEM_CTX(ndr
, r
->string
, 0);
18957 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->string
));
18958 size_string_1
= ndr_get_array_size(ndr
, &r
->string
);
18959 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->string
, size_string_1
, sizeof(uint16_t), CH_UTF16
));
18960 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_string_0
, 0);
18963 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->string
, r
->size
/ 2));
18966 return NDR_ERR_SUCCESS
;
18969 _PUBLIC_
void ndr_print_spoolss_NotifyString(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyString
*r
)
18971 ndr_print_struct(ndr
, name
, "spoolss_NotifyString");
18973 ndr_print_uint32(ndr
, "size", r
->size
);
18974 ndr_print_ptr(ndr
, "string", r
->string
);
18977 ndr_print_string(ndr
, "string", r
->string
);
18983 static enum ndr_err_code
ndr_push_spoolss_NotifyTable(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyTable r
)
18985 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
18986 return NDR_ERR_SUCCESS
;
18989 static enum ndr_err_code
ndr_pull_spoolss_NotifyTable(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyTable
*r
)
18992 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
18994 return NDR_ERR_SUCCESS
;
18997 _PUBLIC_
void ndr_print_spoolss_NotifyTable(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyTable r
)
18999 const char *val
= NULL
;
19002 case NOTIFY_TABLE_DWORD
: val
= "NOTIFY_TABLE_DWORD"; break;
19003 case NOTIFY_TABLE_STRING
: val
= "NOTIFY_TABLE_STRING"; break;
19004 case NOTIFY_TABLE_DEVMODE
: val
= "NOTIFY_TABLE_DEVMODE"; break;
19005 case NOTIFY_TABLE_TIME
: val
= "NOTIFY_TABLE_TIME"; break;
19006 case NOTIFY_TABLE_SECURITYDESCRIPTOR
: val
= "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
19008 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
19011 static enum ndr_err_code
ndr_push_spoolss_NotifyData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_NotifyData
*r
)
19013 if (ndr_flags
& NDR_SCALARS
) {
19014 int level
= ndr_push_get_switch_value(ndr
, r
);
19015 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
19016 NDR_CHECK(ndr_push_union_align(ndr
, 5));
19019 uint32_t cntr_integer_0
;
19020 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
19021 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->integer
[cntr_integer_0
]));
19026 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
19030 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
19034 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
19038 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
19042 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19045 if (ndr_flags
& NDR_BUFFERS
) {
19046 int level
= ndr_push_get_switch_value(ndr
, r
);
19052 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
19056 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
19060 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
19064 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
19068 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19071 return NDR_ERR_SUCCESS
;
19074 static enum ndr_err_code
ndr_pull_spoolss_NotifyData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_NotifyData
*r
)
19078 uint32_t size_integer_0
= 0;
19079 uint32_t cntr_integer_0
;
19080 level
= ndr_pull_get_switch_value(ndr
, r
);
19081 if (ndr_flags
& NDR_SCALARS
) {
19082 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
19083 if (_level
!= level
) {
19084 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
19086 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
19089 size_integer_0
= 2;
19090 for (cntr_integer_0
= 0; cntr_integer_0
< size_integer_0
; cntr_integer_0
++) {
19091 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->integer
[cntr_integer_0
]));
19096 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
19100 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
19104 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
19108 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
19112 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19115 if (ndr_flags
& NDR_BUFFERS
) {
19121 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
19125 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
19129 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
19133 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
19137 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19140 return NDR_ERR_SUCCESS
;
19143 _PUBLIC_
void ndr_print_spoolss_NotifyData(struct ndr_print
*ndr
, const char *name
, const union spoolss_NotifyData
*r
)
19146 uint32_t cntr_integer_0
;
19147 level
= ndr_print_get_switch_value(ndr
, r
);
19148 ndr_print_union(ndr
, name
, level
, "spoolss_NotifyData");
19151 ndr
->print(ndr
, "%s: ARRAY(%d)", "integer", (int)2);
19153 for (cntr_integer_0
=0;cntr_integer_0
<2;cntr_integer_0
++) {
19155 if (asprintf(&idx_0
, "[%d]", cntr_integer_0
) != -1) {
19156 ndr_print_uint32(ndr
, "integer", r
->integer
[cntr_integer_0
]);
19164 ndr_print_spoolss_NotifyString(ndr
, "string", &r
->string
);
19168 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode", &r
->devmode
);
19172 ndr_print_spoolss_TimeCtr(ndr
, "time", &r
->time
);
19176 ndr_print_sec_desc_buf(ndr
, "sd", &r
->sd
);
19180 ndr_print_bad_level(ndr
, name
, level
);
19184 static enum ndr_err_code
ndr_push_spoolss_Notify(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_Notify
*r
)
19186 if (ndr_flags
& NDR_SCALARS
) {
19187 NDR_CHECK(ndr_push_align(ndr
, 5));
19188 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
19189 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->field
, r
->type
));
19190 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
19191 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr
, NDR_SCALARS
, r
->variable_type
));
19192 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
19193 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
19194 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
19195 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19197 if (ndr_flags
& NDR_BUFFERS
) {
19198 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
19200 return NDR_ERR_SUCCESS
;
19203 static enum ndr_err_code
ndr_pull_spoolss_Notify(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Notify
*r
)
19205 if (ndr_flags
& NDR_SCALARS
) {
19206 NDR_CHECK(ndr_pull_align(ndr
, 5));
19207 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
19208 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->field
, r
->type
));
19209 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
19210 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr
, NDR_SCALARS
, &r
->variable_type
));
19211 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
19212 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
19213 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
19214 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19216 if (ndr_flags
& NDR_BUFFERS
) {
19217 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
19219 return NDR_ERR_SUCCESS
;
19222 _PUBLIC_
void ndr_print_spoolss_Notify(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Notify
*r
)
19224 ndr_print_struct(ndr
, name
, "spoolss_Notify");
19226 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
19227 ndr_print_set_switch_value(ndr
, &r
->field
, r
->type
);
19228 ndr_print_spoolss_Field(ndr
, "field", &r
->field
);
19229 ndr_print_spoolss_NotifyTable(ndr
, "variable_type", r
->variable_type
);
19230 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
19231 ndr_print_set_switch_value(ndr
, &r
->data
, r
->variable_type
);
19232 ndr_print_spoolss_NotifyData(ndr
, "data", &r
->data
);
19236 static enum ndr_err_code
ndr_push_spoolss_NotifyInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyInfo
*r
)
19238 uint32_t cntr_notifies_0
;
19239 if (ndr_flags
& NDR_SCALARS
) {
19240 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
19241 NDR_CHECK(ndr_push_align(ndr
, 5));
19242 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
19243 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
19244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
19245 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
19246 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
19248 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19250 if (ndr_flags
& NDR_BUFFERS
) {
19251 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
19252 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
19255 return NDR_ERR_SUCCESS
;
19258 static enum ndr_err_code
ndr_pull_spoolss_NotifyInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyInfo
*r
)
19260 uint32_t size_notifies_0
= 0;
19261 uint32_t cntr_notifies_0
;
19262 TALLOC_CTX
*_mem_save_notifies_0
;
19263 if (ndr_flags
& NDR_SCALARS
) {
19264 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notifies
));
19265 NDR_CHECK(ndr_pull_align(ndr
, 5));
19266 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
19267 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
19268 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
19269 size_notifies_0
= ndr_get_array_size(ndr
, &r
->notifies
);
19270 NDR_PULL_ALLOC_N(ndr
, r
->notifies
, size_notifies_0
);
19271 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19272 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
19273 for (cntr_notifies_0
= 0; cntr_notifies_0
< size_notifies_0
; cntr_notifies_0
++) {
19274 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
19276 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
19278 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->notifies
, r
->count
));
19280 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19282 if (ndr_flags
& NDR_BUFFERS
) {
19283 size_notifies_0
= ndr_get_array_size(ndr
, &r
->notifies
);
19284 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19285 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
19286 for (cntr_notifies_0
= 0; cntr_notifies_0
< size_notifies_0
; cntr_notifies_0
++) {
19287 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
19289 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
19291 return NDR_ERR_SUCCESS
;
19294 _PUBLIC_
void ndr_print_spoolss_NotifyInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyInfo
*r
)
19296 uint32_t cntr_notifies_0
;
19297 ndr_print_struct(ndr
, name
, "spoolss_NotifyInfo");
19299 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
19300 ndr_print_uint32(ndr
, "flags", r
->flags
);
19301 ndr_print_uint32(ndr
, "count", r
->count
);
19302 ndr
->print(ndr
, "%s: ARRAY(%d)", "notifies", (int)r
->count
);
19304 for (cntr_notifies_0
=0;cntr_notifies_0
<r
->count
;cntr_notifies_0
++) {
19306 if (asprintf(&idx_0
, "[%d]", cntr_notifies_0
) != -1) {
19307 ndr_print_spoolss_Notify(ndr
, "notifies", &r
->notifies
[cntr_notifies_0
]);
19315 static enum ndr_err_code
ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_ReplyPrinterInfo
*r
)
19317 if (ndr_flags
& NDR_SCALARS
) {
19318 int level
= ndr_push_get_switch_value(ndr
, r
);
19319 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
19320 NDR_CHECK(ndr_push_union_align(ndr
, 5));
19323 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
19327 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19330 if (ndr_flags
& NDR_BUFFERS
) {
19331 int level
= ndr_push_get_switch_value(ndr
, r
);
19335 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
19340 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19343 return NDR_ERR_SUCCESS
;
19346 static enum ndr_err_code
ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_ReplyPrinterInfo
*r
)
19350 TALLOC_CTX
*_mem_save_info0_0
;
19351 uint32_t _ptr_info0
;
19352 level
= ndr_pull_get_switch_value(ndr
, r
);
19353 if (ndr_flags
& NDR_SCALARS
) {
19354 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
19355 if (_level
!= level
) {
19356 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
19358 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
19361 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
19363 NDR_PULL_ALLOC(ndr
, r
->info0
);
19370 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19373 if (ndr_flags
& NDR_BUFFERS
) {
19377 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19378 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
19379 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
19380 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
19385 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19388 return NDR_ERR_SUCCESS
;
19391 _PUBLIC_
void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_ReplyPrinterInfo
*r
)
19394 level
= ndr_print_get_switch_value(ndr
, r
);
19395 ndr_print_union(ndr
, name
, level
, "spoolss_ReplyPrinterInfo");
19398 ndr_print_ptr(ndr
, "info0", r
->info0
);
19401 ndr_print_spoolss_NotifyInfo(ndr
, "info0", r
->info0
);
19407 ndr_print_bad_level(ndr
, name
, level
);
19411 static enum ndr_err_code
ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19413 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19414 return NDR_ERR_SUCCESS
;
19417 static enum ndr_err_code
ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19420 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19422 return NDR_ERR_SUCCESS
;
19425 _PUBLIC_
void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19427 ndr_print_uint32(ndr
, name
, r
);
19429 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED
, r
);
19430 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED
, r
);
19431 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH
, r
);
19435 static enum ndr_err_code
ndr_push_spoolss_UserLevel1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel1
*r
)
19437 if (ndr_flags
& NDR_SCALARS
) {
19438 NDR_CHECK(ndr_push_align(ndr
, 5));
19439 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
19440 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
19441 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
19442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
19443 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
19444 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
19445 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
19446 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19448 if (ndr_flags
& NDR_BUFFERS
) {
19450 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
19451 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19452 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
19453 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19456 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
19457 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19458 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
19459 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19462 return NDR_ERR_SUCCESS
;
19465 static enum ndr_err_code
ndr_pull_spoolss_UserLevel1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel1
*r
)
19467 uint32_t _ptr_client
;
19468 uint32_t size_client_1
= 0;
19469 uint32_t length_client_1
= 0;
19470 TALLOC_CTX
*_mem_save_client_0
;
19471 uint32_t _ptr_user
;
19472 uint32_t size_user_1
= 0;
19473 uint32_t length_user_1
= 0;
19474 TALLOC_CTX
*_mem_save_user_0
;
19475 if (ndr_flags
& NDR_SCALARS
) {
19476 NDR_CHECK(ndr_pull_align(ndr
, 5));
19477 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
19478 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
19480 NDR_PULL_ALLOC(ndr
, r
->client
);
19484 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
19486 NDR_PULL_ALLOC(ndr
, r
->user
);
19490 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
19491 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
19492 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
19493 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
19494 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19496 if (ndr_flags
& NDR_BUFFERS
) {
19498 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19499 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
19500 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
19501 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
19502 size_client_1
= ndr_get_array_size(ndr
, &r
->client
);
19503 length_client_1
= ndr_get_array_length(ndr
, &r
->client
);
19504 if (length_client_1
> size_client_1
) {
19505 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_client_1
, length_client_1
);
19507 NDR_CHECK(ndr_check_string_terminator(ndr
, length_client_1
, sizeof(uint16_t)));
19508 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, length_client_1
, sizeof(uint16_t), CH_UTF16
));
19509 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
19512 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19513 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
19514 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
19515 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
19516 size_user_1
= ndr_get_array_size(ndr
, &r
->user
);
19517 length_user_1
= ndr_get_array_length(ndr
, &r
->user
);
19518 if (length_user_1
> size_user_1
) {
19519 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_user_1
, length_user_1
);
19521 NDR_CHECK(ndr_check_string_terminator(ndr
, length_user_1
, sizeof(uint16_t)));
19522 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, length_user_1
, sizeof(uint16_t), CH_UTF16
));
19523 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
19526 return NDR_ERR_SUCCESS
;
19529 _PUBLIC_
void ndr_print_spoolss_UserLevel1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel1
*r
)
19531 ndr_print_struct(ndr
, name
, "spoolss_UserLevel1");
19533 ndr_print_uint32(ndr
, "size", r
->size
);
19534 ndr_print_ptr(ndr
, "client", r
->client
);
19537 ndr_print_string(ndr
, "client", r
->client
);
19540 ndr_print_ptr(ndr
, "user", r
->user
);
19543 ndr_print_string(ndr
, "user", r
->user
);
19546 ndr_print_uint32(ndr
, "build", r
->build
);
19547 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
19548 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
19549 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
19553 static enum ndr_err_code
ndr_push_spoolss_UserLevel2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel2
*r
)
19555 if (ndr_flags
& NDR_SCALARS
) {
19556 NDR_CHECK(ndr_push_align(ndr
, 4));
19557 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->not_used
));
19558 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
19560 if (ndr_flags
& NDR_BUFFERS
) {
19562 return NDR_ERR_SUCCESS
;
19565 static enum ndr_err_code
ndr_pull_spoolss_UserLevel2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel2
*r
)
19567 if (ndr_flags
& NDR_SCALARS
) {
19568 NDR_CHECK(ndr_pull_align(ndr
, 4));
19569 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->not_used
));
19570 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
19572 if (ndr_flags
& NDR_BUFFERS
) {
19574 return NDR_ERR_SUCCESS
;
19577 _PUBLIC_
void ndr_print_spoolss_UserLevel2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel2
*r
)
19579 ndr_print_struct(ndr
, name
, "spoolss_UserLevel2");
19581 ndr_print_uint32(ndr
, "not_used", r
->not_used
);
19585 static enum ndr_err_code
ndr_push_spoolss_UserLevel3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel3
*r
)
19587 if (ndr_flags
& NDR_SCALARS
) {
19588 NDR_CHECK(ndr_push_align(ndr
, 5));
19589 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
19590 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
19591 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size2
));
19592 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
19593 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
19594 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
19595 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
19596 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
19597 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
19598 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reserved
));
19599 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19601 if (ndr_flags
& NDR_BUFFERS
) {
19603 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
19604 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19605 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
19606 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19609 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
19610 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19611 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
19612 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19615 return NDR_ERR_SUCCESS
;
19618 static enum ndr_err_code
ndr_pull_spoolss_UserLevel3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel3
*r
)
19620 uint32_t _ptr_client
;
19621 uint32_t size_client_1
= 0;
19622 uint32_t length_client_1
= 0;
19623 TALLOC_CTX
*_mem_save_client_0
;
19624 uint32_t _ptr_user
;
19625 uint32_t size_user_1
= 0;
19626 uint32_t length_user_1
= 0;
19627 TALLOC_CTX
*_mem_save_user_0
;
19628 if (ndr_flags
& NDR_SCALARS
) {
19629 NDR_CHECK(ndr_pull_align(ndr
, 5));
19630 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
19631 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
19632 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size2
));
19633 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
19635 NDR_PULL_ALLOC(ndr
, r
->client
);
19639 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
19641 NDR_PULL_ALLOC(ndr
, r
->user
);
19645 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
19646 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
19647 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
19648 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
19649 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reserved
));
19650 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19652 if (ndr_flags
& NDR_BUFFERS
) {
19654 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19655 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
19656 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
19657 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
19658 size_client_1
= ndr_get_array_size(ndr
, &r
->client
);
19659 length_client_1
= ndr_get_array_length(ndr
, &r
->client
);
19660 if (length_client_1
> size_client_1
) {
19661 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_client_1
, length_client_1
);
19663 NDR_CHECK(ndr_check_string_terminator(ndr
, length_client_1
, sizeof(uint16_t)));
19664 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, length_client_1
, sizeof(uint16_t), CH_UTF16
));
19665 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
19668 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19669 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
19670 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
19671 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
19672 size_user_1
= ndr_get_array_size(ndr
, &r
->user
);
19673 length_user_1
= ndr_get_array_length(ndr
, &r
->user
);
19674 if (length_user_1
> size_user_1
) {
19675 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_user_1
, length_user_1
);
19677 NDR_CHECK(ndr_check_string_terminator(ndr
, length_user_1
, sizeof(uint16_t)));
19678 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, length_user_1
, sizeof(uint16_t), CH_UTF16
));
19679 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
19682 return NDR_ERR_SUCCESS
;
19685 _PUBLIC_
void ndr_print_spoolss_UserLevel3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel3
*r
)
19687 ndr_print_struct(ndr
, name
, "spoolss_UserLevel3");
19689 ndr_print_uint32(ndr
, "size", r
->size
);
19690 ndr_print_uint32(ndr
, "flags", r
->flags
);
19691 ndr_print_uint32(ndr
, "size2", r
->size2
);
19692 ndr_print_ptr(ndr
, "client", r
->client
);
19695 ndr_print_string(ndr
, "client", r
->client
);
19698 ndr_print_ptr(ndr
, "user", r
->user
);
19701 ndr_print_string(ndr
, "user", r
->user
);
19704 ndr_print_uint32(ndr
, "build", r
->build
);
19705 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
19706 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
19707 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
19708 ndr_print_udlong(ndr
, "reserved", r
->reserved
);
19712 static enum ndr_err_code
ndr_push_spoolss_UserLevel(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_UserLevel
*r
)
19714 if (ndr_flags
& NDR_SCALARS
) {
19715 int level
= ndr_push_get_switch_value(ndr
, r
);
19716 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
19717 NDR_CHECK(ndr_push_union_align(ndr
, 5));
19720 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level1
));
19724 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level2
));
19728 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level3
));
19732 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19735 if (ndr_flags
& NDR_BUFFERS
) {
19736 int level
= ndr_push_get_switch_value(ndr
, r
);
19740 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
19746 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
19752 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
19757 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19760 return NDR_ERR_SUCCESS
;
19763 static enum ndr_err_code
ndr_pull_spoolss_UserLevel(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_UserLevel
*r
)
19767 TALLOC_CTX
*_mem_save_level1_0
;
19768 uint32_t _ptr_level1
;
19769 TALLOC_CTX
*_mem_save_level2_0
;
19770 uint32_t _ptr_level2
;
19771 TALLOC_CTX
*_mem_save_level3_0
;
19772 uint32_t _ptr_level3
;
19773 level
= ndr_pull_get_switch_value(ndr
, r
);
19774 if (ndr_flags
& NDR_SCALARS
) {
19775 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
19776 if (_level
!= level
) {
19777 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
19779 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
19782 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level1
));
19784 NDR_PULL_ALLOC(ndr
, r
->level1
);
19791 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level2
));
19793 NDR_PULL_ALLOC(ndr
, r
->level2
);
19800 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level3
));
19802 NDR_PULL_ALLOC(ndr
, r
->level3
);
19809 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19812 if (ndr_flags
& NDR_BUFFERS
) {
19816 _mem_save_level1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19817 NDR_PULL_SET_MEM_CTX(ndr
, r
->level1
, 0);
19818 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
19819 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level1_0
, 0);
19825 _mem_save_level2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19826 NDR_PULL_SET_MEM_CTX(ndr
, r
->level2
, 0);
19827 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
19828 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level2_0
, 0);
19834 _mem_save_level3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19835 NDR_PULL_SET_MEM_CTX(ndr
, r
->level3
, 0);
19836 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
19837 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level3_0
, 0);
19842 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19845 return NDR_ERR_SUCCESS
;
19848 _PUBLIC_
void ndr_print_spoolss_UserLevel(struct ndr_print
*ndr
, const char *name
, const union spoolss_UserLevel
*r
)
19851 level
= ndr_print_get_switch_value(ndr
, r
);
19852 ndr_print_union(ndr
, name
, level
, "spoolss_UserLevel");
19855 ndr_print_ptr(ndr
, "level1", r
->level1
);
19858 ndr_print_spoolss_UserLevel1(ndr
, "level1", r
->level1
);
19864 ndr_print_ptr(ndr
, "level2", r
->level2
);
19867 ndr_print_spoolss_UserLevel2(ndr
, "level2", r
->level2
);
19873 ndr_print_ptr(ndr
, "level3", r
->level3
);
19876 ndr_print_spoolss_UserLevel3(ndr
, "level3", r
->level3
);
19882 ndr_print_bad_level(ndr
, name
, level
);
19886 static enum ndr_err_code
ndr_push_spoolss_UserLevelCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevelCtr
*r
)
19888 if (ndr_flags
& NDR_SCALARS
) {
19889 NDR_CHECK(ndr_push_align(ndr
, 5));
19890 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
19891 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->user_info
, r
->level
));
19892 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
19893 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19895 if (ndr_flags
& NDR_BUFFERS
) {
19896 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
19898 return NDR_ERR_SUCCESS
;
19901 static enum ndr_err_code
ndr_pull_spoolss_UserLevelCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevelCtr
*r
)
19903 if (ndr_flags
& NDR_SCALARS
) {
19904 NDR_CHECK(ndr_pull_align(ndr
, 5));
19905 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
19906 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->user_info
, r
->level
));
19907 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
19908 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19910 if (ndr_flags
& NDR_BUFFERS
) {
19911 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
19913 return NDR_ERR_SUCCESS
;
19916 _PUBLIC_
void ndr_print_spoolss_UserLevelCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevelCtr
*r
)
19918 ndr_print_struct(ndr
, name
, "spoolss_UserLevelCtr");
19920 ndr_print_uint32(ndr
, "level", r
->level
);
19921 ndr_print_set_switch_value(ndr
, &r
->user_info
, r
->level
);
19922 ndr_print_spoolss_UserLevel(ndr
, "user_info", &r
->user_info
);
19926 static enum ndr_err_code
ndr_push_spoolss_AccessRights(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19928 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19929 return NDR_ERR_SUCCESS
;
19932 static enum ndr_err_code
ndr_pull_spoolss_AccessRights(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19935 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19937 return NDR_ERR_SUCCESS
;
19940 _PUBLIC_
void ndr_print_spoolss_AccessRights(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19942 ndr_print_uint32(ndr
, name
, r
);
19944 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER
, r
);
19945 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE
, r
);
19946 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER
, r
);
19947 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE
, r
);
19948 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER
, r
);
19949 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ
, r
);
19953 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterEnumValues(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterEnumValues
*r
)
19955 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
19956 if (ndr_flags
& NDR_SCALARS
) {
19957 NDR_CHECK(ndr_push_align(ndr
, 5));
19958 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
19960 uint32_t _flags_save_string
= ndr
->flags
;
19961 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
19962 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->value_name
));
19963 ndr
->flags
= _flags_save_string
;
19965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2 * strlen_m_term(r
->value_name
)));
19966 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->type
));
19968 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
19969 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
|ndr_spoolss_PrinterEnumValues_align(r
->type
));
19970 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data
));
19971 ndr
->flags
= _flags_save_DATA_BLOB
;
19973 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->data
?r
->data
->length
:0));
19974 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19976 if (ndr_flags
& NDR_BUFFERS
) {
19977 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
19979 uint32_t _flags_save_string
= ndr
->flags
;
19980 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
19981 if (r
->value_name
) {
19982 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->value_name
));
19983 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->value_name
));
19984 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->value_name
));
19986 ndr
->flags
= _flags_save_string
;
19989 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
19990 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
|ndr_spoolss_PrinterEnumValues_align(r
->type
));
19992 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data
));
19994 struct ndr_push
*_ndr_data
;
19995 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_data
, 0, r
->data
?r
->data
->length
:0));
19996 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_data
, NDR_SCALARS
, *r
->data
));
19997 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_data
, 0, r
->data
?r
->data
->length
:0));
19999 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data
));
20001 ndr
->flags
= _flags_save_DATA_BLOB
;
20004 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
20005 return NDR_ERR_SUCCESS
;
20008 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterEnumValues
*r
)
20010 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
20011 uint32_t _ptr_value_name
;
20012 TALLOC_CTX
*_mem_save_value_name_0
;
20013 uint32_t _ptr_data
;
20014 TALLOC_CTX
*_mem_save_data_0
;
20015 if (ndr_flags
& NDR_SCALARS
) {
20016 NDR_CHECK(ndr_pull_align(ndr
, 5));
20017 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
20019 uint32_t _flags_save_string
= ndr
->flags
;
20020 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
20021 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value_name
));
20022 if (_ptr_value_name
) {
20023 NDR_PULL_ALLOC(ndr
, r
->value_name
);
20024 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->value_name
, _ptr_value_name
));
20026 r
->value_name
= NULL
;
20028 ndr
->flags
= _flags_save_string
;
20030 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value_name_len
));
20031 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->type
));
20033 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
20034 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
|ndr_spoolss_PrinterEnumValues_align(r
->type
));
20035 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
20037 NDR_PULL_ALLOC(ndr
, r
->data
);
20038 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data
, _ptr_data
));
20042 ndr
->flags
= _flags_save_DATA_BLOB
;
20044 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data_length
));
20045 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
20047 if (ndr_flags
& NDR_BUFFERS
) {
20048 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
20050 uint32_t _flags_save_string
= ndr
->flags
;
20051 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
20052 if (r
->value_name
) {
20053 uint32_t _relative_save_offset
;
20054 _relative_save_offset
= ndr
->offset
;
20055 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->value_name
));
20056 _mem_save_value_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20057 NDR_PULL_SET_MEM_CTX(ndr
, r
->value_name
, 0);
20058 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->value_name
));
20059 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_name_0
, 0);
20060 ndr
->offset
= _relative_save_offset
;
20062 ndr
->flags
= _flags_save_string
;
20065 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
20066 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
|ndr_spoolss_PrinterEnumValues_align(r
->type
));
20068 uint32_t _relative_save_offset
;
20069 _relative_save_offset
= ndr
->offset
;
20070 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data
));
20071 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20072 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
20074 struct ndr_pull
*_ndr_data
;
20075 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 0, r
->data_length
));
20076 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_data
, NDR_SCALARS
, r
->data
));
20077 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 0, r
->data_length
));
20079 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
20080 ndr
->offset
= _relative_save_offset
;
20082 ndr
->flags
= _flags_save_DATA_BLOB
;
20085 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
20086 return NDR_ERR_SUCCESS
;
20089 _PUBLIC_
void ndr_print_spoolss_PrinterEnumValues(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterEnumValues
*r
)
20091 ndr_print_struct(ndr
, name
, "spoolss_PrinterEnumValues");
20093 ndr_print_ptr(ndr
, "value_name", r
->value_name
);
20095 if (r
->value_name
) {
20096 ndr_print_string(ndr
, "value_name", r
->value_name
);
20099 ndr_print_uint32(ndr
, "value_name_len", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2 * strlen_m_term(r
->value_name
):r
->value_name_len
);
20100 ndr_print_winreg_Type(ndr
, "type", r
->type
);
20101 ndr_print_ptr(ndr
, "data", r
->data
);
20104 ndr_print_DATA_BLOB(ndr
, "data", *r
->data
);
20107 ndr_print_uint32(ndr
, "data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->data
?r
->data
->length
:0:r
->data_length
);
20111 _PUBLIC_
size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues
*r
, struct smb_iconv_convenience
*ic
, int flags
)
20113 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterEnumValues
, ic
);
20116 static enum ndr_err_code
ndr_push_spoolss_KeyNames(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_KeyNames
*r
)
20118 if (ndr_flags
& NDR_SCALARS
) {
20119 int level
= ndr_push_get_switch_value(ndr
, r
);
20120 NDR_CHECK(ndr_push_union_align(ndr
, 4));
20130 uint32_t _flags_save_string_array
= ndr
->flags
;
20131 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
20132 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
20133 ndr
->flags
= _flags_save_string_array
;
20139 if (ndr_flags
& NDR_BUFFERS
) {
20140 int level
= ndr_push_get_switch_value(ndr
, r
);
20153 return NDR_ERR_SUCCESS
;
20156 static enum ndr_err_code
ndr_pull_spoolss_KeyNames(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_KeyNames
*r
)
20159 level
= ndr_pull_get_switch_value(ndr
, r
);
20160 if (ndr_flags
& NDR_SCALARS
) {
20161 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
20171 uint32_t _flags_save_string_array
= ndr
->flags
;
20172 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
20173 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
20174 ndr
->flags
= _flags_save_string_array
;
20180 if (ndr_flags
& NDR_BUFFERS
) {
20193 return NDR_ERR_SUCCESS
;
20196 _PUBLIC_
void ndr_print_spoolss_KeyNames(struct ndr_print
*ndr
, const char *name
, const union spoolss_KeyNames
*r
)
20199 level
= ndr_print_get_switch_value(ndr
, r
);
20200 ndr_print_union(ndr
, name
, level
, "spoolss_KeyNames");
20209 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
20215 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeleteDriverFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
20217 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
20218 return NDR_ERR_SUCCESS
;
20221 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
20224 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
20226 return NDR_ERR_SUCCESS
;
20229 _PUBLIC_
void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
20231 ndr_print_uint32(ndr
, name
, r
);
20233 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES
, r
);
20234 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION
, r
);
20235 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES
, r
);
20239 static enum ndr_err_code
ndr_push_spoolss_PortProtocol(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortProtocol r
)
20241 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
20242 return NDR_ERR_SUCCESS
;
20245 static enum ndr_err_code
ndr_pull_spoolss_PortProtocol(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortProtocol
*r
)
20248 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
20250 return NDR_ERR_SUCCESS
;
20253 _PUBLIC_
void ndr_print_spoolss_PortProtocol(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortProtocol r
)
20255 const char *val
= NULL
;
20258 case PROTOCOL_RAWTCP_TYPE
: val
= "PROTOCOL_RAWTCP_TYPE"; break;
20259 case PROTOCOL_LPR_TYPE
: val
= "PROTOCOL_LPR_TYPE"; break;
20261 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
20264 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData1
*r
)
20266 if (ndr_flags
& NDR_SCALARS
) {
20267 NDR_CHECK(ndr_push_align(ndr
, 4));
20268 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
20269 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000001));
20270 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
20271 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
20272 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
20273 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
20274 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
20275 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
20276 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
20277 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
20278 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
20279 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
20280 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
20281 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
20282 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
20283 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
20285 if (ndr_flags
& NDR_BUFFERS
) {
20287 return NDR_ERR_SUCCESS
;
20290 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData1
*r
)
20292 uint32_t size_portname_0
= 0;
20293 uint32_t size_hostaddress_0
= 0;
20294 uint32_t size_snmpcommunity_0
= 0;
20295 uint32_t size_queue_0
= 0;
20296 uint32_t size_ip_address_0
= 0;
20297 uint32_t size_hardware_address_0
= 0;
20298 uint32_t size_device_type_0
= 0;
20299 if (ndr_flags
& NDR_SCALARS
) {
20300 NDR_CHECK(ndr_pull_align(ndr
, 4));
20301 size_portname_0
= 64;
20302 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, size_portname_0
, sizeof(uint16_t), CH_UTF16
));
20303 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
20304 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
20305 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
20306 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
20307 size_hostaddress_0
= 49;
20308 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, size_hostaddress_0
, sizeof(uint16_t), CH_UTF16
));
20309 size_snmpcommunity_0
= 33;
20310 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, size_snmpcommunity_0
, sizeof(uint16_t), CH_UTF16
));
20311 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
20313 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, size_queue_0
, sizeof(uint16_t), CH_UTF16
));
20314 size_ip_address_0
= 16;
20315 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ip_address
, size_ip_address_0
, sizeof(uint16_t), CH_UTF16
));
20316 size_hardware_address_0
= 13;
20317 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_address
, size_hardware_address_0
, sizeof(uint16_t), CH_UTF16
));
20318 size_device_type_0
= 257;
20319 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, size_device_type_0
, sizeof(uint16_t), CH_UTF16
));
20320 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
20321 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
20322 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
20323 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
20325 if (ndr_flags
& NDR_BUFFERS
) {
20327 return NDR_ERR_SUCCESS
;
20330 _PUBLIC_
void ndr_print_spoolss_PortData1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData1
*r
)
20332 ndr_print_struct(ndr
, name
, "spoolss_PortData1");
20334 ndr_print_string(ndr
, "portname", r
->portname
);
20335 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000001:r
->version
);
20336 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
20337 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
20338 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
20339 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
20340 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
20341 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
20342 ndr_print_string(ndr
, "queue", r
->queue
);
20343 ndr_print_string(ndr
, "ip_address", r
->ip_address
);
20344 ndr_print_string(ndr
, "hardware_address", r
->hardware_address
);
20345 ndr_print_string(ndr
, "device_type", r
->device_type
);
20346 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
20347 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
20348 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
20352 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData2
*r
)
20354 if (ndr_flags
& NDR_SCALARS
) {
20355 NDR_CHECK(ndr_push_align(ndr
, 4));
20356 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
20357 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000002));
20358 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
20359 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
20360 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
20361 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
20362 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
20363 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
20364 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
20365 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
20366 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
20367 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
20368 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
20369 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_monitor_mib_index
));
20370 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
20372 if (ndr_flags
& NDR_BUFFERS
) {
20374 return NDR_ERR_SUCCESS
;
20377 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData2
*r
)
20379 uint32_t size_portname_0
= 0;
20380 uint32_t size_hostaddress_0
= 0;
20381 uint32_t size_snmpcommunity_0
= 0;
20382 uint32_t size_queue_0
= 0;
20383 uint32_t size_device_type_0
= 0;
20384 if (ndr_flags
& NDR_SCALARS
) {
20385 NDR_CHECK(ndr_pull_align(ndr
, 4));
20386 size_portname_0
= 64;
20387 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, size_portname_0
, sizeof(uint16_t), CH_UTF16
));
20388 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
20389 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
20390 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
20391 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
20392 size_hostaddress_0
= 128;
20393 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, size_hostaddress_0
, sizeof(uint16_t), CH_UTF16
));
20394 size_snmpcommunity_0
= 33;
20395 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, size_snmpcommunity_0
, sizeof(uint16_t), CH_UTF16
));
20396 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
20398 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, size_queue_0
, sizeof(uint16_t), CH_UTF16
));
20399 size_device_type_0
= 257;
20400 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, size_device_type_0
, sizeof(uint16_t), CH_UTF16
));
20401 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
20402 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
20403 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
20404 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_monitor_mib_index
));
20405 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
20407 if (ndr_flags
& NDR_BUFFERS
) {
20409 return NDR_ERR_SUCCESS
;
20412 _PUBLIC_
void ndr_print_spoolss_PortData2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData2
*r
)
20414 ndr_print_struct(ndr
, name
, "spoolss_PortData2");
20416 ndr_print_string(ndr
, "portname", r
->portname
);
20417 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000002:r
->version
);
20418 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
20419 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
20420 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
20421 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
20422 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
20423 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
20424 ndr_print_string(ndr
, "queue", r
->queue
);
20425 ndr_print_string(ndr
, "device_type", r
->device_type
);
20426 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
20427 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
20428 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
20429 ndr_print_uint32(ndr
, "port_monitor_mib_index", r
->port_monitor_mib_index
);
20433 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorUi(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorUi
*r
)
20435 if (ndr_flags
& NDR_SCALARS
) {
20436 NDR_CHECK(ndr_push_align(ndr
, 4));
20438 uint32_t _flags_save_string
= ndr
->flags
;
20439 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
20440 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
20441 ndr
->flags
= _flags_save_string
;
20443 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
20445 if (ndr_flags
& NDR_BUFFERS
) {
20447 return NDR_ERR_SUCCESS
;
20450 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorUi(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorUi
*r
)
20452 if (ndr_flags
& NDR_SCALARS
) {
20453 NDR_CHECK(ndr_pull_align(ndr
, 4));
20455 uint32_t _flags_save_string
= ndr
->flags
;
20456 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
|LIBNDR_FLAG_ALIGN2
);
20457 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
20458 ndr
->flags
= _flags_save_string
;
20460 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
20462 if (ndr_flags
& NDR_BUFFERS
) {
20464 return NDR_ERR_SUCCESS
;
20467 _PUBLIC_
void ndr_print_spoolss_MonitorUi(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorUi
*r
)
20469 ndr_print_struct(ndr
, name
, "spoolss_MonitorUi");
20471 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
20475 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
20477 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
20478 return NDR_ERR_SUCCESS
;
20481 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
20484 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
20486 return NDR_ERR_SUCCESS
;
20489 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
20491 ndr_print_uint32(ndr
, name
, r
);
20493 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE
, r
);
20494 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE
, r
);
20495 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES
, r
);
20496 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES
, r
);
20497 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY
, r
);
20498 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER
, r
);
20499 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS
, r
);
20500 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE
, r
);
20504 static enum ndr_err_code
ndr_push_spoolss_CorePrinterDriver(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_CorePrinterDriver
*r
)
20506 if (ndr_flags
& NDR_SCALARS
) {
20507 NDR_CHECK(ndr_push_align(ndr
, 8));
20508 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->core_driver_guid
));
20509 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
20510 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
20511 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, 520, sizeof(uint8_t), CH_UTF8
));
20512 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
20514 if (ndr_flags
& NDR_BUFFERS
) {
20516 return NDR_ERR_SUCCESS
;
20519 static enum ndr_err_code
ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_CorePrinterDriver
*r
)
20521 uint32_t size_formname_0
= 0;
20522 if (ndr_flags
& NDR_SCALARS
) {
20523 NDR_CHECK(ndr_pull_align(ndr
, 8));
20524 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->core_driver_guid
));
20525 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
20526 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
20527 size_formname_0
= 520;
20528 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, size_formname_0
, sizeof(uint8_t), CH_UTF8
));
20529 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
20531 if (ndr_flags
& NDR_BUFFERS
) {
20533 return NDR_ERR_SUCCESS
;
20536 _PUBLIC_
void ndr_print_spoolss_CorePrinterDriver(struct ndr_print
*ndr
, const char *name
, const struct spoolss_CorePrinterDriver
*r
)
20538 ndr_print_struct(ndr
, name
, "spoolss_CorePrinterDriver");
20540 ndr_print_GUID(ndr
, "core_driver_guid", &r
->core_driver_guid
);
20541 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
20542 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
20543 ndr_print_string(ndr
, "formname", r
->formname
);
20547 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinters
*r
)
20549 if (flags
& NDR_IN
) {
20550 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
20551 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20552 if (r
->in
.server
) {
20553 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20554 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
20555 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20556 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20558 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20559 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20560 if (r
->in
.buffer
) {
20561 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20563 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20565 if (flags
& NDR_OUT
) {
20566 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20568 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20570 if (r
->out
.needed
== NULL
) {
20571 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20573 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20574 if (r
->out
.count
== NULL
) {
20575 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20577 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20578 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20580 return NDR_ERR_SUCCESS
;
20583 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinters
*r
)
20585 uint32_t _ptr_server
;
20586 uint32_t size_server_1
= 0;
20587 uint32_t length_server_1
= 0;
20588 uint32_t _ptr_buffer
;
20589 uint32_t _ptr_info
;
20590 TALLOC_CTX
*_mem_save_server_0
;
20591 TALLOC_CTX
*_mem_save_buffer_0
;
20592 TALLOC_CTX
*_mem_save_info_0
;
20593 TALLOC_CTX
*_mem_save_needed_0
;
20594 TALLOC_CTX
*_mem_save_count_0
;
20595 if (flags
& NDR_IN
) {
20596 ZERO_STRUCT(r
->out
);
20598 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
20599 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20601 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20603 r
->in
.server
= NULL
;
20605 if (r
->in
.server
) {
20606 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20607 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20608 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20609 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20610 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
20611 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
20612 if (length_server_1
> size_server_1
) {
20613 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
20615 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
20616 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
20617 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20619 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20620 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20622 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20624 r
->in
.buffer
= NULL
;
20626 if (r
->in
.buffer
) {
20627 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20628 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20629 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20630 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20632 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20633 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20634 ZERO_STRUCTP(r
->out
.needed
);
20635 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20636 ZERO_STRUCTP(r
->out
.count
);
20638 if (flags
& NDR_OUT
) {
20639 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20641 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20643 r
->out
.info
= NULL
;
20646 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20647 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20648 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
20649 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20651 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20652 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20654 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20655 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20656 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20657 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20658 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20659 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20661 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20662 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
20663 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
20664 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
20665 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20667 return NDR_ERR_SUCCESS
;
20670 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinters
*r
)
20672 uint32_t cntr_info_0
;
20673 if (flags
& NDR_IN
) {
20674 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20675 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
20677 if (flags
& NDR_OUT
) {
20678 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20679 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20680 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20682 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20683 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20686 return NDR_ERR_SUCCESS
;
20689 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinters
*r
)
20691 uint32_t size_info_0
= 0;
20692 uint32_t cntr_info_0
;
20693 TALLOC_CTX
*_mem_save_info_0
;
20694 if (flags
& NDR_IN
) {
20695 ZERO_STRUCT(r
->out
);
20697 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20698 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
20700 if (flags
& NDR_OUT
) {
20701 size_info_0
= r
->in
.count
;
20702 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
20703 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20704 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20705 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
20706 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20707 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20709 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
20710 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20712 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20714 return NDR_ERR_SUCCESS
;
20717 _PUBLIC_
void ndr_print_spoolss_EnumPrinters(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinters
*r
)
20719 uint32_t cntr_info_2
;
20720 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinters");
20722 if (flags
& NDR_SET_VALUES
) {
20723 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20725 if (flags
& NDR_IN
) {
20726 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinters");
20728 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->in
.flags
);
20729 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20731 if (r
->in
.server
) {
20732 ndr_print_string(ndr
, "server", r
->in
.server
);
20735 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20736 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20738 if (r
->in
.buffer
) {
20739 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20742 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20745 if (flags
& NDR_OUT
) {
20746 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinters");
20748 ndr_print_ptr(ndr
, "count", r
->out
.count
);
20750 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
20752 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20754 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
20756 if (*r
->out
.info
) {
20757 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
20759 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
20761 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
20762 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
20763 ndr_print_spoolss_PrinterInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
20771 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20773 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20775 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20781 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinter
*r
)
20783 if (flags
& NDR_IN
) {
20784 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
20785 if (r
->in
.printername
) {
20786 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
20787 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
20788 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
20789 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20791 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
20792 if (r
->in
.datatype
) {
20793 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
20794 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
20795 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
20796 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20798 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
20799 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
20801 if (flags
& NDR_OUT
) {
20802 if (r
->out
.handle
== NULL
) {
20803 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20805 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
20806 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20808 return NDR_ERR_SUCCESS
;
20811 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinter
*r
)
20813 uint32_t _ptr_printername
;
20814 uint32_t size_printername_1
= 0;
20815 uint32_t length_printername_1
= 0;
20816 uint32_t _ptr_datatype
;
20817 uint32_t size_datatype_1
= 0;
20818 uint32_t length_datatype_1
= 0;
20819 TALLOC_CTX
*_mem_save_printername_0
;
20820 TALLOC_CTX
*_mem_save_datatype_0
;
20821 TALLOC_CTX
*_mem_save_handle_0
;
20822 if (flags
& NDR_IN
) {
20823 ZERO_STRUCT(r
->out
);
20825 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
20826 if (_ptr_printername
) {
20827 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
20829 r
->in
.printername
= NULL
;
20831 if (r
->in
.printername
) {
20832 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20833 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
20834 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
20835 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
20836 size_printername_1
= ndr_get_array_size(ndr
, &r
->in
.printername
);
20837 length_printername_1
= ndr_get_array_length(ndr
, &r
->in
.printername
);
20838 if (length_printername_1
> size_printername_1
) {
20839 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printername_1
, length_printername_1
);
20841 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printername_1
, sizeof(uint16_t)));
20842 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, length_printername_1
, sizeof(uint16_t), CH_UTF16
));
20843 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
20845 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
20846 if (_ptr_datatype
) {
20847 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
20849 r
->in
.datatype
= NULL
;
20851 if (r
->in
.datatype
) {
20852 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20853 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
20854 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
20855 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
20856 size_datatype_1
= ndr_get_array_size(ndr
, &r
->in
.datatype
);
20857 length_datatype_1
= ndr_get_array_length(ndr
, &r
->in
.datatype
);
20858 if (length_datatype_1
> size_datatype_1
) {
20859 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_datatype_1
, length_datatype_1
);
20861 NDR_CHECK(ndr_check_string_terminator(ndr
, length_datatype_1
, sizeof(uint16_t)));
20862 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, length_datatype_1
, sizeof(uint16_t), CH_UTF16
));
20863 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
20865 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
20866 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
20867 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
20868 ZERO_STRUCTP(r
->out
.handle
);
20870 if (flags
& NDR_OUT
) {
20871 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20872 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
20874 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20875 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20876 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
20877 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20878 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20880 return NDR_ERR_SUCCESS
;
20883 _PUBLIC_
void ndr_print_spoolss_OpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinter
*r
)
20885 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinter");
20887 if (flags
& NDR_SET_VALUES
) {
20888 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20890 if (flags
& NDR_IN
) {
20891 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinter");
20893 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
20895 if (r
->in
.printername
) {
20896 ndr_print_string(ndr
, "printername", r
->in
.printername
);
20899 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
20901 if (r
->in
.datatype
) {
20902 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
20905 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
20906 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
20909 if (flags
& NDR_OUT
) {
20910 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinter");
20912 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
20914 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
20916 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20922 static enum ndr_err_code
ndr_push_spoolss_SetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetJob
*r
)
20924 if (flags
& NDR_IN
) {
20925 if (r
->in
.handle
== NULL
) {
20926 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20928 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20929 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
20930 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.ctr
));
20932 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
20934 NDR_CHECK(ndr_push_spoolss_JobControl(ndr
, NDR_SCALARS
, r
->in
.command
));
20936 if (flags
& NDR_OUT
) {
20937 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20939 return NDR_ERR_SUCCESS
;
20942 static enum ndr_err_code
ndr_pull_spoolss_SetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetJob
*r
)
20945 TALLOC_CTX
*_mem_save_handle_0
;
20946 TALLOC_CTX
*_mem_save_ctr_0
;
20947 if (flags
& NDR_IN
) {
20948 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20949 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20951 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20952 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20953 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20954 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20955 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
20956 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
20958 NDR_PULL_ALLOC(ndr
, r
->in
.ctr
);
20963 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20964 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.ctr
, 0);
20965 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
20966 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, 0);
20968 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
20970 if (flags
& NDR_OUT
) {
20971 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20973 return NDR_ERR_SUCCESS
;
20976 _PUBLIC_
void ndr_print_spoolss_SetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetJob
*r
)
20978 ndr_print_struct(ndr
, name
, "spoolss_SetJob");
20980 if (flags
& NDR_SET_VALUES
) {
20981 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20983 if (flags
& NDR_IN
) {
20984 ndr_print_struct(ndr
, "in", "spoolss_SetJob");
20986 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20988 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20990 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
20991 ndr_print_ptr(ndr
, "ctr", r
->in
.ctr
);
20994 ndr_print_spoolss_JobInfoContainer(ndr
, "ctr", r
->in
.ctr
);
20997 ndr_print_spoolss_JobControl(ndr
, "command", r
->in
.command
);
21000 if (flags
& NDR_OUT
) {
21001 ndr_print_struct(ndr
, "out", "spoolss_SetJob");
21003 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21009 static enum ndr_err_code
ndr_push_spoolss_GetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetJob
*r
)
21011 if (flags
& NDR_IN
) {
21012 if (r
->in
.handle
== NULL
) {
21013 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21015 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21016 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
21017 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21018 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21019 if (r
->in
.buffer
) {
21020 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21022 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21024 if (flags
& NDR_OUT
) {
21025 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21028 struct ndr_push
*_ndr_info
;
21029 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21030 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21031 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21032 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21035 if (r
->out
.needed
== NULL
) {
21036 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21038 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21039 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21041 return NDR_ERR_SUCCESS
;
21044 static enum ndr_err_code
ndr_pull_spoolss_GetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetJob
*r
)
21046 uint32_t _ptr_buffer
;
21047 uint32_t _ptr_info
;
21048 TALLOC_CTX
*_mem_save_handle_0
;
21049 TALLOC_CTX
*_mem_save_buffer_0
;
21050 TALLOC_CTX
*_mem_save_info_0
;
21051 TALLOC_CTX
*_mem_save_needed_0
;
21052 if (flags
& NDR_IN
) {
21053 ZERO_STRUCT(r
->out
);
21055 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21056 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21058 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21059 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21060 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21061 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21062 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
21063 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21064 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21066 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21068 r
->in
.buffer
= NULL
;
21070 if (r
->in
.buffer
) {
21071 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21072 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21073 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21074 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21076 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21077 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21078 ZERO_STRUCTP(r
->out
.needed
);
21080 if (flags
& NDR_OUT
) {
21081 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21083 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21085 r
->out
.info
= NULL
;
21088 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21089 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21091 struct ndr_pull
*_ndr_info
;
21092 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21093 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21094 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21095 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21097 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21099 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21100 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21102 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21103 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21104 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21105 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21106 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21108 return NDR_ERR_SUCCESS
;
21111 _PUBLIC_
void ndr_print_spoolss_GetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetJob
*r
)
21113 ndr_print_struct(ndr
, name
, "spoolss_GetJob");
21115 if (flags
& NDR_SET_VALUES
) {
21116 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21118 if (flags
& NDR_IN
) {
21119 ndr_print_struct(ndr
, "in", "spoolss_GetJob");
21121 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21123 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21125 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
21126 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21127 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21129 if (r
->in
.buffer
) {
21130 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21133 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21136 if (flags
& NDR_OUT
) {
21137 ndr_print_struct(ndr
, "out", "spoolss_GetJob");
21139 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21142 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
21143 ndr_print_spoolss_JobInfo(ndr
, "info", r
->out
.info
);
21146 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21148 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21150 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21156 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumJobs
*r
)
21158 if (flags
& NDR_IN
) {
21159 if (r
->in
.handle
== NULL
) {
21160 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21162 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21163 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.firstjob
));
21164 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.numjobs
));
21165 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21166 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21167 if (r
->in
.buffer
) {
21168 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21170 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21172 if (flags
& NDR_OUT
) {
21173 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21175 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
21177 if (r
->out
.needed
== NULL
) {
21178 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21180 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21181 if (r
->out
.count
== NULL
) {
21182 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21184 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
21185 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21187 return NDR_ERR_SUCCESS
;
21190 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumJobs
*r
)
21192 uint32_t _ptr_buffer
;
21193 uint32_t _ptr_info
;
21194 TALLOC_CTX
*_mem_save_handle_0
;
21195 TALLOC_CTX
*_mem_save_buffer_0
;
21196 TALLOC_CTX
*_mem_save_info_0
;
21197 TALLOC_CTX
*_mem_save_needed_0
;
21198 TALLOC_CTX
*_mem_save_count_0
;
21199 if (flags
& NDR_IN
) {
21200 ZERO_STRUCT(r
->out
);
21202 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21203 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21205 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21206 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21207 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21208 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21209 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.firstjob
));
21210 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.numjobs
));
21211 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21212 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21214 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21216 r
->in
.buffer
= NULL
;
21218 if (r
->in
.buffer
) {
21219 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21220 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21221 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21222 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21224 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21225 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21226 ZERO_STRUCTP(r
->out
.needed
);
21227 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21228 ZERO_STRUCTP(r
->out
.count
);
21230 if (flags
& NDR_OUT
) {
21231 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21233 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21235 r
->out
.info
= NULL
;
21238 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21239 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21240 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
21241 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21243 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21244 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21246 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21247 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21248 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21249 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21250 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21251 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21253 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21254 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
21255 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
21256 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
21257 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21259 return NDR_ERR_SUCCESS
;
21262 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumJobs
*r
)
21264 uint32_t cntr_info_0
;
21265 if (flags
& NDR_IN
) {
21266 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21267 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
21269 if (flags
& NDR_OUT
) {
21270 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21271 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21272 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21274 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21275 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21278 return NDR_ERR_SUCCESS
;
21281 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumJobs
*r
)
21283 uint32_t size_info_0
= 0;
21284 uint32_t cntr_info_0
;
21285 TALLOC_CTX
*_mem_save_info_0
;
21286 if (flags
& NDR_IN
) {
21287 ZERO_STRUCT(r
->out
);
21289 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21290 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
21292 if (flags
& NDR_OUT
) {
21293 size_info_0
= r
->in
.count
;
21294 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
21295 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21296 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21297 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
21298 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21299 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21301 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
21302 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21304 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21306 return NDR_ERR_SUCCESS
;
21309 _PUBLIC_
void ndr_print_spoolss_EnumJobs(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumJobs
*r
)
21311 uint32_t cntr_info_2
;
21312 ndr_print_struct(ndr
, name
, "spoolss_EnumJobs");
21314 if (flags
& NDR_SET_VALUES
) {
21315 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21317 if (flags
& NDR_IN
) {
21318 ndr_print_struct(ndr
, "in", "spoolss_EnumJobs");
21320 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21322 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21324 ndr_print_uint32(ndr
, "firstjob", r
->in
.firstjob
);
21325 ndr_print_uint32(ndr
, "numjobs", r
->in
.numjobs
);
21326 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21327 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21329 if (r
->in
.buffer
) {
21330 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21333 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21336 if (flags
& NDR_OUT
) {
21337 ndr_print_struct(ndr
, "out", "spoolss_EnumJobs");
21339 ndr_print_ptr(ndr
, "count", r
->out
.count
);
21341 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
21343 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21345 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
21347 if (*r
->out
.info
) {
21348 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
21350 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
21352 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
21353 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
21354 ndr_print_spoolss_JobInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
21362 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21364 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21366 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21372 static enum ndr_err_code
ndr_push_spoolss_AddPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinter
*r
)
21374 if (flags
& NDR_IN
) {
21375 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21376 if (r
->in
.server
) {
21377 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21378 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21379 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21380 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21382 if (r
->in
.info_ctr
== NULL
) {
21383 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21385 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
21386 if (r
->in
.devmode_ctr
== NULL
) {
21387 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21389 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
21390 if (r
->in
.secdesc_ctr
== NULL
) {
21391 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21393 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
21395 if (flags
& NDR_OUT
) {
21396 if (r
->out
.handle
== NULL
) {
21397 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21399 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
21400 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21402 return NDR_ERR_SUCCESS
;
21405 static enum ndr_err_code
ndr_pull_spoolss_AddPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinter
*r
)
21407 uint32_t _ptr_server
;
21408 uint32_t size_server_1
= 0;
21409 uint32_t length_server_1
= 0;
21410 TALLOC_CTX
*_mem_save_server_0
;
21411 TALLOC_CTX
*_mem_save_info_ctr_0
;
21412 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
21413 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
21414 TALLOC_CTX
*_mem_save_handle_0
;
21415 if (flags
& NDR_IN
) {
21416 ZERO_STRUCT(r
->out
);
21418 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21420 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21422 r
->in
.server
= NULL
;
21424 if (r
->in
.server
) {
21425 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21426 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21427 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21428 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21429 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
21430 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
21431 if (length_server_1
> size_server_1
) {
21432 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
21434 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
21435 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
21436 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21438 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21439 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
21441 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21442 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21443 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
21444 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21445 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21446 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
21448 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21449 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21450 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
21451 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21452 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21453 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
21455 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21456 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21457 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
21458 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21459 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
21460 ZERO_STRUCTP(r
->out
.handle
);
21462 if (flags
& NDR_OUT
) {
21463 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21464 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
21466 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21467 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21468 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
21469 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21470 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21472 return NDR_ERR_SUCCESS
;
21475 _PUBLIC_
void ndr_print_spoolss_AddPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinter
*r
)
21477 ndr_print_struct(ndr
, name
, "spoolss_AddPrinter");
21479 if (flags
& NDR_SET_VALUES
) {
21480 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21482 if (flags
& NDR_IN
) {
21483 ndr_print_struct(ndr
, "in", "spoolss_AddPrinter");
21485 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21487 if (r
->in
.server
) {
21488 ndr_print_string(ndr
, "server", r
->in
.server
);
21491 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
21493 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
21495 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
21497 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
21499 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
21501 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
21505 if (flags
& NDR_OUT
) {
21506 ndr_print_struct(ndr
, "out", "spoolss_AddPrinter");
21508 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
21510 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
21512 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21518 static enum ndr_err_code
ndr_push_spoolss_DeletePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinter
*r
)
21520 if (flags
& NDR_IN
) {
21521 if (r
->in
.handle
== NULL
) {
21522 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21524 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21526 if (flags
& NDR_OUT
) {
21527 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21529 return NDR_ERR_SUCCESS
;
21532 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinter
*r
)
21534 TALLOC_CTX
*_mem_save_handle_0
;
21535 if (flags
& NDR_IN
) {
21536 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21537 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21539 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21540 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21541 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21542 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21544 if (flags
& NDR_OUT
) {
21545 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21547 return NDR_ERR_SUCCESS
;
21550 _PUBLIC_
void ndr_print_spoolss_DeletePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinter
*r
)
21552 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinter");
21554 if (flags
& NDR_SET_VALUES
) {
21555 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21557 if (flags
& NDR_IN
) {
21558 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinter");
21560 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21562 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21566 if (flags
& NDR_OUT
) {
21567 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinter");
21569 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21575 static enum ndr_err_code
ndr_push_spoolss_SetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinter
*r
)
21577 if (flags
& NDR_IN
) {
21578 if (r
->in
.handle
== NULL
) {
21579 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21581 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21582 if (r
->in
.info_ctr
== NULL
) {
21583 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21585 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
21586 if (r
->in
.devmode_ctr
== NULL
) {
21587 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21589 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
21590 if (r
->in
.secdesc_ctr
== NULL
) {
21591 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21593 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
21594 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr
, NDR_SCALARS
, r
->in
.command
));
21596 if (flags
& NDR_OUT
) {
21597 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21599 return NDR_ERR_SUCCESS
;
21602 static enum ndr_err_code
ndr_pull_spoolss_SetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinter
*r
)
21604 TALLOC_CTX
*_mem_save_handle_0
;
21605 TALLOC_CTX
*_mem_save_info_ctr_0
;
21606 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
21607 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
21608 if (flags
& NDR_IN
) {
21609 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21610 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21612 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21613 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21614 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21615 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21616 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21617 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
21619 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21620 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21621 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
21622 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21623 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21624 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
21626 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21627 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21628 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
21629 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21630 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21631 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
21633 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21634 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21635 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
21636 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21637 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
21639 if (flags
& NDR_OUT
) {
21640 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21642 return NDR_ERR_SUCCESS
;
21645 _PUBLIC_
void ndr_print_spoolss_SetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinter
*r
)
21647 ndr_print_struct(ndr
, name
, "spoolss_SetPrinter");
21649 if (flags
& NDR_SET_VALUES
) {
21650 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21652 if (flags
& NDR_IN
) {
21653 ndr_print_struct(ndr
, "in", "spoolss_SetPrinter");
21655 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21657 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21659 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
21661 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
21663 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
21665 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
21667 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
21669 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
21671 ndr_print_spoolss_PrinterControl(ndr
, "command", r
->in
.command
);
21674 if (flags
& NDR_OUT
) {
21675 ndr_print_struct(ndr
, "out", "spoolss_SetPrinter");
21677 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21683 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinter
*r
)
21685 if (flags
& NDR_IN
) {
21686 if (r
->in
.handle
== NULL
) {
21687 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21689 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21690 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21691 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21692 if (r
->in
.buffer
) {
21693 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21695 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21697 if (flags
& NDR_OUT
) {
21698 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21701 struct ndr_push
*_ndr_info
;
21702 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21703 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21704 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21705 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21708 if (r
->out
.needed
== NULL
) {
21709 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21711 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21712 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21714 return NDR_ERR_SUCCESS
;
21717 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinter
*r
)
21719 uint32_t _ptr_buffer
;
21720 uint32_t _ptr_info
;
21721 TALLOC_CTX
*_mem_save_handle_0
;
21722 TALLOC_CTX
*_mem_save_buffer_0
;
21723 TALLOC_CTX
*_mem_save_info_0
;
21724 TALLOC_CTX
*_mem_save_needed_0
;
21725 if (flags
& NDR_IN
) {
21726 ZERO_STRUCT(r
->out
);
21728 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21729 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21731 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21732 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21733 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21734 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21735 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21736 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21738 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21740 r
->in
.buffer
= NULL
;
21742 if (r
->in
.buffer
) {
21743 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21744 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21745 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21746 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21748 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21749 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21750 ZERO_STRUCTP(r
->out
.needed
);
21752 if (flags
& NDR_OUT
) {
21753 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21755 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21757 r
->out
.info
= NULL
;
21760 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21761 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21763 struct ndr_pull
*_ndr_info
;
21764 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21765 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21766 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21767 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21769 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21771 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21772 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21774 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21775 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21776 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21777 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21778 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21780 return NDR_ERR_SUCCESS
;
21783 _PUBLIC_
void ndr_print_spoolss_GetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinter
*r
)
21785 ndr_print_struct(ndr
, name
, "spoolss_GetPrinter");
21787 if (flags
& NDR_SET_VALUES
) {
21788 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21790 if (flags
& NDR_IN
) {
21791 ndr_print_struct(ndr
, "in", "spoolss_GetPrinter");
21793 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21795 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21797 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21798 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21800 if (r
->in
.buffer
) {
21801 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21804 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21807 if (flags
& NDR_OUT
) {
21808 ndr_print_struct(ndr
, "out", "spoolss_GetPrinter");
21810 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21813 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
21814 ndr_print_spoolss_PrinterInfo(ndr
, "info", r
->out
.info
);
21817 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21819 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21821 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21827 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
21829 if (flags
& NDR_IN
) {
21830 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
21831 if (r
->in
.servername
) {
21832 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
21833 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21834 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
21835 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21837 if (r
->in
.info_ctr
== NULL
) {
21838 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21840 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
21842 if (flags
& NDR_OUT
) {
21843 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21845 return NDR_ERR_SUCCESS
;
21848 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriver
*r
)
21850 uint32_t _ptr_servername
;
21851 uint32_t size_servername_1
= 0;
21852 uint32_t length_servername_1
= 0;
21853 TALLOC_CTX
*_mem_save_servername_0
;
21854 TALLOC_CTX
*_mem_save_info_ctr_0
;
21855 if (flags
& NDR_IN
) {
21856 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
21857 if (_ptr_servername
) {
21858 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
21860 r
->in
.servername
= NULL
;
21862 if (r
->in
.servername
) {
21863 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21864 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
21865 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
21866 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
21867 size_servername_1
= ndr_get_array_size(ndr
, &r
->in
.servername
);
21868 length_servername_1
= ndr_get_array_length(ndr
, &r
->in
.servername
);
21869 if (length_servername_1
> size_servername_1
) {
21870 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
21872 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
21873 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
21874 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
21876 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21877 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
21879 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21880 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21881 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
21882 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21884 if (flags
& NDR_OUT
) {
21885 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21887 return NDR_ERR_SUCCESS
;
21890 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
21892 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriver");
21894 if (flags
& NDR_SET_VALUES
) {
21895 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21897 if (flags
& NDR_IN
) {
21898 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriver");
21900 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
21902 if (r
->in
.servername
) {
21903 ndr_print_string(ndr
, "servername", r
->in
.servername
);
21906 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
21908 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
21912 if (flags
& NDR_OUT
) {
21913 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriver");
21915 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21921 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDrivers
*r
)
21923 if (flags
& NDR_IN
) {
21924 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21925 if (r
->in
.server
) {
21926 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21927 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21928 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21929 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21931 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
21932 if (r
->in
.environment
) {
21933 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21934 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21935 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21936 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, 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
));
21945 if (flags
& NDR_OUT
) {
21946 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21948 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
21950 if (r
->out
.needed
== NULL
) {
21951 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21953 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21954 if (r
->out
.count
== NULL
) {
21955 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21957 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
21958 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21960 return NDR_ERR_SUCCESS
;
21963 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDrivers
*r
)
21965 uint32_t _ptr_server
;
21966 uint32_t size_server_1
= 0;
21967 uint32_t length_server_1
= 0;
21968 uint32_t _ptr_environment
;
21969 uint32_t size_environment_1
= 0;
21970 uint32_t length_environment_1
= 0;
21971 uint32_t _ptr_buffer
;
21972 uint32_t _ptr_info
;
21973 TALLOC_CTX
*_mem_save_server_0
;
21974 TALLOC_CTX
*_mem_save_environment_0
;
21975 TALLOC_CTX
*_mem_save_buffer_0
;
21976 TALLOC_CTX
*_mem_save_info_0
;
21977 TALLOC_CTX
*_mem_save_needed_0
;
21978 TALLOC_CTX
*_mem_save_count_0
;
21979 if (flags
& NDR_IN
) {
21980 ZERO_STRUCT(r
->out
);
21982 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21984 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21986 r
->in
.server
= NULL
;
21988 if (r
->in
.server
) {
21989 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21990 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21991 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21992 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21993 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
21994 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
21995 if (length_server_1
> size_server_1
) {
21996 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
21998 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
21999 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
22000 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
22002 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
22003 if (_ptr_environment
) {
22004 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
22006 r
->in
.environment
= NULL
;
22008 if (r
->in
.environment
) {
22009 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22010 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
22011 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
22012 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
22013 size_environment_1
= ndr_get_array_size(ndr
, &r
->in
.environment
);
22014 length_environment_1
= ndr_get_array_length(ndr
, &r
->in
.environment
);
22015 if (length_environment_1
> size_environment_1
) {
22016 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_environment_1
, length_environment_1
);
22018 NDR_CHECK(ndr_check_string_terminator(ndr
, length_environment_1
, sizeof(uint16_t)));
22019 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, length_environment_1
, sizeof(uint16_t), CH_UTF16
));
22020 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
22022 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22023 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22025 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22027 r
->in
.buffer
= NULL
;
22029 if (r
->in
.buffer
) {
22030 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22031 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22032 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22033 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22035 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22036 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22037 ZERO_STRUCTP(r
->out
.needed
);
22038 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22039 ZERO_STRUCTP(r
->out
.count
);
22041 if (flags
& NDR_OUT
) {
22042 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22044 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22046 r
->out
.info
= NULL
;
22049 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22050 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22051 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
22052 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22054 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22055 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22057 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22058 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22059 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22060 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22061 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22062 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22064 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22065 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
22066 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
22067 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
22068 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22070 return NDR_ERR_SUCCESS
;
22073 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDrivers
*r
)
22075 uint32_t cntr_info_0
;
22076 if (flags
& NDR_IN
) {
22077 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22078 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
22080 if (flags
& NDR_OUT
) {
22081 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22082 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22083 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22085 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22086 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22089 return NDR_ERR_SUCCESS
;
22092 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDrivers
*r
)
22094 uint32_t size_info_0
= 0;
22095 uint32_t cntr_info_0
;
22096 TALLOC_CTX
*_mem_save_info_0
;
22097 if (flags
& NDR_IN
) {
22098 ZERO_STRUCT(r
->out
);
22100 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22101 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
22103 if (flags
& NDR_OUT
) {
22104 size_info_0
= r
->in
.count
;
22105 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
22106 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22107 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22108 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
22109 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22110 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22112 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
22113 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22115 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22117 return NDR_ERR_SUCCESS
;
22120 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDrivers
*r
)
22122 uint32_t cntr_info_2
;
22123 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDrivers");
22125 if (flags
& NDR_SET_VALUES
) {
22126 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22128 if (flags
& NDR_IN
) {
22129 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDrivers");
22131 ndr_print_ptr(ndr
, "server", r
->in
.server
);
22133 if (r
->in
.server
) {
22134 ndr_print_string(ndr
, "server", r
->in
.server
);
22137 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
22139 if (r
->in
.environment
) {
22140 ndr_print_string(ndr
, "environment", r
->in
.environment
);
22143 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22144 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22146 if (r
->in
.buffer
) {
22147 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22150 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22153 if (flags
& NDR_OUT
) {
22154 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDrivers");
22156 ndr_print_ptr(ndr
, "count", r
->out
.count
);
22158 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
22160 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22162 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
22164 if (*r
->out
.info
) {
22165 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
22167 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
22169 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
22170 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
22171 ndr_print_spoolss_DriverInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
22179 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22181 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22183 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22189 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
22191 if (flags
& NDR_IN
) {
22192 if (r
->in
.handle
== NULL
) {
22193 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22195 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22196 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
22197 if (r
->in
.architecture
) {
22198 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22199 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22200 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22201 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22203 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22204 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22205 if (r
->in
.buffer
) {
22206 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22208 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22210 if (flags
& NDR_OUT
) {
22211 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22214 struct ndr_push
*_ndr_info
;
22215 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22216 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22217 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
22218 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22221 if (r
->out
.needed
== NULL
) {
22222 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22224 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22225 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22227 return NDR_ERR_SUCCESS
;
22230 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver
*r
)
22232 uint32_t _ptr_architecture
;
22233 uint32_t size_architecture_1
= 0;
22234 uint32_t length_architecture_1
= 0;
22235 uint32_t _ptr_buffer
;
22236 uint32_t _ptr_info
;
22237 TALLOC_CTX
*_mem_save_handle_0
;
22238 TALLOC_CTX
*_mem_save_architecture_0
;
22239 TALLOC_CTX
*_mem_save_buffer_0
;
22240 TALLOC_CTX
*_mem_save_info_0
;
22241 TALLOC_CTX
*_mem_save_needed_0
;
22242 if (flags
& NDR_IN
) {
22243 ZERO_STRUCT(r
->out
);
22245 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22246 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22248 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22249 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22250 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22251 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22252 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
22253 if (_ptr_architecture
) {
22254 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
22256 r
->in
.architecture
= NULL
;
22258 if (r
->in
.architecture
) {
22259 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22260 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
22261 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
22262 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
22263 size_architecture_1
= ndr_get_array_size(ndr
, &r
->in
.architecture
);
22264 length_architecture_1
= ndr_get_array_length(ndr
, &r
->in
.architecture
);
22265 if (length_architecture_1
> size_architecture_1
) {
22266 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_1
, length_architecture_1
);
22268 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_1
, sizeof(uint16_t)));
22269 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, length_architecture_1
, sizeof(uint16_t), CH_UTF16
));
22270 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
22272 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22273 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22275 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22277 r
->in
.buffer
= NULL
;
22279 if (r
->in
.buffer
) {
22280 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22281 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22282 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22283 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22285 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22286 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22287 ZERO_STRUCTP(r
->out
.needed
);
22289 if (flags
& NDR_OUT
) {
22290 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22292 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22294 r
->out
.info
= NULL
;
22297 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22298 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22300 struct ndr_pull
*_ndr_info
;
22301 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22302 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22303 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
22304 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22306 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22308 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22309 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22311 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22312 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22313 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22314 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22315 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22317 return NDR_ERR_SUCCESS
;
22320 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
22322 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver");
22324 if (flags
& NDR_SET_VALUES
) {
22325 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22327 if (flags
& NDR_IN
) {
22328 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver");
22330 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22332 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22334 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
22336 if (r
->in
.architecture
) {
22337 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
22340 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22341 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22343 if (r
->in
.buffer
) {
22344 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22347 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22350 if (flags
& NDR_OUT
) {
22351 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver");
22353 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22356 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22357 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
22360 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22362 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22364 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22370 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
22372 if (flags
& NDR_IN
) {
22373 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
22374 if (r
->in
.server
) {
22375 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22376 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22377 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22378 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22380 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
22381 if (r
->in
.environment
) {
22382 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22383 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22384 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22385 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22387 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22388 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22389 if (r
->in
.buffer
) {
22390 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22392 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22394 if (flags
& NDR_OUT
) {
22395 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22398 struct ndr_push
*_ndr_info
;
22399 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22400 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22401 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
22402 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22405 if (r
->out
.needed
== NULL
) {
22406 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22409 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22411 return NDR_ERR_SUCCESS
;
22414 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverDirectory
*r
)
22416 uint32_t _ptr_server
;
22417 uint32_t size_server_1
= 0;
22418 uint32_t length_server_1
= 0;
22419 uint32_t _ptr_environment
;
22420 uint32_t size_environment_1
= 0;
22421 uint32_t length_environment_1
= 0;
22422 uint32_t _ptr_buffer
;
22423 uint32_t _ptr_info
;
22424 TALLOC_CTX
*_mem_save_server_0
;
22425 TALLOC_CTX
*_mem_save_environment_0
;
22426 TALLOC_CTX
*_mem_save_buffer_0
;
22427 TALLOC_CTX
*_mem_save_info_0
;
22428 TALLOC_CTX
*_mem_save_needed_0
;
22429 if (flags
& NDR_IN
) {
22430 ZERO_STRUCT(r
->out
);
22432 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
22434 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
22436 r
->in
.server
= NULL
;
22438 if (r
->in
.server
) {
22439 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22440 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
22441 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
22442 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
22443 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
22444 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
22445 if (length_server_1
> size_server_1
) {
22446 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
22448 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
22449 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
22450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
22452 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
22453 if (_ptr_environment
) {
22454 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
22456 r
->in
.environment
= NULL
;
22458 if (r
->in
.environment
) {
22459 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22460 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
22461 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
22462 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
22463 size_environment_1
= ndr_get_array_size(ndr
, &r
->in
.environment
);
22464 length_environment_1
= ndr_get_array_length(ndr
, &r
->in
.environment
);
22465 if (length_environment_1
> size_environment_1
) {
22466 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_environment_1
, length_environment_1
);
22468 NDR_CHECK(ndr_check_string_terminator(ndr
, length_environment_1
, sizeof(uint16_t)));
22469 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, length_environment_1
, sizeof(uint16_t), CH_UTF16
));
22470 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
22472 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22473 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22475 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22477 r
->in
.buffer
= NULL
;
22479 if (r
->in
.buffer
) {
22480 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22481 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22482 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22483 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22485 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22486 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22487 ZERO_STRUCTP(r
->out
.needed
);
22489 if (flags
& NDR_OUT
) {
22490 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22492 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22494 r
->out
.info
= NULL
;
22497 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22498 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22500 struct ndr_pull
*_ndr_info
;
22501 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22502 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22503 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
22504 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22506 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22508 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22509 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22511 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22512 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22513 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22514 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22515 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22517 return NDR_ERR_SUCCESS
;
22520 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
22522 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverDirectory");
22524 if (flags
& NDR_SET_VALUES
) {
22525 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22527 if (flags
& NDR_IN
) {
22528 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverDirectory");
22530 ndr_print_ptr(ndr
, "server", r
->in
.server
);
22532 if (r
->in
.server
) {
22533 ndr_print_string(ndr
, "server", r
->in
.server
);
22536 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
22538 if (r
->in
.environment
) {
22539 ndr_print_string(ndr
, "environment", r
->in
.environment
);
22542 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22543 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22545 if (r
->in
.buffer
) {
22546 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22549 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22552 if (flags
& NDR_OUT
) {
22553 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverDirectory");
22555 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22558 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22559 ndr_print_spoolss_DriverDirectoryInfo(ndr
, "info", r
->out
.info
);
22562 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22564 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22566 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22572 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
22574 if (flags
& NDR_IN
) {
22575 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
22576 if (r
->in
.server
) {
22577 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22578 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22579 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22580 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22582 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22583 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22584 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22585 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22586 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
22587 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22588 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
22589 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22591 if (flags
& NDR_OUT
) {
22592 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22594 return NDR_ERR_SUCCESS
;
22597 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriver
*r
)
22599 uint32_t _ptr_server
;
22600 uint32_t size_server_1
= 0;
22601 uint32_t length_server_1
= 0;
22602 uint32_t size_architecture_0
= 0;
22603 uint32_t length_architecture_0
= 0;
22604 uint32_t size_driver_0
= 0;
22605 uint32_t length_driver_0
= 0;
22606 TALLOC_CTX
*_mem_save_server_0
;
22607 if (flags
& NDR_IN
) {
22608 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
22610 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
22612 r
->in
.server
= NULL
;
22614 if (r
->in
.server
) {
22615 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22616 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
22617 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
22618 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
22619 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
22620 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
22621 if (length_server_1
> size_server_1
) {
22622 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
22624 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
22625 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
22626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
22628 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
22629 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
22630 size_architecture_0
= ndr_get_array_size(ndr
, &r
->in
.architecture
);
22631 length_architecture_0
= ndr_get_array_length(ndr
, &r
->in
.architecture
);
22632 if (length_architecture_0
> size_architecture_0
) {
22633 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_0
, length_architecture_0
);
22635 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_0
, sizeof(uint16_t)));
22636 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, length_architecture_0
, sizeof(uint16_t), CH_UTF16
));
22637 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
22638 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
22639 size_driver_0
= ndr_get_array_size(ndr
, &r
->in
.driver
);
22640 length_driver_0
= ndr_get_array_length(ndr
, &r
->in
.driver
);
22641 if (length_driver_0
> size_driver_0
) {
22642 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_0
, length_driver_0
);
22644 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_0
, sizeof(uint16_t)));
22645 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, length_driver_0
, sizeof(uint16_t), CH_UTF16
));
22647 if (flags
& NDR_OUT
) {
22648 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22650 return NDR_ERR_SUCCESS
;
22653 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
22655 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriver");
22657 if (flags
& NDR_SET_VALUES
) {
22658 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22660 if (flags
& NDR_IN
) {
22661 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriver");
22663 ndr_print_ptr(ndr
, "server", r
->in
.server
);
22665 if (r
->in
.server
) {
22666 ndr_print_string(ndr
, "server", r
->in
.server
);
22669 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
22670 ndr_print_string(ndr
, "driver", r
->in
.driver
);
22673 if (flags
& NDR_OUT
) {
22674 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriver");
22676 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22682 static enum ndr_err_code
ndr_push_spoolss_AddPrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
22684 if (flags
& NDR_IN
) {
22685 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
22686 if (r
->in
.server
) {
22687 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22688 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22689 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22690 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22692 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22693 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22694 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22695 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22696 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
22697 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22698 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
22699 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
));
22700 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
22701 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22702 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
22703 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
));
22705 if (flags
& NDR_OUT
) {
22706 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22708 return NDR_ERR_SUCCESS
;
22711 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProcessor
*r
)
22713 uint32_t _ptr_server
;
22714 uint32_t size_server_1
= 0;
22715 uint32_t length_server_1
= 0;
22716 uint32_t size_architecture_0
= 0;
22717 uint32_t length_architecture_0
= 0;
22718 uint32_t size_path_name_0
= 0;
22719 uint32_t length_path_name_0
= 0;
22720 uint32_t size_print_processor_name_0
= 0;
22721 uint32_t length_print_processor_name_0
= 0;
22722 TALLOC_CTX
*_mem_save_server_0
;
22723 if (flags
& NDR_IN
) {
22724 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
22726 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
22728 r
->in
.server
= NULL
;
22730 if (r
->in
.server
) {
22731 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22732 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
22733 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
22734 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
22735 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
22736 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
22737 if (length_server_1
> size_server_1
) {
22738 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
22740 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
22741 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
22742 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
22744 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
22745 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
22746 size_architecture_0
= ndr_get_array_size(ndr
, &r
->in
.architecture
);
22747 length_architecture_0
= ndr_get_array_length(ndr
, &r
->in
.architecture
);
22748 if (length_architecture_0
> size_architecture_0
) {
22749 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_0
, length_architecture_0
);
22751 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_0
, sizeof(uint16_t)));
22752 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, length_architecture_0
, sizeof(uint16_t), CH_UTF16
));
22753 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.path_name
));
22754 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.path_name
));
22755 size_path_name_0
= ndr_get_array_size(ndr
, &r
->in
.path_name
);
22756 length_path_name_0
= ndr_get_array_length(ndr
, &r
->in
.path_name
);
22757 if (length_path_name_0
> size_path_name_0
) {
22758 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_path_name_0
, length_path_name_0
);
22760 NDR_CHECK(ndr_check_string_terminator(ndr
, length_path_name_0
, sizeof(uint16_t)));
22761 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.path_name
, length_path_name_0
, sizeof(uint16_t), CH_UTF16
));
22762 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
22763 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
22764 size_print_processor_name_0
= ndr_get_array_size(ndr
, &r
->in
.print_processor_name
);
22765 length_print_processor_name_0
= ndr_get_array_length(ndr
, &r
->in
.print_processor_name
);
22766 if (length_print_processor_name_0
> size_print_processor_name_0
) {
22767 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_print_processor_name_0
, length_print_processor_name_0
);
22769 NDR_CHECK(ndr_check_string_terminator(ndr
, length_print_processor_name_0
, sizeof(uint16_t)));
22770 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.print_processor_name
, length_print_processor_name_0
, sizeof(uint16_t), CH_UTF16
));
22772 if (flags
& NDR_OUT
) {
22773 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22775 return NDR_ERR_SUCCESS
;
22778 _PUBLIC_
void ndr_print_spoolss_AddPrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
22780 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProcessor");
22782 if (flags
& NDR_SET_VALUES
) {
22783 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22785 if (flags
& NDR_IN
) {
22786 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProcessor");
22788 ndr_print_ptr(ndr
, "server", r
->in
.server
);
22790 if (r
->in
.server
) {
22791 ndr_print_string(ndr
, "server", r
->in
.server
);
22794 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
22795 ndr_print_string(ndr
, "path_name", r
->in
.path_name
);
22796 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
22799 if (flags
& NDR_OUT
) {
22800 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProcessor");
22802 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22808 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcessors
*r
)
22810 if (flags
& NDR_IN
) {
22811 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
22812 if (r
->in
.servername
) {
22813 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22814 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22815 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22816 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22818 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
22819 if (r
->in
.environment
) {
22820 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22821 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22822 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22823 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22825 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22826 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22827 if (r
->in
.buffer
) {
22828 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22830 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22832 if (flags
& NDR_OUT
) {
22833 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22835 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
22837 if (r
->out
.needed
== NULL
) {
22838 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22840 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22841 if (r
->out
.count
== NULL
) {
22842 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22844 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
22845 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22847 return NDR_ERR_SUCCESS
;
22850 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcessors
*r
)
22852 uint32_t _ptr_servername
;
22853 uint32_t size_servername_1
= 0;
22854 uint32_t length_servername_1
= 0;
22855 uint32_t _ptr_environment
;
22856 uint32_t size_environment_1
= 0;
22857 uint32_t length_environment_1
= 0;
22858 uint32_t _ptr_buffer
;
22859 uint32_t _ptr_info
;
22860 TALLOC_CTX
*_mem_save_servername_0
;
22861 TALLOC_CTX
*_mem_save_environment_0
;
22862 TALLOC_CTX
*_mem_save_buffer_0
;
22863 TALLOC_CTX
*_mem_save_info_0
;
22864 TALLOC_CTX
*_mem_save_needed_0
;
22865 TALLOC_CTX
*_mem_save_count_0
;
22866 if (flags
& NDR_IN
) {
22867 ZERO_STRUCT(r
->out
);
22869 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
22870 if (_ptr_servername
) {
22871 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
22873 r
->in
.servername
= NULL
;
22875 if (r
->in
.servername
) {
22876 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22877 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
22878 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
22879 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
22880 size_servername_1
= ndr_get_array_size(ndr
, &r
->in
.servername
);
22881 length_servername_1
= ndr_get_array_length(ndr
, &r
->in
.servername
);
22882 if (length_servername_1
> size_servername_1
) {
22883 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
22885 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
22886 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
22887 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
22889 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
22890 if (_ptr_environment
) {
22891 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
22893 r
->in
.environment
= NULL
;
22895 if (r
->in
.environment
) {
22896 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22897 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
22898 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
22899 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
22900 size_environment_1
= ndr_get_array_size(ndr
, &r
->in
.environment
);
22901 length_environment_1
= ndr_get_array_length(ndr
, &r
->in
.environment
);
22902 if (length_environment_1
> size_environment_1
) {
22903 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_environment_1
, length_environment_1
);
22905 NDR_CHECK(ndr_check_string_terminator(ndr
, length_environment_1
, sizeof(uint16_t)));
22906 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, length_environment_1
, sizeof(uint16_t), CH_UTF16
));
22907 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
22909 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22910 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22912 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22914 r
->in
.buffer
= NULL
;
22916 if (r
->in
.buffer
) {
22917 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22918 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22919 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22920 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22922 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22923 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22924 ZERO_STRUCTP(r
->out
.needed
);
22925 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22926 ZERO_STRUCTP(r
->out
.count
);
22928 if (flags
& NDR_OUT
) {
22929 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22931 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22933 r
->out
.info
= NULL
;
22936 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22937 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22938 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
22939 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22941 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22942 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22944 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22945 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22946 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22947 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22948 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22949 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22951 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22952 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
22953 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
22954 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
22955 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22957 return NDR_ERR_SUCCESS
;
22960 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcessors
*r
)
22962 uint32_t cntr_info_0
;
22963 if (flags
& NDR_IN
) {
22964 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
22967 if (flags
& NDR_OUT
) {
22968 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22969 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22970 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22972 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22973 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22976 return NDR_ERR_SUCCESS
;
22979 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcessors
*r
)
22981 uint32_t size_info_0
= 0;
22982 uint32_t cntr_info_0
;
22983 TALLOC_CTX
*_mem_save_info_0
;
22984 if (flags
& NDR_IN
) {
22985 ZERO_STRUCT(r
->out
);
22987 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22988 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
22990 if (flags
& NDR_OUT
) {
22991 size_info_0
= r
->in
.count
;
22992 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
22993 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22994 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22995 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
22996 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22997 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22999 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
23000 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23002 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23004 return NDR_ERR_SUCCESS
;
23007 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcessors
*r
)
23009 uint32_t cntr_info_2
;
23010 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcessors");
23012 if (flags
& NDR_SET_VALUES
) {
23013 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23015 if (flags
& NDR_IN
) {
23016 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcessors");
23018 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
23020 if (r
->in
.servername
) {
23021 ndr_print_string(ndr
, "servername", r
->in
.servername
);
23024 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
23026 if (r
->in
.environment
) {
23027 ndr_print_string(ndr
, "environment", r
->in
.environment
);
23030 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23031 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23033 if (r
->in
.buffer
) {
23034 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23037 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23040 if (flags
& NDR_OUT
) {
23041 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcessors");
23043 ndr_print_ptr(ndr
, "count", r
->out
.count
);
23045 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
23047 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23049 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
23051 if (*r
->out
.info
) {
23052 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
23054 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
23056 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
23057 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
23058 ndr_print_spoolss_PrintProcessorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
23066 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23068 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23070 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23076 static enum ndr_err_code
ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
23078 if (flags
& NDR_IN
) {
23079 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
23080 if (r
->in
.server
) {
23081 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
23082 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23083 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
23084 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23086 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
23087 if (r
->in
.environment
) {
23088 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
23089 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23090 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
23091 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23093 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23094 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23095 if (r
->in
.buffer
) {
23096 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23098 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23100 if (flags
& NDR_OUT
) {
23101 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23104 struct ndr_push
*_ndr_info
;
23105 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23106 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23107 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
23108 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23111 if (r
->out
.needed
== NULL
) {
23112 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23114 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23115 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23117 return NDR_ERR_SUCCESS
;
23120 static enum ndr_err_code
ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrintProcessorDirectory
*r
)
23122 uint32_t _ptr_server
;
23123 uint32_t size_server_1
= 0;
23124 uint32_t length_server_1
= 0;
23125 uint32_t _ptr_environment
;
23126 uint32_t size_environment_1
= 0;
23127 uint32_t length_environment_1
= 0;
23128 uint32_t _ptr_buffer
;
23129 uint32_t _ptr_info
;
23130 TALLOC_CTX
*_mem_save_server_0
;
23131 TALLOC_CTX
*_mem_save_environment_0
;
23132 TALLOC_CTX
*_mem_save_buffer_0
;
23133 TALLOC_CTX
*_mem_save_info_0
;
23134 TALLOC_CTX
*_mem_save_needed_0
;
23135 if (flags
& NDR_IN
) {
23136 ZERO_STRUCT(r
->out
);
23138 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
23140 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
23142 r
->in
.server
= NULL
;
23144 if (r
->in
.server
) {
23145 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23146 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
23147 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
23148 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
23149 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
23150 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
23151 if (length_server_1
> size_server_1
) {
23152 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
23154 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
23155 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
23156 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
23158 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
23159 if (_ptr_environment
) {
23160 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
23162 r
->in
.environment
= NULL
;
23164 if (r
->in
.environment
) {
23165 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23166 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
23167 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
23168 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
23169 size_environment_1
= ndr_get_array_size(ndr
, &r
->in
.environment
);
23170 length_environment_1
= ndr_get_array_length(ndr
, &r
->in
.environment
);
23171 if (length_environment_1
> size_environment_1
) {
23172 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_environment_1
, length_environment_1
);
23174 NDR_CHECK(ndr_check_string_terminator(ndr
, length_environment_1
, sizeof(uint16_t)));
23175 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, length_environment_1
, sizeof(uint16_t), CH_UTF16
));
23176 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
23178 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23179 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23181 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23183 r
->in
.buffer
= NULL
;
23185 if (r
->in
.buffer
) {
23186 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23187 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23188 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23189 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23191 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23192 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23193 ZERO_STRUCTP(r
->out
.needed
);
23195 if (flags
& NDR_OUT
) {
23196 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23198 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23200 r
->out
.info
= NULL
;
23203 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23204 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23206 struct ndr_pull
*_ndr_info
;
23207 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23208 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23209 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
23210 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23212 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23214 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23215 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23217 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23218 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23219 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23220 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23221 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23223 return NDR_ERR_SUCCESS
;
23226 _PUBLIC_
void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
23228 ndr_print_struct(ndr
, name
, "spoolss_GetPrintProcessorDirectory");
23230 if (flags
& NDR_SET_VALUES
) {
23231 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23233 if (flags
& NDR_IN
) {
23234 ndr_print_struct(ndr
, "in", "spoolss_GetPrintProcessorDirectory");
23236 ndr_print_ptr(ndr
, "server", r
->in
.server
);
23238 if (r
->in
.server
) {
23239 ndr_print_string(ndr
, "server", r
->in
.server
);
23242 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
23244 if (r
->in
.environment
) {
23245 ndr_print_string(ndr
, "environment", r
->in
.environment
);
23248 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23249 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23251 if (r
->in
.buffer
) {
23252 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23255 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23258 if (flags
& NDR_OUT
) {
23259 ndr_print_struct(ndr
, "out", "spoolss_GetPrintProcessorDirectory");
23261 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23264 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
23265 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr
, "info", r
->out
.info
);
23268 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23270 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23272 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23278 static enum ndr_err_code
ndr_push_spoolss_StartDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartDocPrinter
*r
)
23280 if (flags
& NDR_IN
) {
23281 if (r
->in
.handle
== NULL
) {
23282 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23284 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23285 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23286 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23287 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23289 if (flags
& NDR_OUT
) {
23290 if (r
->out
.job_id
== NULL
) {
23291 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23293 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.job_id
));
23294 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23296 return NDR_ERR_SUCCESS
;
23299 static enum ndr_err_code
ndr_pull_spoolss_StartDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartDocPrinter
*r
)
23301 TALLOC_CTX
*_mem_save_handle_0
;
23302 TALLOC_CTX
*_mem_save_job_id_0
;
23303 if (flags
& NDR_IN
) {
23304 ZERO_STRUCT(r
->out
);
23306 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23307 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23309 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23310 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23311 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23312 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23313 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23314 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23315 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23316 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
23317 ZERO_STRUCTP(r
->out
.job_id
);
23319 if (flags
& NDR_OUT
) {
23320 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23321 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
23323 _mem_save_job_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23324 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.job_id
, LIBNDR_FLAG_REF_ALLOC
);
23325 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.job_id
));
23326 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_job_id_0
, LIBNDR_FLAG_REF_ALLOC
);
23327 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23329 return NDR_ERR_SUCCESS
;
23332 _PUBLIC_
void ndr_print_spoolss_StartDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartDocPrinter
*r
)
23334 ndr_print_struct(ndr
, name
, "spoolss_StartDocPrinter");
23336 if (flags
& NDR_SET_VALUES
) {
23337 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23339 if (flags
& NDR_IN
) {
23340 ndr_print_struct(ndr
, "in", "spoolss_StartDocPrinter");
23342 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23344 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23346 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23347 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
23348 ndr_print_spoolss_DocumentInfo(ndr
, "info", &r
->in
.info
);
23351 if (flags
& NDR_OUT
) {
23352 ndr_print_struct(ndr
, "out", "spoolss_StartDocPrinter");
23354 ndr_print_ptr(ndr
, "job_id", r
->out
.job_id
);
23356 ndr_print_uint32(ndr
, "job_id", *r
->out
.job_id
);
23358 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23364 static enum ndr_err_code
ndr_push_spoolss_StartPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartPagePrinter
*r
)
23366 if (flags
& NDR_IN
) {
23367 if (r
->in
.handle
== NULL
) {
23368 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23370 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23372 if (flags
& NDR_OUT
) {
23373 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23375 return NDR_ERR_SUCCESS
;
23378 static enum ndr_err_code
ndr_pull_spoolss_StartPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartPagePrinter
*r
)
23380 TALLOC_CTX
*_mem_save_handle_0
;
23381 if (flags
& NDR_IN
) {
23382 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23383 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23385 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23386 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23387 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23388 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23390 if (flags
& NDR_OUT
) {
23391 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23393 return NDR_ERR_SUCCESS
;
23396 _PUBLIC_
void ndr_print_spoolss_StartPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartPagePrinter
*r
)
23398 ndr_print_struct(ndr
, name
, "spoolss_StartPagePrinter");
23400 if (flags
& NDR_SET_VALUES
) {
23401 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23403 if (flags
& NDR_IN
) {
23404 ndr_print_struct(ndr
, "in", "spoolss_StartPagePrinter");
23406 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23408 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23412 if (flags
& NDR_OUT
) {
23413 ndr_print_struct(ndr
, "out", "spoolss_StartPagePrinter");
23415 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23421 static enum ndr_err_code
ndr_push_spoolss_WritePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_WritePrinter
*r
)
23423 if (flags
& NDR_IN
) {
23424 if (r
->in
.handle
== NULL
) {
23425 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23427 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23428 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
23429 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data
.length
));
23431 if (flags
& NDR_OUT
) {
23432 if (r
->out
.num_written
== NULL
) {
23433 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_written
));
23436 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23438 return NDR_ERR_SUCCESS
;
23441 static enum ndr_err_code
ndr_pull_spoolss_WritePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_WritePrinter
*r
)
23443 TALLOC_CTX
*_mem_save_handle_0
;
23444 TALLOC_CTX
*_mem_save_num_written_0
;
23445 if (flags
& NDR_IN
) {
23446 ZERO_STRUCT(r
->out
);
23448 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23449 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23451 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23452 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23453 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23454 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23455 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.data
));
23456 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._data_size
));
23457 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
23458 ZERO_STRUCTP(r
->out
.num_written
);
23460 if (flags
& NDR_OUT
) {
23461 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23462 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
23464 _mem_save_num_written_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23465 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_written
, LIBNDR_FLAG_REF_ALLOC
);
23466 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_written
));
23467 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_written_0
, LIBNDR_FLAG_REF_ALLOC
);
23468 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23470 return NDR_ERR_SUCCESS
;
23473 _PUBLIC_
void ndr_print_spoolss_WritePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WritePrinter
*r
)
23475 ndr_print_struct(ndr
, name
, "spoolss_WritePrinter");
23477 if (flags
& NDR_SET_VALUES
) {
23478 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23480 if (flags
& NDR_IN
) {
23481 ndr_print_struct(ndr
, "in", "spoolss_WritePrinter");
23483 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23485 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23487 ndr_print_DATA_BLOB(ndr
, "data", r
->in
.data
);
23488 ndr_print_uint32(ndr
, "_data_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.data
.length
:r
->in
._data_size
);
23491 if (flags
& NDR_OUT
) {
23492 ndr_print_struct(ndr
, "out", "spoolss_WritePrinter");
23494 ndr_print_ptr(ndr
, "num_written", r
->out
.num_written
);
23496 ndr_print_uint32(ndr
, "num_written", *r
->out
.num_written
);
23498 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23504 static enum ndr_err_code
ndr_push_spoolss_EndPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndPagePrinter
*r
)
23506 if (flags
& NDR_IN
) {
23507 if (r
->in
.handle
== NULL
) {
23508 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23510 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23512 if (flags
& NDR_OUT
) {
23513 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23515 return NDR_ERR_SUCCESS
;
23518 static enum ndr_err_code
ndr_pull_spoolss_EndPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndPagePrinter
*r
)
23520 TALLOC_CTX
*_mem_save_handle_0
;
23521 if (flags
& NDR_IN
) {
23522 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23523 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23525 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23526 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23527 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23528 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23530 if (flags
& NDR_OUT
) {
23531 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23533 return NDR_ERR_SUCCESS
;
23536 _PUBLIC_
void ndr_print_spoolss_EndPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndPagePrinter
*r
)
23538 ndr_print_struct(ndr
, name
, "spoolss_EndPagePrinter");
23540 if (flags
& NDR_SET_VALUES
) {
23541 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23543 if (flags
& NDR_IN
) {
23544 ndr_print_struct(ndr
, "in", "spoolss_EndPagePrinter");
23546 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23548 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23552 if (flags
& NDR_OUT
) {
23553 ndr_print_struct(ndr
, "out", "spoolss_EndPagePrinter");
23555 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23561 static enum ndr_err_code
ndr_push_spoolss_AbortPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AbortPrinter
*r
)
23563 if (flags
& NDR_IN
) {
23564 if (r
->in
.handle
== NULL
) {
23565 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23567 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23569 if (flags
& NDR_OUT
) {
23570 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23572 return NDR_ERR_SUCCESS
;
23575 static enum ndr_err_code
ndr_pull_spoolss_AbortPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AbortPrinter
*r
)
23577 TALLOC_CTX
*_mem_save_handle_0
;
23578 if (flags
& NDR_IN
) {
23579 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23580 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23582 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23583 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23584 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23585 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23587 if (flags
& NDR_OUT
) {
23588 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23590 return NDR_ERR_SUCCESS
;
23593 _PUBLIC_
void ndr_print_spoolss_AbortPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AbortPrinter
*r
)
23595 ndr_print_struct(ndr
, name
, "spoolss_AbortPrinter");
23597 if (flags
& NDR_SET_VALUES
) {
23598 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23600 if (flags
& NDR_IN
) {
23601 ndr_print_struct(ndr
, "in", "spoolss_AbortPrinter");
23603 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23605 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23609 if (flags
& NDR_OUT
) {
23610 ndr_print_struct(ndr
, "out", "spoolss_AbortPrinter");
23612 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23618 static enum ndr_err_code
ndr_push_spoolss_ReadPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReadPrinter
*r
)
23620 if (flags
& NDR_IN
) {
23621 if (r
->in
.handle
== NULL
) {
23622 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23624 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23625 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
23627 if (flags
& NDR_OUT
) {
23628 if (r
->out
.data
== NULL
) {
23629 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23631 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_size
));
23632 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_size
));
23633 if (r
->out
._data_size
== NULL
) {
23634 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23636 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._data_size
));
23637 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23639 return NDR_ERR_SUCCESS
;
23642 static enum ndr_err_code
ndr_pull_spoolss_ReadPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReadPrinter
*r
)
23644 uint32_t size_data_1
= 0;
23645 TALLOC_CTX
*_mem_save_handle_0
;
23646 TALLOC_CTX
*_mem_save__data_size_0
;
23647 if (flags
& NDR_IN
) {
23648 ZERO_STRUCT(r
->out
);
23650 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23651 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23653 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23654 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23655 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23656 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23657 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_size
));
23658 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_size
);
23659 memset(r
->out
.data
, 0, (r
->in
.data_size
) * sizeof(*r
->out
.data
));
23660 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
23661 ZERO_STRUCTP(r
->out
._data_size
);
23663 if (flags
& NDR_OUT
) {
23664 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
23665 size_data_1
= ndr_get_array_size(ndr
, &r
->out
.data
);
23666 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23667 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, size_data_1
);
23669 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, size_data_1
));
23670 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23671 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
23673 _mem_save__data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23674 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._data_size
, LIBNDR_FLAG_REF_ALLOC
);
23675 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._data_size
));
23676 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__data_size_0
, LIBNDR_FLAG_REF_ALLOC
);
23677 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23679 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_size
));
23682 return NDR_ERR_SUCCESS
;
23685 _PUBLIC_
void ndr_print_spoolss_ReadPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReadPrinter
*r
)
23687 ndr_print_struct(ndr
, name
, "spoolss_ReadPrinter");
23689 if (flags
& NDR_SET_VALUES
) {
23690 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23692 if (flags
& NDR_IN
) {
23693 ndr_print_struct(ndr
, "in", "spoolss_ReadPrinter");
23695 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23697 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23699 ndr_print_uint32(ndr
, "data_size", r
->in
.data_size
);
23702 if (flags
& NDR_OUT
) {
23703 ndr_print_struct(ndr
, "out", "spoolss_ReadPrinter");
23705 ndr_print_ptr(ndr
, "data", r
->out
.data
);
23707 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_size
);
23709 ndr_print_ptr(ndr
, "_data_size", r
->out
._data_size
);
23711 ndr_print_uint32(ndr
, "_data_size", *r
->out
._data_size
);
23713 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23719 static enum ndr_err_code
ndr_push_spoolss_EndDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndDocPrinter
*r
)
23721 if (flags
& NDR_IN
) {
23722 if (r
->in
.handle
== NULL
) {
23723 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23725 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23727 if (flags
& NDR_OUT
) {
23728 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23730 return NDR_ERR_SUCCESS
;
23733 static enum ndr_err_code
ndr_pull_spoolss_EndDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndDocPrinter
*r
)
23735 TALLOC_CTX
*_mem_save_handle_0
;
23736 if (flags
& NDR_IN
) {
23737 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23738 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23740 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23741 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23742 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23743 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23745 if (flags
& NDR_OUT
) {
23746 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23748 return NDR_ERR_SUCCESS
;
23751 _PUBLIC_
void ndr_print_spoolss_EndDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndDocPrinter
*r
)
23753 ndr_print_struct(ndr
, name
, "spoolss_EndDocPrinter");
23755 if (flags
& NDR_SET_VALUES
) {
23756 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23758 if (flags
& NDR_IN
) {
23759 ndr_print_struct(ndr
, "in", "spoolss_EndDocPrinter");
23761 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23763 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23767 if (flags
& NDR_OUT
) {
23768 ndr_print_struct(ndr
, "out", "spoolss_EndDocPrinter");
23770 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23776 static enum ndr_err_code
ndr_push_spoolss_AddJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddJob
*r
)
23778 if (flags
& NDR_IN
) {
23779 if (r
->in
.handle
== NULL
) {
23780 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23782 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23783 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23784 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23785 if (r
->in
.buffer
) {
23786 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
23787 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
23789 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23791 if (flags
& NDR_OUT
) {
23792 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
23793 if (r
->out
.buffer
) {
23794 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
23795 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
23797 if (r
->out
.needed
== NULL
) {
23798 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23800 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23801 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23803 return NDR_ERR_SUCCESS
;
23806 static enum ndr_err_code
ndr_pull_spoolss_AddJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddJob
*r
)
23808 uint32_t _ptr_buffer
;
23809 uint32_t size_buffer_1
= 0;
23810 TALLOC_CTX
*_mem_save_handle_0
;
23811 TALLOC_CTX
*_mem_save_buffer_0
;
23812 TALLOC_CTX
*_mem_save_needed_0
;
23813 if (flags
& NDR_IN
) {
23814 ZERO_STRUCT(r
->out
);
23816 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23817 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23819 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23820 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23821 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23822 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23823 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23824 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23826 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23828 r
->in
.buffer
= NULL
;
23830 if (r
->in
.buffer
) {
23831 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23832 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23833 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
23834 size_buffer_1
= ndr_get_array_size(ndr
, &r
->in
.buffer
);
23835 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, size_buffer_1
);
23836 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, size_buffer_1
));
23837 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23839 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23840 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23841 ZERO_STRUCTP(r
->out
.needed
);
23842 if (r
->in
.buffer
) {
23843 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
23846 if (flags
& NDR_OUT
) {
23847 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23849 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
23851 r
->out
.buffer
= NULL
;
23853 if (r
->out
.buffer
) {
23854 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23855 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
23856 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
23857 size_buffer_1
= ndr_get_array_size(ndr
, &r
->out
.buffer
);
23858 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, size_buffer_1
);
23859 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, size_buffer_1
));
23860 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23862 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23863 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23865 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23866 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23867 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23868 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23869 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23870 if (r
->out
.buffer
) {
23871 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
23874 return NDR_ERR_SUCCESS
;
23877 _PUBLIC_
void ndr_print_spoolss_AddJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddJob
*r
)
23879 ndr_print_struct(ndr
, name
, "spoolss_AddJob");
23881 if (flags
& NDR_SET_VALUES
) {
23882 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23884 if (flags
& NDR_IN
) {
23885 ndr_print_struct(ndr
, "in", "spoolss_AddJob");
23887 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23889 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23891 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23892 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23894 if (r
->in
.buffer
) {
23895 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
23898 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23901 if (flags
& NDR_OUT
) {
23902 ndr_print_struct(ndr
, "out", "spoolss_AddJob");
23904 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
23906 if (r
->out
.buffer
) {
23907 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
23910 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23912 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23914 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23920 static enum ndr_err_code
ndr_push_spoolss_ScheduleJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_ScheduleJob
*r
)
23922 if (flags
& NDR_IN
) {
23923 if (r
->in
.handle
== NULL
) {
23924 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23926 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.jobid
));
23929 if (flags
& NDR_OUT
) {
23930 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23932 return NDR_ERR_SUCCESS
;
23935 static enum ndr_err_code
ndr_pull_spoolss_ScheduleJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_ScheduleJob
*r
)
23937 TALLOC_CTX
*_mem_save_handle_0
;
23938 if (flags
& NDR_IN
) {
23939 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23940 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23942 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23943 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23944 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23945 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23946 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.jobid
));
23948 if (flags
& NDR_OUT
) {
23949 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23951 return NDR_ERR_SUCCESS
;
23954 _PUBLIC_
void ndr_print_spoolss_ScheduleJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ScheduleJob
*r
)
23956 ndr_print_struct(ndr
, name
, "spoolss_ScheduleJob");
23958 if (flags
& NDR_SET_VALUES
) {
23959 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23961 if (flags
& NDR_IN
) {
23962 ndr_print_struct(ndr
, "in", "spoolss_ScheduleJob");
23964 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23966 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23968 ndr_print_uint32(ndr
, "jobid", r
->in
.jobid
);
23971 if (flags
& NDR_OUT
) {
23972 ndr_print_struct(ndr
, "out", "spoolss_ScheduleJob");
23974 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23980 static enum ndr_err_code
ndr_push_spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterData
*r
)
23982 if (flags
& NDR_IN
) {
23983 if (r
->in
.handle
== NULL
) {
23984 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23986 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23987 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
23988 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23989 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
23990 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
));
23991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23993 if (flags
& NDR_OUT
) {
23994 if (r
->out
.type
== NULL
) {
23995 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23997 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
23998 if (r
->out
.data
== NULL
) {
23999 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24001 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
24002 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.offered
));
24003 if (r
->out
.needed
== NULL
) {
24004 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24006 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24007 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24009 return NDR_ERR_SUCCESS
;
24012 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterData
*r
)
24014 uint32_t size_value_name_0
= 0;
24015 uint32_t length_value_name_0
= 0;
24016 uint32_t size_data_1
= 0;
24017 TALLOC_CTX
*_mem_save_handle_0
;
24018 TALLOC_CTX
*_mem_save_type_0
;
24019 TALLOC_CTX
*_mem_save_needed_0
;
24020 if (flags
& NDR_IN
) {
24021 ZERO_STRUCT(r
->out
);
24023 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24024 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24026 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24027 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24028 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24029 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24030 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
24031 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
24032 size_value_name_0
= ndr_get_array_size(ndr
, &r
->in
.value_name
);
24033 length_value_name_0
= ndr_get_array_length(ndr
, &r
->in
.value_name
);
24034 if (length_value_name_0
> size_value_name_0
) {
24035 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_value_name_0
, length_value_name_0
);
24037 NDR_CHECK(ndr_check_string_terminator(ndr
, length_value_name_0
, sizeof(uint16_t)));
24038 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, length_value_name_0
, sizeof(uint16_t), CH_UTF16
));
24039 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24040 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
24041 ZERO_STRUCTP(r
->out
.type
);
24042 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.offered
);
24043 memset(r
->out
.data
, 0, (r
->in
.offered
) * sizeof(*r
->out
.data
));
24044 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24045 ZERO_STRUCTP(r
->out
.needed
);
24047 if (flags
& NDR_OUT
) {
24048 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24049 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
24051 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24052 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
24053 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
24054 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
24055 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
24056 size_data_1
= ndr_get_array_size(ndr
, &r
->out
.data
);
24057 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24058 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, size_data_1
);
24060 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, size_data_1
));
24061 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24062 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24064 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24065 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24066 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24067 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24068 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24070 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.offered
));
24073 return NDR_ERR_SUCCESS
;
24076 _PUBLIC_
void ndr_print_spoolss_GetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterData
*r
)
24078 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterData");
24080 if (flags
& NDR_SET_VALUES
) {
24081 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24083 if (flags
& NDR_IN
) {
24084 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterData");
24086 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24088 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24090 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
24091 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24094 if (flags
& NDR_OUT
) {
24095 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterData");
24097 ndr_print_ptr(ndr
, "type", r
->out
.type
);
24099 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
24101 ndr_print_ptr(ndr
, "data", r
->out
.data
);
24103 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.offered
);
24105 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24107 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24109 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24115 static enum ndr_err_code
ndr_push_spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinterData
*r
)
24117 if (flags
& NDR_IN
) {
24118 if (r
->in
.handle
== NULL
) {
24119 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24121 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24122 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
24123 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24124 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
24125 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
));
24126 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
24127 if (r
->in
.data
== NULL
) {
24128 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24130 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
24131 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, r
->in
.offered
));
24132 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24134 if (flags
& NDR_OUT
) {
24135 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24137 return NDR_ERR_SUCCESS
;
24140 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterData
*r
)
24142 uint32_t size_value_name_0
= 0;
24143 uint32_t length_value_name_0
= 0;
24144 uint32_t size_data_1
= 0;
24145 TALLOC_CTX
*_mem_save_handle_0
;
24146 if (flags
& NDR_IN
) {
24147 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24148 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24150 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24151 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24152 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24153 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24154 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
24155 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
24156 size_value_name_0
= ndr_get_array_size(ndr
, &r
->in
.value_name
);
24157 length_value_name_0
= ndr_get_array_length(ndr
, &r
->in
.value_name
);
24158 if (length_value_name_0
> size_value_name_0
) {
24159 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_value_name_0
, length_value_name_0
);
24161 NDR_CHECK(ndr_check_string_terminator(ndr
, length_value_name_0
, sizeof(uint16_t)));
24162 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, length_value_name_0
, sizeof(uint16_t), CH_UTF16
));
24163 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
24164 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data
));
24165 size_data_1
= ndr_get_array_size(ndr
, &r
->in
.data
);
24166 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24167 NDR_PULL_ALLOC_N(ndr
, r
->in
.data
, size_data_1
);
24169 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, size_data_1
));
24170 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24172 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.data
, r
->in
.offered
));
24175 if (flags
& NDR_OUT
) {
24176 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24178 return NDR_ERR_SUCCESS
;
24181 _PUBLIC_
void ndr_print_spoolss_SetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterData
*r
)
24183 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterData");
24185 if (flags
& NDR_SET_VALUES
) {
24186 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24188 if (flags
& NDR_IN
) {
24189 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterData");
24191 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24193 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24195 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
24196 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
24197 ndr_print_ptr(ndr
, "data", r
->in
.data
);
24199 ndr_print_array_uint8(ndr
, "data", r
->in
.data
, r
->in
.offered
);
24201 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24204 if (flags
& NDR_OUT
) {
24205 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterData");
24207 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24213 static enum ndr_err_code
ndr_push_spoolss_WaitForPrinterChange(struct ndr_push
*ndr
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
24215 if (flags
& NDR_IN
) {
24217 if (flags
& NDR_OUT
) {
24218 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24220 return NDR_ERR_SUCCESS
;
24223 static enum ndr_err_code
ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull
*ndr
, int flags
, struct spoolss_WaitForPrinterChange
*r
)
24225 if (flags
& NDR_IN
) {
24227 if (flags
& NDR_OUT
) {
24228 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24230 return NDR_ERR_SUCCESS
;
24233 _PUBLIC_
void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
24235 ndr_print_struct(ndr
, name
, "spoolss_WaitForPrinterChange");
24237 if (flags
& NDR_SET_VALUES
) {
24238 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24240 if (flags
& NDR_IN
) {
24241 ndr_print_struct(ndr
, "in", "spoolss_WaitForPrinterChange");
24245 if (flags
& NDR_OUT
) {
24246 ndr_print_struct(ndr
, "out", "spoolss_WaitForPrinterChange");
24248 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24254 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ClosePrinter
*r
)
24256 if (flags
& NDR_IN
) {
24257 if (r
->in
.handle
== NULL
) {
24258 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24260 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24262 if (flags
& NDR_OUT
) {
24263 if (r
->out
.handle
== NULL
) {
24264 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24266 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24267 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24269 return NDR_ERR_SUCCESS
;
24272 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ClosePrinter
*r
)
24274 TALLOC_CTX
*_mem_save_handle_0
;
24275 if (flags
& NDR_IN
) {
24276 ZERO_STRUCT(r
->out
);
24278 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24279 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24281 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24282 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24283 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24284 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24285 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24286 *r
->out
.handle
= *r
->in
.handle
;
24288 if (flags
& NDR_OUT
) {
24289 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24290 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24292 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24293 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24294 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24295 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24296 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24298 return NDR_ERR_SUCCESS
;
24301 _PUBLIC_
void ndr_print_spoolss_ClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ClosePrinter
*r
)
24303 ndr_print_struct(ndr
, name
, "spoolss_ClosePrinter");
24305 if (flags
& NDR_SET_VALUES
) {
24306 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24308 if (flags
& NDR_IN
) {
24309 ndr_print_struct(ndr
, "in", "spoolss_ClosePrinter");
24311 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24313 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24317 if (flags
& NDR_OUT
) {
24318 ndr_print_struct(ndr
, "out", "spoolss_ClosePrinter");
24320 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
24322 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
24324 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24330 static enum ndr_err_code
ndr_push_spoolss_AddForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddForm
*r
)
24332 if (flags
& NDR_IN
) {
24333 if (r
->in
.handle
== NULL
) {
24334 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24336 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24338 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
24339 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24341 if (flags
& NDR_OUT
) {
24342 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24344 return NDR_ERR_SUCCESS
;
24347 static enum ndr_err_code
ndr_pull_spoolss_AddForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddForm
*r
)
24349 TALLOC_CTX
*_mem_save_handle_0
;
24350 if (flags
& NDR_IN
) {
24351 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24352 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24354 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24355 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24356 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24357 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24358 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24359 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
24360 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24362 if (flags
& NDR_OUT
) {
24363 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24365 return NDR_ERR_SUCCESS
;
24368 _PUBLIC_
void ndr_print_spoolss_AddForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddForm
*r
)
24370 ndr_print_struct(ndr
, name
, "spoolss_AddForm");
24372 if (flags
& NDR_SET_VALUES
) {
24373 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24375 if (flags
& NDR_IN
) {
24376 ndr_print_struct(ndr
, "in", "spoolss_AddForm");
24378 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24380 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24382 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24383 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
24384 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
24387 if (flags
& NDR_OUT
) {
24388 ndr_print_struct(ndr
, "out", "spoolss_AddForm");
24390 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24396 static enum ndr_err_code
ndr_push_spoolss_DeleteForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteForm
*r
)
24398 if (flags
& NDR_IN
) {
24399 if (r
->in
.handle
== NULL
) {
24400 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24402 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24403 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24404 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24405 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24406 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
));
24408 if (flags
& NDR_OUT
) {
24409 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24411 return NDR_ERR_SUCCESS
;
24414 static enum ndr_err_code
ndr_pull_spoolss_DeleteForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteForm
*r
)
24416 uint32_t size_form_name_0
= 0;
24417 uint32_t length_form_name_0
= 0;
24418 TALLOC_CTX
*_mem_save_handle_0
;
24419 if (flags
& NDR_IN
) {
24420 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24421 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24423 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24424 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24425 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24426 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24427 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
24428 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
24429 size_form_name_0
= ndr_get_array_size(ndr
, &r
->in
.form_name
);
24430 length_form_name_0
= ndr_get_array_length(ndr
, &r
->in
.form_name
);
24431 if (length_form_name_0
> size_form_name_0
) {
24432 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_form_name_0
, length_form_name_0
);
24434 NDR_CHECK(ndr_check_string_terminator(ndr
, length_form_name_0
, sizeof(uint16_t)));
24435 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.form_name
, length_form_name_0
, sizeof(uint16_t), CH_UTF16
));
24437 if (flags
& NDR_OUT
) {
24438 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24440 return NDR_ERR_SUCCESS
;
24443 _PUBLIC_
void ndr_print_spoolss_DeleteForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteForm
*r
)
24445 ndr_print_struct(ndr
, name
, "spoolss_DeleteForm");
24447 if (flags
& NDR_SET_VALUES
) {
24448 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24450 if (flags
& NDR_IN
) {
24451 ndr_print_struct(ndr
, "in", "spoolss_DeleteForm");
24453 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24455 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24457 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
24460 if (flags
& NDR_OUT
) {
24461 ndr_print_struct(ndr
, "out", "spoolss_DeleteForm");
24463 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24469 static enum ndr_err_code
ndr_push_spoolss_GetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetForm
*r
)
24471 if (flags
& NDR_IN
) {
24472 if (r
->in
.handle
== NULL
) {
24473 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24475 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24476 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24477 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24478 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24479 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
));
24480 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24481 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24482 if (r
->in
.buffer
) {
24483 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24485 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24487 if (flags
& NDR_OUT
) {
24488 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24491 struct ndr_push
*_ndr_info
;
24492 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
24493 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
24494 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
24495 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
24498 if (r
->out
.needed
== NULL
) {
24499 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24501 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24502 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24504 return NDR_ERR_SUCCESS
;
24507 static enum ndr_err_code
ndr_pull_spoolss_GetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetForm
*r
)
24509 uint32_t size_form_name_0
= 0;
24510 uint32_t length_form_name_0
= 0;
24511 uint32_t _ptr_buffer
;
24512 uint32_t _ptr_info
;
24513 TALLOC_CTX
*_mem_save_handle_0
;
24514 TALLOC_CTX
*_mem_save_buffer_0
;
24515 TALLOC_CTX
*_mem_save_info_0
;
24516 TALLOC_CTX
*_mem_save_needed_0
;
24517 if (flags
& NDR_IN
) {
24518 ZERO_STRUCT(r
->out
);
24520 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24521 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24523 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24524 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24525 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24526 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24527 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
24528 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
24529 size_form_name_0
= ndr_get_array_size(ndr
, &r
->in
.form_name
);
24530 length_form_name_0
= ndr_get_array_length(ndr
, &r
->in
.form_name
);
24531 if (length_form_name_0
> size_form_name_0
) {
24532 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_form_name_0
, length_form_name_0
);
24534 NDR_CHECK(ndr_check_string_terminator(ndr
, length_form_name_0
, sizeof(uint16_t)));
24535 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.form_name
, length_form_name_0
, sizeof(uint16_t), CH_UTF16
));
24536 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24537 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24539 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24541 r
->in
.buffer
= NULL
;
24543 if (r
->in
.buffer
) {
24544 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24545 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24546 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
24547 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24549 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24550 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24551 ZERO_STRUCTP(r
->out
.needed
);
24553 if (flags
& NDR_OUT
) {
24554 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24556 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24558 r
->out
.info
= NULL
;
24561 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24562 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24564 struct ndr_pull
*_ndr_info
;
24565 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
24566 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
24567 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
24568 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
24570 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24572 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24573 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24575 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24576 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24577 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24578 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24579 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24581 return NDR_ERR_SUCCESS
;
24584 _PUBLIC_
void ndr_print_spoolss_GetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetForm
*r
)
24586 ndr_print_struct(ndr
, name
, "spoolss_GetForm");
24588 if (flags
& NDR_SET_VALUES
) {
24589 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24591 if (flags
& NDR_IN
) {
24592 ndr_print_struct(ndr
, "in", "spoolss_GetForm");
24594 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24596 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24598 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
24599 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24600 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24602 if (r
->in
.buffer
) {
24603 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
24606 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24609 if (flags
& NDR_OUT
) {
24610 ndr_print_struct(ndr
, "out", "spoolss_GetForm");
24612 ndr_print_ptr(ndr
, "info", r
->out
.info
);
24615 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
24616 ndr_print_spoolss_FormInfo(ndr
, "info", r
->out
.info
);
24619 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24621 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24623 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24629 static enum ndr_err_code
ndr_push_spoolss_SetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetForm
*r
)
24631 if (flags
& NDR_IN
) {
24632 if (r
->in
.handle
== NULL
) {
24633 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24635 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24636 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24637 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24638 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24639 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
));
24640 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24641 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
24642 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24644 if (flags
& NDR_OUT
) {
24645 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24647 return NDR_ERR_SUCCESS
;
24650 static enum ndr_err_code
ndr_pull_spoolss_SetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetForm
*r
)
24652 uint32_t size_form_name_0
= 0;
24653 uint32_t length_form_name_0
= 0;
24654 TALLOC_CTX
*_mem_save_handle_0
;
24655 if (flags
& NDR_IN
) {
24656 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24657 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24659 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24660 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24661 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24662 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24663 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
24664 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
24665 size_form_name_0
= ndr_get_array_size(ndr
, &r
->in
.form_name
);
24666 length_form_name_0
= ndr_get_array_length(ndr
, &r
->in
.form_name
);
24667 if (length_form_name_0
> size_form_name_0
) {
24668 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_form_name_0
, length_form_name_0
);
24670 NDR_CHECK(ndr_check_string_terminator(ndr
, length_form_name_0
, sizeof(uint16_t)));
24671 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.form_name
, length_form_name_0
, sizeof(uint16_t), CH_UTF16
));
24672 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24673 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
24674 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24676 if (flags
& NDR_OUT
) {
24677 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24679 return NDR_ERR_SUCCESS
;
24682 _PUBLIC_
void ndr_print_spoolss_SetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetForm
*r
)
24684 ndr_print_struct(ndr
, name
, "spoolss_SetForm");
24686 if (flags
& NDR_SET_VALUES
) {
24687 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24689 if (flags
& NDR_IN
) {
24690 ndr_print_struct(ndr
, "in", "spoolss_SetForm");
24692 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24694 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24696 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
24697 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24698 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
24699 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
24702 if (flags
& NDR_OUT
) {
24703 ndr_print_struct(ndr
, "out", "spoolss_SetForm");
24705 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24711 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumForms
*r
)
24713 if (flags
& NDR_IN
) {
24714 if (r
->in
.handle
== NULL
) {
24715 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24717 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24718 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24719 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24720 if (r
->in
.buffer
) {
24721 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24723 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24725 if (flags
& NDR_OUT
) {
24726 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24728 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
24730 if (r
->out
.needed
== NULL
) {
24731 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24733 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24734 if (r
->out
.count
== NULL
) {
24735 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24737 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
24738 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24740 return NDR_ERR_SUCCESS
;
24743 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumForms
*r
)
24745 uint32_t _ptr_buffer
;
24746 uint32_t _ptr_info
;
24747 TALLOC_CTX
*_mem_save_handle_0
;
24748 TALLOC_CTX
*_mem_save_buffer_0
;
24749 TALLOC_CTX
*_mem_save_info_0
;
24750 TALLOC_CTX
*_mem_save_needed_0
;
24751 TALLOC_CTX
*_mem_save_count_0
;
24752 if (flags
& NDR_IN
) {
24753 ZERO_STRUCT(r
->out
);
24755 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24756 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24758 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24759 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24760 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24761 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24762 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24763 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24765 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24767 r
->in
.buffer
= NULL
;
24769 if (r
->in
.buffer
) {
24770 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24771 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24772 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
24773 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24775 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24776 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24777 ZERO_STRUCTP(r
->out
.needed
);
24778 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24779 ZERO_STRUCTP(r
->out
.count
);
24781 if (flags
& NDR_OUT
) {
24782 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24784 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24786 r
->out
.info
= NULL
;
24789 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24790 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24791 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
24792 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24794 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24795 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24797 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24798 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24799 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24800 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24801 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24802 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24804 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24805 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
24806 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
24807 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
24808 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24810 return NDR_ERR_SUCCESS
;
24813 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumForms
*r
)
24815 uint32_t cntr_info_0
;
24816 if (flags
& NDR_IN
) {
24817 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24818 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
24820 if (flags
& NDR_OUT
) {
24821 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24822 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24823 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24825 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24826 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24829 return NDR_ERR_SUCCESS
;
24832 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumForms
*r
)
24834 uint32_t size_info_0
= 0;
24835 uint32_t cntr_info_0
;
24836 TALLOC_CTX
*_mem_save_info_0
;
24837 if (flags
& NDR_IN
) {
24838 ZERO_STRUCT(r
->out
);
24840 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24841 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
24843 if (flags
& NDR_OUT
) {
24844 size_info_0
= r
->in
.count
;
24845 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
24846 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24847 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24848 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
24849 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24850 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24852 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
24853 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24855 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24857 return NDR_ERR_SUCCESS
;
24860 _PUBLIC_
void ndr_print_spoolss_EnumForms(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumForms
*r
)
24862 uint32_t cntr_info_2
;
24863 ndr_print_struct(ndr
, name
, "spoolss_EnumForms");
24865 if (flags
& NDR_SET_VALUES
) {
24866 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24868 if (flags
& NDR_IN
) {
24869 ndr_print_struct(ndr
, "in", "spoolss_EnumForms");
24871 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24873 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24875 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24876 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24878 if (r
->in
.buffer
) {
24879 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
24882 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24885 if (flags
& NDR_OUT
) {
24886 ndr_print_struct(ndr
, "out", "spoolss_EnumForms");
24888 ndr_print_ptr(ndr
, "count", r
->out
.count
);
24890 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
24892 ndr_print_ptr(ndr
, "info", r
->out
.info
);
24894 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
24896 if (*r
->out
.info
) {
24897 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
24899 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
24901 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
24902 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
24903 ndr_print_spoolss_FormInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
24911 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24913 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24915 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24921 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPorts
*r
)
24923 if (flags
& NDR_IN
) {
24924 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
24925 if (r
->in
.servername
) {
24926 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24927 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24928 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24929 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24931 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24932 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24933 if (r
->in
.buffer
) {
24934 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24936 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24938 if (flags
& NDR_OUT
) {
24939 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24941 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
24943 if (r
->out
.needed
== NULL
) {
24944 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24946 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24947 if (r
->out
.count
== NULL
) {
24948 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24950 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
24951 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24953 return NDR_ERR_SUCCESS
;
24956 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPorts
*r
)
24958 uint32_t _ptr_servername
;
24959 uint32_t size_servername_1
= 0;
24960 uint32_t length_servername_1
= 0;
24961 uint32_t _ptr_buffer
;
24962 uint32_t _ptr_info
;
24963 TALLOC_CTX
*_mem_save_servername_0
;
24964 TALLOC_CTX
*_mem_save_buffer_0
;
24965 TALLOC_CTX
*_mem_save_info_0
;
24966 TALLOC_CTX
*_mem_save_needed_0
;
24967 TALLOC_CTX
*_mem_save_count_0
;
24968 if (flags
& NDR_IN
) {
24969 ZERO_STRUCT(r
->out
);
24971 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
24972 if (_ptr_servername
) {
24973 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
24975 r
->in
.servername
= NULL
;
24977 if (r
->in
.servername
) {
24978 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24979 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
24980 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
24981 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
24982 size_servername_1
= ndr_get_array_size(ndr
, &r
->in
.servername
);
24983 length_servername_1
= ndr_get_array_length(ndr
, &r
->in
.servername
);
24984 if (length_servername_1
> size_servername_1
) {
24985 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
24987 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
24988 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
24989 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
24991 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24992 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24994 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24996 r
->in
.buffer
= NULL
;
24998 if (r
->in
.buffer
) {
24999 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25000 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25001 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
25002 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25004 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25005 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25006 ZERO_STRUCTP(r
->out
.needed
);
25007 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25008 ZERO_STRUCTP(r
->out
.count
);
25010 if (flags
& NDR_OUT
) {
25011 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
25013 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25015 r
->out
.info
= NULL
;
25018 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25019 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25020 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
25021 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25023 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25024 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25026 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25027 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
25028 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
25029 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25030 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25031 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25033 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25034 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
25035 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
25036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
25037 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25039 return NDR_ERR_SUCCESS
;
25042 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPorts
*r
)
25044 uint32_t cntr_info_0
;
25045 if (flags
& NDR_IN
) {
25046 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25047 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
25049 if (flags
& NDR_OUT
) {
25050 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25051 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25052 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25054 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25055 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25058 return NDR_ERR_SUCCESS
;
25061 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPorts
*r
)
25063 uint32_t size_info_0
= 0;
25064 uint32_t cntr_info_0
;
25065 TALLOC_CTX
*_mem_save_info_0
;
25066 if (flags
& NDR_IN
) {
25067 ZERO_STRUCT(r
->out
);
25069 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25070 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
25072 if (flags
& NDR_OUT
) {
25073 size_info_0
= r
->in
.count
;
25074 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
25075 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25076 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25077 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
25078 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25079 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25081 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
25082 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25084 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25086 return NDR_ERR_SUCCESS
;
25089 _PUBLIC_
void ndr_print_spoolss_EnumPorts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPorts
*r
)
25091 uint32_t cntr_info_2
;
25092 ndr_print_struct(ndr
, name
, "spoolss_EnumPorts");
25094 if (flags
& NDR_SET_VALUES
) {
25095 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25097 if (flags
& NDR_IN
) {
25098 ndr_print_struct(ndr
, "in", "spoolss_EnumPorts");
25100 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
25102 if (r
->in
.servername
) {
25103 ndr_print_string(ndr
, "servername", r
->in
.servername
);
25106 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25107 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25109 if (r
->in
.buffer
) {
25110 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
25113 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25116 if (flags
& NDR_OUT
) {
25117 ndr_print_struct(ndr
, "out", "spoolss_EnumPorts");
25119 ndr_print_ptr(ndr
, "count", r
->out
.count
);
25121 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
25123 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25125 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
25127 if (*r
->out
.info
) {
25128 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
25130 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
25132 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
25133 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
25134 ndr_print_spoolss_PortInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
25142 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25144 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25146 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25152 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumMonitors
*r
)
25154 if (flags
& NDR_IN
) {
25155 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
25156 if (r
->in
.servername
) {
25157 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
25158 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25159 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
25160 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25163 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25164 if (r
->in
.buffer
) {
25165 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
25167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25169 if (flags
& NDR_OUT
) {
25170 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
25172 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
25174 if (r
->out
.needed
== NULL
) {
25175 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25177 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
25178 if (r
->out
.count
== NULL
) {
25179 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25181 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
25182 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25184 return NDR_ERR_SUCCESS
;
25187 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumMonitors
*r
)
25189 uint32_t _ptr_servername
;
25190 uint32_t size_servername_1
= 0;
25191 uint32_t length_servername_1
= 0;
25192 uint32_t _ptr_buffer
;
25193 uint32_t _ptr_info
;
25194 TALLOC_CTX
*_mem_save_servername_0
;
25195 TALLOC_CTX
*_mem_save_buffer_0
;
25196 TALLOC_CTX
*_mem_save_info_0
;
25197 TALLOC_CTX
*_mem_save_needed_0
;
25198 TALLOC_CTX
*_mem_save_count_0
;
25199 if (flags
& NDR_IN
) {
25200 ZERO_STRUCT(r
->out
);
25202 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
25203 if (_ptr_servername
) {
25204 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
25206 r
->in
.servername
= NULL
;
25208 if (r
->in
.servername
) {
25209 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25210 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
25211 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
25212 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
25213 size_servername_1
= ndr_get_array_size(ndr
, &r
->in
.servername
);
25214 length_servername_1
= ndr_get_array_length(ndr
, &r
->in
.servername
);
25215 if (length_servername_1
> size_servername_1
) {
25216 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
25218 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
25219 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
25220 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
25222 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25223 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25225 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25227 r
->in
.buffer
= NULL
;
25229 if (r
->in
.buffer
) {
25230 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25231 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25232 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
25233 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25235 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25236 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25237 ZERO_STRUCTP(r
->out
.needed
);
25238 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25239 ZERO_STRUCTP(r
->out
.count
);
25241 if (flags
& NDR_OUT
) {
25242 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
25244 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25246 r
->out
.info
= NULL
;
25249 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25250 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25251 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
25252 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25254 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25255 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25257 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25258 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
25259 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
25260 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25261 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25262 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25264 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25265 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
25266 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
25267 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
25268 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25270 return NDR_ERR_SUCCESS
;
25273 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumMonitors
*r
)
25275 uint32_t cntr_info_0
;
25276 if (flags
& NDR_IN
) {
25277 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25278 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
25280 if (flags
& NDR_OUT
) {
25281 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25282 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25283 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25285 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25286 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25289 return NDR_ERR_SUCCESS
;
25292 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumMonitors
*r
)
25294 uint32_t size_info_0
= 0;
25295 uint32_t cntr_info_0
;
25296 TALLOC_CTX
*_mem_save_info_0
;
25297 if (flags
& NDR_IN
) {
25298 ZERO_STRUCT(r
->out
);
25300 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25301 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
25303 if (flags
& NDR_OUT
) {
25304 size_info_0
= r
->in
.count
;
25305 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
25306 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25307 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25308 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
25309 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25310 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25312 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
25313 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25315 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25317 return NDR_ERR_SUCCESS
;
25320 _PUBLIC_
void ndr_print_spoolss_EnumMonitors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumMonitors
*r
)
25322 uint32_t cntr_info_2
;
25323 ndr_print_struct(ndr
, name
, "spoolss_EnumMonitors");
25325 if (flags
& NDR_SET_VALUES
) {
25326 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25328 if (flags
& NDR_IN
) {
25329 ndr_print_struct(ndr
, "in", "spoolss_EnumMonitors");
25331 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
25333 if (r
->in
.servername
) {
25334 ndr_print_string(ndr
, "servername", r
->in
.servername
);
25337 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25338 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25340 if (r
->in
.buffer
) {
25341 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
25344 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25347 if (flags
& NDR_OUT
) {
25348 ndr_print_struct(ndr
, "out", "spoolss_EnumMonitors");
25350 ndr_print_ptr(ndr
, "count", r
->out
.count
);
25352 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
25354 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25356 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
25358 if (*r
->out
.info
) {
25359 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
25361 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
25363 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
25364 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
25365 ndr_print_spoolss_MonitorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
25373 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25375 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25377 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25383 static enum ndr_err_code
ndr_push_spoolss_AddPort(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPort
*r
)
25385 if (flags
& NDR_IN
) {
25386 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
25387 if (r
->in
.server_name
) {
25388 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
25389 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25390 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
25391 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
));
25393 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
25394 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
25395 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25396 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
25397 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
));
25399 if (flags
& NDR_OUT
) {
25400 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25402 return NDR_ERR_SUCCESS
;
25405 static enum ndr_err_code
ndr_pull_spoolss_AddPort(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPort
*r
)
25407 uint32_t _ptr_server_name
;
25408 uint32_t size_server_name_1
= 0;
25409 uint32_t length_server_name_1
= 0;
25410 uint32_t size_monitor_name_0
= 0;
25411 uint32_t length_monitor_name_0
= 0;
25412 TALLOC_CTX
*_mem_save_server_name_0
;
25413 if (flags
& NDR_IN
) {
25414 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
25415 if (_ptr_server_name
) {
25416 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
25418 r
->in
.server_name
= NULL
;
25420 if (r
->in
.server_name
) {
25421 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25422 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
25423 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
25424 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
25425 size_server_name_1
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
25426 length_server_name_1
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
25427 if (length_server_name_1
> size_server_name_1
) {
25428 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_1
, length_server_name_1
);
25430 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_1
, sizeof(uint16_t)));
25431 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_1
, sizeof(uint16_t), CH_UTF16
));
25432 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
25434 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
25435 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.monitor_name
));
25436 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.monitor_name
));
25437 size_monitor_name_0
= ndr_get_array_size(ndr
, &r
->in
.monitor_name
);
25438 length_monitor_name_0
= ndr_get_array_length(ndr
, &r
->in
.monitor_name
);
25439 if (length_monitor_name_0
> size_monitor_name_0
) {
25440 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_monitor_name_0
, length_monitor_name_0
);
25442 NDR_CHECK(ndr_check_string_terminator(ndr
, length_monitor_name_0
, sizeof(uint16_t)));
25443 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.monitor_name
, length_monitor_name_0
, sizeof(uint16_t), CH_UTF16
));
25445 if (flags
& NDR_OUT
) {
25446 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25448 return NDR_ERR_SUCCESS
;
25451 _PUBLIC_
void ndr_print_spoolss_AddPort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPort
*r
)
25453 ndr_print_struct(ndr
, name
, "spoolss_AddPort");
25455 if (flags
& NDR_SET_VALUES
) {
25456 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25458 if (flags
& NDR_IN
) {
25459 ndr_print_struct(ndr
, "in", "spoolss_AddPort");
25461 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
25463 if (r
->in
.server_name
) {
25464 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
25467 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
25468 ndr_print_string(ndr
, "monitor_name", r
->in
.monitor_name
);
25471 if (flags
& NDR_OUT
) {
25472 ndr_print_struct(ndr
, "out", "spoolss_AddPort");
25474 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25480 static enum ndr_err_code
ndr_push_spoolss_ConfigurePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_ConfigurePort
*r
)
25482 if (flags
& NDR_IN
) {
25484 if (flags
& NDR_OUT
) {
25485 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25487 return NDR_ERR_SUCCESS
;
25490 static enum ndr_err_code
ndr_pull_spoolss_ConfigurePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_ConfigurePort
*r
)
25492 if (flags
& NDR_IN
) {
25494 if (flags
& NDR_OUT
) {
25495 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25497 return NDR_ERR_SUCCESS
;
25500 _PUBLIC_
void ndr_print_spoolss_ConfigurePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ConfigurePort
*r
)
25502 ndr_print_struct(ndr
, name
, "spoolss_ConfigurePort");
25504 if (flags
& NDR_SET_VALUES
) {
25505 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25507 if (flags
& NDR_IN
) {
25508 ndr_print_struct(ndr
, "in", "spoolss_ConfigurePort");
25512 if (flags
& NDR_OUT
) {
25513 ndr_print_struct(ndr
, "out", "spoolss_ConfigurePort");
25515 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25521 static enum ndr_err_code
ndr_push_spoolss_DeletePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePort
*r
)
25523 if (flags
& NDR_IN
) {
25525 if (flags
& NDR_OUT
) {
25526 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25528 return NDR_ERR_SUCCESS
;
25531 static enum ndr_err_code
ndr_pull_spoolss_DeletePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePort
*r
)
25533 if (flags
& NDR_IN
) {
25535 if (flags
& NDR_OUT
) {
25536 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25538 return NDR_ERR_SUCCESS
;
25541 _PUBLIC_
void ndr_print_spoolss_DeletePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePort
*r
)
25543 ndr_print_struct(ndr
, name
, "spoolss_DeletePort");
25545 if (flags
& NDR_SET_VALUES
) {
25546 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25548 if (flags
& NDR_IN
) {
25549 ndr_print_struct(ndr
, "in", "spoolss_DeletePort");
25553 if (flags
& NDR_OUT
) {
25554 ndr_print_struct(ndr
, "out", "spoolss_DeletePort");
25556 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25562 static enum ndr_err_code
ndr_push_spoolss_CreatePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
25564 if (flags
& NDR_IN
) {
25565 if (r
->in
.handle
== NULL
) {
25566 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25568 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25569 if (r
->in
.devmode_ctr
== NULL
) {
25570 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25572 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25574 if (flags
& NDR_OUT
) {
25575 if (r
->out
.gdi_handle
== NULL
) {
25576 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25578 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
25579 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25581 return NDR_ERR_SUCCESS
;
25584 static enum ndr_err_code
ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_CreatePrinterIC
*r
)
25586 TALLOC_CTX
*_mem_save_handle_0
;
25587 TALLOC_CTX
*_mem_save_gdi_handle_0
;
25588 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
25589 if (flags
& NDR_IN
) {
25590 ZERO_STRUCT(r
->out
);
25592 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25593 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25595 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25596 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25597 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25598 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25599 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25600 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
25602 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25603 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25604 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25605 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25606 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
25607 ZERO_STRUCTP(r
->out
.gdi_handle
);
25609 if (flags
& NDR_OUT
) {
25610 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25611 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
25613 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25614 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
25615 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
25616 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25617 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25619 return NDR_ERR_SUCCESS
;
25622 _PUBLIC_
void ndr_print_spoolss_CreatePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
25624 ndr_print_struct(ndr
, name
, "spoolss_CreatePrinterIC");
25626 if (flags
& NDR_SET_VALUES
) {
25627 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25629 if (flags
& NDR_IN
) {
25630 ndr_print_struct(ndr
, "in", "spoolss_CreatePrinterIC");
25632 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25634 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25636 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25638 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25642 if (flags
& NDR_OUT
) {
25643 ndr_print_struct(ndr
, "out", "spoolss_CreatePrinterIC");
25645 ndr_print_ptr(ndr
, "gdi_handle", r
->out
.gdi_handle
);
25647 ndr_print_policy_handle(ndr
, "gdi_handle", r
->out
.gdi_handle
);
25649 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25655 static enum ndr_err_code
ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
25657 if (flags
& NDR_IN
) {
25659 if (flags
& NDR_OUT
) {
25660 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25662 return NDR_ERR_SUCCESS
;
25665 static enum ndr_err_code
ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
25667 if (flags
& NDR_IN
) {
25669 if (flags
& NDR_OUT
) {
25670 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25672 return NDR_ERR_SUCCESS
;
25675 _PUBLIC_
void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
25677 ndr_print_struct(ndr
, name
, "spoolss_PlayGDIScriptOnPrinterIC");
25679 if (flags
& NDR_SET_VALUES
) {
25680 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25682 if (flags
& NDR_IN
) {
25683 ndr_print_struct(ndr
, "in", "spoolss_PlayGDIScriptOnPrinterIC");
25687 if (flags
& NDR_OUT
) {
25688 ndr_print_struct(ndr
, "out", "spoolss_PlayGDIScriptOnPrinterIC");
25690 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25696 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
25698 if (flags
& NDR_IN
) {
25699 if (r
->in
.gdi_handle
== NULL
) {
25700 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25702 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.gdi_handle
));
25704 if (flags
& NDR_OUT
) {
25705 if (r
->out
.gdi_handle
== NULL
) {
25706 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25708 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
25709 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25711 return NDR_ERR_SUCCESS
;
25714 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterIC
*r
)
25716 TALLOC_CTX
*_mem_save_gdi_handle_0
;
25717 if (flags
& NDR_IN
) {
25718 ZERO_STRUCT(r
->out
);
25720 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25721 NDR_PULL_ALLOC(ndr
, r
->in
.gdi_handle
);
25723 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25724 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
25725 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.gdi_handle
));
25726 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25727 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
25728 *r
->out
.gdi_handle
= *r
->in
.gdi_handle
;
25730 if (flags
& NDR_OUT
) {
25731 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25732 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
25734 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25735 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
25736 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
25737 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25738 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25740 return NDR_ERR_SUCCESS
;
25743 _PUBLIC_
void ndr_print_spoolss_DeletePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
25745 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterIC");
25747 if (flags
& NDR_SET_VALUES
) {
25748 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25750 if (flags
& NDR_IN
) {
25751 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterIC");
25753 ndr_print_ptr(ndr
, "gdi_handle", r
->in
.gdi_handle
);
25755 ndr_print_policy_handle(ndr
, "gdi_handle", r
->in
.gdi_handle
);
25759 if (flags
& NDR_OUT
) {
25760 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterIC");
25762 ndr_print_ptr(ndr
, "gdi_handle", r
->out
.gdi_handle
);
25764 ndr_print_policy_handle(ndr
, "gdi_handle", r
->out
.gdi_handle
);
25766 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25772 static enum ndr_err_code
ndr_push_spoolss_AddPrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
25774 if (flags
& NDR_IN
) {
25776 if (flags
& NDR_OUT
) {
25777 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25779 return NDR_ERR_SUCCESS
;
25782 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterConnection
*r
)
25784 if (flags
& NDR_IN
) {
25786 if (flags
& NDR_OUT
) {
25787 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25789 return NDR_ERR_SUCCESS
;
25792 _PUBLIC_
void ndr_print_spoolss_AddPrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
25794 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterConnection");
25796 if (flags
& NDR_SET_VALUES
) {
25797 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25799 if (flags
& NDR_IN
) {
25800 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterConnection");
25804 if (flags
& NDR_OUT
) {
25805 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterConnection");
25807 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25813 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
25815 if (flags
& NDR_IN
) {
25817 if (flags
& NDR_OUT
) {
25818 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25820 return NDR_ERR_SUCCESS
;
25823 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterConnection
*r
)
25825 if (flags
& NDR_IN
) {
25827 if (flags
& NDR_OUT
) {
25828 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25830 return NDR_ERR_SUCCESS
;
25833 _PUBLIC_
void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
25835 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterConnection");
25837 if (flags
& NDR_SET_VALUES
) {
25838 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25840 if (flags
& NDR_IN
) {
25841 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterConnection");
25845 if (flags
& NDR_OUT
) {
25846 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterConnection");
25848 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25854 static enum ndr_err_code
ndr_push_spoolss_PrinterMessageBox(struct ndr_push
*ndr
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
25856 if (flags
& NDR_IN
) {
25858 if (flags
& NDR_OUT
) {
25859 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25861 return NDR_ERR_SUCCESS
;
25864 static enum ndr_err_code
ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull
*ndr
, int flags
, struct spoolss_PrinterMessageBox
*r
)
25866 if (flags
& NDR_IN
) {
25868 if (flags
& NDR_OUT
) {
25869 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25871 return NDR_ERR_SUCCESS
;
25874 _PUBLIC_
void ndr_print_spoolss_PrinterMessageBox(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
25876 ndr_print_struct(ndr
, name
, "spoolss_PrinterMessageBox");
25878 if (flags
& NDR_SET_VALUES
) {
25879 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25881 if (flags
& NDR_IN
) {
25882 ndr_print_struct(ndr
, "in", "spoolss_PrinterMessageBox");
25886 if (flags
& NDR_OUT
) {
25887 ndr_print_struct(ndr
, "out", "spoolss_PrinterMessageBox");
25889 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25895 static enum ndr_err_code
ndr_push_spoolss_AddMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddMonitor
*r
)
25897 if (flags
& NDR_IN
) {
25899 if (flags
& NDR_OUT
) {
25900 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25902 return NDR_ERR_SUCCESS
;
25905 static enum ndr_err_code
ndr_pull_spoolss_AddMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddMonitor
*r
)
25907 if (flags
& NDR_IN
) {
25909 if (flags
& NDR_OUT
) {
25910 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25912 return NDR_ERR_SUCCESS
;
25915 _PUBLIC_
void ndr_print_spoolss_AddMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddMonitor
*r
)
25917 ndr_print_struct(ndr
, name
, "spoolss_AddMonitor");
25919 if (flags
& NDR_SET_VALUES
) {
25920 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25922 if (flags
& NDR_IN
) {
25923 ndr_print_struct(ndr
, "in", "spoolss_AddMonitor");
25927 if (flags
& NDR_OUT
) {
25928 ndr_print_struct(ndr
, "out", "spoolss_AddMonitor");
25930 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25936 static enum ndr_err_code
ndr_push_spoolss_DeleteMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteMonitor
*r
)
25938 if (flags
& NDR_IN
) {
25940 if (flags
& NDR_OUT
) {
25941 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25943 return NDR_ERR_SUCCESS
;
25946 static enum ndr_err_code
ndr_pull_spoolss_DeleteMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteMonitor
*r
)
25948 if (flags
& NDR_IN
) {
25950 if (flags
& NDR_OUT
) {
25951 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25953 return NDR_ERR_SUCCESS
;
25956 _PUBLIC_
void ndr_print_spoolss_DeleteMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteMonitor
*r
)
25958 ndr_print_struct(ndr
, name
, "spoolss_DeleteMonitor");
25960 if (flags
& NDR_SET_VALUES
) {
25961 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25963 if (flags
& NDR_IN
) {
25964 ndr_print_struct(ndr
, "in", "spoolss_DeleteMonitor");
25968 if (flags
& NDR_OUT
) {
25969 ndr_print_struct(ndr
, "out", "spoolss_DeleteMonitor");
25971 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25977 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
25979 if (flags
& NDR_IN
) {
25981 if (flags
& NDR_OUT
) {
25982 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25984 return NDR_ERR_SUCCESS
;
25987 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProcessor
*r
)
25989 if (flags
& NDR_IN
) {
25991 if (flags
& NDR_OUT
) {
25992 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25994 return NDR_ERR_SUCCESS
;
25997 _PUBLIC_
void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
25999 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProcessor");
26001 if (flags
& NDR_SET_VALUES
) {
26002 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26004 if (flags
& NDR_IN
) {
26005 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProcessor");
26009 if (flags
& NDR_OUT
) {
26010 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProcessor");
26012 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26018 static enum ndr_err_code
ndr_push_spoolss_AddPrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
26020 if (flags
& NDR_IN
) {
26022 if (flags
& NDR_OUT
) {
26023 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26025 return NDR_ERR_SUCCESS
;
26028 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProvidor
*r
)
26030 if (flags
& NDR_IN
) {
26032 if (flags
& NDR_OUT
) {
26033 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26035 return NDR_ERR_SUCCESS
;
26038 _PUBLIC_
void ndr_print_spoolss_AddPrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
26040 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProvidor");
26042 if (flags
& NDR_SET_VALUES
) {
26043 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26045 if (flags
& NDR_IN
) {
26046 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProvidor");
26050 if (flags
& NDR_OUT
) {
26051 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProvidor");
26053 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26059 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
26061 if (flags
& NDR_IN
) {
26063 if (flags
& NDR_OUT
) {
26064 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26066 return NDR_ERR_SUCCESS
;
26069 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProvidor
*r
)
26071 if (flags
& NDR_IN
) {
26073 if (flags
& NDR_OUT
) {
26074 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26076 return NDR_ERR_SUCCESS
;
26079 _PUBLIC_
void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
26081 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProvidor");
26083 if (flags
& NDR_SET_VALUES
) {
26084 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26086 if (flags
& NDR_IN
) {
26087 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProvidor");
26091 if (flags
& NDR_OUT
) {
26092 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProvidor");
26094 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26100 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcDataTypes
*r
)
26102 if (flags
& NDR_IN
) {
26103 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
26104 if (r
->in
.servername
) {
26105 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
26106 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26107 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
26108 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26110 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.print_processor_name
));
26111 if (r
->in
.print_processor_name
) {
26112 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
26113 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26114 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
26115 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
));
26117 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
26118 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
26119 if (r
->in
.buffer
) {
26120 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
26122 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26124 if (flags
& NDR_OUT
) {
26125 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
26127 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
26129 if (r
->out
.needed
== NULL
) {
26130 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26132 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26133 if (r
->out
.count
== NULL
) {
26134 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26136 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
26137 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26139 return NDR_ERR_SUCCESS
;
26142 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcDataTypes
*r
)
26144 uint32_t _ptr_servername
;
26145 uint32_t size_servername_1
= 0;
26146 uint32_t length_servername_1
= 0;
26147 uint32_t _ptr_print_processor_name
;
26148 uint32_t size_print_processor_name_1
= 0;
26149 uint32_t length_print_processor_name_1
= 0;
26150 uint32_t _ptr_buffer
;
26151 uint32_t _ptr_info
;
26152 TALLOC_CTX
*_mem_save_servername_0
;
26153 TALLOC_CTX
*_mem_save_print_processor_name_0
;
26154 TALLOC_CTX
*_mem_save_buffer_0
;
26155 TALLOC_CTX
*_mem_save_info_0
;
26156 TALLOC_CTX
*_mem_save_needed_0
;
26157 TALLOC_CTX
*_mem_save_count_0
;
26158 if (flags
& NDR_IN
) {
26159 ZERO_STRUCT(r
->out
);
26161 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
26162 if (_ptr_servername
) {
26163 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
26165 r
->in
.servername
= NULL
;
26167 if (r
->in
.servername
) {
26168 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26169 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
26170 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
26171 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
26172 size_servername_1
= ndr_get_array_size(ndr
, &r
->in
.servername
);
26173 length_servername_1
= ndr_get_array_length(ndr
, &r
->in
.servername
);
26174 if (length_servername_1
> size_servername_1
) {
26175 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
26177 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
26178 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
26179 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
26181 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
26182 if (_ptr_print_processor_name
) {
26183 NDR_PULL_ALLOC(ndr
, r
->in
.print_processor_name
);
26185 r
->in
.print_processor_name
= NULL
;
26187 if (r
->in
.print_processor_name
) {
26188 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26189 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.print_processor_name
, 0);
26190 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
26191 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
26192 size_print_processor_name_1
= ndr_get_array_size(ndr
, &r
->in
.print_processor_name
);
26193 length_print_processor_name_1
= ndr_get_array_length(ndr
, &r
->in
.print_processor_name
);
26194 if (length_print_processor_name_1
> size_print_processor_name_1
) {
26195 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_print_processor_name_1
, length_print_processor_name_1
);
26197 NDR_CHECK(ndr_check_string_terminator(ndr
, length_print_processor_name_1
, sizeof(uint16_t)));
26198 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.print_processor_name
, length_print_processor_name_1
, sizeof(uint16_t), CH_UTF16
));
26199 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
26201 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
26202 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
26204 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
26206 r
->in
.buffer
= NULL
;
26208 if (r
->in
.buffer
) {
26209 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26210 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
26211 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
26212 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
26214 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
26215 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26216 ZERO_STRUCTP(r
->out
.needed
);
26217 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
26218 ZERO_STRUCTP(r
->out
.count
);
26220 if (flags
& NDR_OUT
) {
26221 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
26223 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
26225 r
->out
.info
= NULL
;
26228 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26229 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
26230 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
26231 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
26233 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26234 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26236 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26237 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26238 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26239 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26240 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26241 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
26243 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26244 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
26245 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
26246 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
26247 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26249 return NDR_ERR_SUCCESS
;
26252 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcDataTypes
*r
)
26254 uint32_t cntr_info_0
;
26255 if (flags
& NDR_IN
) {
26256 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
26257 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
26259 if (flags
& NDR_OUT
) {
26260 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
26261 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
26262 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
26264 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
26265 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
26268 return NDR_ERR_SUCCESS
;
26271 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcDataTypes
*r
)
26273 uint32_t size_info_0
= 0;
26274 uint32_t cntr_info_0
;
26275 TALLOC_CTX
*_mem_save_info_0
;
26276 if (flags
& NDR_IN
) {
26277 ZERO_STRUCT(r
->out
);
26279 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
26280 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
26282 if (flags
& NDR_OUT
) {
26283 size_info_0
= r
->in
.count
;
26284 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
26285 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26286 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
26287 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
26288 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
26289 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
26291 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
26292 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
26294 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
26296 return NDR_ERR_SUCCESS
;
26299 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcDataTypes
*r
)
26301 uint32_t cntr_info_2
;
26302 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcDataTypes");
26304 if (flags
& NDR_SET_VALUES
) {
26305 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26307 if (flags
& NDR_IN
) {
26308 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcDataTypes");
26310 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
26312 if (r
->in
.servername
) {
26313 ndr_print_string(ndr
, "servername", r
->in
.servername
);
26316 ndr_print_ptr(ndr
, "print_processor_name", r
->in
.print_processor_name
);
26318 if (r
->in
.print_processor_name
) {
26319 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
26322 ndr_print_uint32(ndr
, "level", r
->in
.level
);
26323 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
26325 if (r
->in
.buffer
) {
26326 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
26329 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
26332 if (flags
& NDR_OUT
) {
26333 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcDataTypes");
26335 ndr_print_ptr(ndr
, "count", r
->out
.count
);
26337 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
26339 ndr_print_ptr(ndr
, "info", r
->out
.info
);
26341 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
26343 if (*r
->out
.info
) {
26344 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
26346 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
26348 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
26349 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
26350 ndr_print_spoolss_PrintProcDataTypesInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
26358 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26360 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26362 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26368 static enum ndr_err_code
ndr_push_spoolss_ResetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinter
*r
)
26370 if (flags
& NDR_IN
) {
26371 if (r
->in
.handle
== NULL
) {
26372 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26374 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26375 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_type
));
26376 if (r
->in
.data_type
) {
26377 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
26378 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26379 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
26380 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
));
26382 if (r
->in
.devmode_ctr
== NULL
) {
26383 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26385 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
26387 if (flags
& NDR_OUT
) {
26388 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26390 return NDR_ERR_SUCCESS
;
26393 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinter
*r
)
26395 uint32_t _ptr_data_type
;
26396 uint32_t size_data_type_1
= 0;
26397 uint32_t length_data_type_1
= 0;
26398 TALLOC_CTX
*_mem_save_handle_0
;
26399 TALLOC_CTX
*_mem_save_data_type_0
;
26400 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
26401 if (flags
& NDR_IN
) {
26402 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26403 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26405 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26406 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26407 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26408 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26409 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
26410 if (_ptr_data_type
) {
26411 NDR_PULL_ALLOC(ndr
, r
->in
.data_type
);
26413 r
->in
.data_type
= NULL
;
26415 if (r
->in
.data_type
) {
26416 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26417 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_type
, 0);
26418 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data_type
));
26419 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data_type
));
26420 size_data_type_1
= ndr_get_array_size(ndr
, &r
->in
.data_type
);
26421 length_data_type_1
= ndr_get_array_length(ndr
, &r
->in
.data_type
);
26422 if (length_data_type_1
> size_data_type_1
) {
26423 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_data_type_1
, length_data_type_1
);
26425 NDR_CHECK(ndr_check_string_terminator(ndr
, length_data_type_1
, sizeof(uint16_t)));
26426 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.data_type
, length_data_type_1
, sizeof(uint16_t), CH_UTF16
));
26427 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
26429 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26430 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
26432 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26433 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26434 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
26435 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26437 if (flags
& NDR_OUT
) {
26438 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26440 return NDR_ERR_SUCCESS
;
26443 _PUBLIC_
void ndr_print_spoolss_ResetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinter
*r
)
26445 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinter");
26447 if (flags
& NDR_SET_VALUES
) {
26448 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26450 if (flags
& NDR_IN
) {
26451 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinter");
26453 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26455 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26457 ndr_print_ptr(ndr
, "data_type", r
->in
.data_type
);
26459 if (r
->in
.data_type
) {
26460 ndr_print_string(ndr
, "data_type", r
->in
.data_type
);
26463 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
26465 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
26469 if (flags
& NDR_OUT
) {
26470 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinter");
26472 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26478 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver2(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
26480 if (flags
& NDR_IN
) {
26481 if (r
->in
.handle
== NULL
) {
26482 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26484 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26485 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
26486 if (r
->in
.architecture
) {
26487 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
26488 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26489 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
26490 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26492 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
26493 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
26494 if (r
->in
.buffer
) {
26495 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
26497 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26498 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_major_version
));
26499 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_minor_version
));
26501 if (flags
& NDR_OUT
) {
26502 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
26505 struct ndr_push
*_ndr_info
;
26506 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
26507 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
26508 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
26509 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
26512 if (r
->out
.needed
== NULL
) {
26513 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26516 if (r
->out
.server_major_version
== NULL
) {
26517 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26519 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_major_version
));
26520 if (r
->out
.server_minor_version
== NULL
) {
26521 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26523 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_minor_version
));
26524 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26526 return NDR_ERR_SUCCESS
;
26529 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver2
*r
)
26531 uint32_t _ptr_architecture
;
26532 uint32_t size_architecture_1
= 0;
26533 uint32_t length_architecture_1
= 0;
26534 uint32_t _ptr_buffer
;
26535 uint32_t _ptr_info
;
26536 TALLOC_CTX
*_mem_save_handle_0
;
26537 TALLOC_CTX
*_mem_save_architecture_0
;
26538 TALLOC_CTX
*_mem_save_buffer_0
;
26539 TALLOC_CTX
*_mem_save_info_0
;
26540 TALLOC_CTX
*_mem_save_needed_0
;
26541 TALLOC_CTX
*_mem_save_server_major_version_0
;
26542 TALLOC_CTX
*_mem_save_server_minor_version_0
;
26543 if (flags
& NDR_IN
) {
26544 ZERO_STRUCT(r
->out
);
26546 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26547 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26549 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26550 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26551 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26552 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26553 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
26554 if (_ptr_architecture
) {
26555 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
26557 r
->in
.architecture
= NULL
;
26559 if (r
->in
.architecture
) {
26560 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26561 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
26562 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
26563 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
26564 size_architecture_1
= ndr_get_array_size(ndr
, &r
->in
.architecture
);
26565 length_architecture_1
= ndr_get_array_length(ndr
, &r
->in
.architecture
);
26566 if (length_architecture_1
> size_architecture_1
) {
26567 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_1
, length_architecture_1
);
26569 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_1
, sizeof(uint16_t)));
26570 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, length_architecture_1
, sizeof(uint16_t), CH_UTF16
));
26571 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
26573 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
26574 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
26576 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
26578 r
->in
.buffer
= NULL
;
26580 if (r
->in
.buffer
) {
26581 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26582 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
26583 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
26584 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
26586 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
26587 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_major_version
));
26588 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_minor_version
));
26589 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26590 ZERO_STRUCTP(r
->out
.needed
);
26591 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
26592 ZERO_STRUCTP(r
->out
.server_major_version
);
26593 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
26594 ZERO_STRUCTP(r
->out
.server_minor_version
);
26596 if (flags
& NDR_OUT
) {
26597 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
26599 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
26601 r
->out
.info
= NULL
;
26604 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26605 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
26607 struct ndr_pull
*_ndr_info
;
26608 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
26609 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
26610 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
26611 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
26613 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
26615 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26616 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26618 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26619 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26620 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26621 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26622 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26623 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
26625 _mem_save_server_major_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26626 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_major_version
, LIBNDR_FLAG_REF_ALLOC
);
26627 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_major_version
));
26628 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_major_version_0
, LIBNDR_FLAG_REF_ALLOC
);
26629 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26630 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
26632 _mem_save_server_minor_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26633 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_minor_version
, LIBNDR_FLAG_REF_ALLOC
);
26634 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_minor_version
));
26635 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_minor_version_0
, LIBNDR_FLAG_REF_ALLOC
);
26636 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26638 return NDR_ERR_SUCCESS
;
26641 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
26643 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver2");
26645 if (flags
& NDR_SET_VALUES
) {
26646 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26648 if (flags
& NDR_IN
) {
26649 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver2");
26651 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26653 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26655 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
26657 if (r
->in
.architecture
) {
26658 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
26661 ndr_print_uint32(ndr
, "level", r
->in
.level
);
26662 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
26664 if (r
->in
.buffer
) {
26665 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
26668 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
26669 ndr_print_uint32(ndr
, "client_major_version", r
->in
.client_major_version
);
26670 ndr_print_uint32(ndr
, "client_minor_version", r
->in
.client_minor_version
);
26673 if (flags
& NDR_OUT
) {
26674 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver2");
26676 ndr_print_ptr(ndr
, "info", r
->out
.info
);
26679 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
26680 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
26683 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26685 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26687 ndr_print_ptr(ndr
, "server_major_version", r
->out
.server_major_version
);
26689 ndr_print_uint32(ndr
, "server_major_version", *r
->out
.server_major_version
);
26691 ndr_print_ptr(ndr
, "server_minor_version", r
->out
.server_minor_version
);
26693 ndr_print_uint32(ndr
, "server_minor_version", *r
->out
.server_minor_version
);
26695 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26701 static enum ndr_err_code
ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
26703 if (flags
& NDR_IN
) {
26705 if (flags
& NDR_OUT
) {
26706 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26708 return NDR_ERR_SUCCESS
;
26711 static enum ndr_err_code
ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindFirstPrinterChangeNotification
*r
)
26713 if (flags
& NDR_IN
) {
26715 if (flags
& NDR_OUT
) {
26716 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26718 return NDR_ERR_SUCCESS
;
26721 _PUBLIC_
void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
26723 ndr_print_struct(ndr
, name
, "spoolss_FindFirstPrinterChangeNotification");
26725 if (flags
& NDR_SET_VALUES
) {
26726 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26728 if (flags
& NDR_IN
) {
26729 ndr_print_struct(ndr
, "in", "spoolss_FindFirstPrinterChangeNotification");
26733 if (flags
& NDR_OUT
) {
26734 ndr_print_struct(ndr
, "out", "spoolss_FindFirstPrinterChangeNotification");
26736 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26742 static enum ndr_err_code
ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
26744 if (flags
& NDR_IN
) {
26746 if (flags
& NDR_OUT
) {
26747 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26749 return NDR_ERR_SUCCESS
;
26752 static enum ndr_err_code
ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindNextPrinterChangeNotification
*r
)
26754 if (flags
& NDR_IN
) {
26756 if (flags
& NDR_OUT
) {
26757 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26759 return NDR_ERR_SUCCESS
;
26762 _PUBLIC_
void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
26764 ndr_print_struct(ndr
, name
, "spoolss_FindNextPrinterChangeNotification");
26766 if (flags
& NDR_SET_VALUES
) {
26767 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26769 if (flags
& NDR_IN
) {
26770 ndr_print_struct(ndr
, "in", "spoolss_FindNextPrinterChangeNotification");
26774 if (flags
& NDR_OUT
) {
26775 ndr_print_struct(ndr
, "out", "spoolss_FindNextPrinterChangeNotification");
26777 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26783 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
26785 if (flags
& NDR_IN
) {
26786 if (r
->in
.handle
== NULL
) {
26787 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26789 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26791 if (flags
& NDR_OUT
) {
26792 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26794 return NDR_ERR_SUCCESS
;
26797 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindClosePrinterNotify
*r
)
26799 TALLOC_CTX
*_mem_save_handle_0
;
26800 if (flags
& NDR_IN
) {
26801 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26802 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26804 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26805 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26806 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26807 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26809 if (flags
& NDR_OUT
) {
26810 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26812 return NDR_ERR_SUCCESS
;
26815 _PUBLIC_
void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
26817 ndr_print_struct(ndr
, name
, "spoolss_FindClosePrinterNotify");
26819 if (flags
& NDR_SET_VALUES
) {
26820 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26822 if (flags
& NDR_IN
) {
26823 ndr_print_struct(ndr
, "in", "spoolss_FindClosePrinterNotify");
26825 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26827 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26831 if (flags
& NDR_OUT
) {
26832 ndr_print_struct(ndr
, "out", "spoolss_FindClosePrinterNotify");
26834 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26840 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
26842 if (flags
& NDR_IN
) {
26844 if (flags
& NDR_OUT
) {
26845 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26847 return NDR_ERR_SUCCESS
;
26850 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
26852 if (flags
& NDR_IN
) {
26854 if (flags
& NDR_OUT
) {
26855 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26857 return NDR_ERR_SUCCESS
;
26860 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
26862 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26864 if (flags
& NDR_SET_VALUES
) {
26865 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26867 if (flags
& NDR_IN
) {
26868 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26872 if (flags
& NDR_OUT
) {
26873 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26875 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26881 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
26883 if (flags
& NDR_IN
) {
26884 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
26885 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26886 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
26887 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
));
26888 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
26889 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
26890 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
26891 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
26892 if (r
->in
.buffer
) {
26893 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
26894 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
26897 if (flags
& NDR_OUT
) {
26898 if (r
->out
.handle
== NULL
) {
26899 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26901 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26902 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26904 return NDR_ERR_SUCCESS
;
26907 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyOpenPrinter
*r
)
26909 uint32_t size_server_name_0
= 0;
26910 uint32_t length_server_name_0
= 0;
26911 uint32_t _ptr_buffer
;
26912 uint32_t size_buffer_1
= 0;
26913 TALLOC_CTX
*_mem_save_buffer_0
;
26914 TALLOC_CTX
*_mem_save_handle_0
;
26915 if (flags
& NDR_IN
) {
26916 ZERO_STRUCT(r
->out
);
26918 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
26919 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
26920 size_server_name_0
= ndr_get_array_size(ndr
, &r
->in
.server_name
);
26921 length_server_name_0
= ndr_get_array_length(ndr
, &r
->in
.server_name
);
26922 if (length_server_name_0
> size_server_name_0
) {
26923 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_name_0
, length_server_name_0
);
26925 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_name_0
, sizeof(uint16_t)));
26926 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, length_server_name_0
, sizeof(uint16_t), CH_UTF16
));
26927 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
26928 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
26929 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
26930 if (r
->in
.bufsize
> 512) {
26931 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
26933 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
26935 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
26937 r
->in
.buffer
= NULL
;
26939 if (r
->in
.buffer
) {
26940 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26941 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
26942 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
26943 size_buffer_1
= ndr_get_array_size(ndr
, &r
->in
.buffer
);
26944 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, size_buffer_1
);
26945 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, size_buffer_1
));
26946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
26948 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26949 ZERO_STRUCTP(r
->out
.handle
);
26950 if (r
->in
.buffer
) {
26951 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
26954 if (flags
& NDR_OUT
) {
26955 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26956 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26958 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26959 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26960 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26961 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26962 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26964 return NDR_ERR_SUCCESS
;
26967 _PUBLIC_
void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
26969 ndr_print_struct(ndr
, name
, "spoolss_ReplyOpenPrinter");
26971 if (flags
& NDR_SET_VALUES
) {
26972 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26974 if (flags
& NDR_IN
) {
26975 ndr_print_struct(ndr
, "in", "spoolss_ReplyOpenPrinter");
26977 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
26978 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
26979 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
26980 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
26981 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
26983 if (r
->in
.buffer
) {
26984 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
26989 if (flags
& NDR_OUT
) {
26990 ndr_print_struct(ndr
, "out", "spoolss_ReplyOpenPrinter");
26992 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
26994 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
26996 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27002 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
27004 if (flags
& NDR_IN
) {
27005 if (r
->in
.handle
== NULL
) {
27006 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27008 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27009 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
27010 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
27011 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
27012 if (r
->in
.buffer
) {
27013 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
27014 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
27017 if (flags
& NDR_OUT
) {
27018 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27020 return NDR_ERR_SUCCESS
;
27023 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinter
*r
)
27025 uint32_t _ptr_buffer
;
27026 uint32_t size_buffer_1
= 0;
27027 TALLOC_CTX
*_mem_save_handle_0
;
27028 TALLOC_CTX
*_mem_save_buffer_0
;
27029 if (flags
& NDR_IN
) {
27030 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27031 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27033 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27034 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27035 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27037 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
27038 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
27039 if (r
->in
.bufsize
> 512) {
27040 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
27042 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
27044 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
27046 r
->in
.buffer
= NULL
;
27048 if (r
->in
.buffer
) {
27049 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27050 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
27051 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
27052 size_buffer_1
= ndr_get_array_size(ndr
, &r
->in
.buffer
);
27053 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, size_buffer_1
);
27054 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, size_buffer_1
));
27055 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
27057 if (r
->in
.buffer
) {
27058 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
27061 if (flags
& NDR_OUT
) {
27062 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27064 return NDR_ERR_SUCCESS
;
27067 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
27069 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinter");
27071 if (flags
& NDR_SET_VALUES
) {
27072 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27074 if (flags
& NDR_IN
) {
27075 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinter");
27077 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27079 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27081 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
27082 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
27083 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
27085 if (r
->in
.buffer
) {
27086 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
27091 if (flags
& NDR_OUT
) {
27092 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinter");
27094 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27100 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
27102 if (flags
& NDR_IN
) {
27103 if (r
->in
.handle
== NULL
) {
27104 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27106 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27108 if (flags
& NDR_OUT
) {
27109 if (r
->out
.handle
== NULL
) {
27110 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27112 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27113 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27115 return NDR_ERR_SUCCESS
;
27118 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyClosePrinter
*r
)
27120 TALLOC_CTX
*_mem_save_handle_0
;
27121 if (flags
& NDR_IN
) {
27122 ZERO_STRUCT(r
->out
);
27124 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27125 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27127 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27128 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27129 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27130 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27131 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27132 *r
->out
.handle
= *r
->in
.handle
;
27134 if (flags
& NDR_OUT
) {
27135 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27136 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27138 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27139 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27140 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27141 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27142 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27144 return NDR_ERR_SUCCESS
;
27147 _PUBLIC_
void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
27149 ndr_print_struct(ndr
, name
, "spoolss_ReplyClosePrinter");
27151 if (flags
& NDR_SET_VALUES
) {
27152 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27154 if (flags
& NDR_IN
) {
27155 ndr_print_struct(ndr
, "in", "spoolss_ReplyClosePrinter");
27157 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27159 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27163 if (flags
& NDR_OUT
) {
27164 ndr_print_struct(ndr
, "out", "spoolss_ReplyClosePrinter");
27166 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
27168 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
27170 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27176 static enum ndr_err_code
ndr_push_spoolss_AddPortEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPortEx
*r
)
27178 if (flags
& NDR_IN
) {
27180 if (flags
& NDR_OUT
) {
27181 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27183 return NDR_ERR_SUCCESS
;
27186 static enum ndr_err_code
ndr_pull_spoolss_AddPortEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPortEx
*r
)
27188 if (flags
& NDR_IN
) {
27190 if (flags
& NDR_OUT
) {
27191 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27193 return NDR_ERR_SUCCESS
;
27196 _PUBLIC_
void ndr_print_spoolss_AddPortEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPortEx
*r
)
27198 ndr_print_struct(ndr
, name
, "spoolss_AddPortEx");
27200 if (flags
& NDR_SET_VALUES
) {
27201 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27203 if (flags
& NDR_IN
) {
27204 ndr_print_struct(ndr
, "in", "spoolss_AddPortEx");
27208 if (flags
& NDR_OUT
) {
27209 ndr_print_struct(ndr
, "out", "spoolss_AddPortEx");
27211 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27217 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
27219 if (flags
& NDR_IN
) {
27221 if (flags
& NDR_OUT
) {
27222 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27224 return NDR_ERR_SUCCESS
;
27227 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
27229 if (flags
& NDR_IN
) {
27231 if (flags
& NDR_OUT
) {
27232 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27234 return NDR_ERR_SUCCESS
;
27237 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
27239 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotification");
27241 if (flags
& NDR_SET_VALUES
) {
27242 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27244 if (flags
& NDR_IN
) {
27245 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
27249 if (flags
& NDR_OUT
) {
27250 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
27252 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27258 static enum ndr_err_code
ndr_push_spoolss_SpoolerInit(struct ndr_push
*ndr
, int flags
, const struct spoolss_SpoolerInit
*r
)
27260 if (flags
& NDR_IN
) {
27262 if (flags
& NDR_OUT
) {
27263 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27265 return NDR_ERR_SUCCESS
;
27268 static enum ndr_err_code
ndr_pull_spoolss_SpoolerInit(struct ndr_pull
*ndr
, int flags
, struct spoolss_SpoolerInit
*r
)
27270 if (flags
& NDR_IN
) {
27272 if (flags
& NDR_OUT
) {
27273 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27275 return NDR_ERR_SUCCESS
;
27278 _PUBLIC_
void ndr_print_spoolss_SpoolerInit(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SpoolerInit
*r
)
27280 ndr_print_struct(ndr
, name
, "spoolss_SpoolerInit");
27282 if (flags
& NDR_SET_VALUES
) {
27283 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27285 if (flags
& NDR_IN
) {
27286 ndr_print_struct(ndr
, "in", "spoolss_SpoolerInit");
27290 if (flags
& NDR_OUT
) {
27291 ndr_print_struct(ndr
, "out", "spoolss_SpoolerInit");
27293 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27299 static enum ndr_err_code
ndr_push_spoolss_ResetPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
27301 if (flags
& NDR_IN
) {
27303 if (flags
& NDR_OUT
) {
27304 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27306 return NDR_ERR_SUCCESS
;
27309 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinterEx
*r
)
27311 if (flags
& NDR_IN
) {
27313 if (flags
& NDR_OUT
) {
27314 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27316 return NDR_ERR_SUCCESS
;
27319 _PUBLIC_
void ndr_print_spoolss_ResetPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
27321 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinterEx");
27323 if (flags
& NDR_SET_VALUES
) {
27324 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27326 if (flags
& NDR_IN
) {
27327 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinterEx");
27331 if (flags
& NDR_OUT
) {
27332 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinterEx");
27334 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27340 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
27342 if (flags
& NDR_IN
) {
27343 if (r
->in
.handle
== NULL
) {
27344 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27346 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27347 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
27348 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.options
));
27349 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.local_machine
));
27350 if (r
->in
.local_machine
) {
27351 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
27352 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27353 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
27354 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
));
27356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
27357 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.notify_options
));
27358 if (r
->in
.notify_options
) {
27359 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
27362 if (flags
& NDR_OUT
) {
27363 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27365 return NDR_ERR_SUCCESS
;
27368 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
27370 uint32_t _ptr_local_machine
;
27371 uint32_t size_local_machine_1
= 0;
27372 uint32_t length_local_machine_1
= 0;
27373 uint32_t _ptr_notify_options
;
27374 TALLOC_CTX
*_mem_save_handle_0
;
27375 TALLOC_CTX
*_mem_save_local_machine_0
;
27376 TALLOC_CTX
*_mem_save_notify_options_0
;
27377 if (flags
& NDR_IN
) {
27378 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27379 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27381 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27382 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27383 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27384 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27385 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
27386 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.options
));
27387 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_local_machine
));
27388 if (_ptr_local_machine
) {
27389 NDR_PULL_ALLOC(ndr
, r
->in
.local_machine
);
27391 r
->in
.local_machine
= NULL
;
27393 if (r
->in
.local_machine
) {
27394 _mem_save_local_machine_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27395 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.local_machine
, 0);
27396 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.local_machine
));
27397 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.local_machine
));
27398 size_local_machine_1
= ndr_get_array_size(ndr
, &r
->in
.local_machine
);
27399 length_local_machine_1
= ndr_get_array_length(ndr
, &r
->in
.local_machine
);
27400 if (length_local_machine_1
> size_local_machine_1
) {
27401 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_local_machine_1
, length_local_machine_1
);
27403 NDR_CHECK(ndr_check_string_terminator(ndr
, length_local_machine_1
, sizeof(uint16_t)));
27404 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.local_machine
, length_local_machine_1
, sizeof(uint16_t), CH_UTF16
));
27405 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_local_machine_0
, 0);
27407 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
27408 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_options
));
27409 if (_ptr_notify_options
) {
27410 NDR_PULL_ALLOC(ndr
, r
->in
.notify_options
);
27412 r
->in
.notify_options
= NULL
;
27414 if (r
->in
.notify_options
) {
27415 _mem_save_notify_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27416 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.notify_options
, 0);
27417 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
27418 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_options_0
, 0);
27421 if (flags
& NDR_OUT
) {
27422 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27424 return NDR_ERR_SUCCESS
;
27427 _PUBLIC_
void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
27429 ndr_print_struct(ndr
, name
, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27431 if (flags
& NDR_SET_VALUES
) {
27432 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27434 if (flags
& NDR_IN
) {
27435 ndr_print_struct(ndr
, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27437 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27439 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27441 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
27442 ndr_print_uint32(ndr
, "options", r
->in
.options
);
27443 ndr_print_ptr(ndr
, "local_machine", r
->in
.local_machine
);
27445 if (r
->in
.local_machine
) {
27446 ndr_print_string(ndr
, "local_machine", r
->in
.local_machine
);
27449 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
27450 ndr_print_ptr(ndr
, "notify_options", r
->in
.notify_options
);
27452 if (r
->in
.notify_options
) {
27453 ndr_print_spoolss_NotifyOption(ndr
, "notify_options", r
->in
.notify_options
);
27458 if (flags
& NDR_OUT
) {
27459 ndr_print_struct(ndr
, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27461 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27467 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
27469 if (flags
& NDR_IN
) {
27470 if (r
->in
.handle
== NULL
) {
27471 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27473 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27474 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.color
));
27475 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
27476 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reply_type
));
27477 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
27478 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
27480 if (flags
& NDR_OUT
) {
27481 if (r
->out
.reply_result
== NULL
) {
27482 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27484 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, *r
->out
.reply_result
));
27485 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27487 return NDR_ERR_SUCCESS
;
27490 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinterEx
*r
)
27492 TALLOC_CTX
*_mem_save_handle_0
;
27493 TALLOC_CTX
*_mem_save_reply_result_0
;
27494 if (flags
& NDR_IN
) {
27495 ZERO_STRUCT(r
->out
);
27497 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27498 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27500 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27501 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27502 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27503 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27504 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.color
));
27505 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
27506 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reply_type
));
27507 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
27508 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
27509 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
27510 ZERO_STRUCTP(r
->out
.reply_result
);
27512 if (flags
& NDR_OUT
) {
27513 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27514 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
27516 _mem_save_reply_result_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27517 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.reply_result
, LIBNDR_FLAG_REF_ALLOC
);
27518 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, r
->out
.reply_result
));
27519 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_reply_result_0
, LIBNDR_FLAG_REF_ALLOC
);
27520 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27522 return NDR_ERR_SUCCESS
;
27525 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
27527 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinterEx");
27529 if (flags
& NDR_SET_VALUES
) {
27530 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27532 if (flags
& NDR_IN
) {
27533 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinterEx");
27535 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27537 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27539 ndr_print_uint32(ndr
, "color", r
->in
.color
);
27540 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
27541 ndr_print_uint32(ndr
, "reply_type", r
->in
.reply_type
);
27542 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
);
27543 ndr_print_spoolss_ReplyPrinterInfo(ndr
, "info", &r
->in
.info
);
27546 if (flags
& NDR_OUT
) {
27547 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinterEx");
27549 ndr_print_ptr(ndr
, "reply_result", r
->out
.reply_result
);
27551 ndr_print_spoolss_PrinterNotifyFlags(ndr
, "reply_result", *r
->out
.reply_result
);
27553 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27559 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
27561 if (flags
& NDR_IN
) {
27562 if (r
->in
.handle
== NULL
) {
27563 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27565 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27566 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.change_low
));
27567 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.options
));
27568 if (r
->in
.options
) {
27569 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
27572 if (flags
& NDR_OUT
) {
27573 if (r
->out
.info
== NULL
) {
27574 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27576 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
27577 if (*r
->out
.info
) {
27578 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
27580 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27582 return NDR_ERR_SUCCESS
;
27585 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
27587 uint32_t _ptr_options
;
27588 uint32_t _ptr_info
;
27589 TALLOC_CTX
*_mem_save_handle_0
;
27590 TALLOC_CTX
*_mem_save_options_0
;
27591 TALLOC_CTX
*_mem_save_info_0
;
27592 TALLOC_CTX
*_mem_save_info_1
;
27593 if (flags
& NDR_IN
) {
27594 ZERO_STRUCT(r
->out
);
27596 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27597 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27599 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27600 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27601 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27602 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27603 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_low
));
27604 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_options
));
27605 if (_ptr_options
) {
27606 NDR_PULL_ALLOC(ndr
, r
->in
.options
);
27608 r
->in
.options
= NULL
;
27610 if (r
->in
.options
) {
27611 _mem_save_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27612 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.options
, 0);
27613 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
27614 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_options_0
, 0);
27616 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
27617 ZERO_STRUCTP(r
->out
.info
);
27619 if (flags
& NDR_OUT
) {
27620 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27621 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
27623 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27624 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
27625 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
27627 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
27629 *r
->out
.info
= NULL
;
27631 if (*r
->out
.info
) {
27632 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
27633 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
27634 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
27635 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
27637 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
27638 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27640 return NDR_ERR_SUCCESS
;
27643 _PUBLIC_
void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
27645 ndr_print_struct(ndr
, name
, "spoolss_RouterRefreshPrinterChangeNotify");
27647 if (flags
& NDR_SET_VALUES
) {
27648 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27650 if (flags
& NDR_IN
) {
27651 ndr_print_struct(ndr
, "in", "spoolss_RouterRefreshPrinterChangeNotify");
27653 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27655 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27657 ndr_print_uint32(ndr
, "change_low", r
->in
.change_low
);
27658 ndr_print_ptr(ndr
, "options", r
->in
.options
);
27660 if (r
->in
.options
) {
27661 ndr_print_spoolss_NotifyOption(ndr
, "options", r
->in
.options
);
27666 if (flags
& NDR_OUT
) {
27667 ndr_print_struct(ndr
, "out", "spoolss_RouterRefreshPrinterChangeNotify");
27669 ndr_print_ptr(ndr
, "info", r
->out
.info
);
27671 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
27673 if (*r
->out
.info
) {
27674 ndr_print_spoolss_NotifyInfo(ndr
, "info", *r
->out
.info
);
27678 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27684 static enum ndr_err_code
ndr_push_spoolss_44(struct ndr_push
*ndr
, int flags
, const struct spoolss_44
*r
)
27686 if (flags
& NDR_IN
) {
27688 if (flags
& NDR_OUT
) {
27689 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27691 return NDR_ERR_SUCCESS
;
27694 static enum ndr_err_code
ndr_pull_spoolss_44(struct ndr_pull
*ndr
, int flags
, struct spoolss_44
*r
)
27696 if (flags
& NDR_IN
) {
27698 if (flags
& NDR_OUT
) {
27699 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27701 return NDR_ERR_SUCCESS
;
27704 _PUBLIC_
void ndr_print_spoolss_44(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_44
*r
)
27706 ndr_print_struct(ndr
, name
, "spoolss_44");
27708 if (flags
& NDR_SET_VALUES
) {
27709 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27711 if (flags
& NDR_IN
) {
27712 ndr_print_struct(ndr
, "in", "spoolss_44");
27716 if (flags
& NDR_OUT
) {
27717 ndr_print_struct(ndr
, "out", "spoolss_44");
27719 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27725 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
27727 if (flags
& NDR_IN
) {
27728 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
27729 if (r
->in
.printername
) {
27730 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
27731 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27732 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
27733 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27735 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
27736 if (r
->in
.datatype
) {
27737 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
27738 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27739 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
27740 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27742 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
27743 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
27744 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
27745 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
27746 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
27748 if (flags
& NDR_OUT
) {
27749 if (r
->out
.handle
== NULL
) {
27750 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27752 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27753 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27755 return NDR_ERR_SUCCESS
;
27758 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinterEx
*r
)
27760 uint32_t _ptr_printername
;
27761 uint32_t size_printername_1
= 0;
27762 uint32_t length_printername_1
= 0;
27763 uint32_t _ptr_datatype
;
27764 uint32_t size_datatype_1
= 0;
27765 uint32_t length_datatype_1
= 0;
27766 TALLOC_CTX
*_mem_save_printername_0
;
27767 TALLOC_CTX
*_mem_save_datatype_0
;
27768 TALLOC_CTX
*_mem_save_handle_0
;
27769 if (flags
& NDR_IN
) {
27770 ZERO_STRUCT(r
->out
);
27772 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
27773 if (_ptr_printername
) {
27774 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
27776 r
->in
.printername
= NULL
;
27778 if (r
->in
.printername
) {
27779 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27780 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
27781 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
27782 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
27783 size_printername_1
= ndr_get_array_size(ndr
, &r
->in
.printername
);
27784 length_printername_1
= ndr_get_array_length(ndr
, &r
->in
.printername
);
27785 if (length_printername_1
> size_printername_1
) {
27786 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_printername_1
, length_printername_1
);
27788 NDR_CHECK(ndr_check_string_terminator(ndr
, length_printername_1
, sizeof(uint16_t)));
27789 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, length_printername_1
, sizeof(uint16_t), CH_UTF16
));
27790 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
27792 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
27793 if (_ptr_datatype
) {
27794 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
27796 r
->in
.datatype
= NULL
;
27798 if (r
->in
.datatype
) {
27799 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27800 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
27801 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
27802 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
27803 size_datatype_1
= ndr_get_array_size(ndr
, &r
->in
.datatype
);
27804 length_datatype_1
= ndr_get_array_length(ndr
, &r
->in
.datatype
);
27805 if (length_datatype_1
> size_datatype_1
) {
27806 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_datatype_1
, length_datatype_1
);
27808 NDR_CHECK(ndr_check_string_terminator(ndr
, length_datatype_1
, sizeof(uint16_t)));
27809 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, length_datatype_1
, sizeof(uint16_t), CH_UTF16
));
27810 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
27812 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
27813 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
27814 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
27815 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
27816 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
27817 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27818 ZERO_STRUCTP(r
->out
.handle
);
27820 if (flags
& NDR_OUT
) {
27821 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27822 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27824 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27825 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27826 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27827 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27828 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27830 return NDR_ERR_SUCCESS
;
27833 _PUBLIC_
void ndr_print_spoolss_OpenPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
27835 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinterEx");
27837 if (flags
& NDR_SET_VALUES
) {
27838 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27840 if (flags
& NDR_IN
) {
27841 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinterEx");
27843 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
27845 if (r
->in
.printername
) {
27846 ndr_print_string(ndr
, "printername", r
->in
.printername
);
27849 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
27851 if (r
->in
.datatype
) {
27852 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
27855 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
27856 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
27857 ndr_print_uint32(ndr
, "level", r
->in
.level
);
27858 ndr_print_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
);
27859 ndr_print_spoolss_UserLevel(ndr
, "userlevel", &r
->in
.userlevel
);
27862 if (flags
& NDR_OUT
) {
27863 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinterEx");
27865 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
27867 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
27869 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27875 static enum ndr_err_code
ndr_push_spoolss_AddPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterEx
*r
)
27877 if (flags
& NDR_IN
) {
27878 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
27879 if (r
->in
.server
) {
27880 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
27881 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27882 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
27883 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27885 if (r
->in
.info_ctr
== NULL
) {
27886 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27888 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
27889 if (r
->in
.devmode_ctr
== NULL
) {
27890 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27892 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
27893 if (r
->in
.secdesc_ctr
== NULL
) {
27894 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27896 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
27897 if (r
->in
.userlevel_ctr
== NULL
) {
27898 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27900 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
27902 if (flags
& NDR_OUT
) {
27903 if (r
->out
.handle
== NULL
) {
27904 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27906 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27907 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27909 return NDR_ERR_SUCCESS
;
27912 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterEx
*r
)
27914 uint32_t _ptr_server
;
27915 uint32_t size_server_1
= 0;
27916 uint32_t length_server_1
= 0;
27917 TALLOC_CTX
*_mem_save_server_0
;
27918 TALLOC_CTX
*_mem_save_info_ctr_0
;
27919 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
27920 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
27921 TALLOC_CTX
*_mem_save_userlevel_ctr_0
;
27922 TALLOC_CTX
*_mem_save_handle_0
;
27923 if (flags
& NDR_IN
) {
27924 ZERO_STRUCT(r
->out
);
27926 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
27928 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
27930 r
->in
.server
= NULL
;
27932 if (r
->in
.server
) {
27933 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27934 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
27935 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
27936 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
27937 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
27938 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
27939 if (length_server_1
> size_server_1
) {
27940 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
27942 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
27943 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
27944 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
27946 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27947 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
27949 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27950 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
27951 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
27952 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
27953 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27954 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
27956 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27957 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
27958 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
27959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
27960 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27961 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
27963 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27964 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
27965 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
27966 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
27967 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27968 NDR_PULL_ALLOC(ndr
, r
->in
.userlevel_ctr
);
27970 _mem_save_userlevel_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27971 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.userlevel_ctr
, LIBNDR_FLAG_REF_ALLOC
);
27972 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
27973 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_userlevel_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
27974 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27975 ZERO_STRUCTP(r
->out
.handle
);
27977 if (flags
& NDR_OUT
) {
27978 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27979 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27981 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27982 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27983 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27984 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27985 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27987 return NDR_ERR_SUCCESS
;
27990 _PUBLIC_
void ndr_print_spoolss_AddPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterEx
*r
)
27992 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterEx");
27994 if (flags
& NDR_SET_VALUES
) {
27995 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27997 if (flags
& NDR_IN
) {
27998 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterEx");
28000 ndr_print_ptr(ndr
, "server", r
->in
.server
);
28002 if (r
->in
.server
) {
28003 ndr_print_string(ndr
, "server", r
->in
.server
);
28006 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
28008 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
28010 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
28012 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
28014 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
28016 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
28018 ndr_print_ptr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
28020 ndr_print_spoolss_UserLevelCtr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
28024 if (flags
& NDR_OUT
) {
28025 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterEx");
28027 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
28029 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
28031 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28037 static enum ndr_err_code
ndr_push_spoolss_47(struct ndr_push
*ndr
, int flags
, const struct spoolss_47
*r
)
28039 if (flags
& NDR_IN
) {
28041 if (flags
& NDR_OUT
) {
28042 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28044 return NDR_ERR_SUCCESS
;
28047 static enum ndr_err_code
ndr_pull_spoolss_47(struct ndr_pull
*ndr
, int flags
, struct spoolss_47
*r
)
28049 if (flags
& NDR_IN
) {
28051 if (flags
& NDR_OUT
) {
28052 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28054 return NDR_ERR_SUCCESS
;
28057 _PUBLIC_
void ndr_print_spoolss_47(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_47
*r
)
28059 ndr_print_struct(ndr
, name
, "spoolss_47");
28061 if (flags
& NDR_SET_VALUES
) {
28062 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28064 if (flags
& NDR_IN
) {
28065 ndr_print_struct(ndr
, "in", "spoolss_47");
28069 if (flags
& NDR_OUT
) {
28070 ndr_print_struct(ndr
, "out", "spoolss_47");
28072 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28078 static enum ndr_err_code
ndr_push_spoolss_EnumPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterData
*r
)
28080 if (flags
& NDR_IN
) {
28081 if (r
->in
.handle
== NULL
) {
28082 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28084 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
28086 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
));
28087 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
28089 if (flags
& NDR_OUT
) {
28090 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.value_offered
/ 2));
28091 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.value_name
, r
->in
.value_offered
/ 2, sizeof(uint16_t), CH_UTF16
));
28092 if (r
->out
.value_needed
== NULL
) {
28093 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28095 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.value_needed
));
28096 if (r
->out
.type
== NULL
) {
28097 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28099 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
28101 uint32_t _flags_save_uint8
= ndr
->flags
;
28102 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
28103 if (r
->out
.data
== NULL
) {
28104 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28106 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
28107 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_offered
));
28108 ndr
->flags
= _flags_save_uint8
;
28110 if (r
->out
.data_needed
== NULL
) {
28111 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28113 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_needed
));
28114 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28116 return NDR_ERR_SUCCESS
;
28119 static enum ndr_err_code
ndr_pull_spoolss_EnumPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterData
*r
)
28121 uint32_t size_value_name_0
= 0;
28122 uint32_t size_data_1
= 0;
28123 TALLOC_CTX
*_mem_save_handle_0
;
28124 TALLOC_CTX
*_mem_save_value_needed_0
;
28125 TALLOC_CTX
*_mem_save_type_0
;
28126 TALLOC_CTX
*_mem_save_data_needed_0
;
28127 if (flags
& NDR_IN
) {
28128 ZERO_STRUCT(r
->out
);
28130 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28131 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28133 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28134 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28135 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28136 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28137 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
28138 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.value_offered
));
28139 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_offered
));
28140 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
28141 ZERO_STRUCTP(r
->out
.value_needed
);
28142 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
28143 ZERO_STRUCTP(r
->out
.type
);
28144 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_offered
);
28145 memset(r
->out
.data
, 0, (r
->in
.data_offered
) * sizeof(*r
->out
.data
));
28146 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
28147 ZERO_STRUCTP(r
->out
.data_needed
);
28149 if (flags
& NDR_OUT
) {
28150 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value_name
));
28151 size_value_name_0
= ndr_get_array_size(ndr
, &r
->out
.value_name
);
28152 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->out
.value_name
, size_value_name_0
, sizeof(uint16_t), CH_UTF16
));
28153 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28154 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
28156 _mem_save_value_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28157 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value_needed
, LIBNDR_FLAG_REF_ALLOC
);
28158 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.value_needed
));
28159 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28160 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28161 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
28163 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28164 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
28165 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
28166 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
28168 uint32_t _flags_save_uint8
= ndr
->flags
;
28169 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
28170 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
28171 size_data_1
= ndr_get_array_size(ndr
, &r
->out
.data
);
28172 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28173 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, size_data_1
);
28175 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, size_data_1
));
28176 ndr
->flags
= _flags_save_uint8
;
28178 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28179 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
28181 _mem_save_data_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28182 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_needed
, LIBNDR_FLAG_REF_ALLOC
);
28183 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_needed
));
28184 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28185 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28186 if (r
->out
.value_name
) {
28187 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value_name
, r
->in
.value_offered
/ 2));
28190 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_offered
));
28193 return NDR_ERR_SUCCESS
;
28196 _PUBLIC_
void ndr_print_spoolss_EnumPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterData
*r
)
28198 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterData");
28200 if (flags
& NDR_SET_VALUES
) {
28201 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28203 if (flags
& NDR_IN
) {
28204 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterData");
28206 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28208 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28210 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
28211 ndr_print_uint32(ndr
, "value_offered", r
->in
.value_offered
);
28212 ndr_print_uint32(ndr
, "data_offered", r
->in
.data_offered
);
28215 if (flags
& NDR_OUT
) {
28216 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterData");
28218 ndr_print_string(ndr
, "value_name", r
->out
.value_name
);
28219 ndr_print_ptr(ndr
, "value_needed", r
->out
.value_needed
);
28221 ndr_print_uint32(ndr
, "value_needed", *r
->out
.value_needed
);
28223 ndr_print_ptr(ndr
, "type", r
->out
.type
);
28225 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
28227 ndr_print_ptr(ndr
, "data", r
->out
.data
);
28229 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_offered
);
28231 ndr_print_ptr(ndr
, "data_needed", r
->out
.data_needed
);
28233 ndr_print_uint32(ndr
, "data_needed", *r
->out
.data_needed
);
28235 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28241 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterData
*r
)
28243 if (flags
& NDR_IN
) {
28244 if (r
->in
.handle
== NULL
) {
28245 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28247 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28248 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28249 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28250 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28251 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
));
28253 if (flags
& NDR_OUT
) {
28254 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28256 return NDR_ERR_SUCCESS
;
28259 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterData
*r
)
28261 uint32_t size_value_name_0
= 0;
28262 uint32_t length_value_name_0
= 0;
28263 TALLOC_CTX
*_mem_save_handle_0
;
28264 if (flags
& NDR_IN
) {
28265 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28266 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28268 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28269 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28270 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28271 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28272 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
28273 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
28274 size_value_name_0
= ndr_get_array_size(ndr
, &r
->in
.value_name
);
28275 length_value_name_0
= ndr_get_array_length(ndr
, &r
->in
.value_name
);
28276 if (length_value_name_0
> size_value_name_0
) {
28277 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_value_name_0
, length_value_name_0
);
28279 NDR_CHECK(ndr_check_string_terminator(ndr
, length_value_name_0
, sizeof(uint16_t)));
28280 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, length_value_name_0
, sizeof(uint16_t), CH_UTF16
));
28282 if (flags
& NDR_OUT
) {
28283 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28285 return NDR_ERR_SUCCESS
;
28288 _PUBLIC_
void ndr_print_spoolss_DeletePrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterData
*r
)
28290 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterData");
28292 if (flags
& NDR_SET_VALUES
) {
28293 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28295 if (flags
& NDR_IN
) {
28296 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterData");
28298 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28300 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28302 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
28305 if (flags
& NDR_OUT
) {
28306 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterData");
28308 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28314 static enum ndr_err_code
ndr_push_spoolss_4a(struct ndr_push
*ndr
, int flags
, const struct spoolss_4a
*r
)
28316 if (flags
& NDR_IN
) {
28318 if (flags
& NDR_OUT
) {
28319 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28321 return NDR_ERR_SUCCESS
;
28324 static enum ndr_err_code
ndr_pull_spoolss_4a(struct ndr_pull
*ndr
, int flags
, struct spoolss_4a
*r
)
28326 if (flags
& NDR_IN
) {
28328 if (flags
& NDR_OUT
) {
28329 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28331 return NDR_ERR_SUCCESS
;
28334 _PUBLIC_
void ndr_print_spoolss_4a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4a
*r
)
28336 ndr_print_struct(ndr
, name
, "spoolss_4a");
28338 if (flags
& NDR_SET_VALUES
) {
28339 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28341 if (flags
& NDR_IN
) {
28342 ndr_print_struct(ndr
, "in", "spoolss_4a");
28346 if (flags
& NDR_OUT
) {
28347 ndr_print_struct(ndr
, "out", "spoolss_4a");
28349 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28355 static enum ndr_err_code
ndr_push_spoolss_4b(struct ndr_push
*ndr
, int flags
, const struct spoolss_4b
*r
)
28357 if (flags
& NDR_IN
) {
28359 if (flags
& NDR_OUT
) {
28360 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28362 return NDR_ERR_SUCCESS
;
28365 static enum ndr_err_code
ndr_pull_spoolss_4b(struct ndr_pull
*ndr
, int flags
, struct spoolss_4b
*r
)
28367 if (flags
& NDR_IN
) {
28369 if (flags
& NDR_OUT
) {
28370 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28372 return NDR_ERR_SUCCESS
;
28375 _PUBLIC_
void ndr_print_spoolss_4b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4b
*r
)
28377 ndr_print_struct(ndr
, name
, "spoolss_4b");
28379 if (flags
& NDR_SET_VALUES
) {
28380 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28382 if (flags
& NDR_IN
) {
28383 ndr_print_struct(ndr
, "in", "spoolss_4b");
28387 if (flags
& NDR_OUT
) {
28388 ndr_print_struct(ndr
, "out", "spoolss_4b");
28390 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28396 static enum ndr_err_code
ndr_push_spoolss_4c(struct ndr_push
*ndr
, int flags
, const struct spoolss_4c
*r
)
28398 if (flags
& NDR_IN
) {
28400 if (flags
& NDR_OUT
) {
28401 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28403 return NDR_ERR_SUCCESS
;
28406 static enum ndr_err_code
ndr_pull_spoolss_4c(struct ndr_pull
*ndr
, int flags
, struct spoolss_4c
*r
)
28408 if (flags
& NDR_IN
) {
28410 if (flags
& NDR_OUT
) {
28411 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28413 return NDR_ERR_SUCCESS
;
28416 _PUBLIC_
void ndr_print_spoolss_4c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4c
*r
)
28418 ndr_print_struct(ndr
, name
, "spoolss_4c");
28420 if (flags
& NDR_SET_VALUES
) {
28421 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28423 if (flags
& NDR_IN
) {
28424 ndr_print_struct(ndr
, "in", "spoolss_4c");
28428 if (flags
& NDR_OUT
) {
28429 ndr_print_struct(ndr
, "out", "spoolss_4c");
28431 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28437 static enum ndr_err_code
ndr_push_spoolss_SetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
28439 if (flags
& NDR_IN
) {
28440 if (r
->in
.handle
== NULL
) {
28441 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28443 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28444 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28445 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28446 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28447 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
));
28448 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28449 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28450 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28451 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
));
28452 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
28453 if (r
->in
.data
== NULL
) {
28454 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28456 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
28457 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, r
->in
.offered
));
28458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
28460 if (flags
& NDR_OUT
) {
28461 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28463 return NDR_ERR_SUCCESS
;
28466 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterDataEx
*r
)
28468 uint32_t size_key_name_0
= 0;
28469 uint32_t length_key_name_0
= 0;
28470 uint32_t size_value_name_0
= 0;
28471 uint32_t length_value_name_0
= 0;
28472 uint32_t size_data_1
= 0;
28473 TALLOC_CTX
*_mem_save_handle_0
;
28474 if (flags
& NDR_IN
) {
28475 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28476 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28478 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28479 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28480 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28481 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28482 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
28483 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
28484 size_key_name_0
= ndr_get_array_size(ndr
, &r
->in
.key_name
);
28485 length_key_name_0
= ndr_get_array_length(ndr
, &r
->in
.key_name
);
28486 if (length_key_name_0
> size_key_name_0
) {
28487 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_key_name_0
, length_key_name_0
);
28489 NDR_CHECK(ndr_check_string_terminator(ndr
, length_key_name_0
, sizeof(uint16_t)));
28490 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, length_key_name_0
, sizeof(uint16_t), CH_UTF16
));
28491 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
28492 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
28493 size_value_name_0
= ndr_get_array_size(ndr
, &r
->in
.value_name
);
28494 length_value_name_0
= ndr_get_array_length(ndr
, &r
->in
.value_name
);
28495 if (length_value_name_0
> size_value_name_0
) {
28496 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_value_name_0
, length_value_name_0
);
28498 NDR_CHECK(ndr_check_string_terminator(ndr
, length_value_name_0
, sizeof(uint16_t)));
28499 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, length_value_name_0
, sizeof(uint16_t), CH_UTF16
));
28500 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
28501 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data
));
28502 size_data_1
= ndr_get_array_size(ndr
, &r
->in
.data
);
28503 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28504 NDR_PULL_ALLOC_N(ndr
, r
->in
.data
, size_data_1
);
28506 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.data
, size_data_1
));
28507 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
28509 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.data
, r
->in
.offered
));
28512 if (flags
& NDR_OUT
) {
28513 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28515 return NDR_ERR_SUCCESS
;
28518 _PUBLIC_
void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
28520 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterDataEx");
28522 if (flags
& NDR_SET_VALUES
) {
28523 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28525 if (flags
& NDR_IN
) {
28526 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterDataEx");
28528 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28530 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28532 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
28533 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
28534 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
28535 ndr_print_ptr(ndr
, "data", r
->in
.data
);
28537 ndr_print_array_uint8(ndr
, "data", r
->in
.data
, r
->in
.offered
);
28539 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
28542 if (flags
& NDR_OUT
) {
28543 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterDataEx");
28545 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28551 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
28553 if (flags
& NDR_IN
) {
28554 if (r
->in
.handle
== NULL
) {
28555 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28557 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28558 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28559 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28560 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28561 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
));
28562 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28563 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28564 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28565 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
));
28566 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
28568 if (flags
& NDR_OUT
) {
28569 if (r
->out
.type
== NULL
) {
28570 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28572 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
28573 if (r
->out
.data
== NULL
) {
28574 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28576 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
28577 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.offered
));
28578 if (r
->out
.needed
== NULL
) {
28579 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28581 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
28582 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28584 return NDR_ERR_SUCCESS
;
28587 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDataEx
*r
)
28589 uint32_t size_key_name_0
= 0;
28590 uint32_t length_key_name_0
= 0;
28591 uint32_t size_value_name_0
= 0;
28592 uint32_t length_value_name_0
= 0;
28593 uint32_t size_data_1
= 0;
28594 TALLOC_CTX
*_mem_save_handle_0
;
28595 TALLOC_CTX
*_mem_save_type_0
;
28596 TALLOC_CTX
*_mem_save_needed_0
;
28597 if (flags
& NDR_IN
) {
28598 ZERO_STRUCT(r
->out
);
28600 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28601 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28603 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28604 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28605 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28606 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28607 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
28608 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
28609 size_key_name_0
= ndr_get_array_size(ndr
, &r
->in
.key_name
);
28610 length_key_name_0
= ndr_get_array_length(ndr
, &r
->in
.key_name
);
28611 if (length_key_name_0
> size_key_name_0
) {
28612 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_key_name_0
, length_key_name_0
);
28614 NDR_CHECK(ndr_check_string_terminator(ndr
, length_key_name_0
, sizeof(uint16_t)));
28615 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, length_key_name_0
, sizeof(uint16_t), CH_UTF16
));
28616 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
28617 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
28618 size_value_name_0
= ndr_get_array_size(ndr
, &r
->in
.value_name
);
28619 length_value_name_0
= ndr_get_array_length(ndr
, &r
->in
.value_name
);
28620 if (length_value_name_0
> size_value_name_0
) {
28621 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_value_name_0
, length_value_name_0
);
28623 NDR_CHECK(ndr_check_string_terminator(ndr
, length_value_name_0
, sizeof(uint16_t)));
28624 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, length_value_name_0
, sizeof(uint16_t), CH_UTF16
));
28625 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
28626 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
28627 ZERO_STRUCTP(r
->out
.type
);
28628 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.offered
);
28629 memset(r
->out
.data
, 0, (r
->in
.offered
) * sizeof(*r
->out
.data
));
28630 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28631 ZERO_STRUCTP(r
->out
.needed
);
28633 if (flags
& NDR_OUT
) {
28634 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28635 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
28637 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28638 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
28639 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
28640 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
28641 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
28642 size_data_1
= ndr_get_array_size(ndr
, &r
->out
.data
);
28643 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28644 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, size_data_1
);
28646 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, size_data_1
));
28647 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28648 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28650 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28651 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
28652 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
28653 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28654 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28656 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.offered
));
28659 return NDR_ERR_SUCCESS
;
28662 _PUBLIC_
void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
28664 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDataEx");
28666 if (flags
& NDR_SET_VALUES
) {
28667 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28669 if (flags
& NDR_IN
) {
28670 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDataEx");
28672 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28674 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28676 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
28677 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
28678 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
28681 if (flags
& NDR_OUT
) {
28682 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDataEx");
28684 ndr_print_ptr(ndr
, "type", r
->out
.type
);
28686 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
28688 ndr_print_ptr(ndr
, "data", r
->out
.data
);
28690 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.offered
);
28692 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
28694 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
28696 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28702 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDataEx
*r
)
28704 if (flags
& NDR_IN
) {
28705 if (r
->in
.handle
== NULL
) {
28706 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28708 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28709 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28710 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28711 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28712 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
));
28713 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
28715 if (flags
& NDR_OUT
) {
28716 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
28717 if (r
->out
.needed
== NULL
) {
28718 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28720 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
28721 if (r
->out
.count
== NULL
) {
28722 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28724 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
28725 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28727 return NDR_ERR_SUCCESS
;
28730 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDataEx
*r
)
28732 uint32_t size_key_name_0
= 0;
28733 uint32_t length_key_name_0
= 0;
28734 TALLOC_CTX
*_mem_save_handle_0
;
28735 TALLOC_CTX
*_mem_save_needed_0
;
28736 TALLOC_CTX
*_mem_save_count_0
;
28737 if (flags
& NDR_IN
) {
28738 ZERO_STRUCT(r
->out
);
28740 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28741 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28743 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28744 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28745 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28746 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28747 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
28748 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
28749 size_key_name_0
= ndr_get_array_size(ndr
, &r
->in
.key_name
);
28750 length_key_name_0
= ndr_get_array_length(ndr
, &r
->in
.key_name
);
28751 if (length_key_name_0
> size_key_name_0
) {
28752 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_key_name_0
, length_key_name_0
);
28754 NDR_CHECK(ndr_check_string_terminator(ndr
, length_key_name_0
, sizeof(uint16_t)));
28755 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, length_key_name_0
, sizeof(uint16_t), CH_UTF16
));
28756 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
28757 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28758 ZERO_STRUCTP(r
->out
.needed
);
28759 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
28760 ZERO_STRUCTP(r
->out
.count
);
28762 if (flags
& NDR_OUT
) {
28763 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->out
.info
));
28764 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28765 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28767 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28768 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
28769 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
28770 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28771 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28772 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
28774 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28775 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
28776 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
28777 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
28778 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28780 return NDR_ERR_SUCCESS
;
28783 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDataEx
*r
)
28785 uint32_t cntr_info_0
;
28786 if (flags
& NDR_IN
) {
28787 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
28789 if (flags
& NDR_OUT
) {
28790 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
28791 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
28793 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
28794 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
28797 return NDR_ERR_SUCCESS
;
28800 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDataEx
*r
)
28802 uint32_t size_info_0
= 0;
28803 uint32_t cntr_info_0
;
28804 TALLOC_CTX
*_mem_save_info_0
;
28805 if (flags
& NDR_IN
) {
28806 ZERO_STRUCT(r
->out
);
28808 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
28810 if (flags
& NDR_OUT
) {
28811 size_info_0
= r
->in
.count
;
28812 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, size_info_0
);
28813 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28814 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
28815 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
28816 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
28818 for (cntr_info_0
= 0; cntr_info_0
< size_info_0
; cntr_info_0
++) {
28819 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
28821 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
28823 return NDR_ERR_SUCCESS
;
28826 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDataEx
*r
)
28828 uint32_t cntr_info_2
;
28829 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDataEx");
28831 if (flags
& NDR_SET_VALUES
) {
28832 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28834 if (flags
& NDR_IN
) {
28835 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDataEx");
28837 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28839 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28841 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
28842 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
28845 if (flags
& NDR_OUT
) {
28846 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDataEx");
28848 ndr_print_ptr(ndr
, "count", r
->out
.count
);
28850 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
28852 ndr_print_ptr(ndr
, "info", r
->out
.info
);
28854 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
28856 if (*r
->out
.info
) {
28857 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
28859 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
28861 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
28862 ndr_print_spoolss_PrinterEnumValues(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
28870 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
28872 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
28874 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28880 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
28882 if (flags
& NDR_IN
) {
28883 if (r
->in
.handle
== NULL
) {
28884 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28886 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28887 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28888 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28889 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28890 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
));
28891 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
28893 if (flags
& NDR_OUT
) {
28894 if (r
->out
._ndr_size
== NULL
) {
28895 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28897 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._ndr_size
));
28898 if (r
->out
.key_buffer
== NULL
) {
28899 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28902 struct ndr_push
*_ndr_key_buffer
;
28903 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
28904 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer
, r
->out
.key_buffer
, *r
->out
._ndr_size
));
28905 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.key_buffer
));
28906 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
28908 if (r
->out
.needed
== NULL
) {
28909 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28911 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
28912 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28914 return NDR_ERR_SUCCESS
;
28917 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterKey
*r
)
28919 uint32_t size_key_name_0
= 0;
28920 uint32_t length_key_name_0
= 0;
28921 TALLOC_CTX
*_mem_save_handle_0
;
28922 TALLOC_CTX
*_mem_save__ndr_size_0
;
28923 TALLOC_CTX
*_mem_save_key_buffer_0
;
28924 TALLOC_CTX
*_mem_save_needed_0
;
28925 if (flags
& NDR_IN
) {
28926 ZERO_STRUCT(r
->out
);
28928 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28929 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28931 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28932 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28933 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28934 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28935 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
28936 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
28937 size_key_name_0
= ndr_get_array_size(ndr
, &r
->in
.key_name
);
28938 length_key_name_0
= ndr_get_array_length(ndr
, &r
->in
.key_name
);
28939 if (length_key_name_0
> size_key_name_0
) {
28940 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_key_name_0
, length_key_name_0
);
28942 NDR_CHECK(ndr_check_string_terminator(ndr
, length_key_name_0
, sizeof(uint16_t)));
28943 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, length_key_name_0
, sizeof(uint16_t), CH_UTF16
));
28944 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
28945 NDR_PULL_ALLOC(ndr
, r
->out
._ndr_size
);
28946 ZERO_STRUCTP(r
->out
._ndr_size
);
28947 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
28948 ZERO_STRUCTP(r
->out
.key_buffer
);
28949 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28950 ZERO_STRUCTP(r
->out
.needed
);
28952 if (flags
& NDR_OUT
) {
28953 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28954 NDR_PULL_ALLOC(ndr
, r
->out
._ndr_size
);
28956 _mem_save__ndr_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28957 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._ndr_size
, LIBNDR_FLAG_REF_ALLOC
);
28958 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._ndr_size
));
28959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__ndr_size_0
, LIBNDR_FLAG_REF_ALLOC
);
28960 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28961 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
28963 _mem_save_key_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28964 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.key_buffer
, LIBNDR_FLAG_REF_ALLOC
);
28966 struct ndr_pull
*_ndr_key_buffer
;
28967 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
28968 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer
, r
->out
.key_buffer
, *r
->out
._ndr_size
));
28969 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.key_buffer
));
28970 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
28972 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
28973 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28974 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28976 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28977 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
28978 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
28979 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28980 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28982 return NDR_ERR_SUCCESS
;
28985 _PUBLIC_
void ndr_print_spoolss_EnumPrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
28987 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterKey");
28989 if (flags
& NDR_SET_VALUES
) {
28990 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28992 if (flags
& NDR_IN
) {
28993 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterKey");
28995 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28997 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28999 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
29000 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
29003 if (flags
& NDR_OUT
) {
29004 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterKey");
29006 ndr_print_ptr(ndr
, "_ndr_size", r
->out
._ndr_size
);
29008 ndr_print_uint32(ndr
, "_ndr_size", *r
->out
._ndr_size
);
29010 ndr_print_ptr(ndr
, "key_buffer", r
->out
.key_buffer
);
29012 ndr_print_set_switch_value(ndr
, r
->out
.key_buffer
, *r
->out
._ndr_size
);
29013 ndr_print_spoolss_KeyNames(ndr
, "key_buffer", r
->out
.key_buffer
);
29015 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
29017 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
29019 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29025 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
29027 if (flags
& NDR_IN
) {
29028 if (r
->in
.handle
== NULL
) {
29029 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29031 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29032 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
29033 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29034 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
29035 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
));
29036 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
29037 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29038 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
29039 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
));
29041 if (flags
& NDR_OUT
) {
29042 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29044 return NDR_ERR_SUCCESS
;
29047 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDataEx
*r
)
29049 uint32_t size_key_name_0
= 0;
29050 uint32_t length_key_name_0
= 0;
29051 uint32_t size_value_name_0
= 0;
29052 uint32_t length_value_name_0
= 0;
29053 TALLOC_CTX
*_mem_save_handle_0
;
29054 if (flags
& NDR_IN
) {
29055 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29056 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
29058 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29059 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
29060 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29061 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
29062 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
29063 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
29064 size_key_name_0
= ndr_get_array_size(ndr
, &r
->in
.key_name
);
29065 length_key_name_0
= ndr_get_array_length(ndr
, &r
->in
.key_name
);
29066 if (length_key_name_0
> size_key_name_0
) {
29067 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_key_name_0
, length_key_name_0
);
29069 NDR_CHECK(ndr_check_string_terminator(ndr
, length_key_name_0
, sizeof(uint16_t)));
29070 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, length_key_name_0
, sizeof(uint16_t), CH_UTF16
));
29071 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
29072 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
29073 size_value_name_0
= ndr_get_array_size(ndr
, &r
->in
.value_name
);
29074 length_value_name_0
= ndr_get_array_length(ndr
, &r
->in
.value_name
);
29075 if (length_value_name_0
> size_value_name_0
) {
29076 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_value_name_0
, length_value_name_0
);
29078 NDR_CHECK(ndr_check_string_terminator(ndr
, length_value_name_0
, sizeof(uint16_t)));
29079 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, length_value_name_0
, sizeof(uint16_t), CH_UTF16
));
29081 if (flags
& NDR_OUT
) {
29082 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29084 return NDR_ERR_SUCCESS
;
29087 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
29089 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDataEx");
29091 if (flags
& NDR_SET_VALUES
) {
29092 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29094 if (flags
& NDR_IN
) {
29095 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDataEx");
29097 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
29099 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
29101 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
29102 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
29105 if (flags
& NDR_OUT
) {
29106 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDataEx");
29108 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29114 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
29116 if (flags
& NDR_IN
) {
29117 if (r
->in
.handle
== NULL
) {
29118 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29120 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29121 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
29122 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29123 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
29124 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
));
29126 if (flags
& NDR_OUT
) {
29127 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29129 return NDR_ERR_SUCCESS
;
29132 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterKey
*r
)
29134 uint32_t size_key_name_0
= 0;
29135 uint32_t length_key_name_0
= 0;
29136 TALLOC_CTX
*_mem_save_handle_0
;
29137 if (flags
& NDR_IN
) {
29138 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29139 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
29141 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29142 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
29143 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29144 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
29145 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
29146 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
29147 size_key_name_0
= ndr_get_array_size(ndr
, &r
->in
.key_name
);
29148 length_key_name_0
= ndr_get_array_length(ndr
, &r
->in
.key_name
);
29149 if (length_key_name_0
> size_key_name_0
) {
29150 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_key_name_0
, length_key_name_0
);
29152 NDR_CHECK(ndr_check_string_terminator(ndr
, length_key_name_0
, sizeof(uint16_t)));
29153 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, length_key_name_0
, sizeof(uint16_t), CH_UTF16
));
29155 if (flags
& NDR_OUT
) {
29156 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29158 return NDR_ERR_SUCCESS
;
29161 _PUBLIC_
void ndr_print_spoolss_DeletePrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
29163 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterKey");
29165 if (flags
& NDR_SET_VALUES
) {
29166 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29168 if (flags
& NDR_IN
) {
29169 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterKey");
29171 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
29173 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
29175 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
29178 if (flags
& NDR_OUT
) {
29179 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterKey");
29181 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29187 static enum ndr_err_code
ndr_push_spoolss_53(struct ndr_push
*ndr
, int flags
, const struct spoolss_53
*r
)
29189 if (flags
& NDR_IN
) {
29191 if (flags
& NDR_OUT
) {
29192 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29194 return NDR_ERR_SUCCESS
;
29197 static enum ndr_err_code
ndr_pull_spoolss_53(struct ndr_pull
*ndr
, int flags
, struct spoolss_53
*r
)
29199 if (flags
& NDR_IN
) {
29201 if (flags
& NDR_OUT
) {
29202 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29204 return NDR_ERR_SUCCESS
;
29207 _PUBLIC_
void ndr_print_spoolss_53(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_53
*r
)
29209 ndr_print_struct(ndr
, name
, "spoolss_53");
29211 if (flags
& NDR_SET_VALUES
) {
29212 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29214 if (flags
& NDR_IN
) {
29215 ndr_print_struct(ndr
, "in", "spoolss_53");
29219 if (flags
& NDR_OUT
) {
29220 ndr_print_struct(ndr
, "out", "spoolss_53");
29222 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29228 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
29230 if (flags
& NDR_IN
) {
29231 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
29232 if (r
->in
.server
) {
29233 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
29234 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29235 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
29236 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29238 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
29239 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29240 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
29241 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29242 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
29243 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29244 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
29245 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29246 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, r
->in
.delete_flags
));
29247 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.version
));
29249 if (flags
& NDR_OUT
) {
29250 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29252 return NDR_ERR_SUCCESS
;
29255 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriverEx
*r
)
29257 uint32_t _ptr_server
;
29258 uint32_t size_server_1
= 0;
29259 uint32_t length_server_1
= 0;
29260 uint32_t size_architecture_0
= 0;
29261 uint32_t length_architecture_0
= 0;
29262 uint32_t size_driver_0
= 0;
29263 uint32_t length_driver_0
= 0;
29264 TALLOC_CTX
*_mem_save_server_0
;
29265 if (flags
& NDR_IN
) {
29266 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
29268 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
29270 r
->in
.server
= NULL
;
29272 if (r
->in
.server
) {
29273 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29274 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
29275 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
29276 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
29277 size_server_1
= ndr_get_array_size(ndr
, &r
->in
.server
);
29278 length_server_1
= ndr_get_array_length(ndr
, &r
->in
.server
);
29279 if (length_server_1
> size_server_1
) {
29280 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_server_1
, length_server_1
);
29282 NDR_CHECK(ndr_check_string_terminator(ndr
, length_server_1
, sizeof(uint16_t)));
29283 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, length_server_1
, sizeof(uint16_t), CH_UTF16
));
29284 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
29286 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
29287 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
29288 size_architecture_0
= ndr_get_array_size(ndr
, &r
->in
.architecture
);
29289 length_architecture_0
= ndr_get_array_length(ndr
, &r
->in
.architecture
);
29290 if (length_architecture_0
> size_architecture_0
) {
29291 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_0
, length_architecture_0
);
29293 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_0
, sizeof(uint16_t)));
29294 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, length_architecture_0
, sizeof(uint16_t), CH_UTF16
));
29295 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
29296 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
29297 size_driver_0
= ndr_get_array_size(ndr
, &r
->in
.driver
);
29298 length_driver_0
= ndr_get_array_length(ndr
, &r
->in
.driver
);
29299 if (length_driver_0
> size_driver_0
) {
29300 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_driver_0
, length_driver_0
);
29302 NDR_CHECK(ndr_check_string_terminator(ndr
, length_driver_0
, sizeof(uint16_t)));
29303 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, length_driver_0
, sizeof(uint16_t), CH_UTF16
));
29304 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, &r
->in
.delete_flags
));
29305 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.version
));
29307 if (flags
& NDR_OUT
) {
29308 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29310 return NDR_ERR_SUCCESS
;
29313 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
29315 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriverEx");
29317 if (flags
& NDR_SET_VALUES
) {
29318 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29320 if (flags
& NDR_IN
) {
29321 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriverEx");
29323 ndr_print_ptr(ndr
, "server", r
->in
.server
);
29325 if (r
->in
.server
) {
29326 ndr_print_string(ndr
, "server", r
->in
.server
);
29329 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
29330 ndr_print_string(ndr
, "driver", r
->in
.driver
);
29331 ndr_print_spoolss_DeleteDriverFlags(ndr
, "delete_flags", r
->in
.delete_flags
);
29332 ndr_print_uint32(ndr
, "version", r
->in
.version
);
29335 if (flags
& NDR_OUT
) {
29336 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriverEx");
29338 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29344 static enum ndr_err_code
ndr_push_spoolss_55(struct ndr_push
*ndr
, int flags
, const struct spoolss_55
*r
)
29346 if (flags
& NDR_IN
) {
29348 if (flags
& NDR_OUT
) {
29349 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29351 return NDR_ERR_SUCCESS
;
29354 static enum ndr_err_code
ndr_pull_spoolss_55(struct ndr_pull
*ndr
, int flags
, struct spoolss_55
*r
)
29356 if (flags
& NDR_IN
) {
29358 if (flags
& NDR_OUT
) {
29359 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29361 return NDR_ERR_SUCCESS
;
29364 _PUBLIC_
void ndr_print_spoolss_55(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_55
*r
)
29366 ndr_print_struct(ndr
, name
, "spoolss_55");
29368 if (flags
& NDR_SET_VALUES
) {
29369 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29371 if (flags
& NDR_IN
) {
29372 ndr_print_struct(ndr
, "in", "spoolss_55");
29376 if (flags
& NDR_OUT
) {
29377 ndr_print_struct(ndr
, "out", "spoolss_55");
29379 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29385 static enum ndr_err_code
ndr_push_spoolss_56(struct ndr_push
*ndr
, int flags
, const struct spoolss_56
*r
)
29387 if (flags
& NDR_IN
) {
29389 if (flags
& NDR_OUT
) {
29390 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29392 return NDR_ERR_SUCCESS
;
29395 static enum ndr_err_code
ndr_pull_spoolss_56(struct ndr_pull
*ndr
, int flags
, struct spoolss_56
*r
)
29397 if (flags
& NDR_IN
) {
29399 if (flags
& NDR_OUT
) {
29400 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29402 return NDR_ERR_SUCCESS
;
29405 _PUBLIC_
void ndr_print_spoolss_56(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_56
*r
)
29407 ndr_print_struct(ndr
, name
, "spoolss_56");
29409 if (flags
& NDR_SET_VALUES
) {
29410 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29412 if (flags
& NDR_IN
) {
29413 ndr_print_struct(ndr
, "in", "spoolss_56");
29417 if (flags
& NDR_OUT
) {
29418 ndr_print_struct(ndr
, "out", "spoolss_56");
29420 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29426 static enum ndr_err_code
ndr_push_spoolss_57(struct ndr_push
*ndr
, int flags
, const struct spoolss_57
*r
)
29428 if (flags
& NDR_IN
) {
29430 if (flags
& NDR_OUT
) {
29431 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29433 return NDR_ERR_SUCCESS
;
29436 static enum ndr_err_code
ndr_pull_spoolss_57(struct ndr_pull
*ndr
, int flags
, struct spoolss_57
*r
)
29438 if (flags
& NDR_IN
) {
29440 if (flags
& NDR_OUT
) {
29441 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29443 return NDR_ERR_SUCCESS
;
29446 _PUBLIC_
void ndr_print_spoolss_57(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_57
*r
)
29448 ndr_print_struct(ndr
, name
, "spoolss_57");
29450 if (flags
& NDR_SET_VALUES
) {
29451 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29453 if (flags
& NDR_IN
) {
29454 ndr_print_struct(ndr
, "in", "spoolss_57");
29458 if (flags
& NDR_OUT
) {
29459 ndr_print_struct(ndr
, "out", "spoolss_57");
29461 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29467 static enum ndr_err_code
ndr_push_spoolss_XcvData(struct ndr_push
*ndr
, int flags
, const struct spoolss_XcvData
*r
)
29469 if (flags
& NDR_IN
) {
29470 if (r
->in
.handle
== NULL
) {
29471 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29473 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29474 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
29475 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29476 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
29477 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
));
29478 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.in_data
));
29479 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.in_data
.length
));
29480 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
29481 if (r
->in
.status_code
== NULL
) {
29482 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29484 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.status_code
));
29486 if (flags
& NDR_OUT
) {
29487 if (r
->out
.out_data
== NULL
) {
29488 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29490 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
29491 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, r
->in
.out_data_size
));
29492 if (r
->out
.needed
== NULL
) {
29493 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29495 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
29496 if (r
->out
.status_code
== NULL
) {
29497 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29499 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.status_code
));
29500 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29502 return NDR_ERR_SUCCESS
;
29505 static enum ndr_err_code
ndr_pull_spoolss_XcvData(struct ndr_pull
*ndr
, int flags
, struct spoolss_XcvData
*r
)
29507 uint32_t size_function_name_0
= 0;
29508 uint32_t length_function_name_0
= 0;
29509 uint32_t size_out_data_1
= 0;
29510 TALLOC_CTX
*_mem_save_handle_0
;
29511 TALLOC_CTX
*_mem_save_needed_0
;
29512 TALLOC_CTX
*_mem_save_status_code_0
;
29513 if (flags
& NDR_IN
) {
29514 ZERO_STRUCT(r
->out
);
29516 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29517 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
29519 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29520 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
29521 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29522 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
29523 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.function_name
));
29524 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.function_name
));
29525 size_function_name_0
= ndr_get_array_size(ndr
, &r
->in
.function_name
);
29526 length_function_name_0
= ndr_get_array_length(ndr
, &r
->in
.function_name
);
29527 if (length_function_name_0
> size_function_name_0
) {
29528 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_function_name_0
, length_function_name_0
);
29530 NDR_CHECK(ndr_check_string_terminator(ndr
, length_function_name_0
, sizeof(uint16_t)));
29531 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.function_name
, length_function_name_0
, sizeof(uint16_t), CH_UTF16
));
29532 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.in_data
));
29533 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._in_data_length
));
29534 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.out_data_size
));
29535 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29536 NDR_PULL_ALLOC(ndr
, r
->in
.status_code
);
29538 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29539 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
29540 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.status_code
));
29541 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
29542 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, r
->in
.out_data_size
);
29543 memset(r
->out
.out_data
, 0, (r
->in
.out_data_size
) * sizeof(*r
->out
.out_data
));
29544 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
29545 ZERO_STRUCTP(r
->out
.needed
);
29546 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
29547 *r
->out
.status_code
= *r
->in
.status_code
;
29549 if (flags
& NDR_OUT
) {
29550 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.out_data
));
29551 size_out_data_1
= ndr_get_array_size(ndr
, &r
->out
.out_data
);
29552 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29553 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, size_out_data_1
);
29555 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, size_out_data_1
));
29556 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29557 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
29559 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29560 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
29561 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
29562 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
29563 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29564 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
29566 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29567 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
29568 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.status_code
));
29569 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
29570 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29571 if (r
->out
.out_data
) {
29572 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.out_data
, r
->in
.out_data_size
));
29575 return NDR_ERR_SUCCESS
;
29578 _PUBLIC_
void ndr_print_spoolss_XcvData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_XcvData
*r
)
29580 ndr_print_struct(ndr
, name
, "spoolss_XcvData");
29582 if (flags
& NDR_SET_VALUES
) {
29583 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29585 if (flags
& NDR_IN
) {
29586 ndr_print_struct(ndr
, "in", "spoolss_XcvData");
29588 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
29590 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
29592 ndr_print_string(ndr
, "function_name", r
->in
.function_name
);
29593 ndr_print_DATA_BLOB(ndr
, "in_data", r
->in
.in_data
);
29594 ndr_print_uint32(ndr
, "_in_data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.in_data
.length
:r
->in
._in_data_length
);
29595 ndr_print_uint32(ndr
, "out_data_size", r
->in
.out_data_size
);
29596 ndr_print_ptr(ndr
, "status_code", r
->in
.status_code
);
29598 ndr_print_uint32(ndr
, "status_code", *r
->in
.status_code
);
29602 if (flags
& NDR_OUT
) {
29603 ndr_print_struct(ndr
, "out", "spoolss_XcvData");
29605 ndr_print_ptr(ndr
, "out_data", r
->out
.out_data
);
29607 ndr_print_array_uint8(ndr
, "out_data", r
->out
.out_data
, r
->in
.out_data_size
);
29609 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
29611 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
29613 ndr_print_ptr(ndr
, "status_code", r
->out
.status_code
);
29615 ndr_print_uint32(ndr
, "status_code", *r
->out
.status_code
);
29617 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29623 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
29625 if (flags
& NDR_IN
) {
29626 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
29627 if (r
->in
.servername
) {
29628 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
29629 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29630 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
29631 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29633 if (r
->in
.info_ctr
== NULL
) {
29634 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29636 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
29637 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
29639 if (flags
& NDR_OUT
) {
29640 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29642 return NDR_ERR_SUCCESS
;
29645 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriverEx
*r
)
29647 uint32_t _ptr_servername
;
29648 uint32_t size_servername_1
= 0;
29649 uint32_t length_servername_1
= 0;
29650 TALLOC_CTX
*_mem_save_servername_0
;
29651 TALLOC_CTX
*_mem_save_info_ctr_0
;
29652 if (flags
& NDR_IN
) {
29653 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
29654 if (_ptr_servername
) {
29655 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
29657 r
->in
.servername
= NULL
;
29659 if (r
->in
.servername
) {
29660 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29661 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
29662 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
29663 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
29664 size_servername_1
= ndr_get_array_size(ndr
, &r
->in
.servername
);
29665 length_servername_1
= ndr_get_array_length(ndr
, &r
->in
.servername
);
29666 if (length_servername_1
> size_servername_1
) {
29667 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
29669 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
29670 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
29671 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
29673 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29674 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
29676 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29677 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
29678 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
29679 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
29680 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
29682 if (flags
& NDR_OUT
) {
29683 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29685 return NDR_ERR_SUCCESS
;
29688 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
29690 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriverEx");
29692 if (flags
& NDR_SET_VALUES
) {
29693 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29695 if (flags
& NDR_IN
) {
29696 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriverEx");
29698 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
29700 if (r
->in
.servername
) {
29701 ndr_print_string(ndr
, "servername", r
->in
.servername
);
29704 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
29706 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
29708 ndr_print_spoolss_AddPrinterDriverExFlags(ndr
, "flags", r
->in
.flags
);
29711 if (flags
& NDR_OUT
) {
29712 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriverEx");
29714 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29720 static enum ndr_err_code
ndr_push_spoolss_5a(struct ndr_push
*ndr
, int flags
, const struct spoolss_5a
*r
)
29722 if (flags
& NDR_IN
) {
29724 if (flags
& NDR_OUT
) {
29725 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29727 return NDR_ERR_SUCCESS
;
29730 static enum ndr_err_code
ndr_pull_spoolss_5a(struct ndr_pull
*ndr
, int flags
, struct spoolss_5a
*r
)
29732 if (flags
& NDR_IN
) {
29734 if (flags
& NDR_OUT
) {
29735 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29737 return NDR_ERR_SUCCESS
;
29740 _PUBLIC_
void ndr_print_spoolss_5a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5a
*r
)
29742 ndr_print_struct(ndr
, name
, "spoolss_5a");
29744 if (flags
& NDR_SET_VALUES
) {
29745 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29747 if (flags
& NDR_IN
) {
29748 ndr_print_struct(ndr
, "in", "spoolss_5a");
29752 if (flags
& NDR_OUT
) {
29753 ndr_print_struct(ndr
, "out", "spoolss_5a");
29755 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29761 static enum ndr_err_code
ndr_push_spoolss_5b(struct ndr_push
*ndr
, int flags
, const struct spoolss_5b
*r
)
29763 if (flags
& NDR_IN
) {
29765 if (flags
& NDR_OUT
) {
29766 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29768 return NDR_ERR_SUCCESS
;
29771 static enum ndr_err_code
ndr_pull_spoolss_5b(struct ndr_pull
*ndr
, int flags
, struct spoolss_5b
*r
)
29773 if (flags
& NDR_IN
) {
29775 if (flags
& NDR_OUT
) {
29776 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29778 return NDR_ERR_SUCCESS
;
29781 _PUBLIC_
void ndr_print_spoolss_5b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5b
*r
)
29783 ndr_print_struct(ndr
, name
, "spoolss_5b");
29785 if (flags
& NDR_SET_VALUES
) {
29786 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29788 if (flags
& NDR_IN
) {
29789 ndr_print_struct(ndr
, "in", "spoolss_5b");
29793 if (flags
& NDR_OUT
) {
29794 ndr_print_struct(ndr
, "out", "spoolss_5b");
29796 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29802 static enum ndr_err_code
ndr_push_spoolss_5c(struct ndr_push
*ndr
, int flags
, const struct spoolss_5c
*r
)
29804 if (flags
& NDR_IN
) {
29806 if (flags
& NDR_OUT
) {
29807 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29809 return NDR_ERR_SUCCESS
;
29812 static enum ndr_err_code
ndr_pull_spoolss_5c(struct ndr_pull
*ndr
, int flags
, struct spoolss_5c
*r
)
29814 if (flags
& NDR_IN
) {
29816 if (flags
& NDR_OUT
) {
29817 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29819 return NDR_ERR_SUCCESS
;
29822 _PUBLIC_
void ndr_print_spoolss_5c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5c
*r
)
29824 ndr_print_struct(ndr
, name
, "spoolss_5c");
29826 if (flags
& NDR_SET_VALUES
) {
29827 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29829 if (flags
& NDR_IN
) {
29830 ndr_print_struct(ndr
, "in", "spoolss_5c");
29834 if (flags
& NDR_OUT
) {
29835 ndr_print_struct(ndr
, "out", "spoolss_5c");
29837 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29843 static enum ndr_err_code
ndr_push_spoolss_5d(struct ndr_push
*ndr
, int flags
, const struct spoolss_5d
*r
)
29845 if (flags
& NDR_IN
) {
29847 if (flags
& NDR_OUT
) {
29848 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29850 return NDR_ERR_SUCCESS
;
29853 static enum ndr_err_code
ndr_pull_spoolss_5d(struct ndr_pull
*ndr
, int flags
, struct spoolss_5d
*r
)
29855 if (flags
& NDR_IN
) {
29857 if (flags
& NDR_OUT
) {
29858 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29860 return NDR_ERR_SUCCESS
;
29863 _PUBLIC_
void ndr_print_spoolss_5d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5d
*r
)
29865 ndr_print_struct(ndr
, name
, "spoolss_5d");
29867 if (flags
& NDR_SET_VALUES
) {
29868 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29870 if (flags
& NDR_IN
) {
29871 ndr_print_struct(ndr
, "in", "spoolss_5d");
29875 if (flags
& NDR_OUT
) {
29876 ndr_print_struct(ndr
, "out", "spoolss_5d");
29878 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29884 static enum ndr_err_code
ndr_push_spoolss_5e(struct ndr_push
*ndr
, int flags
, const struct spoolss_5e
*r
)
29886 if (flags
& NDR_IN
) {
29888 if (flags
& NDR_OUT
) {
29889 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29891 return NDR_ERR_SUCCESS
;
29894 static enum ndr_err_code
ndr_pull_spoolss_5e(struct ndr_pull
*ndr
, int flags
, struct spoolss_5e
*r
)
29896 if (flags
& NDR_IN
) {
29898 if (flags
& NDR_OUT
) {
29899 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29901 return NDR_ERR_SUCCESS
;
29904 _PUBLIC_
void ndr_print_spoolss_5e(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5e
*r
)
29906 ndr_print_struct(ndr
, name
, "spoolss_5e");
29908 if (flags
& NDR_SET_VALUES
) {
29909 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29911 if (flags
& NDR_IN
) {
29912 ndr_print_struct(ndr
, "in", "spoolss_5e");
29916 if (flags
& NDR_OUT
) {
29917 ndr_print_struct(ndr
, "out", "spoolss_5e");
29919 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29925 static enum ndr_err_code
ndr_push_spoolss_5f(struct ndr_push
*ndr
, int flags
, const struct spoolss_5f
*r
)
29927 if (flags
& NDR_IN
) {
29929 if (flags
& NDR_OUT
) {
29930 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29932 return NDR_ERR_SUCCESS
;
29935 static enum ndr_err_code
ndr_pull_spoolss_5f(struct ndr_pull
*ndr
, int flags
, struct spoolss_5f
*r
)
29937 if (flags
& NDR_IN
) {
29939 if (flags
& NDR_OUT
) {
29940 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29942 return NDR_ERR_SUCCESS
;
29945 _PUBLIC_
void ndr_print_spoolss_5f(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5f
*r
)
29947 ndr_print_struct(ndr
, name
, "spoolss_5f");
29949 if (flags
& NDR_SET_VALUES
) {
29950 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29952 if (flags
& NDR_IN
) {
29953 ndr_print_struct(ndr
, "in", "spoolss_5f");
29957 if (flags
& NDR_OUT
) {
29958 ndr_print_struct(ndr
, "out", "spoolss_5f");
29960 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29966 static enum ndr_err_code
ndr_push_spoolss_60(struct ndr_push
*ndr
, int flags
, const struct spoolss_60
*r
)
29968 if (flags
& NDR_IN
) {
29970 if (flags
& NDR_OUT
) {
29971 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29973 return NDR_ERR_SUCCESS
;
29976 static enum ndr_err_code
ndr_pull_spoolss_60(struct ndr_pull
*ndr
, int flags
, struct spoolss_60
*r
)
29978 if (flags
& NDR_IN
) {
29980 if (flags
& NDR_OUT
) {
29981 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29983 return NDR_ERR_SUCCESS
;
29986 _PUBLIC_
void ndr_print_spoolss_60(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_60
*r
)
29988 ndr_print_struct(ndr
, name
, "spoolss_60");
29990 if (flags
& NDR_SET_VALUES
) {
29991 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29993 if (flags
& NDR_IN
) {
29994 ndr_print_struct(ndr
, "in", "spoolss_60");
29998 if (flags
& NDR_OUT
) {
29999 ndr_print_struct(ndr
, "out", "spoolss_60");
30001 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30007 static enum ndr_err_code
ndr_push_spoolss_61(struct ndr_push
*ndr
, int flags
, const struct spoolss_61
*r
)
30009 if (flags
& NDR_IN
) {
30011 if (flags
& NDR_OUT
) {
30012 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30014 return NDR_ERR_SUCCESS
;
30017 static enum ndr_err_code
ndr_pull_spoolss_61(struct ndr_pull
*ndr
, int flags
, struct spoolss_61
*r
)
30019 if (flags
& NDR_IN
) {
30021 if (flags
& NDR_OUT
) {
30022 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30024 return NDR_ERR_SUCCESS
;
30027 _PUBLIC_
void ndr_print_spoolss_61(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_61
*r
)
30029 ndr_print_struct(ndr
, name
, "spoolss_61");
30031 if (flags
& NDR_SET_VALUES
) {
30032 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30034 if (flags
& NDR_IN
) {
30035 ndr_print_struct(ndr
, "in", "spoolss_61");
30039 if (flags
& NDR_OUT
) {
30040 ndr_print_struct(ndr
, "out", "spoolss_61");
30042 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30048 static enum ndr_err_code
ndr_push_spoolss_62(struct ndr_push
*ndr
, int flags
, const struct spoolss_62
*r
)
30050 if (flags
& NDR_IN
) {
30052 if (flags
& NDR_OUT
) {
30053 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30055 return NDR_ERR_SUCCESS
;
30058 static enum ndr_err_code
ndr_pull_spoolss_62(struct ndr_pull
*ndr
, int flags
, struct spoolss_62
*r
)
30060 if (flags
& NDR_IN
) {
30062 if (flags
& NDR_OUT
) {
30063 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30065 return NDR_ERR_SUCCESS
;
30068 _PUBLIC_
void ndr_print_spoolss_62(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_62
*r
)
30070 ndr_print_struct(ndr
, name
, "spoolss_62");
30072 if (flags
& NDR_SET_VALUES
) {
30073 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30075 if (flags
& NDR_IN
) {
30076 ndr_print_struct(ndr
, "in", "spoolss_62");
30080 if (flags
& NDR_OUT
) {
30081 ndr_print_struct(ndr
, "out", "spoolss_62");
30083 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30089 static enum ndr_err_code
ndr_push_spoolss_63(struct ndr_push
*ndr
, int flags
, const struct spoolss_63
*r
)
30091 if (flags
& NDR_IN
) {
30093 if (flags
& NDR_OUT
) {
30094 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30096 return NDR_ERR_SUCCESS
;
30099 static enum ndr_err_code
ndr_pull_spoolss_63(struct ndr_pull
*ndr
, int flags
, struct spoolss_63
*r
)
30101 if (flags
& NDR_IN
) {
30103 if (flags
& NDR_OUT
) {
30104 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30106 return NDR_ERR_SUCCESS
;
30109 _PUBLIC_
void ndr_print_spoolss_63(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_63
*r
)
30111 ndr_print_struct(ndr
, name
, "spoolss_63");
30113 if (flags
& NDR_SET_VALUES
) {
30114 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30116 if (flags
& NDR_IN
) {
30117 ndr_print_struct(ndr
, "in", "spoolss_63");
30121 if (flags
& NDR_OUT
) {
30122 ndr_print_struct(ndr
, "out", "spoolss_63");
30124 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30130 static enum ndr_err_code
ndr_push_spoolss_64(struct ndr_push
*ndr
, int flags
, const struct spoolss_64
*r
)
30132 if (flags
& NDR_IN
) {
30134 if (flags
& NDR_OUT
) {
30135 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30137 return NDR_ERR_SUCCESS
;
30140 static enum ndr_err_code
ndr_pull_spoolss_64(struct ndr_pull
*ndr
, int flags
, struct spoolss_64
*r
)
30142 if (flags
& NDR_IN
) {
30144 if (flags
& NDR_OUT
) {
30145 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30147 return NDR_ERR_SUCCESS
;
30150 _PUBLIC_
void ndr_print_spoolss_64(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_64
*r
)
30152 ndr_print_struct(ndr
, name
, "spoolss_64");
30154 if (flags
& NDR_SET_VALUES
) {
30155 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30157 if (flags
& NDR_IN
) {
30158 ndr_print_struct(ndr
, "in", "spoolss_64");
30162 if (flags
& NDR_OUT
) {
30163 ndr_print_struct(ndr
, "out", "spoolss_64");
30165 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30171 static enum ndr_err_code
ndr_push_spoolss_65(struct ndr_push
*ndr
, int flags
, const struct spoolss_65
*r
)
30173 if (flags
& NDR_IN
) {
30175 if (flags
& NDR_OUT
) {
30176 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30178 return NDR_ERR_SUCCESS
;
30181 static enum ndr_err_code
ndr_pull_spoolss_65(struct ndr_pull
*ndr
, int flags
, struct spoolss_65
*r
)
30183 if (flags
& NDR_IN
) {
30185 if (flags
& NDR_OUT
) {
30186 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30188 return NDR_ERR_SUCCESS
;
30191 _PUBLIC_
void ndr_print_spoolss_65(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_65
*r
)
30193 ndr_print_struct(ndr
, name
, "spoolss_65");
30195 if (flags
& NDR_SET_VALUES
) {
30196 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30198 if (flags
& NDR_IN
) {
30199 ndr_print_struct(ndr
, "in", "spoolss_65");
30203 if (flags
& NDR_OUT
) {
30204 ndr_print_struct(ndr
, "out", "spoolss_65");
30206 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30212 static enum ndr_err_code
ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetCorePrinterDrivers
*r
)
30214 uint32_t cntr_core_printer_drivers_1
;
30215 if (flags
& NDR_IN
) {
30216 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
30217 if (r
->in
.servername
) {
30218 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
30219 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30220 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
30221 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30223 if (r
->in
.architecture
== NULL
) {
30224 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30226 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
30227 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30228 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
30229 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30230 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.core_driver_size
));
30231 if (r
->in
.core_driver_dependencies
== NULL
) {
30232 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30234 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.core_driver_size
));
30235 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.core_driver_dependencies
, r
->in
.core_driver_size
, sizeof(uint16_t), CH_UTF16
));
30236 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.core_printer_driver_count
));
30238 if (flags
& NDR_OUT
) {
30239 if (r
->out
.core_printer_drivers
== NULL
) {
30240 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30242 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.core_printer_driver_count
));
30243 for (cntr_core_printer_drivers_1
= 0; cntr_core_printer_drivers_1
< r
->in
.core_printer_driver_count
; cntr_core_printer_drivers_1
++) {
30244 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr
, NDR_SCALARS
, &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]));
30246 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30248 return NDR_ERR_SUCCESS
;
30251 static enum ndr_err_code
ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetCorePrinterDrivers
*r
)
30253 uint32_t _ptr_servername
;
30254 uint32_t size_servername_1
= 0;
30255 uint32_t length_servername_1
= 0;
30256 uint32_t size_architecture_1
= 0;
30257 uint32_t length_architecture_1
= 0;
30258 uint32_t size_core_driver_dependencies_1
= 0;
30259 uint32_t size_core_printer_drivers_1
= 0;
30260 uint32_t cntr_core_printer_drivers_1
;
30261 TALLOC_CTX
*_mem_save_servername_0
;
30262 TALLOC_CTX
*_mem_save_core_printer_drivers_1
;
30263 if (flags
& NDR_IN
) {
30264 ZERO_STRUCT(r
->out
);
30266 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
30267 if (_ptr_servername
) {
30268 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
30270 r
->in
.servername
= NULL
;
30272 if (r
->in
.servername
) {
30273 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30274 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
30275 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
30276 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
30277 size_servername_1
= ndr_get_array_size(ndr
, &r
->in
.servername
);
30278 length_servername_1
= ndr_get_array_length(ndr
, &r
->in
.servername
);
30279 if (length_servername_1
> size_servername_1
) {
30280 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
30282 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
30283 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
30284 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
30286 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
30287 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
30288 size_architecture_1
= ndr_get_array_size(ndr
, &r
->in
.architecture
);
30289 length_architecture_1
= ndr_get_array_length(ndr
, &r
->in
.architecture
);
30290 if (length_architecture_1
> size_architecture_1
) {
30291 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_1
, length_architecture_1
);
30293 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_1
, sizeof(uint16_t)));
30294 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, length_architecture_1
, sizeof(uint16_t), CH_UTF16
));
30295 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.core_driver_size
));
30296 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.core_driver_dependencies
));
30297 size_core_driver_dependencies_1
= ndr_get_array_size(ndr
, &r
->in
.core_driver_dependencies
);
30298 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.core_driver_dependencies
, size_core_driver_dependencies_1
, sizeof(uint16_t), CH_UTF16
));
30299 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.core_printer_driver_count
));
30300 NDR_PULL_ALLOC_N(ndr
, r
->out
.core_printer_drivers
, r
->in
.core_printer_driver_count
);
30301 memset(r
->out
.core_printer_drivers
, 0, (r
->in
.core_printer_driver_count
) * sizeof(*r
->out
.core_printer_drivers
));
30302 if (r
->in
.core_driver_dependencies
) {
30303 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.core_driver_dependencies
, r
->in
.core_driver_size
));
30306 if (flags
& NDR_OUT
) {
30307 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.core_printer_drivers
));
30308 size_core_printer_drivers_1
= ndr_get_array_size(ndr
, &r
->out
.core_printer_drivers
);
30309 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
30310 NDR_PULL_ALLOC_N(ndr
, r
->out
.core_printer_drivers
, size_core_printer_drivers_1
);
30312 _mem_save_core_printer_drivers_1
= NDR_PULL_GET_MEM_CTX(ndr
);
30313 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.core_printer_drivers
, 0);
30314 for (cntr_core_printer_drivers_1
= 0; cntr_core_printer_drivers_1
< size_core_printer_drivers_1
; cntr_core_printer_drivers_1
++) {
30315 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr
, NDR_SCALARS
, &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]));
30317 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_printer_drivers_1
, 0);
30318 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30319 if (r
->out
.core_printer_drivers
) {
30320 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.core_printer_drivers
, r
->in
.core_printer_driver_count
));
30323 return NDR_ERR_SUCCESS
;
30326 _PUBLIC_
void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetCorePrinterDrivers
*r
)
30328 uint32_t cntr_core_printer_drivers_1
;
30329 ndr_print_struct(ndr
, name
, "spoolss_GetCorePrinterDrivers");
30331 if (flags
& NDR_SET_VALUES
) {
30332 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30334 if (flags
& NDR_IN
) {
30335 ndr_print_struct(ndr
, "in", "spoolss_GetCorePrinterDrivers");
30337 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
30339 if (r
->in
.servername
) {
30340 ndr_print_string(ndr
, "servername", r
->in
.servername
);
30343 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
30345 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
30347 ndr_print_uint32(ndr
, "core_driver_size", r
->in
.core_driver_size
);
30348 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->in
.core_driver_dependencies
);
30350 ndr_print_string(ndr
, "core_driver_dependencies", r
->in
.core_driver_dependencies
);
30352 ndr_print_uint32(ndr
, "core_printer_driver_count", r
->in
.core_printer_driver_count
);
30355 if (flags
& NDR_OUT
) {
30356 ndr_print_struct(ndr
, "out", "spoolss_GetCorePrinterDrivers");
30358 ndr_print_ptr(ndr
, "core_printer_drivers", r
->out
.core_printer_drivers
);
30360 ndr
->print(ndr
, "%s: ARRAY(%d)", "core_printer_drivers", (int)r
->in
.core_printer_driver_count
);
30362 for (cntr_core_printer_drivers_1
=0;cntr_core_printer_drivers_1
<r
->in
.core_printer_driver_count
;cntr_core_printer_drivers_1
++) {
30364 if (asprintf(&idx_1
, "[%d]", cntr_core_printer_drivers_1
) != -1) {
30365 ndr_print_spoolss_CorePrinterDriver(ndr
, "core_printer_drivers", &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]);
30371 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30377 static enum ndr_err_code
ndr_push_spoolss_67(struct ndr_push
*ndr
, int flags
, const struct spoolss_67
*r
)
30379 if (flags
& NDR_IN
) {
30381 if (flags
& NDR_OUT
) {
30382 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30384 return NDR_ERR_SUCCESS
;
30387 static enum ndr_err_code
ndr_pull_spoolss_67(struct ndr_pull
*ndr
, int flags
, struct spoolss_67
*r
)
30389 if (flags
& NDR_IN
) {
30391 if (flags
& NDR_OUT
) {
30392 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30394 return NDR_ERR_SUCCESS
;
30397 _PUBLIC_
void ndr_print_spoolss_67(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_67
*r
)
30399 ndr_print_struct(ndr
, name
, "spoolss_67");
30401 if (flags
& NDR_SET_VALUES
) {
30402 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30404 if (flags
& NDR_IN
) {
30405 ndr_print_struct(ndr
, "in", "spoolss_67");
30409 if (flags
& NDR_OUT
) {
30410 ndr_print_struct(ndr
, "out", "spoolss_67");
30412 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30418 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverPackagePath
*r
)
30420 if (flags
& NDR_IN
) {
30421 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
30422 if (r
->in
.servername
) {
30423 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
30424 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30425 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
30426 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30428 if (r
->in
.architecture
== NULL
) {
30429 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30431 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
30432 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30433 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
30434 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30435 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.language
));
30436 if (r
->in
.language
) {
30437 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.language
, CH_UTF16
)));
30438 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30439 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.language
, CH_UTF16
)));
30440 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.language
, ndr_charset_length(r
->in
.language
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30442 if (r
->in
.package_id
== NULL
) {
30443 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30445 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.package_id
, CH_UTF16
)));
30446 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30447 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.package_id
, CH_UTF16
)));
30448 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.package_id
, ndr_charset_length(r
->in
.package_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30449 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.driver_package_cab
));
30450 if (r
->in
.driver_package_cab
) {
30451 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
30452 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab
, r
->in
.driver_package_cab_size
, sizeof(uint16_t), CH_UTF16
));
30454 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
30456 if (flags
& NDR_OUT
) {
30457 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.driver_package_cab
));
30458 if (r
->out
.driver_package_cab
) {
30459 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
30460 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.driver_package_cab
, r
->in
.driver_package_cab_size
, sizeof(uint16_t), CH_UTF16
));
30462 if (r
->out
.required
== NULL
) {
30463 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30465 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.required
));
30466 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30468 return NDR_ERR_SUCCESS
;
30471 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverPackagePath
*r
)
30473 uint32_t _ptr_servername
;
30474 uint32_t size_servername_1
= 0;
30475 uint32_t length_servername_1
= 0;
30476 uint32_t size_architecture_1
= 0;
30477 uint32_t length_architecture_1
= 0;
30478 uint32_t _ptr_language
;
30479 uint32_t size_language_1
= 0;
30480 uint32_t length_language_1
= 0;
30481 uint32_t size_package_id_1
= 0;
30482 uint32_t length_package_id_1
= 0;
30483 uint32_t _ptr_driver_package_cab
;
30484 uint32_t size_driver_package_cab_1
= 0;
30485 TALLOC_CTX
*_mem_save_servername_0
;
30486 TALLOC_CTX
*_mem_save_language_0
;
30487 TALLOC_CTX
*_mem_save_driver_package_cab_0
;
30488 TALLOC_CTX
*_mem_save_required_0
;
30489 if (flags
& NDR_IN
) {
30490 ZERO_STRUCT(r
->out
);
30492 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
30493 if (_ptr_servername
) {
30494 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
30496 r
->in
.servername
= NULL
;
30498 if (r
->in
.servername
) {
30499 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30500 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
30501 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
30502 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
30503 size_servername_1
= ndr_get_array_size(ndr
, &r
->in
.servername
);
30504 length_servername_1
= ndr_get_array_length(ndr
, &r
->in
.servername
);
30505 if (length_servername_1
> size_servername_1
) {
30506 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_servername_1
, length_servername_1
);
30508 NDR_CHECK(ndr_check_string_terminator(ndr
, length_servername_1
, sizeof(uint16_t)));
30509 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, length_servername_1
, sizeof(uint16_t), CH_UTF16
));
30510 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
30512 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
30513 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
30514 size_architecture_1
= ndr_get_array_size(ndr
, &r
->in
.architecture
);
30515 length_architecture_1
= ndr_get_array_length(ndr
, &r
->in
.architecture
);
30516 if (length_architecture_1
> size_architecture_1
) {
30517 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_architecture_1
, length_architecture_1
);
30519 NDR_CHECK(ndr_check_string_terminator(ndr
, length_architecture_1
, sizeof(uint16_t)));
30520 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, length_architecture_1
, sizeof(uint16_t), CH_UTF16
));
30521 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_language
));
30522 if (_ptr_language
) {
30523 NDR_PULL_ALLOC(ndr
, r
->in
.language
);
30525 r
->in
.language
= NULL
;
30527 if (r
->in
.language
) {
30528 _mem_save_language_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30529 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.language
, 0);
30530 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.language
));
30531 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.language
));
30532 size_language_1
= ndr_get_array_size(ndr
, &r
->in
.language
);
30533 length_language_1
= ndr_get_array_length(ndr
, &r
->in
.language
);
30534 if (length_language_1
> size_language_1
) {
30535 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_language_1
, length_language_1
);
30537 NDR_CHECK(ndr_check_string_terminator(ndr
, length_language_1
, sizeof(uint16_t)));
30538 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.language
, length_language_1
, sizeof(uint16_t), CH_UTF16
));
30539 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_language_0
, 0);
30541 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.package_id
));
30542 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.package_id
));
30543 size_package_id_1
= ndr_get_array_size(ndr
, &r
->in
.package_id
);
30544 length_package_id_1
= ndr_get_array_length(ndr
, &r
->in
.package_id
);
30545 if (length_package_id_1
> size_package_id_1
) {
30546 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", size_package_id_1
, length_package_id_1
);
30548 NDR_CHECK(ndr_check_string_terminator(ndr
, length_package_id_1
, sizeof(uint16_t)));
30549 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.package_id
, length_package_id_1
, sizeof(uint16_t), CH_UTF16
));
30550 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_package_cab
));
30551 if (_ptr_driver_package_cab
) {
30552 NDR_PULL_ALLOC(ndr
, r
->in
.driver_package_cab
);
30554 r
->in
.driver_package_cab
= NULL
;
30556 if (r
->in
.driver_package_cab
) {
30557 _mem_save_driver_package_cab_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30558 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.driver_package_cab
, 0);
30559 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver_package_cab
));
30560 size_driver_package_cab_1
= ndr_get_array_size(ndr
, &r
->in
.driver_package_cab
);
30561 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver_package_cab
, size_driver_package_cab_1
, sizeof(uint16_t), CH_UTF16
));
30562 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_package_cab_0
, 0);
30564 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.driver_package_cab_size
));
30565 NDR_PULL_ALLOC(ndr
, r
->out
.required
);
30566 ZERO_STRUCTP(r
->out
.required
);
30567 if (r
->in
.driver_package_cab
) {
30568 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.driver_package_cab
, r
->in
.driver_package_cab_size
));
30571 if (flags
& NDR_OUT
) {
30572 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_package_cab
));
30573 if (_ptr_driver_package_cab
) {
30574 NDR_PULL_ALLOC(ndr
, r
->out
.driver_package_cab
);
30576 r
->out
.driver_package_cab
= NULL
;
30578 if (r
->out
.driver_package_cab
) {
30579 _mem_save_driver_package_cab_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30580 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.driver_package_cab
, 0);
30581 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.driver_package_cab
));
30582 size_driver_package_cab_1
= ndr_get_array_size(ndr
, &r
->out
.driver_package_cab
);
30583 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->out
.driver_package_cab
, size_driver_package_cab_1
, sizeof(uint16_t), CH_UTF16
));
30584 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_package_cab_0
, 0);
30586 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
30587 NDR_PULL_ALLOC(ndr
, r
->out
.required
);
30589 _mem_save_required_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30590 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.required
, LIBNDR_FLAG_REF_ALLOC
);
30591 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.required
));
30592 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_required_0
, LIBNDR_FLAG_REF_ALLOC
);
30593 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30594 if (r
->out
.driver_package_cab
) {
30595 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.driver_package_cab
, r
->in
.driver_package_cab_size
));
30598 return NDR_ERR_SUCCESS
;
30601 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverPackagePath
*r
)
30603 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverPackagePath");
30605 if (flags
& NDR_SET_VALUES
) {
30606 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30608 if (flags
& NDR_IN
) {
30609 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverPackagePath");
30611 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
30613 if (r
->in
.servername
) {
30614 ndr_print_string(ndr
, "servername", r
->in
.servername
);
30617 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
30619 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
30621 ndr_print_ptr(ndr
, "language", r
->in
.language
);
30623 if (r
->in
.language
) {
30624 ndr_print_string(ndr
, "language", r
->in
.language
);
30627 ndr_print_ptr(ndr
, "package_id", r
->in
.package_id
);
30629 ndr_print_string(ndr
, "package_id", r
->in
.package_id
);
30631 ndr_print_ptr(ndr
, "driver_package_cab", r
->in
.driver_package_cab
);
30633 if (r
->in
.driver_package_cab
) {
30634 ndr_print_string(ndr
, "driver_package_cab", r
->in
.driver_package_cab
);
30637 ndr_print_uint32(ndr
, "driver_package_cab_size", r
->in
.driver_package_cab_size
);
30640 if (flags
& NDR_OUT
) {
30641 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverPackagePath");
30643 ndr_print_ptr(ndr
, "driver_package_cab", r
->out
.driver_package_cab
);
30645 if (r
->out
.driver_package_cab
) {
30646 ndr_print_string(ndr
, "driver_package_cab", r
->out
.driver_package_cab
);
30649 ndr_print_ptr(ndr
, "required", r
->out
.required
);
30651 ndr_print_uint32(ndr
, "required", *r
->out
.required
);
30653 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30659 static enum ndr_err_code
ndr_push_spoolss_69(struct ndr_push
*ndr
, int flags
, const struct spoolss_69
*r
)
30661 if (flags
& NDR_IN
) {
30663 if (flags
& NDR_OUT
) {
30664 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30666 return NDR_ERR_SUCCESS
;
30669 static enum ndr_err_code
ndr_pull_spoolss_69(struct ndr_pull
*ndr
, int flags
, struct spoolss_69
*r
)
30671 if (flags
& NDR_IN
) {
30673 if (flags
& NDR_OUT
) {
30674 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30676 return NDR_ERR_SUCCESS
;
30679 _PUBLIC_
void ndr_print_spoolss_69(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_69
*r
)
30681 ndr_print_struct(ndr
, name
, "spoolss_69");
30683 if (flags
& NDR_SET_VALUES
) {
30684 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30686 if (flags
& NDR_IN
) {
30687 ndr_print_struct(ndr
, "in", "spoolss_69");
30691 if (flags
& NDR_OUT
) {
30692 ndr_print_struct(ndr
, "out", "spoolss_69");
30694 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30700 static enum ndr_err_code
ndr_push_spoolss_6a(struct ndr_push
*ndr
, int flags
, const struct spoolss_6a
*r
)
30702 if (flags
& NDR_IN
) {
30704 if (flags
& NDR_OUT
) {
30705 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30707 return NDR_ERR_SUCCESS
;
30710 static enum ndr_err_code
ndr_pull_spoolss_6a(struct ndr_pull
*ndr
, int flags
, struct spoolss_6a
*r
)
30712 if (flags
& NDR_IN
) {
30714 if (flags
& NDR_OUT
) {
30715 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30717 return NDR_ERR_SUCCESS
;
30720 _PUBLIC_
void ndr_print_spoolss_6a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6a
*r
)
30722 ndr_print_struct(ndr
, name
, "spoolss_6a");
30724 if (flags
& NDR_SET_VALUES
) {
30725 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30727 if (flags
& NDR_IN
) {
30728 ndr_print_struct(ndr
, "in", "spoolss_6a");
30732 if (flags
& NDR_OUT
) {
30733 ndr_print_struct(ndr
, "out", "spoolss_6a");
30735 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30741 static enum ndr_err_code
ndr_push_spoolss_6b(struct ndr_push
*ndr
, int flags
, const struct spoolss_6b
*r
)
30743 if (flags
& NDR_IN
) {
30745 if (flags
& NDR_OUT
) {
30746 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30748 return NDR_ERR_SUCCESS
;
30751 static enum ndr_err_code
ndr_pull_spoolss_6b(struct ndr_pull
*ndr
, int flags
, struct spoolss_6b
*r
)
30753 if (flags
& NDR_IN
) {
30755 if (flags
& NDR_OUT
) {
30756 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30758 return NDR_ERR_SUCCESS
;
30761 _PUBLIC_
void ndr_print_spoolss_6b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6b
*r
)
30763 ndr_print_struct(ndr
, name
, "spoolss_6b");
30765 if (flags
& NDR_SET_VALUES
) {
30766 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30768 if (flags
& NDR_IN
) {
30769 ndr_print_struct(ndr
, "in", "spoolss_6b");
30773 if (flags
& NDR_OUT
) {
30774 ndr_print_struct(ndr
, "out", "spoolss_6b");
30776 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30782 static enum ndr_err_code
ndr_push_spoolss_6c(struct ndr_push
*ndr
, int flags
, const struct spoolss_6c
*r
)
30784 if (flags
& NDR_IN
) {
30786 if (flags
& NDR_OUT
) {
30787 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30789 return NDR_ERR_SUCCESS
;
30792 static enum ndr_err_code
ndr_pull_spoolss_6c(struct ndr_pull
*ndr
, int flags
, struct spoolss_6c
*r
)
30794 if (flags
& NDR_IN
) {
30796 if (flags
& NDR_OUT
) {
30797 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30799 return NDR_ERR_SUCCESS
;
30802 _PUBLIC_
void ndr_print_spoolss_6c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6c
*r
)
30804 ndr_print_struct(ndr
, name
, "spoolss_6c");
30806 if (flags
& NDR_SET_VALUES
) {
30807 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30809 if (flags
& NDR_IN
) {
30810 ndr_print_struct(ndr
, "in", "spoolss_6c");
30814 if (flags
& NDR_OUT
) {
30815 ndr_print_struct(ndr
, "out", "spoolss_6c");
30817 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30823 static enum ndr_err_code
ndr_push_spoolss_6d(struct ndr_push
*ndr
, int flags
, const struct spoolss_6d
*r
)
30825 if (flags
& NDR_IN
) {
30827 if (flags
& NDR_OUT
) {
30828 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30830 return NDR_ERR_SUCCESS
;
30833 static enum ndr_err_code
ndr_pull_spoolss_6d(struct ndr_pull
*ndr
, int flags
, struct spoolss_6d
*r
)
30835 if (flags
& NDR_IN
) {
30837 if (flags
& NDR_OUT
) {
30838 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30840 return NDR_ERR_SUCCESS
;
30843 _PUBLIC_
void ndr_print_spoolss_6d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6d
*r
)
30845 ndr_print_struct(ndr
, name
, "spoolss_6d");
30847 if (flags
& NDR_SET_VALUES
) {
30848 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30850 if (flags
& NDR_IN
) {
30851 ndr_print_struct(ndr
, "in", "spoolss_6d");
30855 if (flags
& NDR_OUT
) {
30856 ndr_print_struct(ndr
, "out", "spoolss_6d");
30858 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30864 static const struct ndr_interface_call spoolss_calls
[] = {
30866 "spoolss_EnumPrinters",
30867 sizeof(struct spoolss_EnumPrinters
),
30868 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinters
,
30869 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinters
,
30870 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinters
,
30874 "spoolss_OpenPrinter",
30875 sizeof(struct spoolss_OpenPrinter
),
30876 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinter
,
30877 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinter
,
30878 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinter
,
30883 sizeof(struct spoolss_SetJob
),
30884 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetJob
,
30885 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetJob
,
30886 (ndr_print_function_t
) ndr_print_spoolss_SetJob
,
30891 sizeof(struct spoolss_GetJob
),
30892 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetJob
,
30893 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetJob
,
30894 (ndr_print_function_t
) ndr_print_spoolss_GetJob
,
30898 "spoolss_EnumJobs",
30899 sizeof(struct spoolss_EnumJobs
),
30900 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumJobs
,
30901 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumJobs
,
30902 (ndr_print_function_t
) ndr_print_spoolss_EnumJobs
,
30906 "spoolss_AddPrinter",
30907 sizeof(struct spoolss_AddPrinter
),
30908 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinter
,
30909 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinter
,
30910 (ndr_print_function_t
) ndr_print_spoolss_AddPrinter
,
30914 "spoolss_DeletePrinter",
30915 sizeof(struct spoolss_DeletePrinter
),
30916 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinter
,
30917 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinter
,
30918 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinter
,
30922 "spoolss_SetPrinter",
30923 sizeof(struct spoolss_SetPrinter
),
30924 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinter
,
30925 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinter
,
30926 (ndr_print_function_t
) ndr_print_spoolss_SetPrinter
,
30930 "spoolss_GetPrinter",
30931 sizeof(struct spoolss_GetPrinter
),
30932 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinter
,
30933 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinter
,
30934 (ndr_print_function_t
) ndr_print_spoolss_GetPrinter
,
30938 "spoolss_AddPrinterDriver",
30939 sizeof(struct spoolss_AddPrinterDriver
),
30940 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriver
,
30941 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriver
,
30942 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriver
,
30946 "spoolss_EnumPrinterDrivers",
30947 sizeof(struct spoolss_EnumPrinterDrivers
),
30948 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDrivers
,
30949 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDrivers
,
30950 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDrivers
,
30954 "spoolss_GetPrinterDriver",
30955 sizeof(struct spoolss_GetPrinterDriver
),
30956 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver
,
30957 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver
,
30958 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver
,
30962 "spoolss_GetPrinterDriverDirectory",
30963 sizeof(struct spoolss_GetPrinterDriverDirectory
),
30964 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverDirectory
,
30965 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverDirectory
,
30966 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverDirectory
,
30970 "spoolss_DeletePrinterDriver",
30971 sizeof(struct spoolss_DeletePrinterDriver
),
30972 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriver
,
30973 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriver
,
30974 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriver
,
30978 "spoolss_AddPrintProcessor",
30979 sizeof(struct spoolss_AddPrintProcessor
),
30980 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProcessor
,
30981 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProcessor
,
30982 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProcessor
,
30986 "spoolss_EnumPrintProcessors",
30987 sizeof(struct spoolss_EnumPrintProcessors
),
30988 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcessors
,
30989 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcessors
,
30990 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcessors
,
30994 "spoolss_GetPrintProcessorDirectory",
30995 sizeof(struct spoolss_GetPrintProcessorDirectory
),
30996 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrintProcessorDirectory
,
30997 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrintProcessorDirectory
,
30998 (ndr_print_function_t
) ndr_print_spoolss_GetPrintProcessorDirectory
,
31002 "spoolss_StartDocPrinter",
31003 sizeof(struct spoolss_StartDocPrinter
),
31004 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartDocPrinter
,
31005 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartDocPrinter
,
31006 (ndr_print_function_t
) ndr_print_spoolss_StartDocPrinter
,
31010 "spoolss_StartPagePrinter",
31011 sizeof(struct spoolss_StartPagePrinter
),
31012 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartPagePrinter
,
31013 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartPagePrinter
,
31014 (ndr_print_function_t
) ndr_print_spoolss_StartPagePrinter
,
31018 "spoolss_WritePrinter",
31019 sizeof(struct spoolss_WritePrinter
),
31020 (ndr_push_flags_fn_t
) ndr_push_spoolss_WritePrinter
,
31021 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WritePrinter
,
31022 (ndr_print_function_t
) ndr_print_spoolss_WritePrinter
,
31026 "spoolss_EndPagePrinter",
31027 sizeof(struct spoolss_EndPagePrinter
),
31028 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndPagePrinter
,
31029 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndPagePrinter
,
31030 (ndr_print_function_t
) ndr_print_spoolss_EndPagePrinter
,
31034 "spoolss_AbortPrinter",
31035 sizeof(struct spoolss_AbortPrinter
),
31036 (ndr_push_flags_fn_t
) ndr_push_spoolss_AbortPrinter
,
31037 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AbortPrinter
,
31038 (ndr_print_function_t
) ndr_print_spoolss_AbortPrinter
,
31042 "spoolss_ReadPrinter",
31043 sizeof(struct spoolss_ReadPrinter
),
31044 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReadPrinter
,
31045 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReadPrinter
,
31046 (ndr_print_function_t
) ndr_print_spoolss_ReadPrinter
,
31050 "spoolss_EndDocPrinter",
31051 sizeof(struct spoolss_EndDocPrinter
),
31052 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndDocPrinter
,
31053 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndDocPrinter
,
31054 (ndr_print_function_t
) ndr_print_spoolss_EndDocPrinter
,
31059 sizeof(struct spoolss_AddJob
),
31060 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddJob
,
31061 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddJob
,
31062 (ndr_print_function_t
) ndr_print_spoolss_AddJob
,
31066 "spoolss_ScheduleJob",
31067 sizeof(struct spoolss_ScheduleJob
),
31068 (ndr_push_flags_fn_t
) ndr_push_spoolss_ScheduleJob
,
31069 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ScheduleJob
,
31070 (ndr_print_function_t
) ndr_print_spoolss_ScheduleJob
,
31074 "spoolss_GetPrinterData",
31075 sizeof(struct spoolss_GetPrinterData
),
31076 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterData
,
31077 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterData
,
31078 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterData
,
31082 "spoolss_SetPrinterData",
31083 sizeof(struct spoolss_SetPrinterData
),
31084 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterData
,
31085 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterData
,
31086 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterData
,
31090 "spoolss_WaitForPrinterChange",
31091 sizeof(struct spoolss_WaitForPrinterChange
),
31092 (ndr_push_flags_fn_t
) ndr_push_spoolss_WaitForPrinterChange
,
31093 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WaitForPrinterChange
,
31094 (ndr_print_function_t
) ndr_print_spoolss_WaitForPrinterChange
,
31098 "spoolss_ClosePrinter",
31099 sizeof(struct spoolss_ClosePrinter
),
31100 (ndr_push_flags_fn_t
) ndr_push_spoolss_ClosePrinter
,
31101 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ClosePrinter
,
31102 (ndr_print_function_t
) ndr_print_spoolss_ClosePrinter
,
31107 sizeof(struct spoolss_AddForm
),
31108 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddForm
,
31109 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddForm
,
31110 (ndr_print_function_t
) ndr_print_spoolss_AddForm
,
31114 "spoolss_DeleteForm",
31115 sizeof(struct spoolss_DeleteForm
),
31116 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteForm
,
31117 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteForm
,
31118 (ndr_print_function_t
) ndr_print_spoolss_DeleteForm
,
31123 sizeof(struct spoolss_GetForm
),
31124 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetForm
,
31125 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetForm
,
31126 (ndr_print_function_t
) ndr_print_spoolss_GetForm
,
31131 sizeof(struct spoolss_SetForm
),
31132 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetForm
,
31133 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetForm
,
31134 (ndr_print_function_t
) ndr_print_spoolss_SetForm
,
31138 "spoolss_EnumForms",
31139 sizeof(struct spoolss_EnumForms
),
31140 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumForms
,
31141 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumForms
,
31142 (ndr_print_function_t
) ndr_print_spoolss_EnumForms
,
31146 "spoolss_EnumPorts",
31147 sizeof(struct spoolss_EnumPorts
),
31148 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPorts
,
31149 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPorts
,
31150 (ndr_print_function_t
) ndr_print_spoolss_EnumPorts
,
31154 "spoolss_EnumMonitors",
31155 sizeof(struct spoolss_EnumMonitors
),
31156 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumMonitors
,
31157 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumMonitors
,
31158 (ndr_print_function_t
) ndr_print_spoolss_EnumMonitors
,
31163 sizeof(struct spoolss_AddPort
),
31164 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPort
,
31165 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPort
,
31166 (ndr_print_function_t
) ndr_print_spoolss_AddPort
,
31170 "spoolss_ConfigurePort",
31171 sizeof(struct spoolss_ConfigurePort
),
31172 (ndr_push_flags_fn_t
) ndr_push_spoolss_ConfigurePort
,
31173 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ConfigurePort
,
31174 (ndr_print_function_t
) ndr_print_spoolss_ConfigurePort
,
31178 "spoolss_DeletePort",
31179 sizeof(struct spoolss_DeletePort
),
31180 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePort
,
31181 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePort
,
31182 (ndr_print_function_t
) ndr_print_spoolss_DeletePort
,
31186 "spoolss_CreatePrinterIC",
31187 sizeof(struct spoolss_CreatePrinterIC
),
31188 (ndr_push_flags_fn_t
) ndr_push_spoolss_CreatePrinterIC
,
31189 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_CreatePrinterIC
,
31190 (ndr_print_function_t
) ndr_print_spoolss_CreatePrinterIC
,
31194 "spoolss_PlayGDIScriptOnPrinterIC",
31195 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC
),
31196 (ndr_push_flags_fn_t
) ndr_push_spoolss_PlayGDIScriptOnPrinterIC
,
31197 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC
,
31198 (ndr_print_function_t
) ndr_print_spoolss_PlayGDIScriptOnPrinterIC
,
31202 "spoolss_DeletePrinterIC",
31203 sizeof(struct spoolss_DeletePrinterIC
),
31204 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterIC
,
31205 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterIC
,
31206 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterIC
,
31210 "spoolss_AddPrinterConnection",
31211 sizeof(struct spoolss_AddPrinterConnection
),
31212 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterConnection
,
31213 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterConnection
,
31214 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterConnection
,
31218 "spoolss_DeletePrinterConnection",
31219 sizeof(struct spoolss_DeletePrinterConnection
),
31220 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterConnection
,
31221 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterConnection
,
31222 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterConnection
,
31226 "spoolss_PrinterMessageBox",
31227 sizeof(struct spoolss_PrinterMessageBox
),
31228 (ndr_push_flags_fn_t
) ndr_push_spoolss_PrinterMessageBox
,
31229 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PrinterMessageBox
,
31230 (ndr_print_function_t
) ndr_print_spoolss_PrinterMessageBox
,
31234 "spoolss_AddMonitor",
31235 sizeof(struct spoolss_AddMonitor
),
31236 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddMonitor
,
31237 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddMonitor
,
31238 (ndr_print_function_t
) ndr_print_spoolss_AddMonitor
,
31242 "spoolss_DeleteMonitor",
31243 sizeof(struct spoolss_DeleteMonitor
),
31244 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteMonitor
,
31245 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteMonitor
,
31246 (ndr_print_function_t
) ndr_print_spoolss_DeleteMonitor
,
31250 "spoolss_DeletePrintProcessor",
31251 sizeof(struct spoolss_DeletePrintProcessor
),
31252 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProcessor
,
31253 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProcessor
,
31254 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProcessor
,
31258 "spoolss_AddPrintProvidor",
31259 sizeof(struct spoolss_AddPrintProvidor
),
31260 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProvidor
,
31261 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProvidor
,
31262 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProvidor
,
31266 "spoolss_DeletePrintProvidor",
31267 sizeof(struct spoolss_DeletePrintProvidor
),
31268 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProvidor
,
31269 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProvidor
,
31270 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProvidor
,
31274 "spoolss_EnumPrintProcDataTypes",
31275 sizeof(struct spoolss_EnumPrintProcDataTypes
),
31276 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcDataTypes
,
31277 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcDataTypes
,
31278 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcDataTypes
,
31282 "spoolss_ResetPrinter",
31283 sizeof(struct spoolss_ResetPrinter
),
31284 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinter
,
31285 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinter
,
31286 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinter
,
31290 "spoolss_GetPrinterDriver2",
31291 sizeof(struct spoolss_GetPrinterDriver2
),
31292 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver2
,
31293 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver2
,
31294 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver2
,
31298 "spoolss_FindFirstPrinterChangeNotification",
31299 sizeof(struct spoolss_FindFirstPrinterChangeNotification
),
31300 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindFirstPrinterChangeNotification
,
31301 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindFirstPrinterChangeNotification
,
31302 (ndr_print_function_t
) ndr_print_spoolss_FindFirstPrinterChangeNotification
,
31306 "spoolss_FindNextPrinterChangeNotification",
31307 sizeof(struct spoolss_FindNextPrinterChangeNotification
),
31308 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindNextPrinterChangeNotification
,
31309 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindNextPrinterChangeNotification
,
31310 (ndr_print_function_t
) ndr_print_spoolss_FindNextPrinterChangeNotification
,
31314 "spoolss_FindClosePrinterNotify",
31315 sizeof(struct spoolss_FindClosePrinterNotify
),
31316 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindClosePrinterNotify
,
31317 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindClosePrinterNotify
,
31318 (ndr_print_function_t
) ndr_print_spoolss_FindClosePrinterNotify
,
31322 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
31323 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld
),
31324 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
31325 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
31326 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
31330 "spoolss_ReplyOpenPrinter",
31331 sizeof(struct spoolss_ReplyOpenPrinter
),
31332 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyOpenPrinter
,
31333 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyOpenPrinter
,
31334 (ndr_print_function_t
) ndr_print_spoolss_ReplyOpenPrinter
,
31338 "spoolss_RouterReplyPrinter",
31339 sizeof(struct spoolss_RouterReplyPrinter
),
31340 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinter
,
31341 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinter
,
31342 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinter
,
31346 "spoolss_ReplyClosePrinter",
31347 sizeof(struct spoolss_ReplyClosePrinter
),
31348 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyClosePrinter
,
31349 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyClosePrinter
,
31350 (ndr_print_function_t
) ndr_print_spoolss_ReplyClosePrinter
,
31354 "spoolss_AddPortEx",
31355 sizeof(struct spoolss_AddPortEx
),
31356 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPortEx
,
31357 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPortEx
,
31358 (ndr_print_function_t
) ndr_print_spoolss_AddPortEx
,
31362 "spoolss_RouterFindFirstPrinterChangeNotification",
31363 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification
),
31364 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification
,
31365 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification
,
31366 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification
,
31370 "spoolss_SpoolerInit",
31371 sizeof(struct spoolss_SpoolerInit
),
31372 (ndr_push_flags_fn_t
) ndr_push_spoolss_SpoolerInit
,
31373 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SpoolerInit
,
31374 (ndr_print_function_t
) ndr_print_spoolss_SpoolerInit
,
31378 "spoolss_ResetPrinterEx",
31379 sizeof(struct spoolss_ResetPrinterEx
),
31380 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinterEx
,
31381 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinterEx
,
31382 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinterEx
,
31386 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
31387 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
),
31388 (ndr_push_flags_fn_t
) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
31389 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
31390 (ndr_print_function_t
) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
31394 "spoolss_RouterReplyPrinterEx",
31395 sizeof(struct spoolss_RouterReplyPrinterEx
),
31396 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinterEx
,
31397 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinterEx
,
31398 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinterEx
,
31402 "spoolss_RouterRefreshPrinterChangeNotify",
31403 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify
),
31404 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterRefreshPrinterChangeNotify
,
31405 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify
,
31406 (ndr_print_function_t
) ndr_print_spoolss_RouterRefreshPrinterChangeNotify
,
31411 sizeof(struct spoolss_44
),
31412 (ndr_push_flags_fn_t
) ndr_push_spoolss_44
,
31413 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_44
,
31414 (ndr_print_function_t
) ndr_print_spoolss_44
,
31418 "spoolss_OpenPrinterEx",
31419 sizeof(struct spoolss_OpenPrinterEx
),
31420 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinterEx
,
31421 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinterEx
,
31422 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinterEx
,
31426 "spoolss_AddPrinterEx",
31427 sizeof(struct spoolss_AddPrinterEx
),
31428 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterEx
,
31429 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterEx
,
31430 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterEx
,
31435 sizeof(struct spoolss_47
),
31436 (ndr_push_flags_fn_t
) ndr_push_spoolss_47
,
31437 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_47
,
31438 (ndr_print_function_t
) ndr_print_spoolss_47
,
31442 "spoolss_EnumPrinterData",
31443 sizeof(struct spoolss_EnumPrinterData
),
31444 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterData
,
31445 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterData
,
31446 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterData
,
31450 "spoolss_DeletePrinterData",
31451 sizeof(struct spoolss_DeletePrinterData
),
31452 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterData
,
31453 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterData
,
31454 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterData
,
31459 sizeof(struct spoolss_4a
),
31460 (ndr_push_flags_fn_t
) ndr_push_spoolss_4a
,
31461 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4a
,
31462 (ndr_print_function_t
) ndr_print_spoolss_4a
,
31467 sizeof(struct spoolss_4b
),
31468 (ndr_push_flags_fn_t
) ndr_push_spoolss_4b
,
31469 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4b
,
31470 (ndr_print_function_t
) ndr_print_spoolss_4b
,
31475 sizeof(struct spoolss_4c
),
31476 (ndr_push_flags_fn_t
) ndr_push_spoolss_4c
,
31477 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4c
,
31478 (ndr_print_function_t
) ndr_print_spoolss_4c
,
31482 "spoolss_SetPrinterDataEx",
31483 sizeof(struct spoolss_SetPrinterDataEx
),
31484 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterDataEx
,
31485 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterDataEx
,
31486 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterDataEx
,
31490 "spoolss_GetPrinterDataEx",
31491 sizeof(struct spoolss_GetPrinterDataEx
),
31492 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDataEx
,
31493 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDataEx
,
31494 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDataEx
,
31498 "spoolss_EnumPrinterDataEx",
31499 sizeof(struct spoolss_EnumPrinterDataEx
),
31500 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDataEx
,
31501 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDataEx
,
31502 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDataEx
,
31506 "spoolss_EnumPrinterKey",
31507 sizeof(struct spoolss_EnumPrinterKey
),
31508 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterKey
,
31509 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterKey
,
31510 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterKey
,
31514 "spoolss_DeletePrinterDataEx",
31515 sizeof(struct spoolss_DeletePrinterDataEx
),
31516 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDataEx
,
31517 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDataEx
,
31518 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDataEx
,
31522 "spoolss_DeletePrinterKey",
31523 sizeof(struct spoolss_DeletePrinterKey
),
31524 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterKey
,
31525 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterKey
,
31526 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterKey
,
31531 sizeof(struct spoolss_53
),
31532 (ndr_push_flags_fn_t
) ndr_push_spoolss_53
,
31533 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_53
,
31534 (ndr_print_function_t
) ndr_print_spoolss_53
,
31538 "spoolss_DeletePrinterDriverEx",
31539 sizeof(struct spoolss_DeletePrinterDriverEx
),
31540 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriverEx
,
31541 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriverEx
,
31542 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriverEx
,
31547 sizeof(struct spoolss_55
),
31548 (ndr_push_flags_fn_t
) ndr_push_spoolss_55
,
31549 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_55
,
31550 (ndr_print_function_t
) ndr_print_spoolss_55
,
31555 sizeof(struct spoolss_56
),
31556 (ndr_push_flags_fn_t
) ndr_push_spoolss_56
,
31557 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_56
,
31558 (ndr_print_function_t
) ndr_print_spoolss_56
,
31563 sizeof(struct spoolss_57
),
31564 (ndr_push_flags_fn_t
) ndr_push_spoolss_57
,
31565 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_57
,
31566 (ndr_print_function_t
) ndr_print_spoolss_57
,
31571 sizeof(struct spoolss_XcvData
),
31572 (ndr_push_flags_fn_t
) ndr_push_spoolss_XcvData
,
31573 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_XcvData
,
31574 (ndr_print_function_t
) ndr_print_spoolss_XcvData
,
31578 "spoolss_AddPrinterDriverEx",
31579 sizeof(struct spoolss_AddPrinterDriverEx
),
31580 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriverEx
,
31581 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriverEx
,
31582 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriverEx
,
31587 sizeof(struct spoolss_5a
),
31588 (ndr_push_flags_fn_t
) ndr_push_spoolss_5a
,
31589 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5a
,
31590 (ndr_print_function_t
) ndr_print_spoolss_5a
,
31595 sizeof(struct spoolss_5b
),
31596 (ndr_push_flags_fn_t
) ndr_push_spoolss_5b
,
31597 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5b
,
31598 (ndr_print_function_t
) ndr_print_spoolss_5b
,
31603 sizeof(struct spoolss_5c
),
31604 (ndr_push_flags_fn_t
) ndr_push_spoolss_5c
,
31605 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5c
,
31606 (ndr_print_function_t
) ndr_print_spoolss_5c
,
31611 sizeof(struct spoolss_5d
),
31612 (ndr_push_flags_fn_t
) ndr_push_spoolss_5d
,
31613 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5d
,
31614 (ndr_print_function_t
) ndr_print_spoolss_5d
,
31619 sizeof(struct spoolss_5e
),
31620 (ndr_push_flags_fn_t
) ndr_push_spoolss_5e
,
31621 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5e
,
31622 (ndr_print_function_t
) ndr_print_spoolss_5e
,
31627 sizeof(struct spoolss_5f
),
31628 (ndr_push_flags_fn_t
) ndr_push_spoolss_5f
,
31629 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5f
,
31630 (ndr_print_function_t
) ndr_print_spoolss_5f
,
31635 sizeof(struct spoolss_60
),
31636 (ndr_push_flags_fn_t
) ndr_push_spoolss_60
,
31637 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_60
,
31638 (ndr_print_function_t
) ndr_print_spoolss_60
,
31643 sizeof(struct spoolss_61
),
31644 (ndr_push_flags_fn_t
) ndr_push_spoolss_61
,
31645 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_61
,
31646 (ndr_print_function_t
) ndr_print_spoolss_61
,
31651 sizeof(struct spoolss_62
),
31652 (ndr_push_flags_fn_t
) ndr_push_spoolss_62
,
31653 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_62
,
31654 (ndr_print_function_t
) ndr_print_spoolss_62
,
31659 sizeof(struct spoolss_63
),
31660 (ndr_push_flags_fn_t
) ndr_push_spoolss_63
,
31661 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_63
,
31662 (ndr_print_function_t
) ndr_print_spoolss_63
,
31667 sizeof(struct spoolss_64
),
31668 (ndr_push_flags_fn_t
) ndr_push_spoolss_64
,
31669 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_64
,
31670 (ndr_print_function_t
) ndr_print_spoolss_64
,
31675 sizeof(struct spoolss_65
),
31676 (ndr_push_flags_fn_t
) ndr_push_spoolss_65
,
31677 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_65
,
31678 (ndr_print_function_t
) ndr_print_spoolss_65
,
31682 "spoolss_GetCorePrinterDrivers",
31683 sizeof(struct spoolss_GetCorePrinterDrivers
),
31684 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetCorePrinterDrivers
,
31685 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetCorePrinterDrivers
,
31686 (ndr_print_function_t
) ndr_print_spoolss_GetCorePrinterDrivers
,
31691 sizeof(struct spoolss_67
),
31692 (ndr_push_flags_fn_t
) ndr_push_spoolss_67
,
31693 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_67
,
31694 (ndr_print_function_t
) ndr_print_spoolss_67
,
31698 "spoolss_GetPrinterDriverPackagePath",
31699 sizeof(struct spoolss_GetPrinterDriverPackagePath
),
31700 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverPackagePath
,
31701 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverPackagePath
,
31702 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverPackagePath
,
31707 sizeof(struct spoolss_69
),
31708 (ndr_push_flags_fn_t
) ndr_push_spoolss_69
,
31709 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_69
,
31710 (ndr_print_function_t
) ndr_print_spoolss_69
,
31715 sizeof(struct spoolss_6a
),
31716 (ndr_push_flags_fn_t
) ndr_push_spoolss_6a
,
31717 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6a
,
31718 (ndr_print_function_t
) ndr_print_spoolss_6a
,
31723 sizeof(struct spoolss_6b
),
31724 (ndr_push_flags_fn_t
) ndr_push_spoolss_6b
,
31725 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6b
,
31726 (ndr_print_function_t
) ndr_print_spoolss_6b
,
31731 sizeof(struct spoolss_6c
),
31732 (ndr_push_flags_fn_t
) ndr_push_spoolss_6c
,
31733 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6c
,
31734 (ndr_print_function_t
) ndr_print_spoolss_6c
,
31739 sizeof(struct spoolss_6d
),
31740 (ndr_push_flags_fn_t
) ndr_push_spoolss_6d
,
31741 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6d
,
31742 (ndr_print_function_t
) ndr_print_spoolss_6d
,
31745 { NULL
, 0, NULL
, NULL
, NULL
, false }
31748 static const char * const spoolss_endpoint_strings
[] = {
31749 "ncacn_np:[\\pipe\\spoolss]",
31752 static const struct ndr_interface_string_array spoolss_endpoints
= {
31754 .names
= spoolss_endpoint_strings
31757 static const char * const spoolss_authservice_strings
[] = {
31761 static const struct ndr_interface_string_array spoolss_authservices
= {
31763 .names
= spoolss_authservice_strings
31767 const struct ndr_interface_table ndr_table_spoolss
= {
31770 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
31771 NDR_SPOOLSS_VERSION
31773 .helpstring
= NDR_SPOOLSS_HELPSTRING
,
31775 .calls
= spoolss_calls
,
31776 .endpoints
= &spoolss_endpoints
,
31777 .authservices
= &spoolss_authservices