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 _PUBLIC_
void ndr_print_spoolss_Time(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Time
*r
)
49 ndr_print_struct(ndr
, name
, "spoolss_Time");
51 ndr_print_uint16(ndr
, "year", r
->year
);
52 ndr_print_uint16(ndr
, "month", r
->month
);
53 ndr_print_uint16(ndr
, "day_of_week", r
->day_of_week
);
54 ndr_print_uint16(ndr
, "day", r
->day
);
55 ndr_print_uint16(ndr
, "hour", r
->hour
);
56 ndr_print_uint16(ndr
, "minute", r
->minute
);
57 ndr_print_uint16(ndr
, "second", r
->second
);
58 ndr_print_uint16(ndr
, "millisecond", r
->millisecond
);
62 static size_t ndr_size_spoolss_Time(const struct spoolss_Time
*r
, struct smb_iconv_convenience
*ic
, int flags
)
64 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_Time
, ic
);
67 static enum ndr_err_code
ndr_push_spoolss_TimeCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_TimeCtr
*r
)
69 if (ndr_flags
& NDR_SCALARS
) {
70 NDR_CHECK(ndr_push_align(ndr
, 5));
71 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_Time(r
->time
, ndr
->iconv_convenience
, ndr
->flags
)));
72 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->time
));
73 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
75 if (ndr_flags
& NDR_BUFFERS
) {
77 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, r
->time
));
80 return NDR_ERR_SUCCESS
;
83 static enum ndr_err_code
ndr_pull_spoolss_TimeCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_TimeCtr
*r
)
86 TALLOC_CTX
*_mem_save_time_0
;
87 if (ndr_flags
& NDR_SCALARS
) {
88 NDR_CHECK(ndr_pull_align(ndr
, 5));
89 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
90 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_time
));
92 NDR_PULL_ALLOC(ndr
, r
->time
);
96 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
98 if (ndr_flags
& NDR_BUFFERS
) {
100 _mem_save_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
101 NDR_PULL_SET_MEM_CTX(ndr
, r
->time
, 0);
102 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, r
->time
));
103 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_time_0
, 0);
106 return NDR_ERR_SUCCESS
;
109 _PUBLIC_
void ndr_print_spoolss_TimeCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_TimeCtr
*r
)
111 ndr_print_struct(ndr
, name
, "spoolss_TimeCtr");
113 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_Time(r
->time
, ndr
->iconv_convenience
, ndr
->flags
):r
->size
);
114 ndr_print_ptr(ndr
, "time", r
->time
);
117 ndr_print_spoolss_Time(ndr
, "time", r
->time
);
123 static enum ndr_err_code
ndr_push_spoolss_ProcessorArchitecture(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_ProcessorArchitecture r
)
125 NDR_CHECK(ndr_push_enum_uint1632(ndr
, NDR_SCALARS
, r
));
126 return NDR_ERR_SUCCESS
;
129 static enum ndr_err_code
ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_ProcessorArchitecture
*r
)
132 NDR_CHECK(ndr_pull_enum_uint1632(ndr
, NDR_SCALARS
, &v
));
134 return NDR_ERR_SUCCESS
;
137 _PUBLIC_
void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print
*ndr
, const char *name
, enum spoolss_ProcessorArchitecture r
)
139 const char *val
= NULL
;
142 case PROCESSOR_ARCHITECTURE_INTEL
: val
= "PROCESSOR_ARCHITECTURE_INTEL"; break;
143 case PROCESSOR_ARCHITECTURE_IA64
: val
= "PROCESSOR_ARCHITECTURE_IA64"; break;
144 case PROCESSOR_ARCHITECTURE_AMD64
: val
= "PROCESSOR_ARCHITECTURE_AMD64"; break;
146 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
149 static enum ndr_err_code
ndr_push_spoolss_ProcessorType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_ProcessorType r
)
151 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
152 return NDR_ERR_SUCCESS
;
155 static enum ndr_err_code
ndr_pull_spoolss_ProcessorType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_ProcessorType
*r
)
158 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
160 return NDR_ERR_SUCCESS
;
163 _PUBLIC_
void ndr_print_spoolss_ProcessorType(struct ndr_print
*ndr
, const char *name
, enum spoolss_ProcessorType r
)
165 const char *val
= NULL
;
168 case PROCESSOR_INTEL_386
: val
= "PROCESSOR_INTEL_386"; break;
169 case PROCESSOR_INTEL_486
: val
= "PROCESSOR_INTEL_486"; break;
170 case PROCESSOR_INTEL_PENTIUM
: val
= "PROCESSOR_INTEL_PENTIUM"; break;
171 case PROCESSOR_INTEL_IA64
: val
= "PROCESSOR_INTEL_IA64"; break;
172 case PROCESSOR_AMD_X8664
: val
= "PROCESSOR_AMD_X8664"; break;
174 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
177 static enum ndr_err_code
ndr_push_spoolss_MajorVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_MajorVersion r
)
179 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
180 return NDR_ERR_SUCCESS
;
183 static enum ndr_err_code
ndr_pull_spoolss_MajorVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_MajorVersion
*r
)
186 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
188 return NDR_ERR_SUCCESS
;
191 _PUBLIC_
void ndr_print_spoolss_MajorVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_MajorVersion r
)
193 const char *val
= NULL
;
196 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME
: val
= "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
197 case SPOOLSS_MAJOR_VERSION_2000_2003_XP
: val
= "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
198 case SPOOLSS_MAJOR_VERSION_2008_VISTA
: val
= "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
200 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
203 static enum ndr_err_code
ndr_push_spoolss_MinorVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_MinorVersion r
)
205 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
206 return NDR_ERR_SUCCESS
;
209 static enum ndr_err_code
ndr_pull_spoolss_MinorVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_MinorVersion
*r
)
212 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
214 return NDR_ERR_SUCCESS
;
217 _PUBLIC_
void ndr_print_spoolss_MinorVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_MinorVersion r
)
219 const char *val
= NULL
;
222 case SPOOLSS_MINOR_VERSION_0
: val
= "SPOOLSS_MINOR_VERSION_0"; break;
223 case SPOOLSS_MINOR_VERSION_XP
: val
= "SPOOLSS_MINOR_VERSION_XP"; break;
224 case SPOOLSS_MINOR_VERSION_2003_XP64
: val
= "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
225 case SPOOLSS_MINOR_VERSION_98
: val
= "SPOOLSS_MINOR_VERSION_98"; break;
226 case SPOOLSS_MINOR_VERSION_ME
: val
= "SPOOLSS_MINOR_VERSION_ME"; break;
228 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
231 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterStatus(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
233 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
234 return NDR_ERR_SUCCESS
;
237 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterStatus(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
240 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
242 return NDR_ERR_SUCCESS
;
245 _PUBLIC_
void ndr_print_spoolss_PrinterStatus(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
247 ndr_print_uint32(ndr
, name
, r
);
249 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED
, r
);
250 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR
, r
);
251 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION
, r
);
252 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM
, r
);
253 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT
, r
);
254 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED
, r
);
255 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM
, r
);
256 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE
, r
);
257 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE
, r
);
258 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY
, r
);
259 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING
, r
);
260 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL
, r
);
261 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE
, r
);
262 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING
, r
);
263 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING
, r
);
264 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING
, r
);
265 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP
, r
);
266 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW
, r
);
267 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER
, r
);
268 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT
, r
);
269 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION
, r
);
270 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY
, r
);
271 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN
, r
);
272 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN
, r
);
273 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE
, r
);
277 static enum ndr_err_code
ndr_push_spoolss_JobStatus(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
279 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
280 return NDR_ERR_SUCCESS
;
283 static enum ndr_err_code
ndr_pull_spoolss_JobStatus(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
286 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
288 return NDR_ERR_SUCCESS
;
291 _PUBLIC_
void ndr_print_spoolss_JobStatus(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
293 ndr_print_uint32(ndr
, name
, r
);
295 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED
, r
);
296 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR
, r
);
297 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING
, r
);
298 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING
, r
);
299 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING
, r
);
300 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE
, r
);
301 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT
, r
);
302 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED
, r
);
303 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED
, r
);
304 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ
, r
);
305 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION
, r
);
306 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART
, r
);
307 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE
, r
);
311 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo0
*r
)
313 if (ndr_flags
& NDR_SCALARS
) {
314 NDR_CHECK(ndr_push_align(ndr
, 5));
316 uint32_t _flags_save_string
= ndr
->flags
;
317 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
318 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
319 ndr
->flags
= _flags_save_string
;
322 uint32_t _flags_save_string
= ndr
->flags
;
323 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
324 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
325 ndr
->flags
= _flags_save_string
;
327 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
328 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
329 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
330 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
331 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
332 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
333 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
334 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
335 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
336 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
338 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
339 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
340 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->job_error
));
341 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
342 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
345 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
346 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
347 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
348 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
349 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
350 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
351 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
352 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
353 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
354 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
356 if (ndr_flags
& NDR_BUFFERS
) {
358 uint32_t _flags_save_string
= ndr
->flags
;
359 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
360 if (r
->printername
) {
361 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printername
));
362 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
363 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printername
));
365 ndr
->flags
= _flags_save_string
;
368 uint32_t _flags_save_string
= ndr
->flags
;
369 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
371 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->servername
));
372 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
373 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->servername
));
375 ndr
->flags
= _flags_save_string
;
378 return NDR_ERR_SUCCESS
;
381 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo0
*r
)
383 uint32_t _ptr_printername
;
384 TALLOC_CTX
*_mem_save_printername_0
;
385 uint32_t _ptr_servername
;
386 TALLOC_CTX
*_mem_save_servername_0
;
387 if (ndr_flags
& NDR_SCALARS
) {
388 NDR_CHECK(ndr_pull_align(ndr
, 5));
390 uint32_t _flags_save_string
= ndr
->flags
;
391 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
392 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
393 if (_ptr_printername
) {
394 NDR_PULL_ALLOC(ndr
, r
->printername
);
395 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
397 r
->printername
= NULL
;
399 ndr
->flags
= _flags_save_string
;
402 uint32_t _flags_save_string
= ndr
->flags
;
403 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
404 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
405 if (_ptr_servername
) {
406 NDR_PULL_ALLOC(ndr
, r
->servername
);
407 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
409 r
->servername
= NULL
;
411 ndr
->flags
= _flags_save_string
;
413 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
414 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
415 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
416 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
417 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
418 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
419 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
420 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
421 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
422 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
423 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
424 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
425 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
426 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->job_error
));
427 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
428 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
429 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
430 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
431 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
432 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
433 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
434 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
435 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
436 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
437 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
438 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
439 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
440 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
442 if (ndr_flags
& NDR_BUFFERS
) {
444 uint32_t _flags_save_string
= ndr
->flags
;
445 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
446 if (r
->printername
) {
447 uint32_t _relative_save_offset
;
448 _relative_save_offset
= ndr
->offset
;
449 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
450 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
451 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
452 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
453 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
454 if (ndr
->offset
> ndr
->relative_highest_offset
) {
455 ndr
->relative_highest_offset
= ndr
->offset
;
457 ndr
->offset
= _relative_save_offset
;
459 ndr
->flags
= _flags_save_string
;
462 uint32_t _flags_save_string
= ndr
->flags
;
463 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
465 uint32_t _relative_save_offset
;
466 _relative_save_offset
= ndr
->offset
;
467 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
468 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
469 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
470 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
471 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
472 if (ndr
->offset
> ndr
->relative_highest_offset
) {
473 ndr
->relative_highest_offset
= ndr
->offset
;
475 ndr
->offset
= _relative_save_offset
;
477 ndr
->flags
= _flags_save_string
;
480 return NDR_ERR_SUCCESS
;
483 _PUBLIC_
void ndr_print_spoolss_PrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo0
*r
)
485 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo0");
487 ndr_print_ptr(ndr
, "printername", r
->printername
);
489 if (r
->printername
) {
490 ndr_print_string(ndr
, "printername", r
->printername
);
493 ndr_print_ptr(ndr
, "servername", r
->servername
);
496 ndr_print_string(ndr
, "servername", r
->servername
);
499 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
500 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
501 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
502 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
503 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
504 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
505 ndr_print_uint32(ndr
, "version", r
->version
);
506 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
507 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
508 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
509 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
510 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
511 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
512 ndr_print_spoolss_JobStatus(ndr
, "job_error", r
->job_error
);
513 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
514 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
515 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
516 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
517 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
518 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
519 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
520 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
521 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
522 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
523 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
524 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
525 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
529 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0
*r
, struct smb_iconv_convenience
*ic
, int flags
)
531 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo0
, ic
);
534 static enum ndr_err_code
ndr_push_spoolss_DM_Signature(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DM_Signature r
)
536 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
537 return NDR_ERR_SUCCESS
;
540 static enum ndr_err_code
ndr_pull_spoolss_DM_Signature(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DM_Signature
*r
)
543 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
545 return NDR_ERR_SUCCESS
;
548 _PUBLIC_
void ndr_print_spoolss_DM_Signature(struct ndr_print
*ndr
, const char *name
, enum spoolss_DM_Signature r
)
550 const char *val
= NULL
;
553 case SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA
: val
= "SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA"; break;
554 case SPOOLSS_DM_SIGNATURE_JTEXP
: val
= "SPOOLSS_DM_SIGNATURE_JTEXP"; break;
555 case SPOOLSS_DM_SIGNATURE_PSEXTRA
: val
= "SPOOLSS_DM_SIGNATURE_PSEXTRA"; break;
557 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
560 static enum ndr_err_code
ndr_push_spoolss_DM_Layout(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DM_Layout r
)
562 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
563 return NDR_ERR_SUCCESS
;
566 static enum ndr_err_code
ndr_pull_spoolss_DM_Layout(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DM_Layout
*r
)
569 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
571 return NDR_ERR_SUCCESS
;
574 _PUBLIC_
void ndr_print_spoolss_DM_Layout(struct ndr_print
*ndr
, const char *name
, enum spoolss_DM_Layout r
)
576 const char *val
= NULL
;
579 case SPOOLSS_DM_LAYOUT_NUP_DISABLED
: val
= "SPOOLSS_DM_LAYOUT_NUP_DISABLED"; break;
580 case SPOOLSS_DM_LAYOUT_NUP_2
: val
= "SPOOLSS_DM_LAYOUT_NUP_2"; break;
581 case SPOOLSS_DM_LAYOUT_NUP_4
: val
= "SPOOLSS_DM_LAYOUT_NUP_4"; break;
582 case SPOOLSS_DM_LAYOUT_NUP_6
: val
= "SPOOLSS_DM_LAYOUT_NUP_6"; break;
583 case SPOOLSS_DM_LAYOUT_NUP_9
: val
= "SPOOLSS_DM_LAYOUT_NUP_9"; break;
584 case SPOOLSS_DM_LAYOUT_NUP_16
: val
= "SPOOLSS_DM_LAYOUT_NUP_16"; break;
585 case SPOOLSS_DM_LAYOUT_BOOKLET
: val
= "SPOOLSS_DM_LAYOUT_BOOKLET"; break;
587 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
590 static enum ndr_err_code
ndr_push_spoolss_DM_NupDirection(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DM_NupDirection r
)
592 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
593 return NDR_ERR_SUCCESS
;
596 static enum ndr_err_code
ndr_pull_spoolss_DM_NupDirection(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DM_NupDirection
*r
)
599 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
601 return NDR_ERR_SUCCESS
;
604 _PUBLIC_
void ndr_print_spoolss_DM_NupDirection(struct ndr_print
*ndr
, const char *name
, enum spoolss_DM_NupDirection r
)
606 const char *val
= NULL
;
609 case SPOOLSS_DM_NUP_DIRECTION_L2R_T2B
: val
= "SPOOLSS_DM_NUP_DIRECTION_L2R_T2B"; break;
610 case SPOOLSS_DM_NUP_DIRECTION_T2B_L2R
: val
= "SPOOLSS_DM_NUP_DIRECTION_T2B_L2R"; break;
611 case SPOOLSS_DM_NUP_DIRECTION_R2L_T2B
: val
= "SPOOLSS_DM_NUP_DIRECTION_R2L_T2B"; break;
612 case SPOOLSS_DM_NUP_DIRECTION_T2B_R2L
: val
= "SPOOLSS_DM_NUP_DIRECTION_T2B_R2L"; break;
614 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
617 static enum ndr_err_code
ndr_push_spoolss_DM_NupBorderFlags(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DM_NupBorderFlags r
)
619 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
620 return NDR_ERR_SUCCESS
;
623 static enum ndr_err_code
ndr_pull_spoolss_DM_NupBorderFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DM_NupBorderFlags
*r
)
626 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
628 return NDR_ERR_SUCCESS
;
631 _PUBLIC_
void ndr_print_spoolss_DM_NupBorderFlags(struct ndr_print
*ndr
, const char *name
, enum spoolss_DM_NupBorderFlags r
)
633 const char *val
= NULL
;
636 case SPOOLSS_DM_NUP_BORDER_PRINT
: val
= "SPOOLSS_DM_NUP_BORDER_PRINT"; break;
637 case SPOOLSS_DM_NUP_BORDER_NONE
: val
= "SPOOLSS_DM_NUP_BORDER_NONE"; break;
639 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
642 static enum ndr_err_code
ndr_push_spoolss_DM_BookletFlags(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DM_BookletFlags r
)
644 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
645 return NDR_ERR_SUCCESS
;
648 static enum ndr_err_code
ndr_pull_spoolss_DM_BookletFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DM_BookletFlags
*r
)
651 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
653 return NDR_ERR_SUCCESS
;
656 _PUBLIC_
void ndr_print_spoolss_DM_BookletFlags(struct ndr_print
*ndr
, const char *name
, enum spoolss_DM_BookletFlags r
)
658 const char *val
= NULL
;
661 case SPOOLSS_DM_BOOKLET_LEFT_FLIP
: val
= "SPOOLSS_DM_BOOKLET_LEFT_FLIP"; break;
662 case SPOOLSS_DM_BOOKLET_RIGHT_FLIP
: val
= "SPOOLSS_DM_BOOKLET_RIGHT_FLIP"; break;
664 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
667 static enum ndr_err_code
ndr_push_spoolss_DMUNI_Quality(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DMUNI_Quality r
)
669 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
670 return NDR_ERR_SUCCESS
;
673 static enum ndr_err_code
ndr_pull_spoolss_DMUNI_Quality(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DMUNI_Quality
*r
)
676 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
678 return NDR_ERR_SUCCESS
;
681 _PUBLIC_
void ndr_print_spoolss_DMUNI_Quality(struct ndr_print
*ndr
, const char *name
, enum spoolss_DMUNI_Quality r
)
683 const char *val
= NULL
;
686 case SPOOLSS_DM_UNI_QUALITY_BEST
: val
= "SPOOLSS_DM_UNI_QUALITY_BEST"; break;
687 case SPOOLSS_DM_UNI_QUALITY_MEDIUM
: val
= "SPOOLSS_DM_UNI_QUALITY_MEDIUM"; break;
688 case SPOOLSS_DM_UNI_QUALITY_DRAFT
: val
= "SPOOLSS_DM_UNI_QUALITY_DRAFT"; break;
690 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
693 static enum ndr_err_code
ndr_push_spoolss_DMUNI_Flags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
695 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
696 return NDR_ERR_SUCCESS
;
699 static enum ndr_err_code
ndr_pull_spoolss_DMUNI_Flags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
702 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
704 return NDR_ERR_SUCCESS
;
707 _PUBLIC_
void ndr_print_spoolss_DMUNI_Flags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
709 ndr_print_uint32(ndr
, name
, r
);
711 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS", SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS
, r
);
712 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL", SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL
, r
);
713 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING", SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING
, r
);
717 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_UNIDRVEXTRA(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UNIDRVEXTRA
*r
)
719 uint32_t cntr_wReserved_0
;
720 uint32_t cntr_aOptions_0
;
721 if (ndr_flags
& NDR_SCALARS
) {
722 NDR_CHECK(ndr_push_align(ndr
, 4));
723 NDR_CHECK(ndr_push_spoolss_DM_Signature(ndr
, NDR_SCALARS
, SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA
));
724 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, 0x0022));
725 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->wCoreJTExpSize
));
726 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, ndr_size_spoolss_UNIDRVEXTRA(r
, ndr
->iconv_convenience
, ndr
->flags
) + r
->wCoreJTExpSize
));
727 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->wOEMExtra
));
728 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dwChecksum32
));
729 NDR_CHECK(ndr_push_spoolss_DMUNI_Flags(ndr
, NDR_SCALARS
, r
->dwFlags
));
730 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bReversePrint
));
731 NDR_CHECK(ndr_push_spoolss_DM_Layout(ndr
, NDR_SCALARS
, r
->iLayout
));
732 NDR_CHECK(ndr_push_spoolss_DMUNI_Quality(ndr
, NDR_SCALARS
, r
->iQuality
));
733 for (cntr_wReserved_0
= 0; cntr_wReserved_0
< 6; cntr_wReserved_0
++) {
734 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->wReserved
[cntr_wReserved_0
]));
736 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dwOptions
));
737 for (cntr_aOptions_0
= 0; cntr_aOptions_0
< 128; cntr_aOptions_0
++) {
738 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->aOptions
[cntr_aOptions_0
]));
740 NDR_CHECK(ndr_push_spoolss_DM_NupDirection(ndr
, NDR_SCALARS
, r
->dwNupDirection
));
741 NDR_CHECK(ndr_push_spoolss_DM_NupBorderFlags(ndr
, NDR_SCALARS
, r
->dwNupBorderFlags
));
742 NDR_CHECK(ndr_push_spoolss_DM_BookletFlags(ndr
, NDR_SCALARS
, r
->dwBookletFlags
));
743 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
745 if (ndr_flags
& NDR_BUFFERS
) {
747 return NDR_ERR_SUCCESS
;
750 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_UNIDRVEXTRA(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UNIDRVEXTRA
*r
)
752 uint32_t cntr_wReserved_0
;
753 uint32_t cntr_aOptions_0
;
754 if (ndr_flags
& NDR_SCALARS
) {
755 NDR_CHECK(ndr_pull_align(ndr
, 4));
756 NDR_CHECK(ndr_pull_spoolss_DM_Signature(ndr
, NDR_SCALARS
, &r
->dwSignature
));
757 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->wVer
));
758 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->wCoreJTExpSize
));
759 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->wCoreFullSize
));
760 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->wOEMExtra
));
761 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dwChecksum32
));
762 NDR_CHECK(ndr_pull_spoolss_DMUNI_Flags(ndr
, NDR_SCALARS
, &r
->dwFlags
));
763 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bReversePrint
));
764 NDR_CHECK(ndr_pull_spoolss_DM_Layout(ndr
, NDR_SCALARS
, &r
->iLayout
));
765 NDR_CHECK(ndr_pull_spoolss_DMUNI_Quality(ndr
, NDR_SCALARS
, &r
->iQuality
));
766 for (cntr_wReserved_0
= 0; cntr_wReserved_0
< 6; cntr_wReserved_0
++) {
767 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->wReserved
[cntr_wReserved_0
]));
769 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dwOptions
));
770 for (cntr_aOptions_0
= 0; cntr_aOptions_0
< 128; cntr_aOptions_0
++) {
771 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->aOptions
[cntr_aOptions_0
]));
773 NDR_CHECK(ndr_pull_spoolss_DM_NupDirection(ndr
, NDR_SCALARS
, &r
->dwNupDirection
));
774 NDR_CHECK(ndr_pull_spoolss_DM_NupBorderFlags(ndr
, NDR_SCALARS
, &r
->dwNupBorderFlags
));
775 NDR_CHECK(ndr_pull_spoolss_DM_BookletFlags(ndr
, NDR_SCALARS
, &r
->dwBookletFlags
));
776 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
778 if (ndr_flags
& NDR_BUFFERS
) {
780 return NDR_ERR_SUCCESS
;
783 _PUBLIC_
void ndr_print_spoolss_UNIDRVEXTRA(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UNIDRVEXTRA
*r
)
785 uint32_t cntr_wReserved_0
;
786 uint32_t cntr_aOptions_0
;
787 ndr_print_struct(ndr
, name
, "spoolss_UNIDRVEXTRA");
789 ndr_print_spoolss_DM_Signature(ndr
, "dwSignature", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA
:r
->dwSignature
);
790 ndr_print_uint16(ndr
, "wVer", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x0022:r
->wVer
);
791 ndr_print_uint16(ndr
, "wCoreJTExpSize", r
->wCoreJTExpSize
);
792 ndr_print_uint16(ndr
, "wCoreFullSize", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_UNIDRVEXTRA(r
, ndr
->iconv_convenience
, ndr
->flags
) + r
->wCoreJTExpSize
:r
->wCoreFullSize
);
793 ndr_print_uint16(ndr
, "wOEMExtra", r
->wOEMExtra
);
794 ndr_print_uint32(ndr
, "dwChecksum32", r
->dwChecksum32
);
795 ndr_print_spoolss_DMUNI_Flags(ndr
, "dwFlags", r
->dwFlags
);
796 ndr_print_uint32(ndr
, "bReversePrint", r
->bReversePrint
);
797 ndr_print_spoolss_DM_Layout(ndr
, "iLayout", r
->iLayout
);
798 ndr_print_spoolss_DMUNI_Quality(ndr
, "iQuality", r
->iQuality
);
799 ndr
->print(ndr
, "%s: ARRAY(%d)", "wReserved", (int)6);
801 for (cntr_wReserved_0
=0;cntr_wReserved_0
<6;cntr_wReserved_0
++) {
803 if (asprintf(&idx_0
, "[%d]", cntr_wReserved_0
) != -1) {
804 ndr_print_uint16(ndr
, "wReserved", r
->wReserved
[cntr_wReserved_0
]);
809 ndr_print_uint32(ndr
, "dwOptions", r
->dwOptions
);
810 ndr
->print(ndr
, "%s: ARRAY(%d)", "aOptions", (int)128);
812 for (cntr_aOptions_0
=0;cntr_aOptions_0
<128;cntr_aOptions_0
++) {
814 if (asprintf(&idx_0
, "[%d]", cntr_aOptions_0
) != -1) {
815 ndr_print_uint32(ndr
, "aOptions", r
->aOptions
[cntr_aOptions_0
]);
820 ndr_print_spoolss_DM_NupDirection(ndr
, "dwNupDirection", r
->dwNupDirection
);
821 ndr_print_spoolss_DM_NupBorderFlags(ndr
, "dwNupBorderFlags", r
->dwNupBorderFlags
);
822 ndr_print_spoolss_DM_BookletFlags(ndr
, "dwBookletFlags", r
->dwBookletFlags
);
826 _PUBLIC_
size_t ndr_size_spoolss_UNIDRVEXTRA(const struct spoolss_UNIDRVEXTRA
*r
, struct smb_iconv_convenience
*ic
, int flags
)
828 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_UNIDRVEXTRA
, ic
);
831 static enum ndr_err_code
ndr_push_spoolss_DeviceModeFields(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
833 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
834 return NDR_ERR_SUCCESS
;
837 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeFields(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
840 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
842 return NDR_ERR_SUCCESS
;
845 _PUBLIC_
void ndr_print_spoolss_DeviceModeFields(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
847 ndr_print_uint32(ndr
, name
, r
);
849 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION
, r
);
850 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE
, r
);
851 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH
, r
);
852 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH
, r
);
853 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE
, r
);
854 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION
, r
);
855 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP
, r
);
856 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES
, r
);
857 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE
, r
);
858 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY
, r
);
859 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR
, r
);
860 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX
, r
);
861 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION
, r
);
862 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION
, r
);
863 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE
, r
);
864 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME
, r
);
865 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS
, r
);
866 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL
, r
);
867 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH
, r
);
868 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT
, r
);
869 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS
, r
);
870 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY
, r
);
871 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD
, r
);
872 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT
, r
);
873 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE
, r
);
874 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE
, r
);
875 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH
, r
);
876 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT
, r
);
880 static enum ndr_err_code
ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeSpecVersion r
)
882 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
883 return NDR_ERR_SUCCESS
;
886 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeSpecVersion
*r
)
889 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
891 return NDR_ERR_SUCCESS
;
894 _PUBLIC_
void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeSpecVersion r
)
896 const char *val
= NULL
;
899 case DMSPEC_NT3
: val
= "DMSPEC_NT3"; break;
900 case DMSPEC_WIN95_98_ME
: val
= "DMSPEC_WIN95_98_ME"; break;
901 case DMSPEC_NT4_AND_ABOVE
: val
= "DMSPEC_NT4_AND_ABOVE"; break;
903 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
906 static enum ndr_err_code
ndr_push_spoolss_DeviceModeOrientation(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeOrientation r
)
908 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
909 return NDR_ERR_SUCCESS
;
912 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeOrientation
*r
)
915 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
917 return NDR_ERR_SUCCESS
;
920 _PUBLIC_
void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeOrientation r
)
922 const char *val
= NULL
;
925 case DMORIENT_PORTRAIT
: val
= "DMORIENT_PORTRAIT"; break;
926 case DMORIENT_LANDSCAPE
: val
= "DMORIENT_LANDSCAPE"; break;
928 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
931 static enum ndr_err_code
ndr_push_spoolss_DeviceModePaperSize(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModePaperSize r
)
933 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
934 return NDR_ERR_SUCCESS
;
937 static enum ndr_err_code
ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModePaperSize
*r
)
940 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
942 return NDR_ERR_SUCCESS
;
945 _PUBLIC_
void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModePaperSize r
)
947 const char *val
= NULL
;
950 case DMPAPER_LETTER
: val
= "DMPAPER_LETTER"; break;
951 case DMPAPER_LETTERSMALL
: val
= "DMPAPER_LETTERSMALL"; break;
952 case DMPAPER_TABLOID
: val
= "DMPAPER_TABLOID"; break;
953 case DMPAPER_LEDGER
: val
= "DMPAPER_LEDGER"; break;
954 case DMPAPER_LEGAL
: val
= "DMPAPER_LEGAL"; break;
955 case DMPAPER_STATEMENT
: val
= "DMPAPER_STATEMENT"; break;
956 case DMPAPER_EXECUTIVE
: val
= "DMPAPER_EXECUTIVE"; break;
957 case DMPAPER_A3
: val
= "DMPAPER_A3"; break;
958 case DMPAPER_A4
: val
= "DMPAPER_A4"; break;
959 case DMPAPER_A4SMALL
: val
= "DMPAPER_A4SMALL"; break;
960 case DMPAPER_A5
: val
= "DMPAPER_A5"; break;
961 case DMPAPER_B4
: val
= "DMPAPER_B4"; break;
962 case DMPAPER_B5
: val
= "DMPAPER_B5"; break;
963 case DMPAPER_FOLIO
: val
= "DMPAPER_FOLIO"; break;
964 case DMPAPER_QUARTO
: val
= "DMPAPER_QUARTO"; break;
965 case DMPAPER_10X14
: val
= "DMPAPER_10X14"; break;
966 case DMPAPER_11X17
: val
= "DMPAPER_11X17"; break;
967 case DMPAPER_NOTE
: val
= "DMPAPER_NOTE"; break;
968 case DMPAPER_ENV_9
: val
= "DMPAPER_ENV_9"; break;
969 case DMPAPER_ENV_10
: val
= "DMPAPER_ENV_10"; break;
970 case DMPAPER_ENV_11
: val
= "DMPAPER_ENV_11"; break;
971 case DMPAPER_ENV_12
: val
= "DMPAPER_ENV_12"; break;
972 case DMPAPER_ENV_14
: val
= "DMPAPER_ENV_14"; break;
973 case DMPAPER_CSHEET
: val
= "DMPAPER_CSHEET"; break;
974 case DMPAPER_DSHEET
: val
= "DMPAPER_DSHEET"; break;
975 case DMPAPER_ESHEET
: val
= "DMPAPER_ESHEET"; break;
976 case DMPAPER_ENV_DL
: val
= "DMPAPER_ENV_DL"; break;
977 case DMPAPER_ENV_C5
: val
= "DMPAPER_ENV_C5"; break;
978 case DMPAPER_ENV_C3
: val
= "DMPAPER_ENV_C3"; break;
979 case DMPAPER_ENV_C4
: val
= "DMPAPER_ENV_C4"; break;
980 case DMPAPER_ENV_C6
: val
= "DMPAPER_ENV_C6"; break;
981 case DMPAPER_ENV_C65
: val
= "DMPAPER_ENV_C65"; break;
982 case DMPAPER_ENV_B4
: val
= "DMPAPER_ENV_B4"; break;
983 case DMPAPER_ENV_B5
: val
= "DMPAPER_ENV_B5"; break;
984 case DMPAPER_ENV_B6
: val
= "DMPAPER_ENV_B6"; break;
985 case DMPAPER_ENV_ITALY
: val
= "DMPAPER_ENV_ITALY"; break;
986 case DMPAPER_ENV_MONARCH
: val
= "DMPAPER_ENV_MONARCH"; break;
987 case DMPAPER_ENV_PERSONAL
: val
= "DMPAPER_ENV_PERSONAL"; break;
988 case DMPAPER_FANFOLD_US
: val
= "DMPAPER_FANFOLD_US"; break;
989 case DMPAPER_FANFOLD_STD_GERMAN
: val
= "DMPAPER_FANFOLD_STD_GERMAN"; break;
990 case DMPAPER_FANFOLD_LGL_GERMAN
: val
= "DMPAPER_FANFOLD_LGL_GERMAN"; break;
991 case DMPAPER_DBL_JAPANESE_POSTCARD
: val
= "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
992 case DMPAPER_A6
: val
= "DMPAPER_A6"; break;
993 case DMPAPER_JENV_KAKU2
: val
= "DMPAPER_JENV_KAKU2"; break;
994 case DMPAPER_JENV_KAKU3
: val
= "DMPAPER_JENV_KAKU3"; break;
995 case DMPAPER_JENV_CHOU3
: val
= "DMPAPER_JENV_CHOU3"; break;
996 case DMPAPER_JENV_CHOU4
: val
= "DMPAPER_JENV_CHOU4"; break;
997 case DMPAPER_LETTER_ROTATED
: val
= "DMPAPER_LETTER_ROTATED"; break;
998 case DMPAPER_A3_ROTATED
: val
= "DMPAPER_A3_ROTATED"; break;
999 case DMPAPER_A4_ROTATED
: val
= "DMPAPER_A4_ROTATED"; break;
1000 case DMPAPER_A5_ROTATED
: val
= "DMPAPER_A5_ROTATED"; break;
1001 case DMPAPER_B4_JIS_ROTATED
: val
= "DMPAPER_B4_JIS_ROTATED"; break;
1002 case DMPAPER_B5_JIS_ROTATED
: val
= "DMPAPER_B5_JIS_ROTATED"; break;
1003 case DMPAPER_JAPANESE_POSTCARD_ROTATED
: val
= "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
1004 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED
: val
= "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
1005 case DMPAPER_A6_ROTATED
: val
= "DMPAPER_A6_ROTATED"; break;
1006 case DMPAPER_JENV_KAKU2_ROTATED
: val
= "DMPAPER_JENV_KAKU2_ROTATED"; break;
1007 case DMPAPER_JENV_KAKU3_ROTATED
: val
= "DMPAPER_JENV_KAKU3_ROTATED"; break;
1008 case DMPAPER_JENV_CHOU3_ROTATED
: val
= "DMPAPER_JENV_CHOU3_ROTATED"; break;
1009 case DMPAPER_JENV_CHOU4_ROTATED
: val
= "DMPAPER_JENV_CHOU4_ROTATED"; break;
1010 case DMPAPER_B6_JIS
: val
= "DMPAPER_B6_JIS"; break;
1011 case DMPAPER_B6_JIS_ROTATED
: val
= "DMPAPER_B6_JIS_ROTATED"; break;
1012 case DMPAPER_12X11
: val
= "DMPAPER_12X11"; break;
1013 case DMPAPER_JENV_YOU4
: val
= "DMPAPER_JENV_YOU4"; break;
1014 case DMPAPER_JENV_YOU4_ROTATED
: val
= "DMPAPER_JENV_YOU4_ROTATED"; break;
1015 case DMPAPER_P16K
: val
= "DMPAPER_P16K"; break;
1016 case DMPAPER_P32K
: val
= "DMPAPER_P32K"; break;
1017 case DMPAPER_P32KBIG
: val
= "DMPAPER_P32KBIG"; break;
1018 case DMPAPER_PENV_1
: val
= "DMPAPER_PENV_1"; break;
1019 case DMPAPER_PENV_2
: val
= "DMPAPER_PENV_2"; break;
1020 case DMPAPER_PENV_3
: val
= "DMPAPER_PENV_3"; break;
1021 case DMPAPER_PENV_4
: val
= "DMPAPER_PENV_4"; break;
1022 case DMPAPER_PENV_5
: val
= "DMPAPER_PENV_5"; break;
1023 case DMPAPER_PENV_6
: val
= "DMPAPER_PENV_6"; break;
1024 case DMPAPER_PENV_7
: val
= "DMPAPER_PENV_7"; break;
1025 case DMPAPER_PENV_8
: val
= "DMPAPER_PENV_8"; break;
1026 case DMPAPER_PENV_9
: val
= "DMPAPER_PENV_9"; break;
1027 case DMPAPER_PENV_10
: val
= "DMPAPER_PENV_10"; break;
1028 case DMPAPER_P16K_ROTATED
: val
= "DMPAPER_P16K_ROTATED"; break;
1029 case DMPAPER_P32K_ROTATED
: val
= "DMPAPER_P32K_ROTATED"; break;
1030 case DMPAPER_P32KBIG_ROTATED
: val
= "DMPAPER_P32KBIG_ROTATED"; break;
1031 case DMPAPER_PENV_1_ROTATED
: val
= "DMPAPER_PENV_1_ROTATED"; break;
1032 case DMPAPER_PENV_2_ROTATED
: val
= "DMPAPER_PENV_2_ROTATED"; break;
1033 case DMPAPER_PENV_3_ROTATED
: val
= "DMPAPER_PENV_3_ROTATED"; break;
1034 case DMPAPER_PENV_4_ROTATED
: val
= "DMPAPER_PENV_4_ROTATED"; break;
1035 case DMPAPER_PENV_5_ROTATED
: val
= "DMPAPER_PENV_5_ROTATED"; break;
1036 case DMPAPER_PENV_6_ROTATED
: val
= "DMPAPER_PENV_6_ROTATED"; break;
1037 case DMPAPER_PENV_7_ROTATED
: val
= "DMPAPER_PENV_7_ROTATED"; break;
1038 case DMPAPER_PENV_8_ROTATED
: val
= "DMPAPER_PENV_8_ROTATED"; break;
1039 case DMPAPER_PENV_9_ROTATED
: val
= "DMPAPER_PENV_9_ROTATED"; break;
1040 case DMPAPER_PENV_10_ROTATED
: val
= "DMPAPER_PENV_10_ROTATED"; break;
1042 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1045 static enum ndr_err_code
ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDefaultSource r
)
1047 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
1048 return NDR_ERR_SUCCESS
;
1051 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDefaultSource
*r
)
1054 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
1056 return NDR_ERR_SUCCESS
;
1059 _PUBLIC_
void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeDefaultSource r
)
1061 const char *val
= NULL
;
1064 case DMBIN_UPPER
: val
= "DMBIN_UPPER"; break;
1065 case DMBIN_LOWER
: val
= "DMBIN_LOWER"; break;
1066 case DMBIN_MIDDLE
: val
= "DMBIN_MIDDLE"; break;
1067 case DMBIN_MANUAL
: val
= "DMBIN_MANUAL"; break;
1068 case DMBIN_ENVELOPE
: val
= "DMBIN_ENVELOPE"; break;
1069 case DMBIN_ENVMANUAL
: val
= "DMBIN_ENVMANUAL"; break;
1070 case DMBIN_AUTO
: val
= "DMBIN_AUTO"; break;
1071 case DMBIN_TRACTOR
: val
= "DMBIN_TRACTOR"; break;
1072 case DMBIN_SMALLFMT
: val
= "DMBIN_SMALLFMT"; break;
1073 case DMBIN_LARGEFMT
: val
= "DMBIN_LARGEFMT"; break;
1074 case DMBIN_LARGECAPACITY
: val
= "DMBIN_LARGECAPACITY"; break;
1075 case DMBIN_CASSETTE
: val
= "DMBIN_CASSETTE"; break;
1076 case DMBIN_FORMSOURCE
: val
= "DMBIN_FORMSOURCE"; break;
1078 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1081 static enum ndr_err_code
ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModePrintQuality r
)
1083 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
1084 return NDR_ERR_SUCCESS
;
1087 static enum ndr_err_code
ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModePrintQuality
*r
)
1090 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
1092 return NDR_ERR_SUCCESS
;
1095 _PUBLIC_
void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModePrintQuality r
)
1097 const char *val
= NULL
;
1100 case DMRES_HIGH
: val
= "DMRES_HIGH"; break;
1101 case DMRES_MEDIUM
: val
= "DMRES_MEDIUM"; break;
1102 case DMRES_LOW
: val
= "DMRES_LOW"; break;
1103 case DMRES_DRAFT
: val
= "DMRES_DRAFT"; break;
1105 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1108 static enum ndr_err_code
ndr_push_spoolss_DeviceModeColor(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeColor r
)
1110 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
1111 return NDR_ERR_SUCCESS
;
1114 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeColor(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeColor
*r
)
1117 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
1119 return NDR_ERR_SUCCESS
;
1122 _PUBLIC_
void ndr_print_spoolss_DeviceModeColor(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeColor r
)
1124 const char *val
= NULL
;
1127 case DMRES_MONOCHROME
: val
= "DMRES_MONOCHROME"; break;
1128 case DMRES_COLOR
: val
= "DMRES_COLOR"; break;
1130 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1133 static enum ndr_err_code
ndr_push_spoolss_DeviceModeDuplex(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDuplex r
)
1135 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
1136 return NDR_ERR_SUCCESS
;
1139 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDuplex
*r
)
1142 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
1144 return NDR_ERR_SUCCESS
;
1147 _PUBLIC_
void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeDuplex r
)
1149 const char *val
= NULL
;
1152 case DMDUP_SIMPLEX
: val
= "DMDUP_SIMPLEX"; break;
1153 case DMDUP_VERTICAL
: val
= "DMDUP_VERTICAL"; break;
1154 case DMDUP_HORIZONTAL
: val
= "DMDUP_HORIZONTAL"; break;
1156 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1159 static enum ndr_err_code
ndr_push_spoolss_DeviceModeTTOption(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeTTOption r
)
1161 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
1162 return NDR_ERR_SUCCESS
;
1165 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeTTOption
*r
)
1168 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
1170 return NDR_ERR_SUCCESS
;
1173 _PUBLIC_
void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeTTOption r
)
1175 const char *val
= NULL
;
1178 case DMTT_BITMAP
: val
= "DMTT_BITMAP"; break;
1179 case DMTT_DOWNLOAD
: val
= "DMTT_DOWNLOAD"; break;
1180 case DMTT_SUBDEV
: val
= "DMTT_SUBDEV"; break;
1181 case DMTT_DOWNLOAD_OUTLINE
: val
= "DMTT_DOWNLOAD_OUTLINE"; break;
1183 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1186 static enum ndr_err_code
ndr_push_spoolss_DeviceModeCollate(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeCollate r
)
1188 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
1189 return NDR_ERR_SUCCESS
;
1192 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeCollate
*r
)
1195 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
1197 return NDR_ERR_SUCCESS
;
1200 _PUBLIC_
void ndr_print_spoolss_DeviceModeCollate(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeCollate r
)
1202 const char *val
= NULL
;
1205 case DMCOLLATE_FALSE
: val
= "DMCOLLATE_FALSE"; break;
1206 case DMCOLLATE_TRUE
: val
= "DMCOLLATE_TRUE"; break;
1208 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1211 static enum ndr_err_code
ndr_push_spoolss_DeviceModeNUp(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeNUp r
)
1213 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
1214 return NDR_ERR_SUCCESS
;
1217 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeNUp
*r
)
1220 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
1222 return NDR_ERR_SUCCESS
;
1225 _PUBLIC_
void ndr_print_spoolss_DeviceModeNUp(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeNUp r
)
1227 const char *val
= NULL
;
1230 case DMNUP_SYSTEM
: val
= "DMNUP_SYSTEM"; break;
1231 case DMNUP_ONEUP
: val
= "DMNUP_ONEUP"; break;
1233 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1236 static enum ndr_err_code
ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMMethod r
)
1238 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
1239 return NDR_ERR_SUCCESS
;
1242 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMMethod
*r
)
1245 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
1247 return NDR_ERR_SUCCESS
;
1250 _PUBLIC_
void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeICMMethod r
)
1252 const char *val
= NULL
;
1255 case DMICMMETHOD_NONE
: val
= "DMICMMETHOD_NONE"; break;
1256 case DMICMMETHOD_SYSTEM
: val
= "DMICMMETHOD_SYSTEM"; break;
1257 case DMICMMETHOD_DRIVER
: val
= "DMICMMETHOD_DRIVER"; break;
1258 case DMICMMETHOD_DEVICE
: val
= "DMICMMETHOD_DEVICE"; break;
1260 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1263 static enum ndr_err_code
ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMIntent r
)
1265 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
1266 return NDR_ERR_SUCCESS
;
1269 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMIntent
*r
)
1272 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
1274 return NDR_ERR_SUCCESS
;
1277 _PUBLIC_
void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeICMIntent r
)
1279 const char *val
= NULL
;
1282 case DMICM_SATURATE
: val
= "DMICM_SATURATE"; break;
1283 case DMICM_CONTRAST
: val
= "DMICM_CONTRAST"; break;
1284 case DMICM_COLORIMETRIC
: val
= "DMICM_COLORIMETRIC"; break;
1285 case DMICM_ABS_COLORIMETRIC
: val
= "DMICM_ABS_COLORIMETRIC"; break;
1287 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1290 static enum ndr_err_code
ndr_push_spoolss_DeviceModeMediaType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeMediaType r
)
1292 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
1293 return NDR_ERR_SUCCESS
;
1296 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeMediaType
*r
)
1299 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
1301 return NDR_ERR_SUCCESS
;
1304 _PUBLIC_
void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeMediaType r
)
1306 const char *val
= NULL
;
1309 case DMMEDIA_STANDARD
: val
= "DMMEDIA_STANDARD"; break;
1310 case DMMEDIA_TRANSPARENCY
: val
= "DMMEDIA_TRANSPARENCY"; break;
1311 case DMMEDIA_GLOSSY
: val
= "DMMEDIA_GLOSSY"; break;
1313 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1316 static enum ndr_err_code
ndr_push_spoolss_DeviceModeDitherType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDitherType r
)
1318 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
1319 return NDR_ERR_SUCCESS
;
1322 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDitherType
*r
)
1325 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
1327 return NDR_ERR_SUCCESS
;
1330 _PUBLIC_
void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeDitherType r
)
1332 const char *val
= NULL
;
1335 case DMDITHER_NONE
: val
= "DMDITHER_NONE"; break;
1336 case DMDITHER_COARSE
: val
= "DMDITHER_COARSE"; break;
1337 case DMDITHER_FINE
: val
= "DMDITHER_FINE"; break;
1338 case DMDITHER_LINEART
: val
= "DMDITHER_LINEART"; break;
1339 case DMDITHER_ERRORDIFFUSION
: val
= "DMDITHER_ERRORDIFFUSION"; break;
1340 case DMDITHER_RESERVED6
: val
= "DMDITHER_RESERVED6"; break;
1341 case DMDITHER_RESERVED7
: val
= "DMDITHER_RESERVED7"; break;
1342 case DMDITHER_RESERVED8
: val
= "DMDITHER_RESERVED8"; break;
1343 case DMDITHER_RESERVED9
: val
= "DMDITHER_RESERVED9"; break;
1344 case DMDITHER_GRAYSCALE
: val
= "DMDITHER_GRAYSCALE"; break;
1346 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1349 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeviceMode(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceMode
*r
)
1351 if (ndr_flags
& NDR_SCALARS
) {
1352 NDR_CHECK(ndr_push_align(ndr
, 4));
1353 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->devicename
, MAXDEVICENAME
, sizeof(uint16_t), CH_UTF16
));
1354 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr
, NDR_SCALARS
, r
->specversion
));
1355 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverversion
));
1356 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
1357 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverextra_data
.length
));
1358 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, r
->fields
));
1359 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr
, NDR_SCALARS
, r
->orientation
));
1360 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr
, NDR_SCALARS
, r
->papersize
));
1361 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperlength
));
1362 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperwidth
));
1363 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->scale
));
1364 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->copies
));
1365 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr
, NDR_SCALARS
, r
->defaultsource
));
1366 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr
, NDR_SCALARS
, r
->printquality
));
1367 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr
, NDR_SCALARS
, r
->color
));
1368 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr
, NDR_SCALARS
, r
->duplex
));
1369 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->yresolution
));
1370 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr
, NDR_SCALARS
, r
->ttoption
));
1371 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr
, NDR_SCALARS
, r
->collate
));
1372 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, MAXDEVICENAME
, sizeof(uint16_t), CH_UTF16
));
1373 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logpixels
));
1374 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bitsperpel
));
1375 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelswidth
));
1376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelsheight
));
1377 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr
, NDR_SCALARS
, r
->displayflags
));
1378 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayfrequency
));
1379 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr
, NDR_SCALARS
, r
->icmmethod
));
1380 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr
, NDR_SCALARS
, r
->icmintent
));
1381 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr
, NDR_SCALARS
, r
->mediatype
));
1382 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr
, NDR_SCALARS
, r
->dithertype
));
1383 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved1
));
1384 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
1385 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningwidth
));
1386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningheight
));
1388 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1389 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
1391 struct ndr_push
*_ndr_driverextra_data
;
1392 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
1393 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, r
->driverextra_data
));
1394 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
1396 ndr
->flags
= _flags_save_DATA_BLOB
;
1398 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
1400 if (ndr_flags
& NDR_BUFFERS
) {
1402 return NDR_ERR_SUCCESS
;
1405 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeviceMode(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceMode
*r
)
1407 if (ndr_flags
& NDR_SCALARS
) {
1408 NDR_CHECK(ndr_pull_align(ndr
, 4));
1409 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->devicename
, MAXDEVICENAME
, sizeof(uint16_t), CH_UTF16
));
1410 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr
, NDR_SCALARS
, &r
->specversion
));
1411 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->driverversion
));
1412 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
1413 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->__driverextra_length
));
1414 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, &r
->fields
));
1415 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr
, NDR_SCALARS
, &r
->orientation
));
1416 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr
, NDR_SCALARS
, &r
->papersize
));
1417 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperlength
));
1418 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperwidth
));
1419 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->scale
));
1420 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->copies
));
1421 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr
, NDR_SCALARS
, &r
->defaultsource
));
1422 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr
, NDR_SCALARS
, &r
->printquality
));
1423 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr
, NDR_SCALARS
, &r
->color
));
1424 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr
, NDR_SCALARS
, &r
->duplex
));
1425 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->yresolution
));
1426 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr
, NDR_SCALARS
, &r
->ttoption
));
1427 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr
, NDR_SCALARS
, &r
->collate
));
1428 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, MAXDEVICENAME
, sizeof(uint16_t), CH_UTF16
));
1429 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logpixels
));
1430 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bitsperpel
));
1431 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelswidth
));
1432 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelsheight
));
1433 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr
, NDR_SCALARS
, &r
->displayflags
));
1434 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayfrequency
));
1435 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr
, NDR_SCALARS
, &r
->icmmethod
));
1436 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr
, NDR_SCALARS
, &r
->icmintent
));
1437 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr
, NDR_SCALARS
, &r
->mediatype
));
1438 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr
, NDR_SCALARS
, &r
->dithertype
));
1439 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved1
));
1440 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
1441 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningwidth
));
1442 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningheight
));
1444 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1445 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
1447 struct ndr_pull
*_ndr_driverextra_data
;
1448 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->__driverextra_length
));
1449 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, &r
->driverextra_data
));
1450 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->__driverextra_length
));
1452 ndr
->flags
= _flags_save_DATA_BLOB
;
1454 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
1456 if (ndr_flags
& NDR_BUFFERS
) {
1458 return NDR_ERR_SUCCESS
;
1461 _PUBLIC_
void ndr_print_spoolss_DeviceMode(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceMode
*r
)
1463 ndr_print_struct(ndr
, name
, "spoolss_DeviceMode");
1465 ndr_print_string(ndr
, "devicename", r
->devicename
);
1466 ndr_print_spoolss_DeviceModeSpecVersion(ndr
, "specversion", r
->specversion
);
1467 ndr_print_uint16(ndr
, "driverversion", r
->driverversion
);
1468 ndr_print_uint16(ndr
, "size", r
->size
);
1469 ndr_print_uint16(ndr
, "__driverextra_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->driverextra_data
.length
:r
->__driverextra_length
);
1470 ndr_print_spoolss_DeviceModeFields(ndr
, "fields", r
->fields
);
1471 ndr_print_spoolss_DeviceModeOrientation(ndr
, "orientation", r
->orientation
);
1472 ndr_print_spoolss_DeviceModePaperSize(ndr
, "papersize", r
->papersize
);
1473 ndr_print_uint16(ndr
, "paperlength", r
->paperlength
);
1474 ndr_print_uint16(ndr
, "paperwidth", r
->paperwidth
);
1475 ndr_print_uint16(ndr
, "scale", r
->scale
);
1476 ndr_print_uint16(ndr
, "copies", r
->copies
);
1477 ndr_print_spoolss_DeviceModeDefaultSource(ndr
, "defaultsource", r
->defaultsource
);
1478 ndr_print_spoolss_DeviceModePrintQuality(ndr
, "printquality", r
->printquality
);
1479 ndr_print_spoolss_DeviceModeColor(ndr
, "color", r
->color
);
1480 ndr_print_spoolss_DeviceModeDuplex(ndr
, "duplex", r
->duplex
);
1481 ndr_print_uint16(ndr
, "yresolution", r
->yresolution
);
1482 ndr_print_spoolss_DeviceModeTTOption(ndr
, "ttoption", r
->ttoption
);
1483 ndr_print_spoolss_DeviceModeCollate(ndr
, "collate", r
->collate
);
1484 ndr_print_string(ndr
, "formname", r
->formname
);
1485 ndr_print_uint16(ndr
, "logpixels", r
->logpixels
);
1486 ndr_print_uint32(ndr
, "bitsperpel", r
->bitsperpel
);
1487 ndr_print_uint32(ndr
, "pelswidth", r
->pelswidth
);
1488 ndr_print_uint32(ndr
, "pelsheight", r
->pelsheight
);
1489 ndr_print_spoolss_DeviceModeNUp(ndr
, "displayflags", r
->displayflags
);
1490 ndr_print_uint32(ndr
, "displayfrequency", r
->displayfrequency
);
1491 ndr_print_spoolss_DeviceModeICMMethod(ndr
, "icmmethod", r
->icmmethod
);
1492 ndr_print_spoolss_DeviceModeICMIntent(ndr
, "icmintent", r
->icmintent
);
1493 ndr_print_spoolss_DeviceModeMediaType(ndr
, "mediatype", r
->mediatype
);
1494 ndr_print_spoolss_DeviceModeDitherType(ndr
, "dithertype", r
->dithertype
);
1495 ndr_print_uint32(ndr
, "reserved1", r
->reserved1
);
1496 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
1497 ndr_print_uint32(ndr
, "panningwidth", r
->panningwidth
);
1498 ndr_print_uint32(ndr
, "panningheight", r
->panningheight
);
1499 ndr_print_DATA_BLOB(ndr
, "driverextra_data", r
->driverextra_data
);
1503 _PUBLIC_
size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1505 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DeviceMode
, ic
);
1508 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1510 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1511 return NDR_ERR_SUCCESS
;
1514 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1517 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1519 return NDR_ERR_SUCCESS
;
1522 _PUBLIC_
void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1524 ndr_print_uint32(ndr
, name
, r
);
1526 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT
, r
);
1527 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL
, r
);
1528 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS
, r
);
1529 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE
, r
);
1530 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME
, r
);
1531 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE
, r
);
1532 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED
, r
);
1533 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK
, r
);
1534 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND
, r
);
1535 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER
, r
);
1536 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1
, r
);
1537 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2
, r
);
1538 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3
, r
);
1539 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4
, r
);
1540 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5
, r
);
1541 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6
, r
);
1542 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7
, r
);
1543 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8
, r
);
1544 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE
, r
);
1548 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1550 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1551 return NDR_ERR_SUCCESS
;
1554 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1557 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1559 return NDR_ERR_SUCCESS
;
1562 _PUBLIC_
void ndr_print_spoolss_PrinterAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1564 ndr_print_uint32(ndr
, name
, r
);
1566 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED
, r
);
1567 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT
, r
);
1568 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT
, r
);
1569 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED
, r
);
1570 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK
, r
);
1571 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN
, r
);
1572 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL
, r
);
1573 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ
, r
);
1574 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS
, r
);
1575 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST
, r
);
1576 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE
, r
);
1577 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI
, r
);
1578 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY
, r
);
1579 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED
, r
);
1580 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX
, r
);
1581 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS
, r
);
1585 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo1
*r
)
1587 if (ndr_flags
& NDR_SCALARS
) {
1588 NDR_CHECK(ndr_push_align(ndr
, 5));
1589 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->flags
));
1591 uint32_t _flags_save_string
= ndr
->flags
;
1592 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1593 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
1594 ndr
->flags
= _flags_save_string
;
1597 uint32_t _flags_save_string
= ndr
->flags
;
1598 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1599 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name
));
1600 ndr
->flags
= _flags_save_string
;
1603 uint32_t _flags_save_string
= ndr
->flags
;
1604 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1605 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
1606 ndr
->flags
= _flags_save_string
;
1608 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
1610 if (ndr_flags
& NDR_BUFFERS
) {
1612 uint32_t _flags_save_string
= ndr
->flags
;
1613 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1614 if (r
->description
) {
1615 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->description
));
1616 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
1617 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->description
));
1619 ndr
->flags
= _flags_save_string
;
1622 uint32_t _flags_save_string
= ndr
->flags
;
1623 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1625 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->name
));
1626 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name
));
1627 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->name
));
1629 ndr
->flags
= _flags_save_string
;
1632 uint32_t _flags_save_string
= ndr
->flags
;
1633 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1635 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->comment
));
1636 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
1637 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->comment
));
1639 ndr
->flags
= _flags_save_string
;
1642 return NDR_ERR_SUCCESS
;
1645 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo1
*r
)
1647 uint32_t _ptr_description
;
1648 TALLOC_CTX
*_mem_save_description_0
;
1650 TALLOC_CTX
*_mem_save_name_0
;
1651 uint32_t _ptr_comment
;
1652 TALLOC_CTX
*_mem_save_comment_0
;
1653 if (ndr_flags
& NDR_SCALARS
) {
1654 NDR_CHECK(ndr_pull_align(ndr
, 5));
1655 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->flags
));
1657 uint32_t _flags_save_string
= ndr
->flags
;
1658 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1659 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
1660 if (_ptr_description
) {
1661 NDR_PULL_ALLOC(ndr
, r
->description
);
1662 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
1664 r
->description
= NULL
;
1666 ndr
->flags
= _flags_save_string
;
1669 uint32_t _flags_save_string
= ndr
->flags
;
1670 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1671 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
1673 NDR_PULL_ALLOC(ndr
, r
->name
);
1674 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name
, _ptr_name
));
1678 ndr
->flags
= _flags_save_string
;
1681 uint32_t _flags_save_string
= ndr
->flags
;
1682 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1683 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
1685 NDR_PULL_ALLOC(ndr
, r
->comment
);
1686 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
1690 ndr
->flags
= _flags_save_string
;
1692 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
1694 if (ndr_flags
& NDR_BUFFERS
) {
1696 uint32_t _flags_save_string
= ndr
->flags
;
1697 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1698 if (r
->description
) {
1699 uint32_t _relative_save_offset
;
1700 _relative_save_offset
= ndr
->offset
;
1701 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
1702 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1703 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
1704 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
1705 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
1706 if (ndr
->offset
> ndr
->relative_highest_offset
) {
1707 ndr
->relative_highest_offset
= ndr
->offset
;
1709 ndr
->offset
= _relative_save_offset
;
1711 ndr
->flags
= _flags_save_string
;
1714 uint32_t _flags_save_string
= ndr
->flags
;
1715 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1717 uint32_t _relative_save_offset
;
1718 _relative_save_offset
= ndr
->offset
;
1719 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name
));
1720 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1721 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
1722 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name
));
1723 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
1724 if (ndr
->offset
> ndr
->relative_highest_offset
) {
1725 ndr
->relative_highest_offset
= ndr
->offset
;
1727 ndr
->offset
= _relative_save_offset
;
1729 ndr
->flags
= _flags_save_string
;
1732 uint32_t _flags_save_string
= ndr
->flags
;
1733 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1735 uint32_t _relative_save_offset
;
1736 _relative_save_offset
= ndr
->offset
;
1737 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
1738 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1739 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
1740 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
1741 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
1742 if (ndr
->offset
> ndr
->relative_highest_offset
) {
1743 ndr
->relative_highest_offset
= ndr
->offset
;
1745 ndr
->offset
= _relative_save_offset
;
1747 ndr
->flags
= _flags_save_string
;
1750 return NDR_ERR_SUCCESS
;
1753 _PUBLIC_
void ndr_print_spoolss_PrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo1
*r
)
1755 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo1");
1757 ndr_print_spoolss_PrinterAttributes(ndr
, "flags", r
->flags
);
1758 ndr_print_ptr(ndr
, "description", r
->description
);
1760 if (r
->description
) {
1761 ndr_print_string(ndr
, "description", r
->description
);
1764 ndr_print_ptr(ndr
, "name", r
->name
);
1767 ndr_print_string(ndr
, "name", r
->name
);
1770 ndr_print_ptr(ndr
, "comment", r
->comment
);
1773 ndr_print_string(ndr
, "comment", r
->comment
);
1779 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1781 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo1
, ic
);
1784 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo2
*r
)
1786 uint32_t _ptr_servername
;
1787 TALLOC_CTX
*_mem_save_servername_0
;
1788 uint32_t _ptr_printername
;
1789 TALLOC_CTX
*_mem_save_printername_0
;
1790 uint32_t _ptr_sharename
;
1791 TALLOC_CTX
*_mem_save_sharename_0
;
1792 uint32_t _ptr_portname
;
1793 TALLOC_CTX
*_mem_save_portname_0
;
1794 uint32_t _ptr_drivername
;
1795 TALLOC_CTX
*_mem_save_drivername_0
;
1796 uint32_t _ptr_comment
;
1797 TALLOC_CTX
*_mem_save_comment_0
;
1798 uint32_t _ptr_location
;
1799 TALLOC_CTX
*_mem_save_location_0
;
1800 uint32_t _ptr_devmode
;
1801 TALLOC_CTX
*_mem_save_devmode_0
;
1802 uint32_t _ptr_sepfile
;
1803 TALLOC_CTX
*_mem_save_sepfile_0
;
1804 uint32_t _ptr_printprocessor
;
1805 TALLOC_CTX
*_mem_save_printprocessor_0
;
1806 uint32_t _ptr_datatype
;
1807 TALLOC_CTX
*_mem_save_datatype_0
;
1808 uint32_t _ptr_parameters
;
1809 TALLOC_CTX
*_mem_save_parameters_0
;
1810 uint32_t _ptr_secdesc
;
1811 TALLOC_CTX
*_mem_save_secdesc_0
;
1812 if (ndr_flags
& NDR_SCALARS
) {
1813 NDR_CHECK(ndr_pull_align(ndr
, 5));
1815 uint32_t _flags_save_string
= ndr
->flags
;
1816 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1817 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1818 if (_ptr_servername
) {
1819 NDR_PULL_ALLOC(ndr
, r
->servername
);
1820 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1822 r
->servername
= NULL
;
1824 ndr
->flags
= _flags_save_string
;
1827 uint32_t _flags_save_string
= ndr
->flags
;
1828 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1829 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1830 if (_ptr_printername
) {
1831 NDR_PULL_ALLOC(ndr
, r
->printername
);
1832 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1834 r
->printername
= NULL
;
1836 ndr
->flags
= _flags_save_string
;
1839 uint32_t _flags_save_string
= ndr
->flags
;
1840 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1841 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
1842 if (_ptr_sharename
) {
1843 NDR_PULL_ALLOC(ndr
, r
->sharename
);
1844 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sharename
, _ptr_sharename
));
1846 r
->sharename
= NULL
;
1848 ndr
->flags
= _flags_save_string
;
1851 uint32_t _flags_save_string
= ndr
->flags
;
1852 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1853 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
1854 if (_ptr_portname
) {
1855 NDR_PULL_ALLOC(ndr
, r
->portname
);
1856 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1860 ndr
->flags
= _flags_save_string
;
1863 uint32_t _flags_save_string
= ndr
->flags
;
1864 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1865 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
1866 if (_ptr_drivername
) {
1867 NDR_PULL_ALLOC(ndr
, r
->drivername
);
1868 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->drivername
, _ptr_drivername
));
1870 r
->drivername
= NULL
;
1872 ndr
->flags
= _flags_save_string
;
1875 uint32_t _flags_save_string
= ndr
->flags
;
1876 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1877 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
1879 NDR_PULL_ALLOC(ndr
, r
->comment
);
1880 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
1884 ndr
->flags
= _flags_save_string
;
1887 uint32_t _flags_save_string
= ndr
->flags
;
1888 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1889 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
1890 if (_ptr_location
) {
1891 NDR_PULL_ALLOC(ndr
, r
->location
);
1892 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->location
, _ptr_location
));
1896 ndr
->flags
= _flags_save_string
;
1899 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
1900 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1901 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
1903 NDR_PULL_ALLOC(ndr
, r
->devmode
);
1904 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
1908 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
1911 uint32_t _flags_save_string
= ndr
->flags
;
1912 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1913 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
1915 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
1916 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sepfile
, _ptr_sepfile
));
1920 ndr
->flags
= _flags_save_string
;
1923 uint32_t _flags_save_string
= ndr
->flags
;
1924 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1925 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
1926 if (_ptr_printprocessor
) {
1927 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
1928 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printprocessor
, _ptr_printprocessor
));
1930 r
->printprocessor
= NULL
;
1932 ndr
->flags
= _flags_save_string
;
1935 uint32_t _flags_save_string
= ndr
->flags
;
1936 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1937 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
1938 if (_ptr_datatype
) {
1939 NDR_PULL_ALLOC(ndr
, r
->datatype
);
1940 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->datatype
, _ptr_datatype
));
1944 ndr
->flags
= _flags_save_string
;
1947 uint32_t _flags_save_string
= ndr
->flags
;
1948 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1949 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
1950 if (_ptr_parameters
) {
1951 NDR_PULL_ALLOC(ndr
, r
->parameters
);
1952 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
1954 r
->parameters
= NULL
;
1956 ndr
->flags
= _flags_save_string
;
1959 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
1960 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
1961 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1963 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1964 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1968 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
1970 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1971 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
1972 if (r
->priority
> 99) {
1973 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
1975 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
1976 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
1977 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
1978 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
1979 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
1980 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
1981 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
1983 if (ndr_flags
& NDR_BUFFERS
) {
1985 uint32_t _flags_save_string
= ndr
->flags
;
1986 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1987 if (r
->servername
) {
1988 uint32_t _relative_save_offset
;
1989 _relative_save_offset
= ndr
->offset
;
1990 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
1991 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1992 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
1993 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
1994 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
1995 if (ndr
->offset
> ndr
->relative_highest_offset
) {
1996 ndr
->relative_highest_offset
= ndr
->offset
;
1998 ndr
->offset
= _relative_save_offset
;
2000 ndr
->flags
= _flags_save_string
;
2003 uint32_t _flags_save_string
= ndr
->flags
;
2004 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2005 if (r
->printername
) {
2006 uint32_t _relative_save_offset
;
2007 _relative_save_offset
= ndr
->offset
;
2008 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
2009 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2010 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
2011 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
2012 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
2013 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2014 ndr
->relative_highest_offset
= ndr
->offset
;
2016 ndr
->offset
= _relative_save_offset
;
2018 ndr
->flags
= _flags_save_string
;
2021 uint32_t _flags_save_string
= ndr
->flags
;
2022 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2024 uint32_t _relative_save_offset
;
2025 _relative_save_offset
= ndr
->offset
;
2026 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sharename
));
2027 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2028 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
2029 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sharename
));
2030 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
2031 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2032 ndr
->relative_highest_offset
= ndr
->offset
;
2034 ndr
->offset
= _relative_save_offset
;
2036 ndr
->flags
= _flags_save_string
;
2039 uint32_t _flags_save_string
= ndr
->flags
;
2040 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2042 uint32_t _relative_save_offset
;
2043 _relative_save_offset
= ndr
->offset
;
2044 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
2045 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2046 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
2047 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
2048 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
2049 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2050 ndr
->relative_highest_offset
= ndr
->offset
;
2052 ndr
->offset
= _relative_save_offset
;
2054 ndr
->flags
= _flags_save_string
;
2057 uint32_t _flags_save_string
= ndr
->flags
;
2058 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2059 if (r
->drivername
) {
2060 uint32_t _relative_save_offset
;
2061 _relative_save_offset
= ndr
->offset
;
2062 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->drivername
));
2063 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2064 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
2065 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->drivername
));
2066 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
2067 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2068 ndr
->relative_highest_offset
= ndr
->offset
;
2070 ndr
->offset
= _relative_save_offset
;
2072 ndr
->flags
= _flags_save_string
;
2075 uint32_t _flags_save_string
= ndr
->flags
;
2076 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2078 uint32_t _relative_save_offset
;
2079 _relative_save_offset
= ndr
->offset
;
2080 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
2081 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2082 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
2083 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
2084 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
2085 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2086 ndr
->relative_highest_offset
= ndr
->offset
;
2088 ndr
->offset
= _relative_save_offset
;
2090 ndr
->flags
= _flags_save_string
;
2093 uint32_t _flags_save_string
= ndr
->flags
;
2094 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2096 uint32_t _relative_save_offset
;
2097 _relative_save_offset
= ndr
->offset
;
2098 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->location
));
2099 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2100 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
2101 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->location
));
2102 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
2103 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2104 ndr
->relative_highest_offset
= ndr
->offset
;
2106 ndr
->offset
= _relative_save_offset
;
2108 ndr
->flags
= _flags_save_string
;
2111 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2112 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2114 uint32_t _relative_save_offset
;
2115 _relative_save_offset
= ndr
->offset
;
2116 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
2117 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2118 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2120 struct ndr_pull
*_ndr_devmode
;
2121 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2122 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2123 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2125 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2126 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2127 ndr
->relative_highest_offset
= ndr
->offset
;
2129 ndr
->offset
= _relative_save_offset
;
2131 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2134 uint32_t _flags_save_string
= ndr
->flags
;
2135 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2137 uint32_t _relative_save_offset
;
2138 _relative_save_offset
= ndr
->offset
;
2139 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sepfile
));
2140 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2141 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
2142 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sepfile
));
2143 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
2144 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2145 ndr
->relative_highest_offset
= ndr
->offset
;
2147 ndr
->offset
= _relative_save_offset
;
2149 ndr
->flags
= _flags_save_string
;
2152 uint32_t _flags_save_string
= ndr
->flags
;
2153 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2154 if (r
->printprocessor
) {
2155 uint32_t _relative_save_offset
;
2156 _relative_save_offset
= ndr
->offset
;
2157 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printprocessor
));
2158 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2159 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
2160 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printprocessor
));
2161 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
2162 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2163 ndr
->relative_highest_offset
= ndr
->offset
;
2165 ndr
->offset
= _relative_save_offset
;
2167 ndr
->flags
= _flags_save_string
;
2170 uint32_t _flags_save_string
= ndr
->flags
;
2171 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2173 uint32_t _relative_save_offset
;
2174 _relative_save_offset
= ndr
->offset
;
2175 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->datatype
));
2176 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2177 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
2178 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->datatype
));
2179 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
2180 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2181 ndr
->relative_highest_offset
= ndr
->offset
;
2183 ndr
->offset
= _relative_save_offset
;
2185 ndr
->flags
= _flags_save_string
;
2188 uint32_t _flags_save_string
= ndr
->flags
;
2189 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2190 if (r
->parameters
) {
2191 uint32_t _relative_save_offset
;
2192 _relative_save_offset
= ndr
->offset
;
2193 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
2194 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2195 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
2196 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
2197 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
2198 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2199 ndr
->relative_highest_offset
= ndr
->offset
;
2201 ndr
->offset
= _relative_save_offset
;
2203 ndr
->flags
= _flags_save_string
;
2206 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
2207 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2209 uint32_t _relative_save_offset
;
2210 _relative_save_offset
= ndr
->offset
;
2211 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
2212 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2213 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
2215 struct ndr_pull
*_ndr_secdesc
;
2216 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
2217 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
2218 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
2220 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
2221 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2222 ndr
->relative_highest_offset
= ndr
->offset
;
2224 ndr
->offset
= _relative_save_offset
;
2226 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
2229 return NDR_ERR_SUCCESS
;
2232 _PUBLIC_
void ndr_print_spoolss_PrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo2
*r
)
2234 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo2");
2236 ndr_print_ptr(ndr
, "servername", r
->servername
);
2238 if (r
->servername
) {
2239 ndr_print_string(ndr
, "servername", r
->servername
);
2242 ndr_print_ptr(ndr
, "printername", r
->printername
);
2244 if (r
->printername
) {
2245 ndr_print_string(ndr
, "printername", r
->printername
);
2248 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
2251 ndr_print_string(ndr
, "sharename", r
->sharename
);
2254 ndr_print_ptr(ndr
, "portname", r
->portname
);
2257 ndr_print_string(ndr
, "portname", r
->portname
);
2260 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
2262 if (r
->drivername
) {
2263 ndr_print_string(ndr
, "drivername", r
->drivername
);
2266 ndr_print_ptr(ndr
, "comment", r
->comment
);
2269 ndr_print_string(ndr
, "comment", r
->comment
);
2272 ndr_print_ptr(ndr
, "location", r
->location
);
2275 ndr_print_string(ndr
, "location", r
->location
);
2278 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2281 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2284 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
2287 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
2290 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
2292 if (r
->printprocessor
) {
2293 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
2296 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
2299 ndr_print_string(ndr
, "datatype", r
->datatype
);
2302 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
2304 if (r
->parameters
) {
2305 ndr_print_string(ndr
, "parameters", r
->parameters
);
2308 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
2311 ndr_print_spoolss_security_descriptor(ndr
, "secdesc", r
->secdesc
);
2314 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
2315 ndr_print_uint32(ndr
, "priority", r
->priority
);
2316 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
2317 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
2318 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
2319 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
2320 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
2321 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
2325 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2327 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo2
, ic
);
2330 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo3
*r
)
2332 if (ndr_flags
& NDR_SCALARS
) {
2333 NDR_CHECK(ndr_push_align(ndr
, 5));
2335 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
2336 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2337 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
2338 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
2340 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2342 if (ndr_flags
& NDR_BUFFERS
) {
2344 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
2345 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2347 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->secdesc
));
2349 struct ndr_push
*_ndr_secdesc
;
2350 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
2351 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
2352 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
2354 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->secdesc
));
2356 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
2359 return NDR_ERR_SUCCESS
;
2362 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo3
*r
)
2364 uint32_t _ptr_secdesc
;
2365 TALLOC_CTX
*_mem_save_secdesc_0
;
2366 if (ndr_flags
& NDR_SCALARS
) {
2367 NDR_CHECK(ndr_pull_align(ndr
, 5));
2369 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
2370 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2371 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
2373 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
2374 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
2378 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
2380 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2382 if (ndr_flags
& NDR_BUFFERS
) {
2384 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
2385 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2387 uint32_t _relative_save_offset
;
2388 _relative_save_offset
= ndr
->offset
;
2389 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
2390 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2391 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
2393 struct ndr_pull
*_ndr_secdesc
;
2394 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
2395 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
2396 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
2398 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
2399 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2400 ndr
->relative_highest_offset
= ndr
->offset
;
2402 ndr
->offset
= _relative_save_offset
;
2404 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
2407 return NDR_ERR_SUCCESS
;
2410 _PUBLIC_
void ndr_print_spoolss_PrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo3
*r
)
2412 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo3");
2414 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
2417 ndr_print_spoolss_security_descriptor(ndr
, "secdesc", r
->secdesc
);
2423 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2425 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo3
, ic
);
2428 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo4
*r
)
2430 if (ndr_flags
& NDR_SCALARS
) {
2431 NDR_CHECK(ndr_push_align(ndr
, 5));
2433 uint32_t _flags_save_string
= ndr
->flags
;
2434 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2435 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
2436 ndr
->flags
= _flags_save_string
;
2439 uint32_t _flags_save_string
= ndr
->flags
;
2440 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2441 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
2442 ndr
->flags
= _flags_save_string
;
2444 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
2445 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2447 if (ndr_flags
& NDR_BUFFERS
) {
2449 uint32_t _flags_save_string
= ndr
->flags
;
2450 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2451 if (r
->printername
) {
2452 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printername
));
2453 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
2454 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printername
));
2456 ndr
->flags
= _flags_save_string
;
2459 uint32_t _flags_save_string
= ndr
->flags
;
2460 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2461 if (r
->servername
) {
2462 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->servername
));
2463 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
2464 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->servername
));
2466 ndr
->flags
= _flags_save_string
;
2469 return NDR_ERR_SUCCESS
;
2472 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo4
*r
)
2474 uint32_t _ptr_printername
;
2475 TALLOC_CTX
*_mem_save_printername_0
;
2476 uint32_t _ptr_servername
;
2477 TALLOC_CTX
*_mem_save_servername_0
;
2478 if (ndr_flags
& NDR_SCALARS
) {
2479 NDR_CHECK(ndr_pull_align(ndr
, 5));
2481 uint32_t _flags_save_string
= ndr
->flags
;
2482 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2483 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
2484 if (_ptr_printername
) {
2485 NDR_PULL_ALLOC(ndr
, r
->printername
);
2486 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
2488 r
->printername
= NULL
;
2490 ndr
->flags
= _flags_save_string
;
2493 uint32_t _flags_save_string
= ndr
->flags
;
2494 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2495 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
2496 if (_ptr_servername
) {
2497 NDR_PULL_ALLOC(ndr
, r
->servername
);
2498 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
2500 r
->servername
= NULL
;
2502 ndr
->flags
= _flags_save_string
;
2504 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
2505 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2507 if (ndr_flags
& NDR_BUFFERS
) {
2509 uint32_t _flags_save_string
= ndr
->flags
;
2510 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2511 if (r
->printername
) {
2512 uint32_t _relative_save_offset
;
2513 _relative_save_offset
= ndr
->offset
;
2514 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
2515 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2516 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
2517 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
2518 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
2519 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2520 ndr
->relative_highest_offset
= ndr
->offset
;
2522 ndr
->offset
= _relative_save_offset
;
2524 ndr
->flags
= _flags_save_string
;
2527 uint32_t _flags_save_string
= ndr
->flags
;
2528 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2529 if (r
->servername
) {
2530 uint32_t _relative_save_offset
;
2531 _relative_save_offset
= ndr
->offset
;
2532 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
2533 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2534 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
2535 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
2536 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
2537 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2538 ndr
->relative_highest_offset
= ndr
->offset
;
2540 ndr
->offset
= _relative_save_offset
;
2542 ndr
->flags
= _flags_save_string
;
2545 return NDR_ERR_SUCCESS
;
2548 _PUBLIC_
void ndr_print_spoolss_PrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo4
*r
)
2550 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo4");
2552 ndr_print_ptr(ndr
, "printername", r
->printername
);
2554 if (r
->printername
) {
2555 ndr_print_string(ndr
, "printername", r
->printername
);
2558 ndr_print_ptr(ndr
, "servername", r
->servername
);
2560 if (r
->servername
) {
2561 ndr_print_string(ndr
, "servername", r
->servername
);
2564 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
2568 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2570 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo4
, ic
);
2573 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo5
*r
)
2575 if (ndr_flags
& NDR_SCALARS
) {
2576 NDR_CHECK(ndr_push_align(ndr
, 5));
2578 uint32_t _flags_save_string
= ndr
->flags
;
2579 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2580 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
2581 ndr
->flags
= _flags_save_string
;
2584 uint32_t _flags_save_string
= ndr
->flags
;
2585 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2586 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
2587 ndr
->flags
= _flags_save_string
;
2589 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
2590 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
2591 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
2592 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2594 if (ndr_flags
& NDR_BUFFERS
) {
2596 uint32_t _flags_save_string
= ndr
->flags
;
2597 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2598 if (r
->printername
) {
2599 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printername
));
2600 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
2601 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printername
));
2603 ndr
->flags
= _flags_save_string
;
2606 uint32_t _flags_save_string
= ndr
->flags
;
2607 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2609 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->portname
));
2610 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
2611 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->portname
));
2613 ndr
->flags
= _flags_save_string
;
2616 return NDR_ERR_SUCCESS
;
2619 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo5
*r
)
2621 uint32_t _ptr_printername
;
2622 TALLOC_CTX
*_mem_save_printername_0
;
2623 uint32_t _ptr_portname
;
2624 TALLOC_CTX
*_mem_save_portname_0
;
2625 if (ndr_flags
& NDR_SCALARS
) {
2626 NDR_CHECK(ndr_pull_align(ndr
, 5));
2628 uint32_t _flags_save_string
= ndr
->flags
;
2629 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2630 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
2631 if (_ptr_printername
) {
2632 NDR_PULL_ALLOC(ndr
, r
->printername
);
2633 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
2635 r
->printername
= NULL
;
2637 ndr
->flags
= _flags_save_string
;
2640 uint32_t _flags_save_string
= ndr
->flags
;
2641 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2642 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
2643 if (_ptr_portname
) {
2644 NDR_PULL_ALLOC(ndr
, r
->portname
);
2645 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
2649 ndr
->flags
= _flags_save_string
;
2651 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
2652 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
2653 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
2654 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2656 if (ndr_flags
& NDR_BUFFERS
) {
2658 uint32_t _flags_save_string
= ndr
->flags
;
2659 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2660 if (r
->printername
) {
2661 uint32_t _relative_save_offset
;
2662 _relative_save_offset
= ndr
->offset
;
2663 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
2664 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2665 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
2666 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
2667 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
2668 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2669 ndr
->relative_highest_offset
= ndr
->offset
;
2671 ndr
->offset
= _relative_save_offset
;
2673 ndr
->flags
= _flags_save_string
;
2676 uint32_t _flags_save_string
= ndr
->flags
;
2677 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2679 uint32_t _relative_save_offset
;
2680 _relative_save_offset
= ndr
->offset
;
2681 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
2682 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2683 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
2684 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
2685 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
2686 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2687 ndr
->relative_highest_offset
= ndr
->offset
;
2689 ndr
->offset
= _relative_save_offset
;
2691 ndr
->flags
= _flags_save_string
;
2694 return NDR_ERR_SUCCESS
;
2697 _PUBLIC_
void ndr_print_spoolss_PrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo5
*r
)
2699 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo5");
2701 ndr_print_ptr(ndr
, "printername", r
->printername
);
2703 if (r
->printername
) {
2704 ndr_print_string(ndr
, "printername", r
->printername
);
2707 ndr_print_ptr(ndr
, "portname", r
->portname
);
2710 ndr_print_string(ndr
, "portname", r
->portname
);
2713 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
2714 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
2715 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
2719 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2721 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo5
, ic
);
2724 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo6
*r
)
2726 if (ndr_flags
& NDR_SCALARS
) {
2727 NDR_CHECK(ndr_push_align(ndr
, 4));
2728 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
2729 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
2731 if (ndr_flags
& NDR_BUFFERS
) {
2733 return NDR_ERR_SUCCESS
;
2736 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo6
*r
)
2738 if (ndr_flags
& NDR_SCALARS
) {
2739 NDR_CHECK(ndr_pull_align(ndr
, 4));
2740 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
2741 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
2743 if (ndr_flags
& NDR_BUFFERS
) {
2745 return NDR_ERR_SUCCESS
;
2748 _PUBLIC_
void ndr_print_spoolss_PrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo6
*r
)
2750 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo6");
2752 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
2756 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2758 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo6
, ic
);
2761 static enum ndr_err_code
ndr_push_spoolss_DsPrintAction(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
2763 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
2764 return NDR_ERR_SUCCESS
;
2767 static enum ndr_err_code
ndr_pull_spoolss_DsPrintAction(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
2770 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
2772 return NDR_ERR_SUCCESS
;
2775 _PUBLIC_
void ndr_print_spoolss_DsPrintAction(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
2777 ndr_print_uint32(ndr
, name
, r
);
2779 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH
, r
);
2780 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE
, r
);
2781 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH
, r
);
2782 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH
, r
);
2783 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING
, r
);
2787 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo7
*r
)
2789 if (ndr_flags
& NDR_SCALARS
) {
2790 NDR_CHECK(ndr_push_align(ndr
, 5));
2792 uint32_t _flags_save_string
= ndr
->flags
;
2793 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2794 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->guid
));
2795 ndr
->flags
= _flags_save_string
;
2797 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
2798 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2800 if (ndr_flags
& NDR_BUFFERS
) {
2802 uint32_t _flags_save_string
= ndr
->flags
;
2803 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2805 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->guid
));
2806 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->guid
));
2807 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->guid
));
2809 ndr
->flags
= _flags_save_string
;
2812 return NDR_ERR_SUCCESS
;
2815 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo7
*r
)
2818 TALLOC_CTX
*_mem_save_guid_0
;
2819 if (ndr_flags
& NDR_SCALARS
) {
2820 NDR_CHECK(ndr_pull_align(ndr
, 5));
2822 uint32_t _flags_save_string
= ndr
->flags
;
2823 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2824 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
2826 NDR_PULL_ALLOC(ndr
, r
->guid
);
2827 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->guid
, _ptr_guid
));
2831 ndr
->flags
= _flags_save_string
;
2833 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
2834 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2836 if (ndr_flags
& NDR_BUFFERS
) {
2838 uint32_t _flags_save_string
= ndr
->flags
;
2839 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2841 uint32_t _relative_save_offset
;
2842 _relative_save_offset
= ndr
->offset
;
2843 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->guid
));
2844 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2845 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
2846 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->guid
));
2847 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
2848 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2849 ndr
->relative_highest_offset
= ndr
->offset
;
2851 ndr
->offset
= _relative_save_offset
;
2853 ndr
->flags
= _flags_save_string
;
2856 return NDR_ERR_SUCCESS
;
2859 _PUBLIC_
void ndr_print_spoolss_PrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo7
*r
)
2861 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo7");
2863 ndr_print_ptr(ndr
, "guid", r
->guid
);
2866 ndr_print_string(ndr
, "guid", r
->guid
);
2869 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
2873 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2875 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo7
, ic
);
2878 static enum ndr_err_code
ndr_push_spoolss_DeviceModeInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceModeInfo
*r
)
2880 if (ndr_flags
& NDR_SCALARS
) {
2881 NDR_CHECK(ndr_push_align(ndr
, 5));
2883 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2884 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2885 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
2886 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2888 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2890 if (ndr_flags
& NDR_BUFFERS
) {
2892 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2893 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2895 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->devmode
));
2897 struct ndr_push
*_ndr_devmode
;
2898 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2899 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2900 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2902 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->devmode
));
2904 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2907 return NDR_ERR_SUCCESS
;
2910 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceModeInfo
*r
)
2912 uint32_t _ptr_devmode
;
2913 TALLOC_CTX
*_mem_save_devmode_0
;
2914 if (ndr_flags
& NDR_SCALARS
) {
2915 NDR_CHECK(ndr_pull_align(ndr
, 5));
2917 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2918 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2919 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2921 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2922 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
2926 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2928 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2930 if (ndr_flags
& NDR_BUFFERS
) {
2932 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
2933 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
2935 uint32_t _relative_save_offset
;
2936 _relative_save_offset
= ndr
->offset
;
2937 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
2938 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2939 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2941 struct ndr_pull
*_ndr_devmode
;
2942 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2943 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2944 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2947 if (ndr
->offset
> ndr
->relative_highest_offset
) {
2948 ndr
->relative_highest_offset
= ndr
->offset
;
2950 ndr
->offset
= _relative_save_offset
;
2952 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
2955 return NDR_ERR_SUCCESS
;
2958 _PUBLIC_
void ndr_print_spoolss_DeviceModeInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceModeInfo
*r
)
2960 ndr_print_struct(ndr
, name
, "spoolss_DeviceModeInfo");
2962 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2965 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2971 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterInfo
*r
)
2973 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
2975 uint32_t _flags_save_UNION
= ndr
->flags
;
2976 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
2977 if (ndr_flags
& NDR_SCALARS
) {
2978 int level
= ndr_push_get_switch_value(ndr
, r
);
2979 NDR_CHECK(ndr_push_union_align(ndr
, 5));
2982 NDR_CHECK(ndr_push_align(ndr
, 5));
2983 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2984 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2988 NDR_CHECK(ndr_push_align(ndr
, 5));
2989 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2990 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2994 NDR_CHECK(ndr_push_align(ndr
, 5));
2995 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2996 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
3000 NDR_CHECK(ndr_push_align(ndr
, 5));
3001 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3002 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
3006 NDR_CHECK(ndr_push_align(ndr
, 5));
3007 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3008 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
3012 NDR_CHECK(ndr_push_align(ndr
, 5));
3013 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3014 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
3018 NDR_CHECK(ndr_push_align(ndr
, 4));
3019 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3020 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
3024 NDR_CHECK(ndr_push_align(ndr
, 5));
3025 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3026 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
3030 NDR_CHECK(ndr_push_align(ndr
, 5));
3031 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3032 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
3036 NDR_CHECK(ndr_push_align(ndr
, 5));
3037 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3038 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
3046 if (ndr_flags
& NDR_BUFFERS
) {
3047 int level
= ndr_push_get_switch_value(ndr
, r
);
3048 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
3051 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
3055 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
3059 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
3063 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
3067 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
3071 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
3078 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
3082 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
3086 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
3094 ndr
->flags
= _flags_save_UNION
;
3096 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
3097 return NDR_ERR_SUCCESS
;
3100 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterInfo
*r
)
3102 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
3105 uint32_t _flags_save_UNION
= ndr
->flags
;
3106 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
3107 level
= ndr_pull_get_switch_value(ndr
, r
);
3108 if (ndr_flags
& NDR_SCALARS
) {
3109 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
3112 NDR_CHECK(ndr_pull_align(ndr
, 5));
3113 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3114 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
3118 NDR_CHECK(ndr_pull_align(ndr
, 5));
3119 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3120 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
3124 NDR_CHECK(ndr_pull_align(ndr
, 5));
3125 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3126 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
3130 NDR_CHECK(ndr_pull_align(ndr
, 5));
3131 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3132 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
3136 NDR_CHECK(ndr_pull_align(ndr
, 5));
3137 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3138 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
3142 NDR_CHECK(ndr_pull_align(ndr
, 5));
3143 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3144 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
3148 NDR_CHECK(ndr_pull_align(ndr
, 4));
3149 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3150 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
3154 NDR_CHECK(ndr_pull_align(ndr
, 5));
3155 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3156 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
3160 NDR_CHECK(ndr_pull_align(ndr
, 5));
3161 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3162 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
3166 NDR_CHECK(ndr_pull_align(ndr
, 5));
3167 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
3168 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
3176 if (ndr_flags
& NDR_BUFFERS
) {
3177 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
3180 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
3184 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
3188 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
3192 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
3196 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
3200 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
3207 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
3211 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
3215 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
3223 ndr
->flags
= _flags_save_UNION
;
3225 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
3226 return NDR_ERR_SUCCESS
;
3229 _PUBLIC_
void ndr_print_spoolss_PrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterInfo
*r
)
3233 uint32_t _flags_save_UNION
= ndr
->flags
;
3234 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
3235 level
= ndr_print_get_switch_value(ndr
, r
);
3236 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterInfo");
3239 ndr_print_spoolss_PrinterInfo0(ndr
, "info0", &r
->info0
);
3243 ndr_print_spoolss_PrinterInfo1(ndr
, "info1", &r
->info1
);
3247 ndr_print_spoolss_PrinterInfo2(ndr
, "info2", &r
->info2
);
3251 ndr_print_spoolss_PrinterInfo3(ndr
, "info3", &r
->info3
);
3255 ndr_print_spoolss_PrinterInfo4(ndr
, "info4", &r
->info4
);
3259 ndr_print_spoolss_PrinterInfo5(ndr
, "info5", &r
->info5
);
3263 ndr_print_spoolss_PrinterInfo6(ndr
, "info6", &r
->info6
);
3267 ndr_print_spoolss_PrinterInfo7(ndr
, "info7", &r
->info7
);
3271 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", &r
->info8
);
3275 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", &r
->info9
);
3282 ndr
->flags
= _flags_save_UNION
;
3286 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
3288 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
3289 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo
, ic
);
3292 static enum ndr_err_code
ndr_push_spoolss_DevmodeContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DevmodeContainer
*r
)
3294 if (ndr_flags
& NDR_SCALARS
) {
3295 NDR_CHECK(ndr_push_align(ndr
, 5));
3296 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
3297 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
3298 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
3300 if (ndr_flags
& NDR_BUFFERS
) {
3303 struct ndr_push
*_ndr_devmode
;
3304 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
3305 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
3306 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
3310 return NDR_ERR_SUCCESS
;
3313 static enum ndr_err_code
ndr_pull_spoolss_DevmodeContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DevmodeContainer
*r
)
3315 uint32_t _ptr_devmode
;
3316 TALLOC_CTX
*_mem_save_devmode_0
;
3317 if (ndr_flags
& NDR_SCALARS
) {
3318 NDR_CHECK(ndr_pull_align(ndr
, 5));
3319 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
3320 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3322 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3326 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
3328 if (ndr_flags
& NDR_BUFFERS
) {
3330 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3331 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
3333 struct ndr_pull
*_ndr_devmode
;
3334 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 4, r
->_ndr_size
));
3335 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
3336 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 4, r
->_ndr_size
));
3338 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
3341 return NDR_ERR_SUCCESS
;
3344 _PUBLIC_
void ndr_print_spoolss_DevmodeContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DevmodeContainer
*r
)
3346 ndr_print_struct(ndr
, name
, "spoolss_DevmodeContainer");
3348 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
);
3349 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
3352 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
3358 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo1
*r
)
3360 if (ndr_flags
& NDR_SCALARS
) {
3361 NDR_CHECK(ndr_push_align(ndr
, 5));
3362 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3364 uint32_t _flags_save_string
= ndr
->flags
;
3365 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3366 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
3367 ndr
->flags
= _flags_save_string
;
3370 uint32_t _flags_save_string
= ndr
->flags
;
3371 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3372 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
3373 ndr
->flags
= _flags_save_string
;
3376 uint32_t _flags_save_string
= ndr
->flags
;
3377 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3378 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
3379 ndr
->flags
= _flags_save_string
;
3382 uint32_t _flags_save_string
= ndr
->flags
;
3383 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3384 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
3385 ndr
->flags
= _flags_save_string
;
3388 uint32_t _flags_save_string
= ndr
->flags
;
3389 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3390 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3391 ndr
->flags
= _flags_save_string
;
3394 uint32_t _flags_save_string
= ndr
->flags
;
3395 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3396 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3397 ndr
->flags
= _flags_save_string
;
3399 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3400 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3401 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3402 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3404 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3405 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
3407 if (ndr_flags
& NDR_BUFFERS
) {
3409 uint32_t _flags_save_string
= ndr
->flags
;
3410 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3411 if (r
->printer_name
) {
3412 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printer_name
));
3413 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
3414 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printer_name
));
3416 ndr
->flags
= _flags_save_string
;
3419 uint32_t _flags_save_string
= ndr
->flags
;
3420 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3421 if (r
->server_name
) {
3422 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->server_name
));
3423 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3424 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->server_name
));
3426 ndr
->flags
= _flags_save_string
;
3429 uint32_t _flags_save_string
= ndr
->flags
;
3430 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3432 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->user_name
));
3433 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3434 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->user_name
));
3436 ndr
->flags
= _flags_save_string
;
3439 uint32_t _flags_save_string
= ndr
->flags
;
3440 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3441 if (r
->document_name
) {
3442 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->document_name
));
3443 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3444 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->document_name
));
3446 ndr
->flags
= _flags_save_string
;
3449 uint32_t _flags_save_string
= ndr
->flags
;
3450 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3452 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_type
));
3453 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3454 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_type
));
3456 ndr
->flags
= _flags_save_string
;
3459 uint32_t _flags_save_string
= ndr
->flags
;
3460 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3461 if (r
->text_status
) {
3462 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->text_status
));
3463 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3464 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->text_status
));
3466 ndr
->flags
= _flags_save_string
;
3469 return NDR_ERR_SUCCESS
;
3472 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo1
*r
)
3474 uint32_t _ptr_printer_name
;
3475 TALLOC_CTX
*_mem_save_printer_name_0
;
3476 uint32_t _ptr_server_name
;
3477 TALLOC_CTX
*_mem_save_server_name_0
;
3478 uint32_t _ptr_user_name
;
3479 TALLOC_CTX
*_mem_save_user_name_0
;
3480 uint32_t _ptr_document_name
;
3481 TALLOC_CTX
*_mem_save_document_name_0
;
3482 uint32_t _ptr_data_type
;
3483 TALLOC_CTX
*_mem_save_data_type_0
;
3484 uint32_t _ptr_text_status
;
3485 TALLOC_CTX
*_mem_save_text_status_0
;
3486 if (ndr_flags
& NDR_SCALARS
) {
3487 NDR_CHECK(ndr_pull_align(ndr
, 5));
3488 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3490 uint32_t _flags_save_string
= ndr
->flags
;
3491 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3492 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3493 if (_ptr_printer_name
) {
3494 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3495 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3497 r
->printer_name
= NULL
;
3499 ndr
->flags
= _flags_save_string
;
3502 uint32_t _flags_save_string
= ndr
->flags
;
3503 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3504 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3505 if (_ptr_server_name
) {
3506 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3507 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3509 r
->server_name
= NULL
;
3511 ndr
->flags
= _flags_save_string
;
3514 uint32_t _flags_save_string
= ndr
->flags
;
3515 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3516 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3517 if (_ptr_user_name
) {
3518 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3519 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3521 r
->user_name
= NULL
;
3523 ndr
->flags
= _flags_save_string
;
3526 uint32_t _flags_save_string
= ndr
->flags
;
3527 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3528 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3529 if (_ptr_document_name
) {
3530 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3531 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3533 r
->document_name
= NULL
;
3535 ndr
->flags
= _flags_save_string
;
3538 uint32_t _flags_save_string
= ndr
->flags
;
3539 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3540 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3541 if (_ptr_data_type
) {
3542 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3543 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3545 r
->data_type
= NULL
;
3547 ndr
->flags
= _flags_save_string
;
3550 uint32_t _flags_save_string
= ndr
->flags
;
3551 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3552 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3553 if (_ptr_text_status
) {
3554 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3555 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3557 r
->text_status
= NULL
;
3559 ndr
->flags
= _flags_save_string
;
3561 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3562 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3563 if (r
->priority
> 99) {
3564 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
3566 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3567 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3568 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3569 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3570 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
3572 if (ndr_flags
& NDR_BUFFERS
) {
3574 uint32_t _flags_save_string
= ndr
->flags
;
3575 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3576 if (r
->printer_name
) {
3577 uint32_t _relative_save_offset
;
3578 _relative_save_offset
= ndr
->offset
;
3579 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3580 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3581 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3582 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3583 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3584 if (ndr
->offset
> ndr
->relative_highest_offset
) {
3585 ndr
->relative_highest_offset
= ndr
->offset
;
3587 ndr
->offset
= _relative_save_offset
;
3589 ndr
->flags
= _flags_save_string
;
3592 uint32_t _flags_save_string
= ndr
->flags
;
3593 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3594 if (r
->server_name
) {
3595 uint32_t _relative_save_offset
;
3596 _relative_save_offset
= ndr
->offset
;
3597 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3598 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3599 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3600 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3601 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3602 if (ndr
->offset
> ndr
->relative_highest_offset
) {
3603 ndr
->relative_highest_offset
= ndr
->offset
;
3605 ndr
->offset
= _relative_save_offset
;
3607 ndr
->flags
= _flags_save_string
;
3610 uint32_t _flags_save_string
= ndr
->flags
;
3611 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3613 uint32_t _relative_save_offset
;
3614 _relative_save_offset
= ndr
->offset
;
3615 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3616 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3617 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3618 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3619 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3620 if (ndr
->offset
> ndr
->relative_highest_offset
) {
3621 ndr
->relative_highest_offset
= ndr
->offset
;
3623 ndr
->offset
= _relative_save_offset
;
3625 ndr
->flags
= _flags_save_string
;
3628 uint32_t _flags_save_string
= ndr
->flags
;
3629 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3630 if (r
->document_name
) {
3631 uint32_t _relative_save_offset
;
3632 _relative_save_offset
= ndr
->offset
;
3633 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3634 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3635 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3636 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3637 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3638 if (ndr
->offset
> ndr
->relative_highest_offset
) {
3639 ndr
->relative_highest_offset
= ndr
->offset
;
3641 ndr
->offset
= _relative_save_offset
;
3643 ndr
->flags
= _flags_save_string
;
3646 uint32_t _flags_save_string
= ndr
->flags
;
3647 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3649 uint32_t _relative_save_offset
;
3650 _relative_save_offset
= ndr
->offset
;
3651 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
3652 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3653 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
3654 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
3655 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
3656 if (ndr
->offset
> ndr
->relative_highest_offset
) {
3657 ndr
->relative_highest_offset
= ndr
->offset
;
3659 ndr
->offset
= _relative_save_offset
;
3661 ndr
->flags
= _flags_save_string
;
3664 uint32_t _flags_save_string
= ndr
->flags
;
3665 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3666 if (r
->text_status
) {
3667 uint32_t _relative_save_offset
;
3668 _relative_save_offset
= ndr
->offset
;
3669 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
3670 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3671 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
3672 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
3673 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
3674 if (ndr
->offset
> ndr
->relative_highest_offset
) {
3675 ndr
->relative_highest_offset
= ndr
->offset
;
3677 ndr
->offset
= _relative_save_offset
;
3679 ndr
->flags
= _flags_save_string
;
3682 return NDR_ERR_SUCCESS
;
3685 _PUBLIC_
void ndr_print_spoolss_JobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo1
*r
)
3687 ndr_print_struct(ndr
, name
, "spoolss_JobInfo1");
3689 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3690 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
3692 if (r
->printer_name
) {
3693 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
3696 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
3698 if (r
->server_name
) {
3699 ndr_print_string(ndr
, "server_name", r
->server_name
);
3702 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
3705 ndr_print_string(ndr
, "user_name", r
->user_name
);
3708 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
3710 if (r
->document_name
) {
3711 ndr_print_string(ndr
, "document_name", r
->document_name
);
3714 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
3717 ndr_print_string(ndr
, "data_type", r
->data_type
);
3720 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
3722 if (r
->text_status
) {
3723 ndr_print_string(ndr
, "text_status", r
->text_status
);
3726 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
3727 ndr_print_uint32(ndr
, "priority", r
->priority
);
3728 ndr_print_uint32(ndr
, "position", r
->position
);
3729 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
3730 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
3731 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
3735 _PUBLIC_
size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
3737 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo1
, ic
);
3740 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo2
*r
)
3742 if (ndr_flags
& NDR_SCALARS
) {
3743 NDR_CHECK(ndr_push_align(ndr
, 5));
3744 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3746 uint32_t _flags_save_string
= ndr
->flags
;
3747 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3748 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
3749 ndr
->flags
= _flags_save_string
;
3752 uint32_t _flags_save_string
= ndr
->flags
;
3753 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3754 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
3755 ndr
->flags
= _flags_save_string
;
3758 uint32_t _flags_save_string
= ndr
->flags
;
3759 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3760 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
3761 ndr
->flags
= _flags_save_string
;
3764 uint32_t _flags_save_string
= ndr
->flags
;
3765 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3766 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
3767 ndr
->flags
= _flags_save_string
;
3770 uint32_t _flags_save_string
= ndr
->flags
;
3771 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3772 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
3773 ndr
->flags
= _flags_save_string
;
3776 uint32_t _flags_save_string
= ndr
->flags
;
3777 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3778 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3779 ndr
->flags
= _flags_save_string
;
3782 uint32_t _flags_save_string
= ndr
->flags
;
3783 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3784 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
3785 ndr
->flags
= _flags_save_string
;
3788 uint32_t _flags_save_string
= ndr
->flags
;
3789 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3790 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
3791 ndr
->flags
= _flags_save_string
;
3794 uint32_t _flags_save_string
= ndr
->flags
;
3795 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3796 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
3797 ndr
->flags
= _flags_save_string
;
3800 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
3801 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3802 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
3803 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
3806 uint32_t _flags_save_string
= ndr
->flags
;
3807 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3808 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3809 ndr
->flags
= _flags_save_string
;
3812 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
3813 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3814 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
3815 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
3817 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3818 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3819 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3820 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
3821 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
3822 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3823 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
3824 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3825 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
3826 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3827 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
3829 if (ndr_flags
& NDR_BUFFERS
) {
3831 uint32_t _flags_save_string
= ndr
->flags
;
3832 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3833 if (r
->printer_name
) {
3834 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printer_name
));
3835 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
3836 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printer_name
));
3838 ndr
->flags
= _flags_save_string
;
3841 uint32_t _flags_save_string
= ndr
->flags
;
3842 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3843 if (r
->server_name
) {
3844 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->server_name
));
3845 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3846 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->server_name
));
3848 ndr
->flags
= _flags_save_string
;
3851 uint32_t _flags_save_string
= ndr
->flags
;
3852 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3854 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->user_name
));
3855 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3856 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->user_name
));
3858 ndr
->flags
= _flags_save_string
;
3861 uint32_t _flags_save_string
= ndr
->flags
;
3862 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3863 if (r
->document_name
) {
3864 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->document_name
));
3865 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3866 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->document_name
));
3868 ndr
->flags
= _flags_save_string
;
3871 uint32_t _flags_save_string
= ndr
->flags
;
3872 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3873 if (r
->notify_name
) {
3874 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->notify_name
));
3875 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
3876 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->notify_name
));
3878 ndr
->flags
= _flags_save_string
;
3881 uint32_t _flags_save_string
= ndr
->flags
;
3882 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3884 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_type
));
3885 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3886 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_type
));
3888 ndr
->flags
= _flags_save_string
;
3891 uint32_t _flags_save_string
= ndr
->flags
;
3892 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3893 if (r
->print_processor
) {
3894 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->print_processor
));
3895 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
3896 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->print_processor
));
3898 ndr
->flags
= _flags_save_string
;
3901 uint32_t _flags_save_string
= ndr
->flags
;
3902 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3903 if (r
->parameters
) {
3904 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->parameters
));
3905 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3906 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->parameters
));
3908 ndr
->flags
= _flags_save_string
;
3911 uint32_t _flags_save_string
= ndr
->flags
;
3912 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3913 if (r
->driver_name
) {
3914 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
3915 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3916 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
3918 ndr
->flags
= _flags_save_string
;
3921 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
3922 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3924 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->devmode
));
3926 struct ndr_push
*_ndr_devmode
;
3927 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
3928 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
3929 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
3931 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->devmode
));
3933 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
3936 uint32_t _flags_save_string
= ndr
->flags
;
3937 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3938 if (r
->text_status
) {
3939 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->text_status
));
3940 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3941 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->text_status
));
3943 ndr
->flags
= _flags_save_string
;
3946 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
3947 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
3949 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->secdesc
));
3951 struct ndr_push
*_ndr_secdesc
;
3952 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
3953 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3954 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
3956 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->secdesc
));
3958 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
3961 return NDR_ERR_SUCCESS
;
3964 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo2
*r
)
3966 uint32_t _ptr_printer_name
;
3967 TALLOC_CTX
*_mem_save_printer_name_0
;
3968 uint32_t _ptr_server_name
;
3969 TALLOC_CTX
*_mem_save_server_name_0
;
3970 uint32_t _ptr_user_name
;
3971 TALLOC_CTX
*_mem_save_user_name_0
;
3972 uint32_t _ptr_document_name
;
3973 TALLOC_CTX
*_mem_save_document_name_0
;
3974 uint32_t _ptr_notify_name
;
3975 TALLOC_CTX
*_mem_save_notify_name_0
;
3976 uint32_t _ptr_data_type
;
3977 TALLOC_CTX
*_mem_save_data_type_0
;
3978 uint32_t _ptr_print_processor
;
3979 TALLOC_CTX
*_mem_save_print_processor_0
;
3980 uint32_t _ptr_parameters
;
3981 TALLOC_CTX
*_mem_save_parameters_0
;
3982 uint32_t _ptr_driver_name
;
3983 TALLOC_CTX
*_mem_save_driver_name_0
;
3984 uint32_t _ptr_devmode
;
3985 TALLOC_CTX
*_mem_save_devmode_0
;
3986 uint32_t _ptr_text_status
;
3987 TALLOC_CTX
*_mem_save_text_status_0
;
3988 uint32_t _ptr_secdesc
;
3989 TALLOC_CTX
*_mem_save_secdesc_0
;
3990 if (ndr_flags
& NDR_SCALARS
) {
3991 NDR_CHECK(ndr_pull_align(ndr
, 5));
3992 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3994 uint32_t _flags_save_string
= ndr
->flags
;
3995 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3996 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3997 if (_ptr_printer_name
) {
3998 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3999 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
4001 r
->printer_name
= NULL
;
4003 ndr
->flags
= _flags_save_string
;
4006 uint32_t _flags_save_string
= ndr
->flags
;
4007 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4008 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4009 if (_ptr_server_name
) {
4010 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4011 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
4013 r
->server_name
= NULL
;
4015 ndr
->flags
= _flags_save_string
;
4018 uint32_t _flags_save_string
= ndr
->flags
;
4019 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4020 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4021 if (_ptr_user_name
) {
4022 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4023 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
4025 r
->user_name
= NULL
;
4027 ndr
->flags
= _flags_save_string
;
4030 uint32_t _flags_save_string
= ndr
->flags
;
4031 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4032 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4033 if (_ptr_document_name
) {
4034 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4035 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
4037 r
->document_name
= NULL
;
4039 ndr
->flags
= _flags_save_string
;
4042 uint32_t _flags_save_string
= ndr
->flags
;
4043 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4044 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
4045 if (_ptr_notify_name
) {
4046 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
4047 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
4049 r
->notify_name
= NULL
;
4051 ndr
->flags
= _flags_save_string
;
4054 uint32_t _flags_save_string
= ndr
->flags
;
4055 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4056 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4057 if (_ptr_data_type
) {
4058 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4059 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
4061 r
->data_type
= NULL
;
4063 ndr
->flags
= _flags_save_string
;
4066 uint32_t _flags_save_string
= ndr
->flags
;
4067 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4068 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
4069 if (_ptr_print_processor
) {
4070 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
4071 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
4073 r
->print_processor
= NULL
;
4075 ndr
->flags
= _flags_save_string
;
4078 uint32_t _flags_save_string
= ndr
->flags
;
4079 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4080 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
4081 if (_ptr_parameters
) {
4082 NDR_PULL_ALLOC(ndr
, r
->parameters
);
4083 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
4085 r
->parameters
= NULL
;
4087 ndr
->flags
= _flags_save_string
;
4090 uint32_t _flags_save_string
= ndr
->flags
;
4091 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4092 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
4093 if (_ptr_driver_name
) {
4094 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
4095 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
4097 r
->driver_name
= NULL
;
4099 ndr
->flags
= _flags_save_string
;
4102 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
4103 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4104 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
4106 NDR_PULL_ALLOC(ndr
, r
->devmode
);
4107 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
4111 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
4114 uint32_t _flags_save_string
= ndr
->flags
;
4115 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4116 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4117 if (_ptr_text_status
) {
4118 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4119 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
4121 r
->text_status
= NULL
;
4123 ndr
->flags
= _flags_save_string
;
4126 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
4127 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4128 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
4130 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
4131 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
4135 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
4137 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4138 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4139 if (r
->priority
> 99) {
4140 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4142 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4143 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
4144 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
4145 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4146 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
4147 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4148 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
4149 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4150 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
4152 if (ndr_flags
& NDR_BUFFERS
) {
4154 uint32_t _flags_save_string
= ndr
->flags
;
4155 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4156 if (r
->printer_name
) {
4157 uint32_t _relative_save_offset
;
4158 _relative_save_offset
= ndr
->offset
;
4159 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
4160 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4161 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4162 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
4163 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4164 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4165 ndr
->relative_highest_offset
= ndr
->offset
;
4167 ndr
->offset
= _relative_save_offset
;
4169 ndr
->flags
= _flags_save_string
;
4172 uint32_t _flags_save_string
= ndr
->flags
;
4173 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4174 if (r
->server_name
) {
4175 uint32_t _relative_save_offset
;
4176 _relative_save_offset
= ndr
->offset
;
4177 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
4178 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4179 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4180 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
4181 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4182 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4183 ndr
->relative_highest_offset
= ndr
->offset
;
4185 ndr
->offset
= _relative_save_offset
;
4187 ndr
->flags
= _flags_save_string
;
4190 uint32_t _flags_save_string
= ndr
->flags
;
4191 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4193 uint32_t _relative_save_offset
;
4194 _relative_save_offset
= ndr
->offset
;
4195 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
4196 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4197 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4198 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
4199 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4200 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4201 ndr
->relative_highest_offset
= ndr
->offset
;
4203 ndr
->offset
= _relative_save_offset
;
4205 ndr
->flags
= _flags_save_string
;
4208 uint32_t _flags_save_string
= ndr
->flags
;
4209 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4210 if (r
->document_name
) {
4211 uint32_t _relative_save_offset
;
4212 _relative_save_offset
= ndr
->offset
;
4213 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
4214 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4215 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4216 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
4217 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4218 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4219 ndr
->relative_highest_offset
= ndr
->offset
;
4221 ndr
->offset
= _relative_save_offset
;
4223 ndr
->flags
= _flags_save_string
;
4226 uint32_t _flags_save_string
= ndr
->flags
;
4227 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4228 if (r
->notify_name
) {
4229 uint32_t _relative_save_offset
;
4230 _relative_save_offset
= ndr
->offset
;
4231 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
4232 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4233 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
4234 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
4235 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
4236 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4237 ndr
->relative_highest_offset
= ndr
->offset
;
4239 ndr
->offset
= _relative_save_offset
;
4241 ndr
->flags
= _flags_save_string
;
4244 uint32_t _flags_save_string
= ndr
->flags
;
4245 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4247 uint32_t _relative_save_offset
;
4248 _relative_save_offset
= ndr
->offset
;
4249 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
4250 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4251 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4252 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
4253 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4254 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4255 ndr
->relative_highest_offset
= ndr
->offset
;
4257 ndr
->offset
= _relative_save_offset
;
4259 ndr
->flags
= _flags_save_string
;
4262 uint32_t _flags_save_string
= ndr
->flags
;
4263 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4264 if (r
->print_processor
) {
4265 uint32_t _relative_save_offset
;
4266 _relative_save_offset
= ndr
->offset
;
4267 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
4268 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4269 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
4270 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
4271 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
4272 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4273 ndr
->relative_highest_offset
= ndr
->offset
;
4275 ndr
->offset
= _relative_save_offset
;
4277 ndr
->flags
= _flags_save_string
;
4280 uint32_t _flags_save_string
= ndr
->flags
;
4281 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4282 if (r
->parameters
) {
4283 uint32_t _relative_save_offset
;
4284 _relative_save_offset
= ndr
->offset
;
4285 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
4286 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4287 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
4288 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
4289 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
4290 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4291 ndr
->relative_highest_offset
= ndr
->offset
;
4293 ndr
->offset
= _relative_save_offset
;
4295 ndr
->flags
= _flags_save_string
;
4298 uint32_t _flags_save_string
= ndr
->flags
;
4299 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4300 if (r
->driver_name
) {
4301 uint32_t _relative_save_offset
;
4302 _relative_save_offset
= ndr
->offset
;
4303 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
4304 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4305 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
4306 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
4307 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
4308 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4309 ndr
->relative_highest_offset
= ndr
->offset
;
4311 ndr
->offset
= _relative_save_offset
;
4313 ndr
->flags
= _flags_save_string
;
4316 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
4317 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4319 uint32_t _relative_save_offset
;
4320 _relative_save_offset
= ndr
->offset
;
4321 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
4322 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4323 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
4325 struct ndr_pull
*_ndr_devmode
;
4326 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
4327 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
4328 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
4330 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
4331 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4332 ndr
->relative_highest_offset
= ndr
->offset
;
4334 ndr
->offset
= _relative_save_offset
;
4336 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
4339 uint32_t _flags_save_string
= ndr
->flags
;
4340 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4341 if (r
->text_status
) {
4342 uint32_t _relative_save_offset
;
4343 _relative_save_offset
= ndr
->offset
;
4344 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
4345 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4346 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4347 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
4348 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4349 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4350 ndr
->relative_highest_offset
= ndr
->offset
;
4352 ndr
->offset
= _relative_save_offset
;
4354 ndr
->flags
= _flags_save_string
;
4357 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
4358 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4360 uint32_t _relative_save_offset
;
4361 _relative_save_offset
= ndr
->offset
;
4362 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
4363 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4364 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
4366 struct ndr_pull
*_ndr_secdesc
;
4367 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
4368 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4369 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
4371 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
4372 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4373 ndr
->relative_highest_offset
= ndr
->offset
;
4375 ndr
->offset
= _relative_save_offset
;
4377 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
4380 return NDR_ERR_SUCCESS
;
4383 _PUBLIC_
void ndr_print_spoolss_JobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo2
*r
)
4385 ndr_print_struct(ndr
, name
, "spoolss_JobInfo2");
4387 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4388 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4390 if (r
->printer_name
) {
4391 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4394 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4396 if (r
->server_name
) {
4397 ndr_print_string(ndr
, "server_name", r
->server_name
);
4400 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4403 ndr_print_string(ndr
, "user_name", r
->user_name
);
4406 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4408 if (r
->document_name
) {
4409 ndr_print_string(ndr
, "document_name", r
->document_name
);
4412 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
4414 if (r
->notify_name
) {
4415 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
4418 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4421 ndr_print_string(ndr
, "data_type", r
->data_type
);
4424 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
4426 if (r
->print_processor
) {
4427 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
4430 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
4432 if (r
->parameters
) {
4433 ndr_print_string(ndr
, "parameters", r
->parameters
);
4436 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
4438 if (r
->driver_name
) {
4439 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
4442 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
4445 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
4448 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4450 if (r
->text_status
) {
4451 ndr_print_string(ndr
, "text_status", r
->text_status
);
4454 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
4457 ndr_print_spoolss_security_descriptor(ndr
, "secdesc", r
->secdesc
);
4460 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4461 ndr_print_uint32(ndr
, "priority", r
->priority
);
4462 ndr_print_uint32(ndr
, "position", r
->position
);
4463 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
4464 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
4465 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4466 ndr_print_uint32(ndr
, "size", r
->size
);
4467 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4468 ndr_print_uint32(ndr
, "time", r
->time
);
4469 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4473 _PUBLIC_
size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4475 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo2
, ic
);
4478 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo3
*r
)
4480 if (ndr_flags
& NDR_SCALARS
) {
4481 NDR_CHECK(ndr_push_align(ndr
, 4));
4482 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4483 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->next_job_id
));
4484 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
4485 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
4487 if (ndr_flags
& NDR_BUFFERS
) {
4489 return NDR_ERR_SUCCESS
;
4492 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo3
*r
)
4494 if (ndr_flags
& NDR_SCALARS
) {
4495 NDR_CHECK(ndr_pull_align(ndr
, 4));
4496 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4497 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->next_job_id
));
4498 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
4499 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
4501 if (ndr_flags
& NDR_BUFFERS
) {
4503 return NDR_ERR_SUCCESS
;
4506 _PUBLIC_
void ndr_print_spoolss_JobInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo3
*r
)
4508 ndr_print_struct(ndr
, name
, "spoolss_JobInfo3");
4510 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4511 ndr_print_uint32(ndr
, "next_job_id", r
->next_job_id
);
4512 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
4516 _PUBLIC_
size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4518 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo3
, ic
);
4521 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo4
*r
)
4523 if (ndr_flags
& NDR_SCALARS
) {
4524 NDR_CHECK(ndr_push_align(ndr
, 5));
4525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4527 uint32_t _flags_save_string
= ndr
->flags
;
4528 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4529 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
4530 ndr
->flags
= _flags_save_string
;
4533 uint32_t _flags_save_string
= ndr
->flags
;
4534 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4535 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
4536 ndr
->flags
= _flags_save_string
;
4539 uint32_t _flags_save_string
= ndr
->flags
;
4540 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4541 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
4542 ndr
->flags
= _flags_save_string
;
4545 uint32_t _flags_save_string
= ndr
->flags
;
4546 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4547 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
4548 ndr
->flags
= _flags_save_string
;
4551 uint32_t _flags_save_string
= ndr
->flags
;
4552 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4553 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
4554 ndr
->flags
= _flags_save_string
;
4557 uint32_t _flags_save_string
= ndr
->flags
;
4558 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4559 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
4560 ndr
->flags
= _flags_save_string
;
4563 uint32_t _flags_save_string
= ndr
->flags
;
4564 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4565 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
4566 ndr
->flags
= _flags_save_string
;
4569 uint32_t _flags_save_string
= ndr
->flags
;
4570 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4571 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
4572 ndr
->flags
= _flags_save_string
;
4575 uint32_t _flags_save_string
= ndr
->flags
;
4576 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4577 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
4578 ndr
->flags
= _flags_save_string
;
4581 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
4582 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4583 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
4584 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
4587 uint32_t _flags_save_string
= ndr
->flags
;
4588 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4589 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
4590 ndr
->flags
= _flags_save_string
;
4593 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
4594 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4595 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
4596 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
4598 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
4602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
4603 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4604 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
4605 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
4607 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4608 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
4609 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
4611 if (ndr_flags
& NDR_BUFFERS
) {
4613 uint32_t _flags_save_string
= ndr
->flags
;
4614 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4615 if (r
->printer_name
) {
4616 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->printer_name
));
4617 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
4618 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->printer_name
));
4620 ndr
->flags
= _flags_save_string
;
4623 uint32_t _flags_save_string
= ndr
->flags
;
4624 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4625 if (r
->server_name
) {
4626 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->server_name
));
4627 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
4628 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->server_name
));
4630 ndr
->flags
= _flags_save_string
;
4633 uint32_t _flags_save_string
= ndr
->flags
;
4634 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4636 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->user_name
));
4637 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
4638 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->user_name
));
4640 ndr
->flags
= _flags_save_string
;
4643 uint32_t _flags_save_string
= ndr
->flags
;
4644 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4645 if (r
->document_name
) {
4646 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->document_name
));
4647 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
4648 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->document_name
));
4650 ndr
->flags
= _flags_save_string
;
4653 uint32_t _flags_save_string
= ndr
->flags
;
4654 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4655 if (r
->notify_name
) {
4656 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->notify_name
));
4657 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
4658 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->notify_name
));
4660 ndr
->flags
= _flags_save_string
;
4663 uint32_t _flags_save_string
= ndr
->flags
;
4664 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4666 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_type
));
4667 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
4668 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_type
));
4670 ndr
->flags
= _flags_save_string
;
4673 uint32_t _flags_save_string
= ndr
->flags
;
4674 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4675 if (r
->print_processor
) {
4676 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->print_processor
));
4677 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
4678 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->print_processor
));
4680 ndr
->flags
= _flags_save_string
;
4683 uint32_t _flags_save_string
= ndr
->flags
;
4684 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4685 if (r
->parameters
) {
4686 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->parameters
));
4687 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
4688 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->parameters
));
4690 ndr
->flags
= _flags_save_string
;
4693 uint32_t _flags_save_string
= ndr
->flags
;
4694 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4695 if (r
->driver_name
) {
4696 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
4697 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
4698 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
4700 ndr
->flags
= _flags_save_string
;
4703 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
4704 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4706 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->devmode
));
4708 struct ndr_push
*_ndr_devmode
;
4709 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
4710 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
4711 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
4713 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->devmode
));
4715 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
4718 uint32_t _flags_save_string
= ndr
->flags
;
4719 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4720 if (r
->text_status
) {
4721 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->text_status
));
4722 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
4723 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->text_status
));
4725 ndr
->flags
= _flags_save_string
;
4728 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
4729 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4731 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->secdesc
));
4733 struct ndr_push
*_ndr_secdesc
;
4734 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
4735 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4736 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
4738 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->secdesc
));
4740 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
4743 return NDR_ERR_SUCCESS
;
4746 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo4
*r
)
4748 uint32_t _ptr_printer_name
;
4749 TALLOC_CTX
*_mem_save_printer_name_0
;
4750 uint32_t _ptr_server_name
;
4751 TALLOC_CTX
*_mem_save_server_name_0
;
4752 uint32_t _ptr_user_name
;
4753 TALLOC_CTX
*_mem_save_user_name_0
;
4754 uint32_t _ptr_document_name
;
4755 TALLOC_CTX
*_mem_save_document_name_0
;
4756 uint32_t _ptr_notify_name
;
4757 TALLOC_CTX
*_mem_save_notify_name_0
;
4758 uint32_t _ptr_data_type
;
4759 TALLOC_CTX
*_mem_save_data_type_0
;
4760 uint32_t _ptr_print_processor
;
4761 TALLOC_CTX
*_mem_save_print_processor_0
;
4762 uint32_t _ptr_parameters
;
4763 TALLOC_CTX
*_mem_save_parameters_0
;
4764 uint32_t _ptr_driver_name
;
4765 TALLOC_CTX
*_mem_save_driver_name_0
;
4766 uint32_t _ptr_devmode
;
4767 TALLOC_CTX
*_mem_save_devmode_0
;
4768 uint32_t _ptr_text_status
;
4769 TALLOC_CTX
*_mem_save_text_status_0
;
4770 uint32_t _ptr_secdesc
;
4771 TALLOC_CTX
*_mem_save_secdesc_0
;
4772 if (ndr_flags
& NDR_SCALARS
) {
4773 NDR_CHECK(ndr_pull_align(ndr
, 5));
4774 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4776 uint32_t _flags_save_string
= ndr
->flags
;
4777 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4778 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
4779 if (_ptr_printer_name
) {
4780 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
4781 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
4783 r
->printer_name
= NULL
;
4785 ndr
->flags
= _flags_save_string
;
4788 uint32_t _flags_save_string
= ndr
->flags
;
4789 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4790 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4791 if (_ptr_server_name
) {
4792 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4793 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
4795 r
->server_name
= NULL
;
4797 ndr
->flags
= _flags_save_string
;
4800 uint32_t _flags_save_string
= ndr
->flags
;
4801 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4802 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4803 if (_ptr_user_name
) {
4804 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4805 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
4807 r
->user_name
= NULL
;
4809 ndr
->flags
= _flags_save_string
;
4812 uint32_t _flags_save_string
= ndr
->flags
;
4813 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4814 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4815 if (_ptr_document_name
) {
4816 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4817 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
4819 r
->document_name
= NULL
;
4821 ndr
->flags
= _flags_save_string
;
4824 uint32_t _flags_save_string
= ndr
->flags
;
4825 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4826 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
4827 if (_ptr_notify_name
) {
4828 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
4829 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
4831 r
->notify_name
= NULL
;
4833 ndr
->flags
= _flags_save_string
;
4836 uint32_t _flags_save_string
= ndr
->flags
;
4837 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4838 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4839 if (_ptr_data_type
) {
4840 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4841 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
4843 r
->data_type
= NULL
;
4845 ndr
->flags
= _flags_save_string
;
4848 uint32_t _flags_save_string
= ndr
->flags
;
4849 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4850 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
4851 if (_ptr_print_processor
) {
4852 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
4853 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
4855 r
->print_processor
= NULL
;
4857 ndr
->flags
= _flags_save_string
;
4860 uint32_t _flags_save_string
= ndr
->flags
;
4861 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4862 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
4863 if (_ptr_parameters
) {
4864 NDR_PULL_ALLOC(ndr
, r
->parameters
);
4865 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
4867 r
->parameters
= NULL
;
4869 ndr
->flags
= _flags_save_string
;
4872 uint32_t _flags_save_string
= ndr
->flags
;
4873 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4874 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
4875 if (_ptr_driver_name
) {
4876 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
4877 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
4879 r
->driver_name
= NULL
;
4881 ndr
->flags
= _flags_save_string
;
4884 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
4885 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4886 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
4888 NDR_PULL_ALLOC(ndr
, r
->devmode
);
4889 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
4893 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
4896 uint32_t _flags_save_string
= ndr
->flags
;
4897 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4898 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4899 if (_ptr_text_status
) {
4900 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4901 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
4903 r
->text_status
= NULL
;
4905 ndr
->flags
= _flags_save_string
;
4908 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
4909 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
4910 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
4912 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
4913 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
4917 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
4919 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4920 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4921 if (r
->priority
> 99) {
4922 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4924 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4925 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
4926 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
4927 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4928 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
4929 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4930 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
4931 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4932 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
4933 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
4935 if (ndr_flags
& NDR_BUFFERS
) {
4937 uint32_t _flags_save_string
= ndr
->flags
;
4938 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4939 if (r
->printer_name
) {
4940 uint32_t _relative_save_offset
;
4941 _relative_save_offset
= ndr
->offset
;
4942 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
4943 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4944 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4945 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
4946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4947 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4948 ndr
->relative_highest_offset
= ndr
->offset
;
4950 ndr
->offset
= _relative_save_offset
;
4952 ndr
->flags
= _flags_save_string
;
4955 uint32_t _flags_save_string
= ndr
->flags
;
4956 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4957 if (r
->server_name
) {
4958 uint32_t _relative_save_offset
;
4959 _relative_save_offset
= ndr
->offset
;
4960 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
4961 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4962 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4963 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
4964 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4965 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4966 ndr
->relative_highest_offset
= ndr
->offset
;
4968 ndr
->offset
= _relative_save_offset
;
4970 ndr
->flags
= _flags_save_string
;
4973 uint32_t _flags_save_string
= ndr
->flags
;
4974 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4976 uint32_t _relative_save_offset
;
4977 _relative_save_offset
= ndr
->offset
;
4978 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
4979 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4980 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4981 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
4982 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4983 if (ndr
->offset
> ndr
->relative_highest_offset
) {
4984 ndr
->relative_highest_offset
= ndr
->offset
;
4986 ndr
->offset
= _relative_save_offset
;
4988 ndr
->flags
= _flags_save_string
;
4991 uint32_t _flags_save_string
= ndr
->flags
;
4992 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4993 if (r
->document_name
) {
4994 uint32_t _relative_save_offset
;
4995 _relative_save_offset
= ndr
->offset
;
4996 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
4997 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4998 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4999 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
5000 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5001 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5002 ndr
->relative_highest_offset
= ndr
->offset
;
5004 ndr
->offset
= _relative_save_offset
;
5006 ndr
->flags
= _flags_save_string
;
5009 uint32_t _flags_save_string
= ndr
->flags
;
5010 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
5011 if (r
->notify_name
) {
5012 uint32_t _relative_save_offset
;
5013 _relative_save_offset
= ndr
->offset
;
5014 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
5015 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5016 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
5017 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
5018 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
5019 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5020 ndr
->relative_highest_offset
= ndr
->offset
;
5022 ndr
->offset
= _relative_save_offset
;
5024 ndr
->flags
= _flags_save_string
;
5027 uint32_t _flags_save_string
= ndr
->flags
;
5028 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
5030 uint32_t _relative_save_offset
;
5031 _relative_save_offset
= ndr
->offset
;
5032 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
5033 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5034 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5035 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
5036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5037 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5038 ndr
->relative_highest_offset
= ndr
->offset
;
5040 ndr
->offset
= _relative_save_offset
;
5042 ndr
->flags
= _flags_save_string
;
5045 uint32_t _flags_save_string
= ndr
->flags
;
5046 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
5047 if (r
->print_processor
) {
5048 uint32_t _relative_save_offset
;
5049 _relative_save_offset
= ndr
->offset
;
5050 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
5051 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5052 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
5053 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
5054 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
5055 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5056 ndr
->relative_highest_offset
= ndr
->offset
;
5058 ndr
->offset
= _relative_save_offset
;
5060 ndr
->flags
= _flags_save_string
;
5063 uint32_t _flags_save_string
= ndr
->flags
;
5064 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
5065 if (r
->parameters
) {
5066 uint32_t _relative_save_offset
;
5067 _relative_save_offset
= ndr
->offset
;
5068 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
5069 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5070 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
5071 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
5072 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
5073 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5074 ndr
->relative_highest_offset
= ndr
->offset
;
5076 ndr
->offset
= _relative_save_offset
;
5078 ndr
->flags
= _flags_save_string
;
5081 uint32_t _flags_save_string
= ndr
->flags
;
5082 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
5083 if (r
->driver_name
) {
5084 uint32_t _relative_save_offset
;
5085 _relative_save_offset
= ndr
->offset
;
5086 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
5087 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5088 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
5089 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
5090 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
5091 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5092 ndr
->relative_highest_offset
= ndr
->offset
;
5094 ndr
->offset
= _relative_save_offset
;
5096 ndr
->flags
= _flags_save_string
;
5099 uint32_t _flags_save_spoolss_DeviceMode
= ndr
->flags
;
5100 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
5102 uint32_t _relative_save_offset
;
5103 _relative_save_offset
= ndr
->offset
;
5104 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
5105 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5106 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
5108 struct ndr_pull
*_ndr_devmode
;
5109 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
5110 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
5111 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
5113 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
5114 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5115 ndr
->relative_highest_offset
= ndr
->offset
;
5117 ndr
->offset
= _relative_save_offset
;
5119 ndr
->flags
= _flags_save_spoolss_DeviceMode
;
5122 uint32_t _flags_save_string
= ndr
->flags
;
5123 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
5124 if (r
->text_status
) {
5125 uint32_t _relative_save_offset
;
5126 _relative_save_offset
= ndr
->offset
;
5127 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
5128 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5129 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5130 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
5131 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5132 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5133 ndr
->relative_highest_offset
= ndr
->offset
;
5135 ndr
->offset
= _relative_save_offset
;
5137 ndr
->flags
= _flags_save_string
;
5140 uint32_t _flags_save_spoolss_security_descriptor
= ndr
->flags
;
5141 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_ALIGN4
);
5143 uint32_t _relative_save_offset
;
5144 _relative_save_offset
= ndr
->offset
;
5145 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
5146 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5147 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
5149 struct ndr_pull
*_ndr_secdesc
;
5150 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
5151 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
5152 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
5154 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
5155 if (ndr
->offset
> ndr
->relative_highest_offset
) {
5156 ndr
->relative_highest_offset
= ndr
->offset
;
5158 ndr
->offset
= _relative_save_offset
;
5160 ndr
->flags
= _flags_save_spoolss_security_descriptor
;
5163 return NDR_ERR_SUCCESS
;
5166 _PUBLIC_
void ndr_print_spoolss_JobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo4
*r
)
5168 ndr_print_struct(ndr
, name
, "spoolss_JobInfo4");
5170 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5171 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5173 if (r
->printer_name
) {
5174 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5177 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5179 if (r
->server_name
) {
5180 ndr_print_string(ndr
, "server_name", r
->server_name
);
5183 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5186 ndr_print_string(ndr
, "user_name", r
->user_name
);
5189 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5191 if (r
->document_name
) {
5192 ndr_print_string(ndr
, "document_name", r
->document_name
);
5195 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
5197 if (r
->notify_name
) {
5198 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
5201 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5204 ndr_print_string(ndr
, "data_type", r
->data_type
);
5207 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
5209 if (r
->print_processor
) {
5210 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
5213 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
5215 if (r
->parameters
) {
5216 ndr_print_string(ndr
, "parameters", r
->parameters
);
5219 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
5221 if (r
->driver_name
) {
5222 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
5225 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
5228 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
5231 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5233 if (r
->text_status
) {
5234 ndr_print_string(ndr
, "text_status", r
->text_status
);
5237 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
5240 ndr_print_spoolss_security_descriptor(ndr
, "secdesc", r
->secdesc
);
5243 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5244 ndr_print_uint32(ndr
, "priority", r
->priority
);
5245 ndr_print_uint32(ndr
, "position", r
->position
);
5246 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
5247 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
5248 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5249 ndr_print_uint32(ndr
, "size", r
->size
);
5250 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5251 ndr_print_uint32(ndr
, "time", r
->time
);
5252 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5253 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
5257 _PUBLIC_
size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
5259 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo4
, ic
);
5262 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_JobInfo
*r
)
5264 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
5266 uint32_t _flags_save_UNION
= ndr
->flags
;
5267 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
5268 if (ndr_flags
& NDR_SCALARS
) {
5269 int level
= ndr_push_get_switch_value(ndr
, r
);
5270 NDR_CHECK(ndr_push_union_align(ndr
, 5));
5273 NDR_CHECK(ndr_push_align(ndr
, 5));
5274 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
5275 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
5279 NDR_CHECK(ndr_push_align(ndr
, 5));
5280 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
5281 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
5285 NDR_CHECK(ndr_push_align(ndr
, 4));
5286 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
5287 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
5291 NDR_CHECK(ndr_push_align(ndr
, 5));
5292 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
5293 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
5301 if (ndr_flags
& NDR_BUFFERS
) {
5302 int level
= ndr_push_get_switch_value(ndr
, r
);
5303 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
5306 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
5310 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
5317 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
5325 ndr
->flags
= _flags_save_UNION
;
5327 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
5328 return NDR_ERR_SUCCESS
;
5331 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_JobInfo
*r
)
5333 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
5336 uint32_t _flags_save_UNION
= ndr
->flags
;
5337 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
5338 level
= ndr_pull_get_switch_value(ndr
, r
);
5339 if (ndr_flags
& NDR_SCALARS
) {
5340 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
5343 NDR_CHECK(ndr_pull_align(ndr
, 5));
5344 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
5345 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
5349 NDR_CHECK(ndr_pull_align(ndr
, 5));
5350 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
5351 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
5355 NDR_CHECK(ndr_pull_align(ndr
, 4));
5356 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
5357 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
5361 NDR_CHECK(ndr_pull_align(ndr
, 5));
5362 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
5363 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
5371 if (ndr_flags
& NDR_BUFFERS
) {
5372 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
5375 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
5379 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
5386 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
5394 ndr
->flags
= _flags_save_UNION
;
5396 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
5397 return NDR_ERR_SUCCESS
;
5400 _PUBLIC_
void ndr_print_spoolss_JobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_JobInfo
*r
)
5404 uint32_t _flags_save_UNION
= ndr
->flags
;
5405 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
5406 level
= ndr_print_get_switch_value(ndr
, r
);
5407 ndr_print_union(ndr
, name
, level
, "spoolss_JobInfo");
5410 ndr_print_spoolss_JobInfo1(ndr
, "info1", &r
->info1
);
5414 ndr_print_spoolss_JobInfo2(ndr
, "info2", &r
->info2
);
5418 ndr_print_spoolss_JobInfo3(ndr
, "info3", &r
->info3
);
5422 ndr_print_spoolss_JobInfo4(ndr
, "info4", &r
->info4
);
5429 ndr
->flags
= _flags_save_UNION
;
5433 _PUBLIC_
size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
5435 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
5436 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo
, ic
);
5439 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo1
*r
)
5441 if (ndr_flags
& NDR_SCALARS
) {
5442 NDR_CHECK(ndr_push_align(ndr
, 5));
5443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
5444 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
5445 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
5446 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
5447 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
5448 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
5449 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
5450 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
5451 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
5452 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
5453 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5454 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
5455 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5456 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
5458 if (ndr_flags
& NDR_BUFFERS
) {
5459 if (r
->printer_name
) {
5460 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5461 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5462 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5463 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5465 if (r
->server_name
) {
5466 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5467 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5468 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5469 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5472 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5473 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5474 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5475 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5477 if (r
->document_name
) {
5478 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5479 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5480 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5481 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5484 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5485 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5486 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5487 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5489 if (r
->text_status
) {
5490 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5491 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5492 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5493 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5496 return NDR_ERR_SUCCESS
;
5499 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo1
*r
)
5501 uint32_t _ptr_printer_name
;
5502 TALLOC_CTX
*_mem_save_printer_name_0
;
5503 uint32_t _ptr_server_name
;
5504 TALLOC_CTX
*_mem_save_server_name_0
;
5505 uint32_t _ptr_user_name
;
5506 TALLOC_CTX
*_mem_save_user_name_0
;
5507 uint32_t _ptr_document_name
;
5508 TALLOC_CTX
*_mem_save_document_name_0
;
5509 uint32_t _ptr_data_type
;
5510 TALLOC_CTX
*_mem_save_data_type_0
;
5511 uint32_t _ptr_text_status
;
5512 TALLOC_CTX
*_mem_save_text_status_0
;
5513 if (ndr_flags
& NDR_SCALARS
) {
5514 NDR_CHECK(ndr_pull_align(ndr
, 5));
5515 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5516 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5517 if (_ptr_printer_name
) {
5518 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5520 r
->printer_name
= NULL
;
5522 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5523 if (_ptr_server_name
) {
5524 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5526 r
->server_name
= NULL
;
5528 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5529 if (_ptr_user_name
) {
5530 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5532 r
->user_name
= NULL
;
5534 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5535 if (_ptr_document_name
) {
5536 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5538 r
->document_name
= NULL
;
5540 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5541 if (_ptr_data_type
) {
5542 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5544 r
->data_type
= NULL
;
5546 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5547 if (_ptr_text_status
) {
5548 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5550 r
->text_status
= NULL
;
5552 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5553 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5554 if (r
->priority
> 99) {
5555 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5557 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5558 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5559 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5560 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5561 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
5563 if (ndr_flags
& NDR_BUFFERS
) {
5564 if (r
->printer_name
) {
5565 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5566 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5567 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5568 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5569 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
5570 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printer_name
), ndr_get_array_length(ndr
, &r
->printer_name
));
5572 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
5573 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
5574 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5576 if (r
->server_name
) {
5577 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5578 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5579 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5580 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5581 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
5582 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->server_name
), ndr_get_array_length(ndr
, &r
->server_name
));
5584 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
5585 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
5586 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5589 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5590 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5591 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5592 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5593 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
5594 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->user_name
), ndr_get_array_length(ndr
, &r
->user_name
));
5596 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
5597 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
5598 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5600 if (r
->document_name
) {
5601 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5602 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5603 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5604 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5605 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
5606 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->document_name
), ndr_get_array_length(ndr
, &r
->document_name
));
5608 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
5609 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
5610 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5613 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5614 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5615 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5616 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5617 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
5618 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_type
), ndr_get_array_length(ndr
, &r
->data_type
));
5620 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
5621 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
5622 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5624 if (r
->text_status
) {
5625 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5626 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5627 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5628 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
5629 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
5630 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->text_status
), ndr_get_array_length(ndr
, &r
->text_status
));
5632 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
5633 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
5634 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5637 return NDR_ERR_SUCCESS
;
5640 _PUBLIC_
void ndr_print_spoolss_SetJobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo1
*r
)
5642 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo1");
5644 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5645 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5647 if (r
->printer_name
) {
5648 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5651 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5653 if (r
->server_name
) {
5654 ndr_print_string(ndr
, "server_name", r
->server_name
);
5657 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5660 ndr_print_string(ndr
, "user_name", r
->user_name
);
5663 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5665 if (r
->document_name
) {
5666 ndr_print_string(ndr
, "document_name", r
->document_name
);
5669 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5672 ndr_print_string(ndr
, "data_type", r
->data_type
);
5675 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5677 if (r
->text_status
) {
5678 ndr_print_string(ndr
, "text_status", r
->text_status
);
5681 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5682 ndr_print_uint32(ndr
, "priority", r
->priority
);
5683 ndr_print_uint32(ndr
, "position", r
->position
);
5684 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5685 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5686 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5690 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo2
*r
)
5692 if (ndr_flags
& NDR_SCALARS
) {
5693 NDR_CHECK(ndr_push_align(ndr
, 5));
5694 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
5695 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
5696 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
5697 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
5698 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
5699 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
5700 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
5701 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
5702 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
5703 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
5704 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
5705 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
5706 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
5707 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
5708 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
5709 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
5710 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
5711 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
5712 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5713 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
5714 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5715 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
5716 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
5717 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
5719 if (ndr_flags
& NDR_BUFFERS
) {
5720 if (r
->printer_name
) {
5721 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5722 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5723 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5724 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5726 if (r
->server_name
) {
5727 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5728 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5729 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5730 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5733 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5734 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5735 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5736 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5738 if (r
->document_name
) {
5739 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5740 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5741 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5742 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5744 if (r
->notify_name
) {
5745 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5746 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5747 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5748 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5751 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5752 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5753 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5754 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5756 if (r
->print_processor
) {
5757 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5758 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5759 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5760 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5762 if (r
->parameters
) {
5763 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5764 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5765 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5766 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5768 if (r
->driver_name
) {
5769 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5770 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5771 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5772 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5774 if (r
->text_status
) {
5775 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5776 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5777 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5778 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5781 return NDR_ERR_SUCCESS
;
5784 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo2
*r
)
5786 uint32_t _ptr_printer_name
;
5787 TALLOC_CTX
*_mem_save_printer_name_0
;
5788 uint32_t _ptr_server_name
;
5789 TALLOC_CTX
*_mem_save_server_name_0
;
5790 uint32_t _ptr_user_name
;
5791 TALLOC_CTX
*_mem_save_user_name_0
;
5792 uint32_t _ptr_document_name
;
5793 TALLOC_CTX
*_mem_save_document_name_0
;
5794 uint32_t _ptr_notify_name
;
5795 TALLOC_CTX
*_mem_save_notify_name_0
;
5796 uint32_t _ptr_data_type
;
5797 TALLOC_CTX
*_mem_save_data_type_0
;
5798 uint32_t _ptr_print_processor
;
5799 TALLOC_CTX
*_mem_save_print_processor_0
;
5800 uint32_t _ptr_parameters
;
5801 TALLOC_CTX
*_mem_save_parameters_0
;
5802 uint32_t _ptr_driver_name
;
5803 TALLOC_CTX
*_mem_save_driver_name_0
;
5804 uint32_t _ptr_text_status
;
5805 TALLOC_CTX
*_mem_save_text_status_0
;
5806 if (ndr_flags
& NDR_SCALARS
) {
5807 NDR_CHECK(ndr_pull_align(ndr
, 5));
5808 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5809 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5810 if (_ptr_printer_name
) {
5811 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5813 r
->printer_name
= NULL
;
5815 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5816 if (_ptr_server_name
) {
5817 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5819 r
->server_name
= NULL
;
5821 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5822 if (_ptr_user_name
) {
5823 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5825 r
->user_name
= NULL
;
5827 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5828 if (_ptr_document_name
) {
5829 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5831 r
->document_name
= NULL
;
5833 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
5834 if (_ptr_notify_name
) {
5835 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
5837 r
->notify_name
= NULL
;
5839 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5840 if (_ptr_data_type
) {
5841 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5843 r
->data_type
= NULL
;
5845 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
5846 if (_ptr_print_processor
) {
5847 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
5849 r
->print_processor
= NULL
;
5851 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
5852 if (_ptr_parameters
) {
5853 NDR_PULL_ALLOC(ndr
, r
->parameters
);
5855 r
->parameters
= NULL
;
5857 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
5858 if (_ptr_driver_name
) {
5859 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
5861 r
->driver_name
= NULL
;
5863 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
5864 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5865 if (_ptr_text_status
) {
5866 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5868 r
->text_status
= NULL
;
5870 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
5871 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5872 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5873 if (r
->priority
> 99) {
5874 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5876 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5877 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
5878 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
5879 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5880 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
5881 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5882 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
5883 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5884 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
5886 if (ndr_flags
& NDR_BUFFERS
) {
5887 if (r
->printer_name
) {
5888 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5889 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5890 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5891 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5892 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
5893 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printer_name
), ndr_get_array_length(ndr
, &r
->printer_name
));
5895 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
5896 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
5897 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5899 if (r
->server_name
) {
5900 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5901 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5902 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5903 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5904 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
5905 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->server_name
), ndr_get_array_length(ndr
, &r
->server_name
));
5907 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
5908 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
5909 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5912 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5913 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5914 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5915 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5916 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
5917 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->user_name
), ndr_get_array_length(ndr
, &r
->user_name
));
5919 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
5920 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
5921 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5923 if (r
->document_name
) {
5924 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5925 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5926 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5927 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5928 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
5929 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->document_name
), ndr_get_array_length(ndr
, &r
->document_name
));
5931 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
5932 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
5933 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5935 if (r
->notify_name
) {
5936 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5937 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
5938 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
5939 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
5940 if (ndr_get_array_length(ndr
, &r
->notify_name
) > ndr_get_array_size(ndr
, &r
->notify_name
)) {
5941 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->notify_name
), ndr_get_array_length(ndr
, &r
->notify_name
));
5943 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t)));
5944 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t), CH_UTF16
));
5945 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
5948 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5949 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5950 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5951 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5952 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
5953 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_type
), ndr_get_array_length(ndr
, &r
->data_type
));
5955 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
5956 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
5957 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5959 if (r
->print_processor
) {
5960 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5961 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
5962 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
5963 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
5964 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
5965 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->print_processor
), ndr_get_array_length(ndr
, &r
->print_processor
));
5967 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
5968 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
5969 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
5971 if (r
->parameters
) {
5972 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5973 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
5974 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
5975 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
5976 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
5977 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->parameters
), ndr_get_array_length(ndr
, &r
->parameters
));
5979 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
5980 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
5981 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
5983 if (r
->driver_name
) {
5984 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5985 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
5986 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
5987 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
5988 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
5989 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
5991 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
5992 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
5993 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
5995 if (r
->text_status
) {
5996 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5997 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5998 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5999 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
6000 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
6001 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->text_status
), ndr_get_array_length(ndr
, &r
->text_status
));
6003 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
6004 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
6005 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
6008 return NDR_ERR_SUCCESS
;
6011 _PUBLIC_
void ndr_print_spoolss_SetJobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo2
*r
)
6013 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo2");
6015 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
6016 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
6018 if (r
->printer_name
) {
6019 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
6022 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
6024 if (r
->server_name
) {
6025 ndr_print_string(ndr
, "server_name", r
->server_name
);
6028 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
6031 ndr_print_string(ndr
, "user_name", r
->user_name
);
6034 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
6036 if (r
->document_name
) {
6037 ndr_print_string(ndr
, "document_name", r
->document_name
);
6040 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
6042 if (r
->notify_name
) {
6043 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
6046 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
6049 ndr_print_string(ndr
, "data_type", r
->data_type
);
6052 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
6054 if (r
->print_processor
) {
6055 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
6058 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
6060 if (r
->parameters
) {
6061 ndr_print_string(ndr
, "parameters", r
->parameters
);
6064 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
6066 if (r
->driver_name
) {
6067 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
6070 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
6071 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
6073 if (r
->text_status
) {
6074 ndr_print_string(ndr
, "text_status", r
->text_status
);
6077 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
6078 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
6079 ndr_print_uint32(ndr
, "priority", r
->priority
);
6080 ndr_print_uint32(ndr
, "position", r
->position
);
6081 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
6082 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
6083 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
6084 ndr_print_uint32(ndr
, "size", r
->size
);
6085 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
6086 ndr_print_uint32(ndr
, "time", r
->time
);
6087 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
6091 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo4
*r
)
6093 if (ndr_flags
& NDR_SCALARS
) {
6094 NDR_CHECK(ndr_push_align(ndr
, 5));
6095 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
6096 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
6097 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
6098 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
6099 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
6100 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
6101 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
6102 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
6103 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
6104 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
6105 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
6106 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
6107 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
6108 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
6109 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
6110 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
6111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
6112 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
6113 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
6114 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
6115 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
6116 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
6117 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
6118 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
6119 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6121 if (ndr_flags
& NDR_BUFFERS
) {
6122 if (r
->printer_name
) {
6123 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
6124 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6125 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
6126 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6128 if (r
->server_name
) {
6129 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
6130 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6131 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
6132 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6135 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
6136 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6137 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
6138 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6140 if (r
->document_name
) {
6141 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
6142 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6143 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
6144 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6146 if (r
->notify_name
) {
6147 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
6148 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6149 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
6150 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6153 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
6154 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6155 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
6156 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6158 if (r
->print_processor
) {
6159 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
6160 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6161 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
6162 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6164 if (r
->parameters
) {
6165 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6166 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6167 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6168 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6170 if (r
->driver_name
) {
6171 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
6172 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6173 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
6174 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6176 if (r
->text_status
) {
6177 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
6178 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6179 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
6180 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6183 return NDR_ERR_SUCCESS
;
6186 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo4
*r
)
6188 uint32_t _ptr_printer_name
;
6189 TALLOC_CTX
*_mem_save_printer_name_0
;
6190 uint32_t _ptr_server_name
;
6191 TALLOC_CTX
*_mem_save_server_name_0
;
6192 uint32_t _ptr_user_name
;
6193 TALLOC_CTX
*_mem_save_user_name_0
;
6194 uint32_t _ptr_document_name
;
6195 TALLOC_CTX
*_mem_save_document_name_0
;
6196 uint32_t _ptr_notify_name
;
6197 TALLOC_CTX
*_mem_save_notify_name_0
;
6198 uint32_t _ptr_data_type
;
6199 TALLOC_CTX
*_mem_save_data_type_0
;
6200 uint32_t _ptr_print_processor
;
6201 TALLOC_CTX
*_mem_save_print_processor_0
;
6202 uint32_t _ptr_parameters
;
6203 TALLOC_CTX
*_mem_save_parameters_0
;
6204 uint32_t _ptr_driver_name
;
6205 TALLOC_CTX
*_mem_save_driver_name_0
;
6206 uint32_t _ptr_text_status
;
6207 TALLOC_CTX
*_mem_save_text_status_0
;
6208 if (ndr_flags
& NDR_SCALARS
) {
6209 NDR_CHECK(ndr_pull_align(ndr
, 5));
6210 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
6211 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
6212 if (_ptr_printer_name
) {
6213 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
6215 r
->printer_name
= NULL
;
6217 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
6218 if (_ptr_server_name
) {
6219 NDR_PULL_ALLOC(ndr
, r
->server_name
);
6221 r
->server_name
= NULL
;
6223 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
6224 if (_ptr_user_name
) {
6225 NDR_PULL_ALLOC(ndr
, r
->user_name
);
6227 r
->user_name
= NULL
;
6229 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
6230 if (_ptr_document_name
) {
6231 NDR_PULL_ALLOC(ndr
, r
->document_name
);
6233 r
->document_name
= NULL
;
6235 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
6236 if (_ptr_notify_name
) {
6237 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
6239 r
->notify_name
= NULL
;
6241 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
6242 if (_ptr_data_type
) {
6243 NDR_PULL_ALLOC(ndr
, r
->data_type
);
6245 r
->data_type
= NULL
;
6247 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
6248 if (_ptr_print_processor
) {
6249 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
6251 r
->print_processor
= NULL
;
6253 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
6254 if (_ptr_parameters
) {
6255 NDR_PULL_ALLOC(ndr
, r
->parameters
);
6257 r
->parameters
= NULL
;
6259 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
6260 if (_ptr_driver_name
) {
6261 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
6263 r
->driver_name
= NULL
;
6265 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
6266 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
6267 if (_ptr_text_status
) {
6268 NDR_PULL_ALLOC(ndr
, r
->text_status
);
6270 r
->text_status
= NULL
;
6272 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
6273 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
6274 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
6275 if (r
->priority
> 99) {
6276 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
6278 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
6279 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
6280 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
6281 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
6282 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
6283 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
6284 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
6285 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
6286 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
6287 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6289 if (ndr_flags
& NDR_BUFFERS
) {
6290 if (r
->printer_name
) {
6291 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6292 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
6293 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
6294 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
6295 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
6296 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printer_name
), ndr_get_array_length(ndr
, &r
->printer_name
));
6298 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
6299 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
6300 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
6302 if (r
->server_name
) {
6303 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6304 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
6305 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
6306 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
6307 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
6308 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->server_name
), ndr_get_array_length(ndr
, &r
->server_name
));
6310 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
6311 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
6312 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
6315 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6316 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
6317 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
6318 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
6319 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
6320 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->user_name
), ndr_get_array_length(ndr
, &r
->user_name
));
6322 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
6323 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
6324 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
6326 if (r
->document_name
) {
6327 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6328 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
6329 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
6330 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
6331 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
6332 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->document_name
), ndr_get_array_length(ndr
, &r
->document_name
));
6334 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
6335 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
6336 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
6338 if (r
->notify_name
) {
6339 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6340 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
6341 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
6342 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
6343 if (ndr_get_array_length(ndr
, &r
->notify_name
) > ndr_get_array_size(ndr
, &r
->notify_name
)) {
6344 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->notify_name
), ndr_get_array_length(ndr
, &r
->notify_name
));
6346 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t)));
6347 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t), CH_UTF16
));
6348 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
6351 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6352 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
6353 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
6354 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
6355 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
6356 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_type
), ndr_get_array_length(ndr
, &r
->data_type
));
6358 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
6359 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
6360 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
6362 if (r
->print_processor
) {
6363 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6364 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
6365 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
6366 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
6367 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
6368 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->print_processor
), ndr_get_array_length(ndr
, &r
->print_processor
));
6370 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
6371 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
6372 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
6374 if (r
->parameters
) {
6375 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6376 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
6377 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
6378 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
6379 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
6380 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->parameters
), ndr_get_array_length(ndr
, &r
->parameters
));
6382 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
6383 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
6384 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
6386 if (r
->driver_name
) {
6387 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6388 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
6389 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
6390 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
6391 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
6392 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
6394 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
6395 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
6396 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
6398 if (r
->text_status
) {
6399 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6400 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
6401 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
6402 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
6403 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
6404 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->text_status
), ndr_get_array_length(ndr
, &r
->text_status
));
6406 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
6407 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
6408 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
6411 return NDR_ERR_SUCCESS
;
6414 _PUBLIC_
void ndr_print_spoolss_SetJobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo4
*r
)
6416 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo4");
6418 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
6419 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
6421 if (r
->printer_name
) {
6422 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
6425 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
6427 if (r
->server_name
) {
6428 ndr_print_string(ndr
, "server_name", r
->server_name
);
6431 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
6434 ndr_print_string(ndr
, "user_name", r
->user_name
);
6437 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
6439 if (r
->document_name
) {
6440 ndr_print_string(ndr
, "document_name", r
->document_name
);
6443 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
6445 if (r
->notify_name
) {
6446 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
6449 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
6452 ndr_print_string(ndr
, "data_type", r
->data_type
);
6455 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
6457 if (r
->print_processor
) {
6458 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
6461 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
6463 if (r
->parameters
) {
6464 ndr_print_string(ndr
, "parameters", r
->parameters
);
6467 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
6469 if (r
->driver_name
) {
6470 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
6473 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
6474 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
6476 if (r
->text_status
) {
6477 ndr_print_string(ndr
, "text_status", r
->text_status
);
6480 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
6481 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
6482 ndr_print_uint32(ndr
, "priority", r
->priority
);
6483 ndr_print_uint32(ndr
, "position", r
->position
);
6484 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
6485 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
6486 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
6487 ndr_print_uint32(ndr
, "size", r
->size
);
6488 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
6489 ndr_print_uint32(ndr
, "time", r
->time
);
6490 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
6491 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
6495 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_SetJobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetJobInfo
*r
)
6497 if (ndr_flags
& NDR_SCALARS
) {
6498 int level
= ndr_push_get_switch_value(ndr
, r
);
6499 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6500 NDR_CHECK(ndr_push_union_align(ndr
, 5));
6503 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
6507 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
6511 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
6515 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
6523 if (ndr_flags
& NDR_BUFFERS
) {
6524 int level
= ndr_push_get_switch_value(ndr
, r
);
6528 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
6534 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6540 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
6546 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6555 return NDR_ERR_SUCCESS
;
6558 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_SetJobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetJobInfo
*r
)
6562 TALLOC_CTX
*_mem_save_info1_0
;
6563 TALLOC_CTX
*_mem_save_info2_0
;
6564 TALLOC_CTX
*_mem_save_info3_0
;
6565 TALLOC_CTX
*_mem_save_info4_0
;
6566 level
= ndr_pull_get_switch_value(ndr
, r
);
6567 if (ndr_flags
& NDR_SCALARS
) {
6568 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
6569 if (_level
!= level
) {
6570 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
6572 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
6575 uint32_t _ptr_info1
;
6576 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
6578 NDR_PULL_ALLOC(ndr
, r
->info1
);
6585 uint32_t _ptr_info2
;
6586 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
6588 NDR_PULL_ALLOC(ndr
, r
->info2
);
6595 uint32_t _ptr_info3
;
6596 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
6598 NDR_PULL_ALLOC(ndr
, r
->info3
);
6605 uint32_t _ptr_info4
;
6606 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
6608 NDR_PULL_ALLOC(ndr
, r
->info4
);
6619 if (ndr_flags
& NDR_BUFFERS
) {
6623 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6624 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
6625 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
6626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
6632 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6633 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
6634 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6635 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
6641 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6642 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
6643 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
6644 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
6650 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6651 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
6652 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6653 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
6662 return NDR_ERR_SUCCESS
;
6665 _PUBLIC_
void ndr_print_spoolss_SetJobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetJobInfo
*r
)
6668 level
= ndr_print_get_switch_value(ndr
, r
);
6669 ndr_print_union(ndr
, name
, level
, "spoolss_SetJobInfo");
6672 ndr_print_ptr(ndr
, "info1", r
->info1
);
6675 ndr_print_spoolss_SetJobInfo1(ndr
, "info1", r
->info1
);
6681 ndr_print_ptr(ndr
, "info2", r
->info2
);
6684 ndr_print_spoolss_SetJobInfo2(ndr
, "info2", r
->info2
);
6690 ndr_print_ptr(ndr
, "info3", r
->info3
);
6693 ndr_print_spoolss_JobInfo3(ndr
, "info3", r
->info3
);
6699 ndr_print_ptr(ndr
, "info4", r
->info4
);
6702 ndr_print_spoolss_SetJobInfo4(ndr
, "info4", r
->info4
);
6713 static enum ndr_err_code
ndr_push_spoolss_JobInfoContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfoContainer
*r
)
6715 if (ndr_flags
& NDR_SCALARS
) {
6716 NDR_CHECK(ndr_push_align(ndr
, 5));
6717 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
6718 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
6719 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
6720 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6722 if (ndr_flags
& NDR_BUFFERS
) {
6723 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
6725 return NDR_ERR_SUCCESS
;
6728 static enum ndr_err_code
ndr_pull_spoolss_JobInfoContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfoContainer
*r
)
6730 if (ndr_flags
& NDR_SCALARS
) {
6731 NDR_CHECK(ndr_pull_align(ndr
, 5));
6732 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
6733 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
6734 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
6735 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6737 if (ndr_flags
& NDR_BUFFERS
) {
6738 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
6740 return NDR_ERR_SUCCESS
;
6743 _PUBLIC_
void ndr_print_spoolss_JobInfoContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfoContainer
*r
)
6745 ndr_print_struct(ndr
, name
, "spoolss_JobInfoContainer");
6747 ndr_print_uint32(ndr
, "level", r
->level
);
6748 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
6749 ndr_print_spoolss_SetJobInfo(ndr
, "info", &r
->info
);
6753 static enum ndr_err_code
ndr_push_spoolss_JobControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobControl r
)
6755 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
6756 return NDR_ERR_SUCCESS
;
6759 static enum ndr_err_code
ndr_pull_spoolss_JobControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobControl
*r
)
6762 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
6764 return NDR_ERR_SUCCESS
;
6767 _PUBLIC_
void ndr_print_spoolss_JobControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobControl r
)
6769 const char *val
= NULL
;
6772 case SPOOLSS_JOB_CONTROL_PAUSE
: val
= "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6773 case SPOOLSS_JOB_CONTROL_RESUME
: val
= "SPOOLSS_JOB_CONTROL_RESUME"; break;
6774 case SPOOLSS_JOB_CONTROL_CANCEL
: val
= "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6775 case SPOOLSS_JOB_CONTROL_RESTART
: val
= "SPOOLSS_JOB_CONTROL_RESTART"; break;
6776 case SPOOLSS_JOB_CONTROL_DELETE
: val
= "SPOOLSS_JOB_CONTROL_DELETE"; break;
6777 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER
: val
= "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6778 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED
: val
= "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6779 case SPOOLSS_JOB_CONTROL_RETAIN
: val
= "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6780 case SPOOLSS_JOB_CONTROL_RELEASE
: val
= "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6782 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6785 static enum ndr_err_code
ndr_push_spoolss_PrinterControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrinterControl r
)
6787 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
6788 return NDR_ERR_SUCCESS
;
6791 static enum ndr_err_code
ndr_pull_spoolss_PrinterControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrinterControl
*r
)
6794 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
6796 return NDR_ERR_SUCCESS
;
6799 _PUBLIC_
void ndr_print_spoolss_PrinterControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrinterControl r
)
6801 const char *val
= NULL
;
6804 case SPOOLSS_PRINTER_CONTROL_UNPAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6805 case SPOOLSS_PRINTER_CONTROL_PAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6806 case SPOOLSS_PRINTER_CONTROL_RESUME
: val
= "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6807 case SPOOLSS_PRINTER_CONTROL_PURGE
: val
= "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6808 case SPOOLSS_PRINTER_CONTROL_SET_STATUS
: val
= "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6810 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6813 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo0
*r
)
6815 if (ndr_flags
& NDR_SCALARS
) {
6816 NDR_CHECK(ndr_push_align(ndr
, 5));
6817 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6818 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6819 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
6820 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
6821 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
6822 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
6823 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
6824 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
6825 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
6826 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
6827 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
6828 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
6829 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
6830 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
6831 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
6832 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_error
));
6833 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
6834 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
6835 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
6836 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
6837 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
6838 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->status
));
6839 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
6840 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
6841 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
6842 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
6843 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
6844 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
6845 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
6846 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6848 if (ndr_flags
& NDR_BUFFERS
) {
6849 if (r
->servername
) {
6850 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6851 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6852 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6853 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6855 if (r
->printername
) {
6856 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6857 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6858 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6859 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6862 return NDR_ERR_SUCCESS
;
6865 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo0
*r
)
6867 uint32_t _ptr_servername
;
6868 TALLOC_CTX
*_mem_save_servername_0
;
6869 uint32_t _ptr_printername
;
6870 TALLOC_CTX
*_mem_save_printername_0
;
6871 if (ndr_flags
& NDR_SCALARS
) {
6872 NDR_CHECK(ndr_pull_align(ndr
, 5));
6873 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6874 if (_ptr_servername
) {
6875 NDR_PULL_ALLOC(ndr
, r
->servername
);
6877 r
->servername
= NULL
;
6879 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6880 if (_ptr_printername
) {
6881 NDR_PULL_ALLOC(ndr
, r
->printername
);
6883 r
->printername
= NULL
;
6885 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
6886 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
6887 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
6888 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
6889 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
6890 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
6891 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
6892 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
6893 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
6894 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
6895 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
6896 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
6897 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
6898 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_error
));
6899 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
6900 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
6901 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
6902 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
6903 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
6904 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->status
));
6905 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
6906 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
6907 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
6908 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
6909 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
6910 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
6911 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
6912 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6914 if (ndr_flags
& NDR_BUFFERS
) {
6915 if (r
->servername
) {
6916 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6917 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6918 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6919 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6920 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
6921 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->servername
), ndr_get_array_length(ndr
, &r
->servername
));
6923 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
6924 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
6925 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6927 if (r
->printername
) {
6928 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6929 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6930 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6931 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6932 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6933 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printername
), ndr_get_array_length(ndr
, &r
->printername
));
6935 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6936 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6940 return NDR_ERR_SUCCESS
;
6943 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo0
*r
)
6945 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo0");
6947 ndr_print_ptr(ndr
, "servername", r
->servername
);
6949 if (r
->servername
) {
6950 ndr_print_string(ndr
, "servername", r
->servername
);
6953 ndr_print_ptr(ndr
, "printername", r
->printername
);
6955 if (r
->printername
) {
6956 ndr_print_string(ndr
, "printername", r
->printername
);
6959 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
6960 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
6961 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
6962 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
6963 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
6964 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
6965 ndr_print_uint32(ndr
, "version", r
->version
);
6966 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
6967 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
6968 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
6969 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
6970 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
6971 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
6972 ndr_print_uint32(ndr
, "job_error", r
->job_error
);
6973 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
6974 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
6975 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
6976 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
6977 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
6978 ndr_print_uint32(ndr
, "status", r
->status
);
6979 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
6980 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
6981 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
6982 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
6983 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
6984 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
6985 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
6989 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo1
*r
)
6991 if (ndr_flags
& NDR_SCALARS
) {
6992 NDR_CHECK(ndr_push_align(ndr
, 5));
6993 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->flags
));
6994 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->description
));
6995 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
6996 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
6997 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6999 if (ndr_flags
& NDR_BUFFERS
) {
7000 if (r
->description
) {
7001 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
7002 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7003 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
7004 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->description
, ndr_charset_length(r
->description
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7007 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
7008 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7009 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
7010 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7013 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
7014 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7015 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
7016 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7019 return NDR_ERR_SUCCESS
;
7022 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo1
*r
)
7024 uint32_t _ptr_description
;
7025 TALLOC_CTX
*_mem_save_description_0
;
7027 TALLOC_CTX
*_mem_save_name_0
;
7028 uint32_t _ptr_comment
;
7029 TALLOC_CTX
*_mem_save_comment_0
;
7030 if (ndr_flags
& NDR_SCALARS
) {
7031 NDR_CHECK(ndr_pull_align(ndr
, 5));
7032 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->flags
));
7033 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
7034 if (_ptr_description
) {
7035 NDR_PULL_ALLOC(ndr
, r
->description
);
7037 r
->description
= NULL
;
7039 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
7041 NDR_PULL_ALLOC(ndr
, r
->name
);
7045 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
7047 NDR_PULL_ALLOC(ndr
, r
->comment
);
7051 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7053 if (ndr_flags
& NDR_BUFFERS
) {
7054 if (r
->description
) {
7055 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7056 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
7057 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->description
));
7058 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->description
));
7059 if (ndr_get_array_length(ndr
, &r
->description
) > ndr_get_array_size(ndr
, &r
->description
)) {
7060 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->description
), ndr_get_array_length(ndr
, &r
->description
));
7062 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t)));
7063 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->description
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t), CH_UTF16
));
7064 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
7067 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7068 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
7069 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
7070 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
7071 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
7072 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->name
), ndr_get_array_length(ndr
, &r
->name
));
7074 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
7075 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
7076 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
7079 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7080 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
7081 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
7082 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
7083 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
7084 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->comment
), ndr_get_array_length(ndr
, &r
->comment
));
7086 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
7087 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
7088 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
7091 return NDR_ERR_SUCCESS
;
7094 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo1
*r
)
7096 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo1");
7098 ndr_print_spoolss_PrinterAttributes(ndr
, "flags", r
->flags
);
7099 ndr_print_ptr(ndr
, "description", r
->description
);
7101 if (r
->description
) {
7102 ndr_print_string(ndr
, "description", r
->description
);
7105 ndr_print_ptr(ndr
, "name", r
->name
);
7108 ndr_print_string(ndr
, "name", r
->name
);
7111 ndr_print_ptr(ndr
, "comment", r
->comment
);
7114 ndr_print_string(ndr
, "comment", r
->comment
);
7120 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo2
*r
)
7122 if (ndr_flags
& NDR_SCALARS
) {
7123 NDR_CHECK(ndr_push_align(ndr
, 5));
7124 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
7125 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
7126 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sharename
));
7127 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
7128 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->drivername
));
7129 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
7130 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->location
));
7131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->devmode_ptr
));
7132 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sepfile
));
7133 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printprocessor
));
7134 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
7135 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
7136 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->secdesc_ptr
));
7137 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
7138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
7139 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
7140 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
7141 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
7142 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
7143 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
7144 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
7145 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7147 if (ndr_flags
& NDR_BUFFERS
) {
7148 if (r
->servername
) {
7149 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
7150 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7151 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
7152 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7154 if (r
->printername
) {
7155 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7156 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7157 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7158 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7161 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
7162 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7163 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
7164 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sharename
, ndr_charset_length(r
->sharename
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7167 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
7168 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7169 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
7170 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7172 if (r
->drivername
) {
7173 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
7174 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7175 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
7176 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->drivername
, ndr_charset_length(r
->drivername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7179 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
7180 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7181 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
7182 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7185 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
7186 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7187 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
7188 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->location
, ndr_charset_length(r
->location
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7191 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
7192 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7193 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
7194 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sepfile
, ndr_charset_length(r
->sepfile
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7196 if (r
->printprocessor
) {
7197 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
7198 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7199 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
7200 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printprocessor
, ndr_charset_length(r
->printprocessor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7203 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
7204 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7205 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
7206 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7208 if (r
->parameters
) {
7209 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
7210 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7211 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
7212 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7215 return NDR_ERR_SUCCESS
;
7218 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo2
*r
)
7220 uint32_t _ptr_servername
;
7221 TALLOC_CTX
*_mem_save_servername_0
;
7222 uint32_t _ptr_printername
;
7223 TALLOC_CTX
*_mem_save_printername_0
;
7224 uint32_t _ptr_sharename
;
7225 TALLOC_CTX
*_mem_save_sharename_0
;
7226 uint32_t _ptr_portname
;
7227 TALLOC_CTX
*_mem_save_portname_0
;
7228 uint32_t _ptr_drivername
;
7229 TALLOC_CTX
*_mem_save_drivername_0
;
7230 uint32_t _ptr_comment
;
7231 TALLOC_CTX
*_mem_save_comment_0
;
7232 uint32_t _ptr_location
;
7233 TALLOC_CTX
*_mem_save_location_0
;
7234 uint32_t _ptr_sepfile
;
7235 TALLOC_CTX
*_mem_save_sepfile_0
;
7236 uint32_t _ptr_printprocessor
;
7237 TALLOC_CTX
*_mem_save_printprocessor_0
;
7238 uint32_t _ptr_datatype
;
7239 TALLOC_CTX
*_mem_save_datatype_0
;
7240 uint32_t _ptr_parameters
;
7241 TALLOC_CTX
*_mem_save_parameters_0
;
7242 if (ndr_flags
& NDR_SCALARS
) {
7243 NDR_CHECK(ndr_pull_align(ndr
, 5));
7244 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
7245 if (_ptr_servername
) {
7246 NDR_PULL_ALLOC(ndr
, r
->servername
);
7248 r
->servername
= NULL
;
7250 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
7251 if (_ptr_printername
) {
7252 NDR_PULL_ALLOC(ndr
, r
->printername
);
7254 r
->printername
= NULL
;
7256 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
7257 if (_ptr_sharename
) {
7258 NDR_PULL_ALLOC(ndr
, r
->sharename
);
7260 r
->sharename
= NULL
;
7262 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
7263 if (_ptr_portname
) {
7264 NDR_PULL_ALLOC(ndr
, r
->portname
);
7268 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
7269 if (_ptr_drivername
) {
7270 NDR_PULL_ALLOC(ndr
, r
->drivername
);
7272 r
->drivername
= NULL
;
7274 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
7276 NDR_PULL_ALLOC(ndr
, r
->comment
);
7280 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
7281 if (_ptr_location
) {
7282 NDR_PULL_ALLOC(ndr
, r
->location
);
7286 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->devmode_ptr
));
7287 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
7289 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
7293 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
7294 if (_ptr_printprocessor
) {
7295 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
7297 r
->printprocessor
= NULL
;
7299 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
7300 if (_ptr_datatype
) {
7301 NDR_PULL_ALLOC(ndr
, r
->datatype
);
7305 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
7306 if (_ptr_parameters
) {
7307 NDR_PULL_ALLOC(ndr
, r
->parameters
);
7309 r
->parameters
= NULL
;
7311 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->secdesc_ptr
));
7312 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
7313 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
7314 if (r
->priority
> 99) {
7315 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
7317 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
7318 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
7319 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
7320 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
7321 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
7322 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
7323 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7325 if (ndr_flags
& NDR_BUFFERS
) {
7326 if (r
->servername
) {
7327 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7328 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
7329 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
7330 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
7331 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
7332 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->servername
), ndr_get_array_length(ndr
, &r
->servername
));
7334 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
7335 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
7336 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
7338 if (r
->printername
) {
7339 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7340 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
7341 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
7342 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
7343 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
7344 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printername
), ndr_get_array_length(ndr
, &r
->printername
));
7346 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
7347 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
7348 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
7351 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7352 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
7353 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sharename
));
7354 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sharename
));
7355 if (ndr_get_array_length(ndr
, &r
->sharename
) > ndr_get_array_size(ndr
, &r
->sharename
)) {
7356 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->sharename
), ndr_get_array_length(ndr
, &r
->sharename
));
7358 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t)));
7359 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sharename
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t), CH_UTF16
));
7360 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
7363 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7364 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
7365 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
7366 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
7367 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
7368 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->portname
), ndr_get_array_length(ndr
, &r
->portname
));
7370 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
7371 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
7372 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
7374 if (r
->drivername
) {
7375 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7376 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
7377 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->drivername
));
7378 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->drivername
));
7379 if (ndr_get_array_length(ndr
, &r
->drivername
) > ndr_get_array_size(ndr
, &r
->drivername
)) {
7380 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->drivername
), ndr_get_array_length(ndr
, &r
->drivername
));
7382 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t)));
7383 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->drivername
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t), CH_UTF16
));
7384 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
7387 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7388 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
7389 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
7390 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
7391 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
7392 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->comment
), ndr_get_array_length(ndr
, &r
->comment
));
7394 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
7395 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
7396 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
7399 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7400 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
7401 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->location
));
7402 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->location
));
7403 if (ndr_get_array_length(ndr
, &r
->location
) > ndr_get_array_size(ndr
, &r
->location
)) {
7404 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->location
), ndr_get_array_length(ndr
, &r
->location
));
7406 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t)));
7407 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->location
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t), CH_UTF16
));
7408 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
7411 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7412 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
7413 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sepfile
));
7414 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sepfile
));
7415 if (ndr_get_array_length(ndr
, &r
->sepfile
) > ndr_get_array_size(ndr
, &r
->sepfile
)) {
7416 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->sepfile
), ndr_get_array_length(ndr
, &r
->sepfile
));
7418 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t)));
7419 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sepfile
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t), CH_UTF16
));
7420 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
7422 if (r
->printprocessor
) {
7423 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7424 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
7425 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printprocessor
));
7426 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printprocessor
));
7427 if (ndr_get_array_length(ndr
, &r
->printprocessor
) > ndr_get_array_size(ndr
, &r
->printprocessor
)) {
7428 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printprocessor
), ndr_get_array_length(ndr
, &r
->printprocessor
));
7430 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t)));
7431 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printprocessor
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t), CH_UTF16
));
7432 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
7435 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7436 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
7437 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
7438 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
7439 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
7440 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->datatype
), ndr_get_array_length(ndr
, &r
->datatype
));
7442 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
7443 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
7444 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
7446 if (r
->parameters
) {
7447 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7448 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
7449 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
7450 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
7451 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
7452 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->parameters
), ndr_get_array_length(ndr
, &r
->parameters
));
7454 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
7455 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
7456 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
7459 return NDR_ERR_SUCCESS
;
7462 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo2
*r
)
7464 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo2");
7466 ndr_print_ptr(ndr
, "servername", r
->servername
);
7468 if (r
->servername
) {
7469 ndr_print_string(ndr
, "servername", r
->servername
);
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
, "sharename", r
->sharename
);
7481 ndr_print_string(ndr
, "sharename", r
->sharename
);
7484 ndr_print_ptr(ndr
, "portname", r
->portname
);
7487 ndr_print_string(ndr
, "portname", r
->portname
);
7490 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
7492 if (r
->drivername
) {
7493 ndr_print_string(ndr
, "drivername", r
->drivername
);
7496 ndr_print_ptr(ndr
, "comment", r
->comment
);
7499 ndr_print_string(ndr
, "comment", r
->comment
);
7502 ndr_print_ptr(ndr
, "location", r
->location
);
7505 ndr_print_string(ndr
, "location", r
->location
);
7508 ndr_print_uint32(ndr
, "devmode_ptr", r
->devmode_ptr
);
7509 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
7512 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
7515 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
7517 if (r
->printprocessor
) {
7518 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
7521 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
7524 ndr_print_string(ndr
, "datatype", r
->datatype
);
7527 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
7529 if (r
->parameters
) {
7530 ndr_print_string(ndr
, "parameters", r
->parameters
);
7533 ndr_print_uint32(ndr
, "secdesc_ptr", r
->secdesc_ptr
);
7534 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7535 ndr_print_uint32(ndr
, "priority", r
->priority
);
7536 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
7537 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
7538 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
7539 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
7540 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
7541 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
7545 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo3
*r
)
7547 if (ndr_flags
& NDR_SCALARS
) {
7548 NDR_CHECK(ndr_push_align(ndr
, 4));
7549 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sec_desc_ptr
));
7550 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7552 if (ndr_flags
& NDR_BUFFERS
) {
7554 return NDR_ERR_SUCCESS
;
7557 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo3
*r
)
7559 if (ndr_flags
& NDR_SCALARS
) {
7560 NDR_CHECK(ndr_pull_align(ndr
, 4));
7561 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sec_desc_ptr
));
7562 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7564 if (ndr_flags
& NDR_BUFFERS
) {
7566 return NDR_ERR_SUCCESS
;
7569 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo3
*r
)
7571 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo3");
7573 ndr_print_uint32(ndr
, "sec_desc_ptr", r
->sec_desc_ptr
);
7577 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo4
*r
)
7579 if (ndr_flags
& NDR_SCALARS
) {
7580 NDR_CHECK(ndr_push_align(ndr
, 5));
7581 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
7582 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
7583 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
7584 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7586 if (ndr_flags
& NDR_BUFFERS
) {
7587 if (r
->printername
) {
7588 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7589 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7590 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7591 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7593 if (r
->servername
) {
7594 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
7595 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7596 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
7597 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7600 return NDR_ERR_SUCCESS
;
7603 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo4
*r
)
7605 uint32_t _ptr_printername
;
7606 TALLOC_CTX
*_mem_save_printername_0
;
7607 uint32_t _ptr_servername
;
7608 TALLOC_CTX
*_mem_save_servername_0
;
7609 if (ndr_flags
& NDR_SCALARS
) {
7610 NDR_CHECK(ndr_pull_align(ndr
, 5));
7611 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
7612 if (_ptr_printername
) {
7613 NDR_PULL_ALLOC(ndr
, r
->printername
);
7615 r
->printername
= NULL
;
7617 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
7618 if (_ptr_servername
) {
7619 NDR_PULL_ALLOC(ndr
, r
->servername
);
7621 r
->servername
= NULL
;
7623 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
7624 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7626 if (ndr_flags
& NDR_BUFFERS
) {
7627 if (r
->printername
) {
7628 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7629 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
7630 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
7631 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
7632 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
7633 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printername
), ndr_get_array_length(ndr
, &r
->printername
));
7635 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
7636 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
7637 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
7639 if (r
->servername
) {
7640 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7641 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
7642 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
7643 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
7644 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
7645 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->servername
), ndr_get_array_length(ndr
, &r
->servername
));
7647 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
7648 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
7649 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
7652 return NDR_ERR_SUCCESS
;
7655 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo4
*r
)
7657 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo4");
7659 ndr_print_ptr(ndr
, "printername", r
->printername
);
7661 if (r
->printername
) {
7662 ndr_print_string(ndr
, "printername", r
->printername
);
7665 ndr_print_ptr(ndr
, "servername", r
->servername
);
7667 if (r
->servername
) {
7668 ndr_print_string(ndr
, "servername", r
->servername
);
7671 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7675 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo5
*r
)
7677 if (ndr_flags
& NDR_SCALARS
) {
7678 NDR_CHECK(ndr_push_align(ndr
, 5));
7679 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
7680 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
7681 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
7682 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
7683 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
7684 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7686 if (ndr_flags
& NDR_BUFFERS
) {
7687 if (r
->printername
) {
7688 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7689 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7690 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7691 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7694 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
7695 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7696 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
7697 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7700 return NDR_ERR_SUCCESS
;
7703 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo5
*r
)
7705 uint32_t _ptr_printername
;
7706 TALLOC_CTX
*_mem_save_printername_0
;
7707 uint32_t _ptr_portname
;
7708 TALLOC_CTX
*_mem_save_portname_0
;
7709 if (ndr_flags
& NDR_SCALARS
) {
7710 NDR_CHECK(ndr_pull_align(ndr
, 5));
7711 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
7712 if (_ptr_printername
) {
7713 NDR_PULL_ALLOC(ndr
, r
->printername
);
7715 r
->printername
= NULL
;
7717 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
7718 if (_ptr_portname
) {
7719 NDR_PULL_ALLOC(ndr
, r
->portname
);
7723 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
7724 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
7725 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
7726 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7728 if (ndr_flags
& NDR_BUFFERS
) {
7729 if (r
->printername
) {
7730 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7731 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
7732 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
7733 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
7734 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
7735 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->printername
), ndr_get_array_length(ndr
, &r
->printername
));
7737 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
7738 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
7739 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
7742 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7743 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
7744 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
7745 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
7746 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
7747 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->portname
), ndr_get_array_length(ndr
, &r
->portname
));
7749 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
7750 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
7751 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
7754 return NDR_ERR_SUCCESS
;
7757 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo5
*r
)
7759 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo5");
7761 ndr_print_ptr(ndr
, "printername", r
->printername
);
7763 if (r
->printername
) {
7764 ndr_print_string(ndr
, "printername", r
->printername
);
7767 ndr_print_ptr(ndr
, "portname", r
->portname
);
7770 ndr_print_string(ndr
, "portname", r
->portname
);
7773 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7774 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
7775 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
7779 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo6
*r
)
7781 if (ndr_flags
& NDR_SCALARS
) {
7782 NDR_CHECK(ndr_push_align(ndr
, 4));
7783 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
7784 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7786 if (ndr_flags
& NDR_BUFFERS
) {
7788 return NDR_ERR_SUCCESS
;
7791 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo6
*r
)
7793 if (ndr_flags
& NDR_SCALARS
) {
7794 NDR_CHECK(ndr_pull_align(ndr
, 4));
7795 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
7796 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7798 if (ndr_flags
& NDR_BUFFERS
) {
7800 return NDR_ERR_SUCCESS
;
7803 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo6
*r
)
7805 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo6");
7807 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
7811 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo7
*r
)
7813 if (ndr_flags
& NDR_SCALARS
) {
7814 NDR_CHECK(ndr_push_align(ndr
, 5));
7815 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->guid
));
7816 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
7817 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7819 if (ndr_flags
& NDR_BUFFERS
) {
7821 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
7822 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7823 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
7824 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->guid
, ndr_charset_length(r
->guid
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7827 return NDR_ERR_SUCCESS
;
7830 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo7
*r
)
7833 TALLOC_CTX
*_mem_save_guid_0
;
7834 if (ndr_flags
& NDR_SCALARS
) {
7835 NDR_CHECK(ndr_pull_align(ndr
, 5));
7836 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
7838 NDR_PULL_ALLOC(ndr
, r
->guid
);
7842 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
7843 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7845 if (ndr_flags
& NDR_BUFFERS
) {
7847 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7848 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
7849 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->guid
));
7850 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->guid
));
7851 if (ndr_get_array_length(ndr
, &r
->guid
) > ndr_get_array_size(ndr
, &r
->guid
)) {
7852 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->guid
), ndr_get_array_length(ndr
, &r
->guid
));
7854 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t)));
7855 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->guid
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t), CH_UTF16
));
7856 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
7859 return NDR_ERR_SUCCESS
;
7862 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo7
*r
)
7864 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo7");
7866 ndr_print_ptr(ndr
, "guid", r
->guid
);
7869 ndr_print_string(ndr
, "guid", r
->guid
);
7872 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
7876 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo8
*r
)
7878 if (ndr_flags
& NDR_SCALARS
) {
7879 NDR_CHECK(ndr_push_align(ndr
, 4));
7880 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->devmode_ptr
));
7881 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7883 if (ndr_flags
& NDR_BUFFERS
) {
7885 return NDR_ERR_SUCCESS
;
7888 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo8
*r
)
7890 if (ndr_flags
& NDR_SCALARS
) {
7891 NDR_CHECK(ndr_pull_align(ndr
, 4));
7892 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->devmode_ptr
));
7893 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7895 if (ndr_flags
& NDR_BUFFERS
) {
7897 return NDR_ERR_SUCCESS
;
7900 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo8
*r
)
7902 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo8");
7904 ndr_print_uint32(ndr
, "devmode_ptr", r
->devmode_ptr
);
7908 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo9(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo9
*r
)
7910 if (ndr_flags
& NDR_SCALARS
) {
7911 NDR_CHECK(ndr_push_align(ndr
, 4));
7912 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->devmode_ptr
));
7913 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7915 if (ndr_flags
& NDR_BUFFERS
) {
7917 return NDR_ERR_SUCCESS
;
7920 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo9(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo9
*r
)
7922 if (ndr_flags
& NDR_SCALARS
) {
7923 NDR_CHECK(ndr_pull_align(ndr
, 4));
7924 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->devmode_ptr
));
7925 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7927 if (ndr_flags
& NDR_BUFFERS
) {
7929 return NDR_ERR_SUCCESS
;
7932 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo9(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo9
*r
)
7934 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo9");
7936 ndr_print_uint32(ndr
, "devmode_ptr", r
->devmode_ptr
);
7940 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetPrinterInfo
*r
)
7942 if (ndr_flags
& NDR_SCALARS
) {
7943 int level
= ndr_push_get_switch_value(ndr
, r
);
7944 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7945 NDR_CHECK(ndr_push_union_align(ndr
, 5));
7948 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
7952 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
7956 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
7960 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
7964 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
7968 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info5
));
7972 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
7976 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info7
));
7980 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
7984 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info9
));
7992 if (ndr_flags
& NDR_BUFFERS
) {
7993 int level
= ndr_push_get_switch_value(ndr
, r
);
7997 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
8003 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
8009 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
8015 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
8021 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
8027 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
8033 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
8039 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
8045 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo8(ndr
, NDR_SCALARS
, r
->info8
));
8051 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo9(ndr
, NDR_SCALARS
, r
->info9
));
8060 return NDR_ERR_SUCCESS
;
8063 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetPrinterInfo
*r
)
8067 TALLOC_CTX
*_mem_save_info0_0
;
8068 TALLOC_CTX
*_mem_save_info1_0
;
8069 TALLOC_CTX
*_mem_save_info2_0
;
8070 TALLOC_CTX
*_mem_save_info3_0
;
8071 TALLOC_CTX
*_mem_save_info4_0
;
8072 TALLOC_CTX
*_mem_save_info5_0
;
8073 TALLOC_CTX
*_mem_save_info6_0
;
8074 TALLOC_CTX
*_mem_save_info7_0
;
8075 TALLOC_CTX
*_mem_save_info8_0
;
8076 TALLOC_CTX
*_mem_save_info9_0
;
8077 level
= ndr_pull_get_switch_value(ndr
, r
);
8078 if (ndr_flags
& NDR_SCALARS
) {
8079 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
8080 if (_level
!= level
) {
8081 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
8083 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
8086 uint32_t _ptr_info0
;
8087 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
8089 NDR_PULL_ALLOC(ndr
, r
->info0
);
8096 uint32_t _ptr_info1
;
8097 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
8099 NDR_PULL_ALLOC(ndr
, r
->info1
);
8106 uint32_t _ptr_info2
;
8107 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
8109 NDR_PULL_ALLOC(ndr
, r
->info2
);
8116 uint32_t _ptr_info3
;
8117 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
8119 NDR_PULL_ALLOC(ndr
, r
->info3
);
8126 uint32_t _ptr_info4
;
8127 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
8129 NDR_PULL_ALLOC(ndr
, r
->info4
);
8136 uint32_t _ptr_info5
;
8137 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info5
));
8139 NDR_PULL_ALLOC(ndr
, r
->info5
);
8146 uint32_t _ptr_info6
;
8147 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
8149 NDR_PULL_ALLOC(ndr
, r
->info6
);
8156 uint32_t _ptr_info7
;
8157 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info7
));
8159 NDR_PULL_ALLOC(ndr
, r
->info7
);
8166 uint32_t _ptr_info8
;
8167 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
8169 NDR_PULL_ALLOC(ndr
, r
->info8
);
8176 uint32_t _ptr_info9
;
8177 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info9
));
8179 NDR_PULL_ALLOC(ndr
, r
->info9
);
8190 if (ndr_flags
& NDR_BUFFERS
) {
8194 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8195 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
8196 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
8197 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
8203 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8204 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
8205 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
8206 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
8212 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8213 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
8214 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
8215 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
8221 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8222 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
8223 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
8224 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
8230 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8231 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
8232 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
8233 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
8239 _mem_save_info5_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8240 NDR_PULL_SET_MEM_CTX(ndr
, r
->info5
, 0);
8241 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
8242 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info5_0
, 0);
8248 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8249 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
8250 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
8251 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
8257 _mem_save_info7_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8258 NDR_PULL_SET_MEM_CTX(ndr
, r
->info7
, 0);
8259 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
8260 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info7_0
, 0);
8266 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8267 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
8268 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo8(ndr
, NDR_SCALARS
, r
->info8
));
8269 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
8275 _mem_save_info9_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8276 NDR_PULL_SET_MEM_CTX(ndr
, r
->info9
, 0);
8277 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo9(ndr
, NDR_SCALARS
, r
->info9
));
8278 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info9_0
, 0);
8287 return NDR_ERR_SUCCESS
;
8290 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetPrinterInfo
*r
)
8293 level
= ndr_print_get_switch_value(ndr
, r
);
8294 ndr_print_union(ndr
, name
, level
, "spoolss_SetPrinterInfo");
8297 ndr_print_ptr(ndr
, "info0", r
->info0
);
8300 ndr_print_spoolss_SetPrinterInfo0(ndr
, "info0", r
->info0
);
8306 ndr_print_ptr(ndr
, "info1", r
->info1
);
8309 ndr_print_spoolss_SetPrinterInfo1(ndr
, "info1", r
->info1
);
8315 ndr_print_ptr(ndr
, "info2", r
->info2
);
8318 ndr_print_spoolss_SetPrinterInfo2(ndr
, "info2", r
->info2
);
8324 ndr_print_ptr(ndr
, "info3", r
->info3
);
8327 ndr_print_spoolss_SetPrinterInfo3(ndr
, "info3", r
->info3
);
8333 ndr_print_ptr(ndr
, "info4", r
->info4
);
8336 ndr_print_spoolss_SetPrinterInfo4(ndr
, "info4", r
->info4
);
8342 ndr_print_ptr(ndr
, "info5", r
->info5
);
8345 ndr_print_spoolss_SetPrinterInfo5(ndr
, "info5", r
->info5
);
8351 ndr_print_ptr(ndr
, "info6", r
->info6
);
8354 ndr_print_spoolss_SetPrinterInfo6(ndr
, "info6", r
->info6
);
8360 ndr_print_ptr(ndr
, "info7", r
->info7
);
8363 ndr_print_spoolss_SetPrinterInfo7(ndr
, "info7", r
->info7
);
8369 ndr_print_ptr(ndr
, "info8", r
->info8
);
8372 ndr_print_spoolss_SetPrinterInfo8(ndr
, "info8", r
->info8
);
8378 ndr_print_ptr(ndr
, "info9", r
->info9
);
8381 ndr_print_spoolss_SetPrinterInfo9(ndr
, "info9", r
->info9
);
8392 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfoCtr
*r
)
8394 if (ndr_flags
& NDR_SCALARS
) {
8395 NDR_CHECK(ndr_push_align(ndr
, 5));
8396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
8397 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
8398 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
8399 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8401 if (ndr_flags
& NDR_BUFFERS
) {
8402 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
8404 return NDR_ERR_SUCCESS
;
8407 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfoCtr
*r
)
8409 if (ndr_flags
& NDR_SCALARS
) {
8410 NDR_CHECK(ndr_pull_align(ndr
, 5));
8411 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
8412 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
8413 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
8414 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8416 if (ndr_flags
& NDR_BUFFERS
) {
8417 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
8419 return NDR_ERR_SUCCESS
;
8422 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfoCtr
*r
)
8424 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfoCtr");
8426 ndr_print_uint32(ndr
, "level", r
->level
);
8427 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
8428 ndr_print_spoolss_SetPrinterInfo(ndr
, "info", &r
->info
);
8432 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_StringArray(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_StringArray
*r
)
8434 if (ndr_flags
& NDR_SCALARS
) {
8435 NDR_CHECK(ndr_push_align(ndr
, 4));
8436 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, (ndr_size_spoolss_StringArray(r
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2));
8438 uint32_t _flags_save_string_array
= ndr
->flags
;
8439 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8440 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string
));
8441 ndr
->flags
= _flags_save_string_array
;
8443 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
8445 if (ndr_flags
& NDR_BUFFERS
) {
8447 return NDR_ERR_SUCCESS
;
8450 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_StringArray(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_StringArray
*r
)
8452 if (ndr_flags
& NDR_SCALARS
) {
8453 NDR_CHECK(ndr_pull_align(ndr
, 4));
8454 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
8456 uint32_t _flags_save_string_array
= ndr
->flags
;
8457 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
8458 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string
));
8459 ndr
->flags
= _flags_save_string_array
;
8461 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
8463 if (ndr_flags
& NDR_BUFFERS
) {
8465 return NDR_ERR_SUCCESS
;
8468 _PUBLIC_
void ndr_print_spoolss_StringArray(struct ndr_print
*ndr
, const char *name
, const struct spoolss_StringArray
*r
)
8470 ndr_print_struct(ndr
, name
, "spoolss_StringArray");
8472 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
);
8473 ndr_print_string_array(ndr
, "string", r
->string
);
8477 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo1
*r
)
8479 if (ndr_flags
& NDR_SCALARS
) {
8480 NDR_CHECK(ndr_push_align(ndr
, 5));
8481 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8482 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8484 if (ndr_flags
& NDR_BUFFERS
) {
8485 if (r
->driver_name
) {
8486 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8487 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8488 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8489 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8492 return NDR_ERR_SUCCESS
;
8495 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo1
*r
)
8497 uint32_t _ptr_driver_name
;
8498 TALLOC_CTX
*_mem_save_driver_name_0
;
8499 if (ndr_flags
& NDR_SCALARS
) {
8500 NDR_CHECK(ndr_pull_align(ndr
, 5));
8501 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8502 if (_ptr_driver_name
) {
8503 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8505 r
->driver_name
= NULL
;
8507 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8509 if (ndr_flags
& NDR_BUFFERS
) {
8510 if (r
->driver_name
) {
8511 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8512 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8513 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8514 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8515 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8516 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
8518 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8519 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8520 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8523 return NDR_ERR_SUCCESS
;
8526 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo1
*r
)
8528 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo1");
8530 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8532 if (r
->driver_name
) {
8533 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8539 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverOSVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion r
)
8541 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
8542 return NDR_ERR_SUCCESS
;
8545 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverOSVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion
*r
)
8548 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
8550 return NDR_ERR_SUCCESS
;
8553 _PUBLIC_
void ndr_print_spoolss_DriverOSVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverOSVersion r
)
8555 const char *val
= NULL
;
8558 case SPOOLSS_DRIVER_VERSION_9X
: val
= "SPOOLSS_DRIVER_VERSION_9X"; break;
8559 case SPOOLSS_DRIVER_VERSION_NT35
: val
= "SPOOLSS_DRIVER_VERSION_NT35"; break;
8560 case SPOOLSS_DRIVER_VERSION_NT4
: val
= "SPOOLSS_DRIVER_VERSION_NT4"; break;
8561 case SPOOLSS_DRIVER_VERSION_200X
: val
= "SPOOLSS_DRIVER_VERSION_200X"; break;
8563 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
8566 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo2
*r
)
8568 if (ndr_flags
& NDR_SCALARS
) {
8569 NDR_CHECK(ndr_push_align(ndr
, 5));
8570 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8571 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8572 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8573 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8574 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8575 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8576 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8578 if (ndr_flags
& NDR_BUFFERS
) {
8579 if (r
->driver_name
) {
8580 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8581 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8582 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8583 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8585 if (r
->architecture
) {
8586 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8587 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8588 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8589 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8591 if (r
->driver_path
) {
8592 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8593 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8594 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8595 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8598 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8599 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8600 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8601 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8603 if (r
->config_file
) {
8604 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8605 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8606 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8607 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8610 return NDR_ERR_SUCCESS
;
8613 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo2
*r
)
8615 uint32_t _ptr_driver_name
;
8616 TALLOC_CTX
*_mem_save_driver_name_0
;
8617 uint32_t _ptr_architecture
;
8618 TALLOC_CTX
*_mem_save_architecture_0
;
8619 uint32_t _ptr_driver_path
;
8620 TALLOC_CTX
*_mem_save_driver_path_0
;
8621 uint32_t _ptr_data_file
;
8622 TALLOC_CTX
*_mem_save_data_file_0
;
8623 uint32_t _ptr_config_file
;
8624 TALLOC_CTX
*_mem_save_config_file_0
;
8625 if (ndr_flags
& NDR_SCALARS
) {
8626 NDR_CHECK(ndr_pull_align(ndr
, 5));
8627 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8628 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8629 if (_ptr_driver_name
) {
8630 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8632 r
->driver_name
= NULL
;
8634 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8635 if (_ptr_architecture
) {
8636 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8638 r
->architecture
= NULL
;
8640 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8641 if (_ptr_driver_path
) {
8642 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8644 r
->driver_path
= NULL
;
8646 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8647 if (_ptr_data_file
) {
8648 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8650 r
->data_file
= NULL
;
8652 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8653 if (_ptr_config_file
) {
8654 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8656 r
->config_file
= NULL
;
8658 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8660 if (ndr_flags
& NDR_BUFFERS
) {
8661 if (r
->driver_name
) {
8662 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8663 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8664 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8665 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8666 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8667 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
8669 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8670 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8671 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8673 if (r
->architecture
) {
8674 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8675 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8676 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8677 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8678 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8679 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->architecture
), ndr_get_array_length(ndr
, &r
->architecture
));
8681 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8682 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8685 if (r
->driver_path
) {
8686 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8687 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8688 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8689 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8690 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8691 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_path
), ndr_get_array_length(ndr
, &r
->driver_path
));
8693 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8694 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8698 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8699 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8700 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8701 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8702 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8703 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
8705 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8706 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8707 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8709 if (r
->config_file
) {
8710 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8711 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8712 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8713 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8714 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8715 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->config_file
), ndr_get_array_length(ndr
, &r
->config_file
));
8717 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8718 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8719 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8722 return NDR_ERR_SUCCESS
;
8725 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo2
*r
)
8727 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo2");
8729 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8730 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8732 if (r
->driver_name
) {
8733 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8736 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8738 if (r
->architecture
) {
8739 ndr_print_string(ndr
, "architecture", r
->architecture
);
8742 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8744 if (r
->driver_path
) {
8745 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8748 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8751 ndr_print_string(ndr
, "data_file", r
->data_file
);
8754 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8756 if (r
->config_file
) {
8757 ndr_print_string(ndr
, "config_file", r
->config_file
);
8763 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo3
*r
)
8765 if (ndr_flags
& NDR_SCALARS
) {
8766 NDR_CHECK(ndr_push_align(ndr
, 5));
8767 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8768 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8769 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8770 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8771 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8772 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8773 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8774 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8775 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8776 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8777 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8778 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8780 if (ndr_flags
& NDR_BUFFERS
) {
8781 if (r
->driver_name
) {
8782 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8783 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8784 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8785 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8787 if (r
->architecture
) {
8788 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8789 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8790 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8791 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8793 if (r
->driver_path
) {
8794 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8795 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8796 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8797 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8800 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8801 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8802 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8803 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8805 if (r
->config_file
) {
8806 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8807 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8808 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8809 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8812 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8813 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8814 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8815 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8817 if (r
->monitor_name
) {
8818 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8819 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8820 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8821 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8823 if (r
->default_datatype
) {
8824 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8825 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8826 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8827 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8829 if (r
->dependent_files
) {
8830 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8833 return NDR_ERR_SUCCESS
;
8836 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo3
*r
)
8838 uint32_t _ptr_driver_name
;
8839 TALLOC_CTX
*_mem_save_driver_name_0
;
8840 uint32_t _ptr_architecture
;
8841 TALLOC_CTX
*_mem_save_architecture_0
;
8842 uint32_t _ptr_driver_path
;
8843 TALLOC_CTX
*_mem_save_driver_path_0
;
8844 uint32_t _ptr_data_file
;
8845 TALLOC_CTX
*_mem_save_data_file_0
;
8846 uint32_t _ptr_config_file
;
8847 TALLOC_CTX
*_mem_save_config_file_0
;
8848 uint32_t _ptr_help_file
;
8849 TALLOC_CTX
*_mem_save_help_file_0
;
8850 uint32_t _ptr_monitor_name
;
8851 TALLOC_CTX
*_mem_save_monitor_name_0
;
8852 uint32_t _ptr_default_datatype
;
8853 TALLOC_CTX
*_mem_save_default_datatype_0
;
8854 uint32_t _ptr_dependent_files
;
8855 TALLOC_CTX
*_mem_save_dependent_files_0
;
8856 if (ndr_flags
& NDR_SCALARS
) {
8857 NDR_CHECK(ndr_pull_align(ndr
, 5));
8858 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8859 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8860 if (_ptr_driver_name
) {
8861 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8863 r
->driver_name
= NULL
;
8865 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8866 if (_ptr_architecture
) {
8867 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8869 r
->architecture
= NULL
;
8871 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8872 if (_ptr_driver_path
) {
8873 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8875 r
->driver_path
= NULL
;
8877 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8878 if (_ptr_data_file
) {
8879 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8881 r
->data_file
= NULL
;
8883 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8884 if (_ptr_config_file
) {
8885 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8887 r
->config_file
= NULL
;
8889 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8890 if (_ptr_help_file
) {
8891 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8893 r
->help_file
= NULL
;
8895 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8896 if (_ptr_monitor_name
) {
8897 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8899 r
->monitor_name
= NULL
;
8901 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8902 if (_ptr_default_datatype
) {
8903 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8905 r
->default_datatype
= NULL
;
8907 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8908 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8909 if (_ptr_dependent_files
) {
8910 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8912 r
->dependent_files
= NULL
;
8914 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8916 if (ndr_flags
& NDR_BUFFERS
) {
8917 if (r
->driver_name
) {
8918 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8919 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8920 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8921 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8922 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8923 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
8925 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8926 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8927 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8929 if (r
->architecture
) {
8930 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8931 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8932 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8933 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8934 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8935 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->architecture
), ndr_get_array_length(ndr
, &r
->architecture
));
8937 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8938 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8939 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8941 if (r
->driver_path
) {
8942 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8943 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8944 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8945 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8946 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8947 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_path
), ndr_get_array_length(ndr
, &r
->driver_path
));
8949 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8950 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8951 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8954 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8955 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8956 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8957 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8958 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8959 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
8961 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8962 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8963 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8965 if (r
->config_file
) {
8966 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8967 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8968 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8969 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8970 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8971 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->config_file
), ndr_get_array_length(ndr
, &r
->config_file
));
8973 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8974 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8975 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8978 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8979 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8980 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8981 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8982 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
8983 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->help_file
), ndr_get_array_length(ndr
, &r
->help_file
));
8985 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
8986 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
8987 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8989 if (r
->monitor_name
) {
8990 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8991 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8992 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8993 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8994 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
8995 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->monitor_name
), ndr_get_array_length(ndr
, &r
->monitor_name
));
8997 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
8998 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
8999 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9001 if (r
->default_datatype
) {
9002 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9003 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9004 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9005 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9006 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
9007 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->default_datatype
), ndr_get_array_length(ndr
, &r
->default_datatype
));
9009 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
9010 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
9011 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9013 if (r
->dependent_files
) {
9014 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9015 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9016 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9017 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9020 return NDR_ERR_SUCCESS
;
9023 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo3
*r
)
9025 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo3");
9027 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9028 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9030 if (r
->driver_name
) {
9031 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9034 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9036 if (r
->architecture
) {
9037 ndr_print_string(ndr
, "architecture", r
->architecture
);
9040 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9042 if (r
->driver_path
) {
9043 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9046 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9049 ndr_print_string(ndr
, "data_file", r
->data_file
);
9052 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9054 if (r
->config_file
) {
9055 ndr_print_string(ndr
, "config_file", r
->config_file
);
9058 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9061 ndr_print_string(ndr
, "help_file", r
->help_file
);
9064 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9066 if (r
->monitor_name
) {
9067 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9070 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9072 if (r
->default_datatype
) {
9073 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9076 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
);
9077 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9079 if (r
->dependent_files
) {
9080 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9086 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo4
*r
)
9088 if (ndr_flags
& NDR_SCALARS
) {
9089 NDR_CHECK(ndr_push_align(ndr
, 5));
9090 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9091 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
9092 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
9093 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
9094 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
9095 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
9096 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
9097 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
9098 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
9099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9100 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
9101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9102 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
9103 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
9105 if (ndr_flags
& NDR_BUFFERS
) {
9106 if (r
->driver_name
) {
9107 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9108 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9109 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9110 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9112 if (r
->architecture
) {
9113 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9114 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9115 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9116 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9118 if (r
->driver_path
) {
9119 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9120 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9121 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9122 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9125 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9126 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9127 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9128 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9130 if (r
->config_file
) {
9131 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9132 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9133 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9134 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9137 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9138 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9139 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9140 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9142 if (r
->monitor_name
) {
9143 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9144 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9145 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9146 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9148 if (r
->default_datatype
) {
9149 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9150 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9151 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9152 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9154 if (r
->dependent_files
) {
9155 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9157 if (r
->previous_names
) {
9158 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9161 return NDR_ERR_SUCCESS
;
9164 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo4
*r
)
9166 uint32_t _ptr_driver_name
;
9167 TALLOC_CTX
*_mem_save_driver_name_0
;
9168 uint32_t _ptr_architecture
;
9169 TALLOC_CTX
*_mem_save_architecture_0
;
9170 uint32_t _ptr_driver_path
;
9171 TALLOC_CTX
*_mem_save_driver_path_0
;
9172 uint32_t _ptr_data_file
;
9173 TALLOC_CTX
*_mem_save_data_file_0
;
9174 uint32_t _ptr_config_file
;
9175 TALLOC_CTX
*_mem_save_config_file_0
;
9176 uint32_t _ptr_help_file
;
9177 TALLOC_CTX
*_mem_save_help_file_0
;
9178 uint32_t _ptr_monitor_name
;
9179 TALLOC_CTX
*_mem_save_monitor_name_0
;
9180 uint32_t _ptr_default_datatype
;
9181 TALLOC_CTX
*_mem_save_default_datatype_0
;
9182 uint32_t _ptr_dependent_files
;
9183 TALLOC_CTX
*_mem_save_dependent_files_0
;
9184 uint32_t _ptr_previous_names
;
9185 TALLOC_CTX
*_mem_save_previous_names_0
;
9186 if (ndr_flags
& NDR_SCALARS
) {
9187 NDR_CHECK(ndr_pull_align(ndr
, 5));
9188 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9189 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9190 if (_ptr_driver_name
) {
9191 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9193 r
->driver_name
= NULL
;
9195 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9196 if (_ptr_architecture
) {
9197 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9199 r
->architecture
= NULL
;
9201 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9202 if (_ptr_driver_path
) {
9203 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9205 r
->driver_path
= NULL
;
9207 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9208 if (_ptr_data_file
) {
9209 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9211 r
->data_file
= NULL
;
9213 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9214 if (_ptr_config_file
) {
9215 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9217 r
->config_file
= NULL
;
9219 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9220 if (_ptr_help_file
) {
9221 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9223 r
->help_file
= NULL
;
9225 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9226 if (_ptr_monitor_name
) {
9227 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9229 r
->monitor_name
= NULL
;
9231 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9232 if (_ptr_default_datatype
) {
9233 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9235 r
->default_datatype
= NULL
;
9237 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9238 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9239 if (_ptr_dependent_files
) {
9240 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9242 r
->dependent_files
= NULL
;
9244 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9245 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9246 if (_ptr_previous_names
) {
9247 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9249 r
->previous_names
= NULL
;
9251 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
9253 if (ndr_flags
& NDR_BUFFERS
) {
9254 if (r
->driver_name
) {
9255 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9256 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9257 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9258 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9259 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
9260 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
9262 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
9263 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
9264 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9266 if (r
->architecture
) {
9267 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9268 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9269 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9270 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9271 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
9272 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->architecture
), ndr_get_array_length(ndr
, &r
->architecture
));
9274 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
9275 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
9276 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9278 if (r
->driver_path
) {
9279 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9280 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9281 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9282 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9283 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
9284 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_path
), ndr_get_array_length(ndr
, &r
->driver_path
));
9286 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
9287 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
9288 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9291 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9292 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9293 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9294 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9295 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
9296 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
9298 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
9299 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
9300 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9302 if (r
->config_file
) {
9303 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9304 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9305 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9306 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9307 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
9308 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->config_file
), ndr_get_array_length(ndr
, &r
->config_file
));
9310 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
9311 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
9312 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9315 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9316 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9317 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9318 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9319 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
9320 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->help_file
), ndr_get_array_length(ndr
, &r
->help_file
));
9322 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
9323 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
9324 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9326 if (r
->monitor_name
) {
9327 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9328 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9329 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9330 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9331 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
9332 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->monitor_name
), ndr_get_array_length(ndr
, &r
->monitor_name
));
9334 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
9335 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
9336 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9338 if (r
->default_datatype
) {
9339 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9340 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9341 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9342 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9343 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
9344 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->default_datatype
), ndr_get_array_length(ndr
, &r
->default_datatype
));
9346 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
9347 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
9348 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9350 if (r
->dependent_files
) {
9351 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9352 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9353 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9354 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9356 if (r
->previous_names
) {
9357 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9358 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9359 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9360 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9363 return NDR_ERR_SUCCESS
;
9366 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo4
*r
)
9368 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo4");
9370 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9371 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9373 if (r
->driver_name
) {
9374 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9377 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9379 if (r
->architecture
) {
9380 ndr_print_string(ndr
, "architecture", r
->architecture
);
9383 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9385 if (r
->driver_path
) {
9386 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9389 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9392 ndr_print_string(ndr
, "data_file", r
->data_file
);
9395 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9397 if (r
->config_file
) {
9398 ndr_print_string(ndr
, "config_file", r
->config_file
);
9401 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9404 ndr_print_string(ndr
, "help_file", r
->help_file
);
9407 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9409 if (r
->monitor_name
) {
9410 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9413 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9415 if (r
->default_datatype
) {
9416 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9419 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
);
9420 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9422 if (r
->dependent_files
) {
9423 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9426 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
);
9427 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
9429 if (r
->previous_names
) {
9430 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
9436 static enum ndr_err_code
ndr_push_spoolss_DriverAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
9438 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
9439 return NDR_ERR_SUCCESS
;
9442 static enum ndr_err_code
ndr_pull_spoolss_DriverAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
9445 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
9447 return NDR_ERR_SUCCESS
;
9450 _PUBLIC_
void ndr_print_spoolss_DriverAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
9452 ndr_print_uint32(ndr
, name
, r
);
9454 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE
, r
);
9458 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo6
*r
)
9460 if (ndr_flags
& NDR_SCALARS
) {
9461 NDR_CHECK(ndr_push_align(ndr
, 8));
9462 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9463 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
9464 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
9465 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
9466 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
9467 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
9468 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
9469 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
9470 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
9471 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9472 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
9473 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9474 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
9475 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
9476 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
9477 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
9478 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
9479 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
9480 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
9481 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
9483 if (ndr_flags
& NDR_BUFFERS
) {
9484 if (r
->driver_name
) {
9485 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9486 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9487 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9488 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9490 if (r
->architecture
) {
9491 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9492 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9493 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9494 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9496 if (r
->driver_path
) {
9497 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9498 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9499 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9500 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9503 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9504 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9505 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9506 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9508 if (r
->config_file
) {
9509 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9510 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9511 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9512 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9515 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9516 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9517 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9518 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9520 if (r
->monitor_name
) {
9521 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9522 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9523 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9524 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9526 if (r
->default_datatype
) {
9527 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9528 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9529 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9530 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9532 if (r
->dependent_files
) {
9533 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9535 if (r
->previous_names
) {
9536 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9538 if (r
->manufacturer_name
) {
9539 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9540 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9541 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9542 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9544 if (r
->manufacturer_url
) {
9545 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9546 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9547 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9548 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9550 if (r
->hardware_id
) {
9551 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9552 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9553 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9554 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9557 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9558 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9559 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9560 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9563 return NDR_ERR_SUCCESS
;
9566 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo6
*r
)
9568 uint32_t _ptr_driver_name
;
9569 TALLOC_CTX
*_mem_save_driver_name_0
;
9570 uint32_t _ptr_architecture
;
9571 TALLOC_CTX
*_mem_save_architecture_0
;
9572 uint32_t _ptr_driver_path
;
9573 TALLOC_CTX
*_mem_save_driver_path_0
;
9574 uint32_t _ptr_data_file
;
9575 TALLOC_CTX
*_mem_save_data_file_0
;
9576 uint32_t _ptr_config_file
;
9577 TALLOC_CTX
*_mem_save_config_file_0
;
9578 uint32_t _ptr_help_file
;
9579 TALLOC_CTX
*_mem_save_help_file_0
;
9580 uint32_t _ptr_monitor_name
;
9581 TALLOC_CTX
*_mem_save_monitor_name_0
;
9582 uint32_t _ptr_default_datatype
;
9583 TALLOC_CTX
*_mem_save_default_datatype_0
;
9584 uint32_t _ptr_dependent_files
;
9585 TALLOC_CTX
*_mem_save_dependent_files_0
;
9586 uint32_t _ptr_previous_names
;
9587 TALLOC_CTX
*_mem_save_previous_names_0
;
9588 uint32_t _ptr_manufacturer_name
;
9589 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
9590 uint32_t _ptr_manufacturer_url
;
9591 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
9592 uint32_t _ptr_hardware_id
;
9593 TALLOC_CTX
*_mem_save_hardware_id_0
;
9594 uint32_t _ptr_provider
;
9595 TALLOC_CTX
*_mem_save_provider_0
;
9596 if (ndr_flags
& NDR_SCALARS
) {
9597 NDR_CHECK(ndr_pull_align(ndr
, 8));
9598 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9599 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9600 if (_ptr_driver_name
) {
9601 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9603 r
->driver_name
= NULL
;
9605 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9606 if (_ptr_architecture
) {
9607 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9609 r
->architecture
= NULL
;
9611 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9612 if (_ptr_driver_path
) {
9613 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9615 r
->driver_path
= NULL
;
9617 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9618 if (_ptr_data_file
) {
9619 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9621 r
->data_file
= NULL
;
9623 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9624 if (_ptr_config_file
) {
9625 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9627 r
->config_file
= NULL
;
9629 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9630 if (_ptr_help_file
) {
9631 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9633 r
->help_file
= NULL
;
9635 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9636 if (_ptr_monitor_name
) {
9637 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9639 r
->monitor_name
= NULL
;
9641 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9642 if (_ptr_default_datatype
) {
9643 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9645 r
->default_datatype
= NULL
;
9647 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9648 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9649 if (_ptr_dependent_files
) {
9650 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9652 r
->dependent_files
= NULL
;
9654 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9655 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9656 if (_ptr_previous_names
) {
9657 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9659 r
->previous_names
= NULL
;
9661 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
9662 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
9663 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
9664 if (_ptr_manufacturer_name
) {
9665 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
9667 r
->manufacturer_name
= NULL
;
9669 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
9670 if (_ptr_manufacturer_url
) {
9671 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
9673 r
->manufacturer_url
= NULL
;
9675 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
9676 if (_ptr_hardware_id
) {
9677 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
9679 r
->hardware_id
= NULL
;
9681 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
9682 if (_ptr_provider
) {
9683 NDR_PULL_ALLOC(ndr
, r
->provider
);
9687 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
9689 if (ndr_flags
& NDR_BUFFERS
) {
9690 if (r
->driver_name
) {
9691 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9692 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9693 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9694 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9695 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
9696 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
9698 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
9699 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
9700 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9702 if (r
->architecture
) {
9703 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9704 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9705 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9706 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9707 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
9708 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->architecture
), ndr_get_array_length(ndr
, &r
->architecture
));
9710 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
9711 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
9712 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9714 if (r
->driver_path
) {
9715 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9716 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9717 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9718 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9719 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
9720 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_path
), ndr_get_array_length(ndr
, &r
->driver_path
));
9722 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
9723 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
9724 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9727 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9728 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9729 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9730 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9731 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
9732 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
9734 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
9735 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
9736 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9738 if (r
->config_file
) {
9739 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9740 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9741 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9742 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9743 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
9744 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->config_file
), ndr_get_array_length(ndr
, &r
->config_file
));
9746 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
9747 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
9748 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9751 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9752 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9753 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9754 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9755 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
9756 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->help_file
), ndr_get_array_length(ndr
, &r
->help_file
));
9758 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
9759 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
9760 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9762 if (r
->monitor_name
) {
9763 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9764 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9765 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9766 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9767 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
9768 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->monitor_name
), ndr_get_array_length(ndr
, &r
->monitor_name
));
9770 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
9771 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
9772 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9774 if (r
->default_datatype
) {
9775 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9776 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9777 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9778 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9779 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
9780 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->default_datatype
), ndr_get_array_length(ndr
, &r
->default_datatype
));
9782 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
9783 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
9784 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9786 if (r
->dependent_files
) {
9787 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9788 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9789 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9790 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9792 if (r
->previous_names
) {
9793 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9794 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9795 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9796 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9798 if (r
->manufacturer_name
) {
9799 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9800 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
9801 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
9802 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
9803 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
9804 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->manufacturer_name
), ndr_get_array_length(ndr
, &r
->manufacturer_name
));
9806 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
9807 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
9808 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
9810 if (r
->manufacturer_url
) {
9811 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9812 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
9813 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
9814 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
9815 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
9816 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->manufacturer_url
), ndr_get_array_length(ndr
, &r
->manufacturer_url
));
9818 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
9819 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
9820 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
9822 if (r
->hardware_id
) {
9823 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9824 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
9825 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
9826 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
9827 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
9828 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->hardware_id
), ndr_get_array_length(ndr
, &r
->hardware_id
));
9830 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
9831 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
9832 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
9835 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9836 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
9837 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
9838 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
9839 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
9840 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->provider
), ndr_get_array_length(ndr
, &r
->provider
));
9842 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
9843 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
9844 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
9847 return NDR_ERR_SUCCESS
;
9850 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo6
*r
)
9852 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo6");
9854 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9855 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9857 if (r
->driver_name
) {
9858 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9861 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9863 if (r
->architecture
) {
9864 ndr_print_string(ndr
, "architecture", r
->architecture
);
9867 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9869 if (r
->driver_path
) {
9870 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9873 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9876 ndr_print_string(ndr
, "data_file", r
->data_file
);
9879 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9881 if (r
->config_file
) {
9882 ndr_print_string(ndr
, "config_file", r
->config_file
);
9885 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9888 ndr_print_string(ndr
, "help_file", r
->help_file
);
9891 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9893 if (r
->monitor_name
) {
9894 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9897 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9899 if (r
->default_datatype
) {
9900 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9903 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
);
9904 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9906 if (r
->dependent_files
) {
9907 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9910 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
);
9911 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
9913 if (r
->previous_names
) {
9914 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
9917 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
9918 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
9919 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
9921 if (r
->manufacturer_name
) {
9922 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
9925 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
9927 if (r
->manufacturer_url
) {
9928 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
9931 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
9933 if (r
->hardware_id
) {
9934 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
9937 ndr_print_ptr(ndr
, "provider", r
->provider
);
9940 ndr_print_string(ndr
, "provider", r
->provider
);
9946 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo8
*r
)
9948 if (ndr_flags
& NDR_SCALARS
) {
9949 NDR_CHECK(ndr_push_align(ndr
, 8));
9950 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9951 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
9952 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
9953 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
9954 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
9955 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
9956 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
9957 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
9958 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
9959 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9960 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
9961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9962 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
9963 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
9964 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
9965 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
9966 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
9967 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
9968 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
9969 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
9970 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->vendor_setup
));
9971 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->color_profiles
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9972 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->color_profiles
));
9973 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->inf_path
));
9974 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
9975 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->core_driver_dependencies
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9976 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->core_driver_dependencies
));
9977 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
9978 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
9979 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
9981 if (ndr_flags
& NDR_BUFFERS
) {
9982 if (r
->driver_name
) {
9983 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9984 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9985 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9986 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9988 if (r
->architecture
) {
9989 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9990 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9991 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9992 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9994 if (r
->driver_path
) {
9995 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9996 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9997 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9998 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10000 if (r
->data_file
) {
10001 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
10002 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10003 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
10004 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10006 if (r
->config_file
) {
10007 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
10008 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10009 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
10010 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10012 if (r
->help_file
) {
10013 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
10014 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10015 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
10016 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10018 if (r
->monitor_name
) {
10019 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
10020 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10021 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
10022 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10024 if (r
->default_datatype
) {
10025 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
10026 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10027 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
10028 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10030 if (r
->dependent_files
) {
10031 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
10033 if (r
->previous_names
) {
10034 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
10036 if (r
->manufacturer_name
) {
10037 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
10038 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10039 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
10040 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10042 if (r
->manufacturer_url
) {
10043 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
10044 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10045 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
10046 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10048 if (r
->hardware_id
) {
10049 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
10050 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10051 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
10052 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10055 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
10056 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10057 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
10058 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10060 if (r
->print_processor
) {
10061 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
10062 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10063 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
10064 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10066 if (r
->vendor_setup
) {
10067 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
10068 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10069 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
10070 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->vendor_setup
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10072 if (r
->color_profiles
) {
10073 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
10076 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
10077 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
10078 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
10079 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->inf_path
, ndr_charset_length(r
->inf_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
10081 if (r
->core_driver_dependencies
) {
10082 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
10085 return NDR_ERR_SUCCESS
;
10088 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo8
*r
)
10090 uint32_t _ptr_driver_name
;
10091 TALLOC_CTX
*_mem_save_driver_name_0
;
10092 uint32_t _ptr_architecture
;
10093 TALLOC_CTX
*_mem_save_architecture_0
;
10094 uint32_t _ptr_driver_path
;
10095 TALLOC_CTX
*_mem_save_driver_path_0
;
10096 uint32_t _ptr_data_file
;
10097 TALLOC_CTX
*_mem_save_data_file_0
;
10098 uint32_t _ptr_config_file
;
10099 TALLOC_CTX
*_mem_save_config_file_0
;
10100 uint32_t _ptr_help_file
;
10101 TALLOC_CTX
*_mem_save_help_file_0
;
10102 uint32_t _ptr_monitor_name
;
10103 TALLOC_CTX
*_mem_save_monitor_name_0
;
10104 uint32_t _ptr_default_datatype
;
10105 TALLOC_CTX
*_mem_save_default_datatype_0
;
10106 uint32_t _ptr_dependent_files
;
10107 TALLOC_CTX
*_mem_save_dependent_files_0
;
10108 uint32_t _ptr_previous_names
;
10109 TALLOC_CTX
*_mem_save_previous_names_0
;
10110 uint32_t _ptr_manufacturer_name
;
10111 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
10112 uint32_t _ptr_manufacturer_url
;
10113 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
10114 uint32_t _ptr_hardware_id
;
10115 TALLOC_CTX
*_mem_save_hardware_id_0
;
10116 uint32_t _ptr_provider
;
10117 TALLOC_CTX
*_mem_save_provider_0
;
10118 uint32_t _ptr_print_processor
;
10119 TALLOC_CTX
*_mem_save_print_processor_0
;
10120 uint32_t _ptr_vendor_setup
;
10121 TALLOC_CTX
*_mem_save_vendor_setup_0
;
10122 uint32_t _ptr_color_profiles
;
10123 TALLOC_CTX
*_mem_save_color_profiles_0
;
10124 uint32_t _ptr_inf_path
;
10125 TALLOC_CTX
*_mem_save_inf_path_0
;
10126 uint32_t _ptr_core_driver_dependencies
;
10127 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
10128 if (ndr_flags
& NDR_SCALARS
) {
10129 NDR_CHECK(ndr_pull_align(ndr
, 8));
10130 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10131 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10132 if (_ptr_driver_name
) {
10133 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10135 r
->driver_name
= NULL
;
10137 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10138 if (_ptr_architecture
) {
10139 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10141 r
->architecture
= NULL
;
10143 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10144 if (_ptr_driver_path
) {
10145 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10147 r
->driver_path
= NULL
;
10149 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10150 if (_ptr_data_file
) {
10151 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10153 r
->data_file
= NULL
;
10155 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10156 if (_ptr_config_file
) {
10157 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10159 r
->config_file
= NULL
;
10161 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
10162 if (_ptr_help_file
) {
10163 NDR_PULL_ALLOC(ndr
, r
->help_file
);
10165 r
->help_file
= NULL
;
10167 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
10168 if (_ptr_monitor_name
) {
10169 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
10171 r
->monitor_name
= NULL
;
10173 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
10174 if (_ptr_default_datatype
) {
10175 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
10177 r
->default_datatype
= NULL
;
10179 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
10180 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
10181 if (_ptr_dependent_files
) {
10182 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
10184 r
->dependent_files
= NULL
;
10186 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
10187 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
10188 if (_ptr_previous_names
) {
10189 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
10191 r
->previous_names
= NULL
;
10193 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
10194 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
10195 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
10196 if (_ptr_manufacturer_name
) {
10197 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
10199 r
->manufacturer_name
= NULL
;
10201 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
10202 if (_ptr_manufacturer_url
) {
10203 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
10205 r
->manufacturer_url
= NULL
;
10207 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
10208 if (_ptr_hardware_id
) {
10209 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
10211 r
->hardware_id
= NULL
;
10213 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
10214 if (_ptr_provider
) {
10215 NDR_PULL_ALLOC(ndr
, r
->provider
);
10217 r
->provider
= NULL
;
10219 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
10220 if (_ptr_print_processor
) {
10221 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
10223 r
->print_processor
= NULL
;
10225 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
10226 if (_ptr_vendor_setup
) {
10227 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
10229 r
->vendor_setup
= NULL
;
10231 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_color_profiles
));
10232 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
10233 if (_ptr_color_profiles
) {
10234 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
10236 r
->color_profiles
= NULL
;
10238 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
10239 if (_ptr_inf_path
) {
10240 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
10242 r
->inf_path
= NULL
;
10244 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
10245 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_core_driver_dependencies
));
10246 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
10247 if (_ptr_core_driver_dependencies
) {
10248 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
10250 r
->core_driver_dependencies
= NULL
;
10252 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
10253 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
10254 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
10256 if (ndr_flags
& NDR_BUFFERS
) {
10257 if (r
->driver_name
) {
10258 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10259 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10260 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
10261 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
10262 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
10263 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
10265 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
10266 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
10267 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10269 if (r
->architecture
) {
10270 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10271 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10272 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
10273 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
10274 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
10275 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->architecture
), ndr_get_array_length(ndr
, &r
->architecture
));
10277 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
10278 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
10279 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10281 if (r
->driver_path
) {
10282 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10283 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10284 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
10285 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
10286 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
10287 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_path
), ndr_get_array_length(ndr
, &r
->driver_path
));
10289 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
10290 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
10291 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10293 if (r
->data_file
) {
10294 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10295 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10296 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
10297 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
10298 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
10299 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
10301 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
10302 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
10303 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10305 if (r
->config_file
) {
10306 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10307 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10308 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
10309 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
10310 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
10311 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->config_file
), ndr_get_array_length(ndr
, &r
->config_file
));
10313 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
10314 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
10315 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10317 if (r
->help_file
) {
10318 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10319 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
10320 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
10321 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
10322 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
10323 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->help_file
), ndr_get_array_length(ndr
, &r
->help_file
));
10325 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
10326 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
10327 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
10329 if (r
->monitor_name
) {
10330 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10331 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
10332 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
10333 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
10334 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
10335 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->monitor_name
), ndr_get_array_length(ndr
, &r
->monitor_name
));
10337 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
10338 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
10339 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
10341 if (r
->default_datatype
) {
10342 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10343 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
10344 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
10345 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
10346 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
10347 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->default_datatype
), ndr_get_array_length(ndr
, &r
->default_datatype
));
10349 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
10350 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
10351 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
10353 if (r
->dependent_files
) {
10354 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10355 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
10356 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
10357 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
10359 if (r
->previous_names
) {
10360 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10361 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
10362 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
10363 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
10365 if (r
->manufacturer_name
) {
10366 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10367 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
10368 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
10369 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
10370 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
10371 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->manufacturer_name
), ndr_get_array_length(ndr
, &r
->manufacturer_name
));
10373 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
10374 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
10375 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
10377 if (r
->manufacturer_url
) {
10378 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10379 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
10380 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
10381 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
10382 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
10383 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->manufacturer_url
), ndr_get_array_length(ndr
, &r
->manufacturer_url
));
10385 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
10386 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
10387 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
10389 if (r
->hardware_id
) {
10390 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10391 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
10392 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
10393 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
10394 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
10395 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->hardware_id
), ndr_get_array_length(ndr
, &r
->hardware_id
));
10397 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
10398 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
10399 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
10402 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10403 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
10404 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
10405 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
10406 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
10407 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->provider
), ndr_get_array_length(ndr
, &r
->provider
));
10409 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
10410 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
10411 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
10413 if (r
->print_processor
) {
10414 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10415 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
10416 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
10417 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
10418 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
10419 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->print_processor
), ndr_get_array_length(ndr
, &r
->print_processor
));
10421 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
10422 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
10423 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
10425 if (r
->vendor_setup
) {
10426 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10427 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
10428 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->vendor_setup
));
10429 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->vendor_setup
));
10430 if (ndr_get_array_length(ndr
, &r
->vendor_setup
) > ndr_get_array_size(ndr
, &r
->vendor_setup
)) {
10431 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->vendor_setup
), ndr_get_array_length(ndr
, &r
->vendor_setup
));
10433 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t)));
10434 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->vendor_setup
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t), CH_UTF16
));
10435 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
10437 if (r
->color_profiles
) {
10438 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10439 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
10440 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
10441 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
10444 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10445 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
10446 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->inf_path
));
10447 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->inf_path
));
10448 if (ndr_get_array_length(ndr
, &r
->inf_path
) > ndr_get_array_size(ndr
, &r
->inf_path
)) {
10449 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->inf_path
), ndr_get_array_length(ndr
, &r
->inf_path
));
10451 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t)));
10452 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->inf_path
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t), CH_UTF16
));
10453 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
10455 if (r
->core_driver_dependencies
) {
10456 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10457 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
10458 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
10459 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
10462 return NDR_ERR_SUCCESS
;
10465 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo8
*r
)
10467 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo8");
10469 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10470 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10472 if (r
->driver_name
) {
10473 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10476 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10478 if (r
->architecture
) {
10479 ndr_print_string(ndr
, "architecture", r
->architecture
);
10482 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10484 if (r
->driver_path
) {
10485 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10488 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10490 if (r
->data_file
) {
10491 ndr_print_string(ndr
, "data_file", r
->data_file
);
10494 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10496 if (r
->config_file
) {
10497 ndr_print_string(ndr
, "config_file", r
->config_file
);
10500 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
10502 if (r
->help_file
) {
10503 ndr_print_string(ndr
, "help_file", r
->help_file
);
10506 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
10508 if (r
->monitor_name
) {
10509 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
10512 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
10514 if (r
->default_datatype
) {
10515 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
10518 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
);
10519 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
10521 if (r
->dependent_files
) {
10522 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
10525 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
);
10526 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
10528 if (r
->previous_names
) {
10529 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
10532 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
10533 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
10534 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
10536 if (r
->manufacturer_name
) {
10537 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
10540 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
10542 if (r
->manufacturer_url
) {
10543 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
10546 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
10548 if (r
->hardware_id
) {
10549 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
10552 ndr_print_ptr(ndr
, "provider", r
->provider
);
10555 ndr_print_string(ndr
, "provider", r
->provider
);
10558 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
10560 if (r
->print_processor
) {
10561 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
10564 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
10566 if (r
->vendor_setup
) {
10567 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
10570 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
);
10571 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
10573 if (r
->color_profiles
) {
10574 ndr_print_spoolss_StringArray(ndr
, "color_profiles", r
->color_profiles
);
10577 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
10580 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
10583 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
10584 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
);
10585 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
10587 if (r
->core_driver_dependencies
) {
10588 ndr_print_spoolss_StringArray(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
10591 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
10592 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
10596 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddDriverInfo
*r
)
10598 if (ndr_flags
& NDR_SCALARS
) {
10599 int level
= ndr_push_get_switch_value(ndr
, r
);
10600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
10601 NDR_CHECK(ndr_push_union_align(ndr
, 5));
10604 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
10608 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
10612 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
10616 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
10620 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
10624 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
10628 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10631 if (ndr_flags
& NDR_BUFFERS
) {
10632 int level
= ndr_push_get_switch_value(ndr
, r
);
10636 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
10642 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
10648 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
10654 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
10660 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
10666 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
10671 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10674 return NDR_ERR_SUCCESS
;
10677 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddDriverInfo
*r
)
10681 TALLOC_CTX
*_mem_save_info1_0
;
10682 TALLOC_CTX
*_mem_save_info2_0
;
10683 TALLOC_CTX
*_mem_save_info3_0
;
10684 TALLOC_CTX
*_mem_save_info4_0
;
10685 TALLOC_CTX
*_mem_save_info6_0
;
10686 TALLOC_CTX
*_mem_save_info8_0
;
10687 level
= ndr_pull_get_switch_value(ndr
, r
);
10688 if (ndr_flags
& NDR_SCALARS
) {
10689 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
10690 if (_level
!= level
) {
10691 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
10693 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
10696 uint32_t _ptr_info1
;
10697 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
10699 NDR_PULL_ALLOC(ndr
, r
->info1
);
10706 uint32_t _ptr_info2
;
10707 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
10709 NDR_PULL_ALLOC(ndr
, r
->info2
);
10716 uint32_t _ptr_info3
;
10717 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
10719 NDR_PULL_ALLOC(ndr
, r
->info3
);
10726 uint32_t _ptr_info4
;
10727 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
10729 NDR_PULL_ALLOC(ndr
, r
->info4
);
10736 uint32_t _ptr_info6
;
10737 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
10739 NDR_PULL_ALLOC(ndr
, r
->info6
);
10746 uint32_t _ptr_info8
;
10747 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
10749 NDR_PULL_ALLOC(ndr
, r
->info8
);
10756 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10759 if (ndr_flags
& NDR_BUFFERS
) {
10763 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10764 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
10765 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
10766 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
10772 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10773 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
10774 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
10775 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
10781 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10782 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
10783 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
10784 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
10790 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10791 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
10792 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
10793 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
10799 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10800 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
10801 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
10802 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
10808 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10809 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
10810 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
10811 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
10816 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10819 return NDR_ERR_SUCCESS
;
10822 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddDriverInfo
*r
)
10825 level
= ndr_print_get_switch_value(ndr
, r
);
10826 ndr_print_union(ndr
, name
, level
, "spoolss_AddDriverInfo");
10829 ndr_print_ptr(ndr
, "info1", r
->info1
);
10832 ndr_print_spoolss_AddDriverInfo1(ndr
, "info1", r
->info1
);
10838 ndr_print_ptr(ndr
, "info2", r
->info2
);
10841 ndr_print_spoolss_AddDriverInfo2(ndr
, "info2", r
->info2
);
10847 ndr_print_ptr(ndr
, "info3", r
->info3
);
10850 ndr_print_spoolss_AddDriverInfo3(ndr
, "info3", r
->info3
);
10856 ndr_print_ptr(ndr
, "info4", r
->info4
);
10859 ndr_print_spoolss_AddDriverInfo4(ndr
, "info4", r
->info4
);
10865 ndr_print_ptr(ndr
, "info6", r
->info6
);
10868 ndr_print_spoolss_AddDriverInfo6(ndr
, "info6", r
->info6
);
10874 ndr_print_ptr(ndr
, "info8", r
->info8
);
10877 ndr_print_spoolss_AddDriverInfo8(ndr
, "info8", r
->info8
);
10883 ndr_print_bad_level(ndr
, name
, level
);
10887 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfoCtr
*r
)
10889 if (ndr_flags
& NDR_SCALARS
) {
10890 NDR_CHECK(ndr_push_align(ndr
, 5));
10891 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
10892 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
10893 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
10894 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10896 if (ndr_flags
& NDR_BUFFERS
) {
10897 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
10899 return NDR_ERR_SUCCESS
;
10902 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfoCtr
*r
)
10904 if (ndr_flags
& NDR_SCALARS
) {
10905 NDR_CHECK(ndr_pull_align(ndr
, 5));
10906 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
10907 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
10908 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
10909 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
10911 if (ndr_flags
& NDR_BUFFERS
) {
10912 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
10914 return NDR_ERR_SUCCESS
;
10917 _PUBLIC_
void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfoCtr
*r
)
10919 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfoCtr");
10921 ndr_print_uint32(ndr
, "level", r
->level
);
10922 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
10923 ndr_print_spoolss_AddDriverInfo(ndr
, "info", &r
->info
);
10927 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo1
*r
)
10929 if (ndr_flags
& NDR_SCALARS
) {
10930 NDR_CHECK(ndr_push_align(ndr
, 5));
10932 uint32_t _flags_save_string
= ndr
->flags
;
10933 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10934 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10935 ndr
->flags
= _flags_save_string
;
10937 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10939 if (ndr_flags
& NDR_BUFFERS
) {
10941 uint32_t _flags_save_string
= ndr
->flags
;
10942 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10943 if (r
->driver_name
) {
10944 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
10945 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10946 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
10948 ndr
->flags
= _flags_save_string
;
10951 return NDR_ERR_SUCCESS
;
10954 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo1
*r
)
10956 uint32_t _ptr_driver_name
;
10957 TALLOC_CTX
*_mem_save_driver_name_0
;
10958 if (ndr_flags
& NDR_SCALARS
) {
10959 NDR_CHECK(ndr_pull_align(ndr
, 5));
10961 uint32_t _flags_save_string
= ndr
->flags
;
10962 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10963 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10964 if (_ptr_driver_name
) {
10965 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10966 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10968 r
->driver_name
= NULL
;
10970 ndr
->flags
= _flags_save_string
;
10972 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
10974 if (ndr_flags
& NDR_BUFFERS
) {
10976 uint32_t _flags_save_string
= ndr
->flags
;
10977 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10978 if (r
->driver_name
) {
10979 uint32_t _relative_save_offset
;
10980 _relative_save_offset
= ndr
->offset
;
10981 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10982 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10983 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10984 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10985 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10986 if (ndr
->offset
> ndr
->relative_highest_offset
) {
10987 ndr
->relative_highest_offset
= ndr
->offset
;
10989 ndr
->offset
= _relative_save_offset
;
10991 ndr
->flags
= _flags_save_string
;
10994 return NDR_ERR_SUCCESS
;
10997 _PUBLIC_
void ndr_print_spoolss_DriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo1
*r
)
10999 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo1");
11001 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11003 if (r
->driver_name
) {
11004 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11010 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11012 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo1
, ic
);
11015 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo2
*r
)
11017 if (ndr_flags
& NDR_SCALARS
) {
11018 NDR_CHECK(ndr_push_align(ndr
, 5));
11019 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11021 uint32_t _flags_save_string
= ndr
->flags
;
11022 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11023 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11024 ndr
->flags
= _flags_save_string
;
11027 uint32_t _flags_save_string
= ndr
->flags
;
11028 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11029 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11030 ndr
->flags
= _flags_save_string
;
11033 uint32_t _flags_save_string
= ndr
->flags
;
11034 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11035 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11036 ndr
->flags
= _flags_save_string
;
11039 uint32_t _flags_save_string
= ndr
->flags
;
11040 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11041 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11042 ndr
->flags
= _flags_save_string
;
11045 uint32_t _flags_save_string
= ndr
->flags
;
11046 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11047 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11048 ndr
->flags
= _flags_save_string
;
11050 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
11052 if (ndr_flags
& NDR_BUFFERS
) {
11054 uint32_t _flags_save_string
= ndr
->flags
;
11055 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11056 if (r
->driver_name
) {
11057 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
11058 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11059 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
11061 ndr
->flags
= _flags_save_string
;
11064 uint32_t _flags_save_string
= ndr
->flags
;
11065 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11066 if (r
->architecture
) {
11067 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
11068 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11069 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
11071 ndr
->flags
= _flags_save_string
;
11074 uint32_t _flags_save_string
= ndr
->flags
;
11075 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11076 if (r
->driver_path
) {
11077 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
11078 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11079 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
11081 ndr
->flags
= _flags_save_string
;
11084 uint32_t _flags_save_string
= ndr
->flags
;
11085 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11086 if (r
->data_file
) {
11087 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
11088 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11089 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
11091 ndr
->flags
= _flags_save_string
;
11094 uint32_t _flags_save_string
= ndr
->flags
;
11095 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11096 if (r
->config_file
) {
11097 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
11098 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11099 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
11101 ndr
->flags
= _flags_save_string
;
11104 return NDR_ERR_SUCCESS
;
11107 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo2
*r
)
11109 uint32_t _ptr_driver_name
;
11110 TALLOC_CTX
*_mem_save_driver_name_0
;
11111 uint32_t _ptr_architecture
;
11112 TALLOC_CTX
*_mem_save_architecture_0
;
11113 uint32_t _ptr_driver_path
;
11114 TALLOC_CTX
*_mem_save_driver_path_0
;
11115 uint32_t _ptr_data_file
;
11116 TALLOC_CTX
*_mem_save_data_file_0
;
11117 uint32_t _ptr_config_file
;
11118 TALLOC_CTX
*_mem_save_config_file_0
;
11119 if (ndr_flags
& NDR_SCALARS
) {
11120 NDR_CHECK(ndr_pull_align(ndr
, 5));
11121 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11123 uint32_t _flags_save_string
= ndr
->flags
;
11124 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11125 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11126 if (_ptr_driver_name
) {
11127 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11128 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11130 r
->driver_name
= NULL
;
11132 ndr
->flags
= _flags_save_string
;
11135 uint32_t _flags_save_string
= ndr
->flags
;
11136 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11137 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11138 if (_ptr_architecture
) {
11139 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11140 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11142 r
->architecture
= NULL
;
11144 ndr
->flags
= _flags_save_string
;
11147 uint32_t _flags_save_string
= ndr
->flags
;
11148 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11149 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11150 if (_ptr_driver_path
) {
11151 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11152 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11154 r
->driver_path
= NULL
;
11156 ndr
->flags
= _flags_save_string
;
11159 uint32_t _flags_save_string
= ndr
->flags
;
11160 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11161 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11162 if (_ptr_data_file
) {
11163 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11164 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11166 r
->data_file
= NULL
;
11168 ndr
->flags
= _flags_save_string
;
11171 uint32_t _flags_save_string
= ndr
->flags
;
11172 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11173 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11174 if (_ptr_config_file
) {
11175 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11176 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11178 r
->config_file
= NULL
;
11180 ndr
->flags
= _flags_save_string
;
11182 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
11184 if (ndr_flags
& NDR_BUFFERS
) {
11186 uint32_t _flags_save_string
= ndr
->flags
;
11187 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11188 if (r
->driver_name
) {
11189 uint32_t _relative_save_offset
;
11190 _relative_save_offset
= ndr
->offset
;
11191 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11192 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11193 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11194 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11195 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11196 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11197 ndr
->relative_highest_offset
= ndr
->offset
;
11199 ndr
->offset
= _relative_save_offset
;
11201 ndr
->flags
= _flags_save_string
;
11204 uint32_t _flags_save_string
= ndr
->flags
;
11205 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11206 if (r
->architecture
) {
11207 uint32_t _relative_save_offset
;
11208 _relative_save_offset
= ndr
->offset
;
11209 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11210 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11211 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11212 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11213 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11214 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11215 ndr
->relative_highest_offset
= ndr
->offset
;
11217 ndr
->offset
= _relative_save_offset
;
11219 ndr
->flags
= _flags_save_string
;
11222 uint32_t _flags_save_string
= ndr
->flags
;
11223 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11224 if (r
->driver_path
) {
11225 uint32_t _relative_save_offset
;
11226 _relative_save_offset
= ndr
->offset
;
11227 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11228 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11229 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11230 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11231 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11232 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11233 ndr
->relative_highest_offset
= ndr
->offset
;
11235 ndr
->offset
= _relative_save_offset
;
11237 ndr
->flags
= _flags_save_string
;
11240 uint32_t _flags_save_string
= ndr
->flags
;
11241 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11242 if (r
->data_file
) {
11243 uint32_t _relative_save_offset
;
11244 _relative_save_offset
= ndr
->offset
;
11245 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11246 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11247 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11248 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11249 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11250 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11251 ndr
->relative_highest_offset
= ndr
->offset
;
11253 ndr
->offset
= _relative_save_offset
;
11255 ndr
->flags
= _flags_save_string
;
11258 uint32_t _flags_save_string
= ndr
->flags
;
11259 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11260 if (r
->config_file
) {
11261 uint32_t _relative_save_offset
;
11262 _relative_save_offset
= ndr
->offset
;
11263 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11264 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11265 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11266 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11267 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11268 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11269 ndr
->relative_highest_offset
= ndr
->offset
;
11271 ndr
->offset
= _relative_save_offset
;
11273 ndr
->flags
= _flags_save_string
;
11276 return NDR_ERR_SUCCESS
;
11279 _PUBLIC_
void ndr_print_spoolss_DriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo2
*r
)
11281 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo2");
11283 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11284 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11286 if (r
->driver_name
) {
11287 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11290 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11292 if (r
->architecture
) {
11293 ndr_print_string(ndr
, "architecture", r
->architecture
);
11296 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11298 if (r
->driver_path
) {
11299 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11302 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11304 if (r
->data_file
) {
11305 ndr_print_string(ndr
, "data_file", r
->data_file
);
11308 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11310 if (r
->config_file
) {
11311 ndr_print_string(ndr
, "config_file", r
->config_file
);
11317 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11319 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo2
, ic
);
11322 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo3
*r
)
11324 if (ndr_flags
& NDR_SCALARS
) {
11325 NDR_CHECK(ndr_push_align(ndr
, 5));
11326 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11328 uint32_t _flags_save_string
= ndr
->flags
;
11329 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11330 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11331 ndr
->flags
= _flags_save_string
;
11334 uint32_t _flags_save_string
= ndr
->flags
;
11335 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11336 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11337 ndr
->flags
= _flags_save_string
;
11340 uint32_t _flags_save_string
= ndr
->flags
;
11341 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11342 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11343 ndr
->flags
= _flags_save_string
;
11346 uint32_t _flags_save_string
= ndr
->flags
;
11347 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11348 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11349 ndr
->flags
= _flags_save_string
;
11352 uint32_t _flags_save_string
= ndr
->flags
;
11353 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11354 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11355 ndr
->flags
= _flags_save_string
;
11358 uint32_t _flags_save_string
= ndr
->flags
;
11359 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11360 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
11361 ndr
->flags
= _flags_save_string
;
11364 uint32_t _flags_save_string_array
= ndr
->flags
;
11365 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11366 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
11367 ndr
->flags
= _flags_save_string_array
;
11370 uint32_t _flags_save_string
= ndr
->flags
;
11371 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11372 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
11373 ndr
->flags
= _flags_save_string
;
11376 uint32_t _flags_save_string
= ndr
->flags
;
11377 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11378 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
11379 ndr
->flags
= _flags_save_string
;
11381 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
11383 if (ndr_flags
& NDR_BUFFERS
) {
11385 uint32_t _flags_save_string
= ndr
->flags
;
11386 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11387 if (r
->driver_name
) {
11388 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
11389 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11390 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
11392 ndr
->flags
= _flags_save_string
;
11395 uint32_t _flags_save_string
= ndr
->flags
;
11396 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11397 if (r
->architecture
) {
11398 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
11399 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11400 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
11402 ndr
->flags
= _flags_save_string
;
11405 uint32_t _flags_save_string
= ndr
->flags
;
11406 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11407 if (r
->driver_path
) {
11408 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
11409 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11410 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
11412 ndr
->flags
= _flags_save_string
;
11415 uint32_t _flags_save_string
= ndr
->flags
;
11416 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11417 if (r
->data_file
) {
11418 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
11419 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11420 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
11422 ndr
->flags
= _flags_save_string
;
11425 uint32_t _flags_save_string
= ndr
->flags
;
11426 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11427 if (r
->config_file
) {
11428 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
11429 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11430 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
11432 ndr
->flags
= _flags_save_string
;
11435 uint32_t _flags_save_string
= ndr
->flags
;
11436 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11437 if (r
->help_file
) {
11438 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->help_file
));
11439 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
11440 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->help_file
));
11442 ndr
->flags
= _flags_save_string
;
11445 uint32_t _flags_save_string_array
= ndr
->flags
;
11446 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11447 if (r
->dependent_files
) {
11448 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dependent_files
));
11449 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
11450 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dependent_files
));
11452 ndr
->flags
= _flags_save_string_array
;
11455 uint32_t _flags_save_string
= ndr
->flags
;
11456 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11457 if (r
->monitor_name
) {
11458 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
11459 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
11460 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
11462 ndr
->flags
= _flags_save_string
;
11465 uint32_t _flags_save_string
= ndr
->flags
;
11466 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11467 if (r
->default_datatype
) {
11468 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->default_datatype
));
11469 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
11470 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->default_datatype
));
11472 ndr
->flags
= _flags_save_string
;
11475 return NDR_ERR_SUCCESS
;
11478 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo3
*r
)
11480 uint32_t _ptr_driver_name
;
11481 TALLOC_CTX
*_mem_save_driver_name_0
;
11482 uint32_t _ptr_architecture
;
11483 TALLOC_CTX
*_mem_save_architecture_0
;
11484 uint32_t _ptr_driver_path
;
11485 TALLOC_CTX
*_mem_save_driver_path_0
;
11486 uint32_t _ptr_data_file
;
11487 TALLOC_CTX
*_mem_save_data_file_0
;
11488 uint32_t _ptr_config_file
;
11489 TALLOC_CTX
*_mem_save_config_file_0
;
11490 uint32_t _ptr_help_file
;
11491 TALLOC_CTX
*_mem_save_help_file_0
;
11492 uint32_t _ptr_dependent_files
;
11493 TALLOC_CTX
*_mem_save_dependent_files_0
;
11494 uint32_t _ptr_monitor_name
;
11495 TALLOC_CTX
*_mem_save_monitor_name_0
;
11496 uint32_t _ptr_default_datatype
;
11497 TALLOC_CTX
*_mem_save_default_datatype_0
;
11498 if (ndr_flags
& NDR_SCALARS
) {
11499 NDR_CHECK(ndr_pull_align(ndr
, 5));
11500 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11502 uint32_t _flags_save_string
= ndr
->flags
;
11503 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11504 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11505 if (_ptr_driver_name
) {
11506 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11507 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11509 r
->driver_name
= NULL
;
11511 ndr
->flags
= _flags_save_string
;
11514 uint32_t _flags_save_string
= ndr
->flags
;
11515 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11516 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11517 if (_ptr_architecture
) {
11518 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11519 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11521 r
->architecture
= NULL
;
11523 ndr
->flags
= _flags_save_string
;
11526 uint32_t _flags_save_string
= ndr
->flags
;
11527 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11528 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11529 if (_ptr_driver_path
) {
11530 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11531 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11533 r
->driver_path
= NULL
;
11535 ndr
->flags
= _flags_save_string
;
11538 uint32_t _flags_save_string
= ndr
->flags
;
11539 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11540 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11541 if (_ptr_data_file
) {
11542 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11543 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11545 r
->data_file
= NULL
;
11547 ndr
->flags
= _flags_save_string
;
11550 uint32_t _flags_save_string
= ndr
->flags
;
11551 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11552 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11553 if (_ptr_config_file
) {
11554 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11555 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11557 r
->config_file
= NULL
;
11559 ndr
->flags
= _flags_save_string
;
11562 uint32_t _flags_save_string
= ndr
->flags
;
11563 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11564 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
11565 if (_ptr_help_file
) {
11566 NDR_PULL_ALLOC(ndr
, r
->help_file
);
11567 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
11569 r
->help_file
= NULL
;
11571 ndr
->flags
= _flags_save_string
;
11574 uint32_t _flags_save_string_array
= ndr
->flags
;
11575 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11576 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
11577 if (_ptr_dependent_files
) {
11578 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
11579 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
11581 r
->dependent_files
= NULL
;
11583 ndr
->flags
= _flags_save_string_array
;
11586 uint32_t _flags_save_string
= ndr
->flags
;
11587 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11588 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
11589 if (_ptr_monitor_name
) {
11590 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
11591 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
11593 r
->monitor_name
= NULL
;
11595 ndr
->flags
= _flags_save_string
;
11598 uint32_t _flags_save_string
= ndr
->flags
;
11599 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11600 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
11601 if (_ptr_default_datatype
) {
11602 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
11603 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
11605 r
->default_datatype
= NULL
;
11607 ndr
->flags
= _flags_save_string
;
11609 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
11611 if (ndr_flags
& NDR_BUFFERS
) {
11613 uint32_t _flags_save_string
= ndr
->flags
;
11614 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11615 if (r
->driver_name
) {
11616 uint32_t _relative_save_offset
;
11617 _relative_save_offset
= ndr
->offset
;
11618 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11619 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11620 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11621 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11622 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11623 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11624 ndr
->relative_highest_offset
= ndr
->offset
;
11626 ndr
->offset
= _relative_save_offset
;
11628 ndr
->flags
= _flags_save_string
;
11631 uint32_t _flags_save_string
= ndr
->flags
;
11632 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11633 if (r
->architecture
) {
11634 uint32_t _relative_save_offset
;
11635 _relative_save_offset
= ndr
->offset
;
11636 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11637 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11638 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11639 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11640 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11641 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11642 ndr
->relative_highest_offset
= ndr
->offset
;
11644 ndr
->offset
= _relative_save_offset
;
11646 ndr
->flags
= _flags_save_string
;
11649 uint32_t _flags_save_string
= ndr
->flags
;
11650 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11651 if (r
->driver_path
) {
11652 uint32_t _relative_save_offset
;
11653 _relative_save_offset
= ndr
->offset
;
11654 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11655 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11656 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11657 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11658 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11659 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11660 ndr
->relative_highest_offset
= ndr
->offset
;
11662 ndr
->offset
= _relative_save_offset
;
11664 ndr
->flags
= _flags_save_string
;
11667 uint32_t _flags_save_string
= ndr
->flags
;
11668 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11669 if (r
->data_file
) {
11670 uint32_t _relative_save_offset
;
11671 _relative_save_offset
= ndr
->offset
;
11672 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11673 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11674 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11675 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11676 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11677 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11678 ndr
->relative_highest_offset
= ndr
->offset
;
11680 ndr
->offset
= _relative_save_offset
;
11682 ndr
->flags
= _flags_save_string
;
11685 uint32_t _flags_save_string
= ndr
->flags
;
11686 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11687 if (r
->config_file
) {
11688 uint32_t _relative_save_offset
;
11689 _relative_save_offset
= ndr
->offset
;
11690 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11691 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11692 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11693 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11694 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11695 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11696 ndr
->relative_highest_offset
= ndr
->offset
;
11698 ndr
->offset
= _relative_save_offset
;
11700 ndr
->flags
= _flags_save_string
;
11703 uint32_t _flags_save_string
= ndr
->flags
;
11704 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11705 if (r
->help_file
) {
11706 uint32_t _relative_save_offset
;
11707 _relative_save_offset
= ndr
->offset
;
11708 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11709 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11710 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11711 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11712 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11713 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11714 ndr
->relative_highest_offset
= ndr
->offset
;
11716 ndr
->offset
= _relative_save_offset
;
11718 ndr
->flags
= _flags_save_string
;
11721 uint32_t _flags_save_string_array
= ndr
->flags
;
11722 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11723 if (r
->dependent_files
) {
11724 uint32_t _relative_save_offset
;
11725 _relative_save_offset
= ndr
->offset
;
11726 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11727 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11728 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11729 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11730 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11731 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11732 ndr
->relative_highest_offset
= ndr
->offset
;
11734 ndr
->offset
= _relative_save_offset
;
11736 ndr
->flags
= _flags_save_string_array
;
11739 uint32_t _flags_save_string
= ndr
->flags
;
11740 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11741 if (r
->monitor_name
) {
11742 uint32_t _relative_save_offset
;
11743 _relative_save_offset
= ndr
->offset
;
11744 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11745 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11746 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11747 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11748 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11749 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11750 ndr
->relative_highest_offset
= ndr
->offset
;
11752 ndr
->offset
= _relative_save_offset
;
11754 ndr
->flags
= _flags_save_string
;
11757 uint32_t _flags_save_string
= ndr
->flags
;
11758 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11759 if (r
->default_datatype
) {
11760 uint32_t _relative_save_offset
;
11761 _relative_save_offset
= ndr
->offset
;
11762 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
11763 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11764 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
11765 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
11766 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
11767 if (ndr
->offset
> ndr
->relative_highest_offset
) {
11768 ndr
->relative_highest_offset
= ndr
->offset
;
11770 ndr
->offset
= _relative_save_offset
;
11772 ndr
->flags
= _flags_save_string
;
11775 return NDR_ERR_SUCCESS
;
11778 _PUBLIC_
void ndr_print_spoolss_DriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo3
*r
)
11780 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo3");
11782 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11783 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11785 if (r
->driver_name
) {
11786 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11789 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11791 if (r
->architecture
) {
11792 ndr_print_string(ndr
, "architecture", r
->architecture
);
11795 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11797 if (r
->driver_path
) {
11798 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11801 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11803 if (r
->data_file
) {
11804 ndr_print_string(ndr
, "data_file", r
->data_file
);
11807 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11809 if (r
->config_file
) {
11810 ndr_print_string(ndr
, "config_file", r
->config_file
);
11813 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
11815 if (r
->help_file
) {
11816 ndr_print_string(ndr
, "help_file", r
->help_file
);
11819 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
11821 if (r
->dependent_files
) {
11822 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
11825 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
11827 if (r
->monitor_name
) {
11828 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
11831 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
11833 if (r
->default_datatype
) {
11834 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
11840 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11842 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo3
, ic
);
11845 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo4
*r
)
11847 if (ndr_flags
& NDR_SCALARS
) {
11848 NDR_CHECK(ndr_push_align(ndr
, 5));
11849 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11851 uint32_t _flags_save_string
= ndr
->flags
;
11852 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11853 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11854 ndr
->flags
= _flags_save_string
;
11857 uint32_t _flags_save_string
= ndr
->flags
;
11858 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11859 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11860 ndr
->flags
= _flags_save_string
;
11863 uint32_t _flags_save_string
= ndr
->flags
;
11864 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11865 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11866 ndr
->flags
= _flags_save_string
;
11869 uint32_t _flags_save_string
= ndr
->flags
;
11870 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11871 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11872 ndr
->flags
= _flags_save_string
;
11875 uint32_t _flags_save_string
= ndr
->flags
;
11876 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11877 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11878 ndr
->flags
= _flags_save_string
;
11881 uint32_t _flags_save_string
= ndr
->flags
;
11882 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11883 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
11884 ndr
->flags
= _flags_save_string
;
11887 uint32_t _flags_save_string_array
= ndr
->flags
;
11888 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11889 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
11890 ndr
->flags
= _flags_save_string_array
;
11893 uint32_t _flags_save_string
= ndr
->flags
;
11894 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11895 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
11896 ndr
->flags
= _flags_save_string
;
11899 uint32_t _flags_save_string
= ndr
->flags
;
11900 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11901 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
11902 ndr
->flags
= _flags_save_string
;
11905 uint32_t _flags_save_string_array
= ndr
->flags
;
11906 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11907 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
11908 ndr
->flags
= _flags_save_string_array
;
11910 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
11912 if (ndr_flags
& NDR_BUFFERS
) {
11914 uint32_t _flags_save_string
= ndr
->flags
;
11915 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11916 if (r
->driver_name
) {
11917 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
11918 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11919 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
11921 ndr
->flags
= _flags_save_string
;
11924 uint32_t _flags_save_string
= ndr
->flags
;
11925 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11926 if (r
->architecture
) {
11927 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
11928 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11929 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
11931 ndr
->flags
= _flags_save_string
;
11934 uint32_t _flags_save_string
= ndr
->flags
;
11935 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11936 if (r
->driver_path
) {
11937 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
11938 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11939 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
11941 ndr
->flags
= _flags_save_string
;
11944 uint32_t _flags_save_string
= ndr
->flags
;
11945 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11946 if (r
->data_file
) {
11947 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
11948 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11949 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
11951 ndr
->flags
= _flags_save_string
;
11954 uint32_t _flags_save_string
= ndr
->flags
;
11955 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11956 if (r
->config_file
) {
11957 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
11958 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11959 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
11961 ndr
->flags
= _flags_save_string
;
11964 uint32_t _flags_save_string
= ndr
->flags
;
11965 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11966 if (r
->help_file
) {
11967 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->help_file
));
11968 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
11969 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->help_file
));
11971 ndr
->flags
= _flags_save_string
;
11974 uint32_t _flags_save_string_array
= ndr
->flags
;
11975 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11976 if (r
->dependent_files
) {
11977 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dependent_files
));
11978 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
11979 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dependent_files
));
11981 ndr
->flags
= _flags_save_string_array
;
11984 uint32_t _flags_save_string
= ndr
->flags
;
11985 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11986 if (r
->monitor_name
) {
11987 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
11988 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
11989 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
11991 ndr
->flags
= _flags_save_string
;
11994 uint32_t _flags_save_string
= ndr
->flags
;
11995 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11996 if (r
->default_datatype
) {
11997 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->default_datatype
));
11998 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
11999 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->default_datatype
));
12001 ndr
->flags
= _flags_save_string
;
12004 uint32_t _flags_save_string_array
= ndr
->flags
;
12005 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12006 if (r
->previous_names
) {
12007 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->previous_names
));
12008 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
12009 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->previous_names
));
12011 ndr
->flags
= _flags_save_string_array
;
12014 return NDR_ERR_SUCCESS
;
12017 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo4
*r
)
12019 uint32_t _ptr_driver_name
;
12020 TALLOC_CTX
*_mem_save_driver_name_0
;
12021 uint32_t _ptr_architecture
;
12022 TALLOC_CTX
*_mem_save_architecture_0
;
12023 uint32_t _ptr_driver_path
;
12024 TALLOC_CTX
*_mem_save_driver_path_0
;
12025 uint32_t _ptr_data_file
;
12026 TALLOC_CTX
*_mem_save_data_file_0
;
12027 uint32_t _ptr_config_file
;
12028 TALLOC_CTX
*_mem_save_config_file_0
;
12029 uint32_t _ptr_help_file
;
12030 TALLOC_CTX
*_mem_save_help_file_0
;
12031 uint32_t _ptr_dependent_files
;
12032 TALLOC_CTX
*_mem_save_dependent_files_0
;
12033 uint32_t _ptr_monitor_name
;
12034 TALLOC_CTX
*_mem_save_monitor_name_0
;
12035 uint32_t _ptr_default_datatype
;
12036 TALLOC_CTX
*_mem_save_default_datatype_0
;
12037 uint32_t _ptr_previous_names
;
12038 TALLOC_CTX
*_mem_save_previous_names_0
;
12039 if (ndr_flags
& NDR_SCALARS
) {
12040 NDR_CHECK(ndr_pull_align(ndr
, 5));
12041 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
12043 uint32_t _flags_save_string
= ndr
->flags
;
12044 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12045 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
12046 if (_ptr_driver_name
) {
12047 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
12048 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
12050 r
->driver_name
= NULL
;
12052 ndr
->flags
= _flags_save_string
;
12055 uint32_t _flags_save_string
= ndr
->flags
;
12056 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12057 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
12058 if (_ptr_architecture
) {
12059 NDR_PULL_ALLOC(ndr
, r
->architecture
);
12060 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
12062 r
->architecture
= NULL
;
12064 ndr
->flags
= _flags_save_string
;
12067 uint32_t _flags_save_string
= ndr
->flags
;
12068 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12069 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
12070 if (_ptr_driver_path
) {
12071 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
12072 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
12074 r
->driver_path
= NULL
;
12076 ndr
->flags
= _flags_save_string
;
12079 uint32_t _flags_save_string
= ndr
->flags
;
12080 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12081 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
12082 if (_ptr_data_file
) {
12083 NDR_PULL_ALLOC(ndr
, r
->data_file
);
12084 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
12086 r
->data_file
= NULL
;
12088 ndr
->flags
= _flags_save_string
;
12091 uint32_t _flags_save_string
= ndr
->flags
;
12092 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12093 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
12094 if (_ptr_config_file
) {
12095 NDR_PULL_ALLOC(ndr
, r
->config_file
);
12096 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
12098 r
->config_file
= NULL
;
12100 ndr
->flags
= _flags_save_string
;
12103 uint32_t _flags_save_string
= ndr
->flags
;
12104 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12105 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
12106 if (_ptr_help_file
) {
12107 NDR_PULL_ALLOC(ndr
, r
->help_file
);
12108 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
12110 r
->help_file
= NULL
;
12112 ndr
->flags
= _flags_save_string
;
12115 uint32_t _flags_save_string_array
= ndr
->flags
;
12116 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12117 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
12118 if (_ptr_dependent_files
) {
12119 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
12120 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
12122 r
->dependent_files
= NULL
;
12124 ndr
->flags
= _flags_save_string_array
;
12127 uint32_t _flags_save_string
= ndr
->flags
;
12128 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12129 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
12130 if (_ptr_monitor_name
) {
12131 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
12132 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
12134 r
->monitor_name
= NULL
;
12136 ndr
->flags
= _flags_save_string
;
12139 uint32_t _flags_save_string
= ndr
->flags
;
12140 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12141 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
12142 if (_ptr_default_datatype
) {
12143 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
12144 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
12146 r
->default_datatype
= NULL
;
12148 ndr
->flags
= _flags_save_string
;
12151 uint32_t _flags_save_string_array
= ndr
->flags
;
12152 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12153 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
12154 if (_ptr_previous_names
) {
12155 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
12156 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
12158 r
->previous_names
= NULL
;
12160 ndr
->flags
= _flags_save_string_array
;
12162 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
12164 if (ndr_flags
& NDR_BUFFERS
) {
12166 uint32_t _flags_save_string
= ndr
->flags
;
12167 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12168 if (r
->driver_name
) {
12169 uint32_t _relative_save_offset
;
12170 _relative_save_offset
= ndr
->offset
;
12171 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
12172 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12173 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
12174 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
12175 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
12176 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12177 ndr
->relative_highest_offset
= ndr
->offset
;
12179 ndr
->offset
= _relative_save_offset
;
12181 ndr
->flags
= _flags_save_string
;
12184 uint32_t _flags_save_string
= ndr
->flags
;
12185 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12186 if (r
->architecture
) {
12187 uint32_t _relative_save_offset
;
12188 _relative_save_offset
= ndr
->offset
;
12189 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12190 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12191 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12192 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12193 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12194 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12195 ndr
->relative_highest_offset
= ndr
->offset
;
12197 ndr
->offset
= _relative_save_offset
;
12199 ndr
->flags
= _flags_save_string
;
12202 uint32_t _flags_save_string
= ndr
->flags
;
12203 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12204 if (r
->driver_path
) {
12205 uint32_t _relative_save_offset
;
12206 _relative_save_offset
= ndr
->offset
;
12207 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12208 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12209 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12210 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12211 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12212 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12213 ndr
->relative_highest_offset
= ndr
->offset
;
12215 ndr
->offset
= _relative_save_offset
;
12217 ndr
->flags
= _flags_save_string
;
12220 uint32_t _flags_save_string
= ndr
->flags
;
12221 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12222 if (r
->data_file
) {
12223 uint32_t _relative_save_offset
;
12224 _relative_save_offset
= ndr
->offset
;
12225 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12226 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12227 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12228 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12229 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12230 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12231 ndr
->relative_highest_offset
= ndr
->offset
;
12233 ndr
->offset
= _relative_save_offset
;
12235 ndr
->flags
= _flags_save_string
;
12238 uint32_t _flags_save_string
= ndr
->flags
;
12239 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12240 if (r
->config_file
) {
12241 uint32_t _relative_save_offset
;
12242 _relative_save_offset
= ndr
->offset
;
12243 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12244 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12245 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12246 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12247 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12248 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12249 ndr
->relative_highest_offset
= ndr
->offset
;
12251 ndr
->offset
= _relative_save_offset
;
12253 ndr
->flags
= _flags_save_string
;
12256 uint32_t _flags_save_string
= ndr
->flags
;
12257 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12258 if (r
->help_file
) {
12259 uint32_t _relative_save_offset
;
12260 _relative_save_offset
= ndr
->offset
;
12261 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
12262 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12263 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
12264 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
12265 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
12266 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12267 ndr
->relative_highest_offset
= ndr
->offset
;
12269 ndr
->offset
= _relative_save_offset
;
12271 ndr
->flags
= _flags_save_string
;
12274 uint32_t _flags_save_string_array
= ndr
->flags
;
12275 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12276 if (r
->dependent_files
) {
12277 uint32_t _relative_save_offset
;
12278 _relative_save_offset
= ndr
->offset
;
12279 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
12280 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12281 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
12282 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
12283 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
12284 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12285 ndr
->relative_highest_offset
= ndr
->offset
;
12287 ndr
->offset
= _relative_save_offset
;
12289 ndr
->flags
= _flags_save_string_array
;
12292 uint32_t _flags_save_string
= ndr
->flags
;
12293 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12294 if (r
->monitor_name
) {
12295 uint32_t _relative_save_offset
;
12296 _relative_save_offset
= ndr
->offset
;
12297 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
12298 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12299 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
12300 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
12301 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
12302 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12303 ndr
->relative_highest_offset
= ndr
->offset
;
12305 ndr
->offset
= _relative_save_offset
;
12307 ndr
->flags
= _flags_save_string
;
12310 uint32_t _flags_save_string
= ndr
->flags
;
12311 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12312 if (r
->default_datatype
) {
12313 uint32_t _relative_save_offset
;
12314 _relative_save_offset
= ndr
->offset
;
12315 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
12316 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12317 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
12318 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
12319 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
12320 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12321 ndr
->relative_highest_offset
= ndr
->offset
;
12323 ndr
->offset
= _relative_save_offset
;
12325 ndr
->flags
= _flags_save_string
;
12328 uint32_t _flags_save_string_array
= ndr
->flags
;
12329 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12330 if (r
->previous_names
) {
12331 uint32_t _relative_save_offset
;
12332 _relative_save_offset
= ndr
->offset
;
12333 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
12334 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12335 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
12336 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
12337 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
12338 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12339 ndr
->relative_highest_offset
= ndr
->offset
;
12341 ndr
->offset
= _relative_save_offset
;
12343 ndr
->flags
= _flags_save_string_array
;
12346 return NDR_ERR_SUCCESS
;
12349 _PUBLIC_
void ndr_print_spoolss_DriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo4
*r
)
12351 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo4");
12353 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12354 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12356 if (r
->driver_name
) {
12357 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12360 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12362 if (r
->architecture
) {
12363 ndr_print_string(ndr
, "architecture", r
->architecture
);
12366 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12368 if (r
->driver_path
) {
12369 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12372 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12374 if (r
->data_file
) {
12375 ndr_print_string(ndr
, "data_file", r
->data_file
);
12378 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12380 if (r
->config_file
) {
12381 ndr_print_string(ndr
, "config_file", r
->config_file
);
12384 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
12386 if (r
->help_file
) {
12387 ndr_print_string(ndr
, "help_file", r
->help_file
);
12390 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
12392 if (r
->dependent_files
) {
12393 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
12396 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
12398 if (r
->monitor_name
) {
12399 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
12402 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
12404 if (r
->default_datatype
) {
12405 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
12408 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
12410 if (r
->previous_names
) {
12411 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
12417 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12419 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo4
, ic
);
12422 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo5
*r
)
12424 if (ndr_flags
& NDR_SCALARS
) {
12425 NDR_CHECK(ndr_push_align(ndr
, 5));
12426 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12428 uint32_t _flags_save_string
= ndr
->flags
;
12429 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12430 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12431 ndr
->flags
= _flags_save_string
;
12434 uint32_t _flags_save_string
= ndr
->flags
;
12435 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12436 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
12437 ndr
->flags
= _flags_save_string
;
12440 uint32_t _flags_save_string
= ndr
->flags
;
12441 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12442 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
12443 ndr
->flags
= _flags_save_string
;
12446 uint32_t _flags_save_string
= ndr
->flags
;
12447 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12448 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
12449 ndr
->flags
= _flags_save_string
;
12452 uint32_t _flags_save_string
= ndr
->flags
;
12453 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12454 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
12455 ndr
->flags
= _flags_save_string
;
12457 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr
, NDR_SCALARS
, r
->driver_attributes
));
12458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->config_version
));
12459 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->driver_version
));
12460 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
12462 if (ndr_flags
& NDR_BUFFERS
) {
12464 uint32_t _flags_save_string
= ndr
->flags
;
12465 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12466 if (r
->driver_name
) {
12467 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
12468 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12469 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
12471 ndr
->flags
= _flags_save_string
;
12474 uint32_t _flags_save_string
= ndr
->flags
;
12475 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12476 if (r
->architecture
) {
12477 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
12478 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12479 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
12481 ndr
->flags
= _flags_save_string
;
12484 uint32_t _flags_save_string
= ndr
->flags
;
12485 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12486 if (r
->driver_path
) {
12487 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
12488 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
12489 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
12491 ndr
->flags
= _flags_save_string
;
12494 uint32_t _flags_save_string
= ndr
->flags
;
12495 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12496 if (r
->data_file
) {
12497 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
12498 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
12499 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
12501 ndr
->flags
= _flags_save_string
;
12504 uint32_t _flags_save_string
= ndr
->flags
;
12505 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12506 if (r
->config_file
) {
12507 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
12508 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
12509 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
12511 ndr
->flags
= _flags_save_string
;
12514 return NDR_ERR_SUCCESS
;
12517 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo5
*r
)
12519 uint32_t _ptr_driver_name
;
12520 TALLOC_CTX
*_mem_save_driver_name_0
;
12521 uint32_t _ptr_architecture
;
12522 TALLOC_CTX
*_mem_save_architecture_0
;
12523 uint32_t _ptr_driver_path
;
12524 TALLOC_CTX
*_mem_save_driver_path_0
;
12525 uint32_t _ptr_data_file
;
12526 TALLOC_CTX
*_mem_save_data_file_0
;
12527 uint32_t _ptr_config_file
;
12528 TALLOC_CTX
*_mem_save_config_file_0
;
12529 if (ndr_flags
& NDR_SCALARS
) {
12530 NDR_CHECK(ndr_pull_align(ndr
, 5));
12531 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
12533 uint32_t _flags_save_string
= ndr
->flags
;
12534 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12535 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
12536 if (_ptr_driver_name
) {
12537 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
12538 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
12540 r
->driver_name
= NULL
;
12542 ndr
->flags
= _flags_save_string
;
12545 uint32_t _flags_save_string
= ndr
->flags
;
12546 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12547 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
12548 if (_ptr_architecture
) {
12549 NDR_PULL_ALLOC(ndr
, r
->architecture
);
12550 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
12552 r
->architecture
= NULL
;
12554 ndr
->flags
= _flags_save_string
;
12557 uint32_t _flags_save_string
= ndr
->flags
;
12558 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12559 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
12560 if (_ptr_driver_path
) {
12561 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
12562 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
12564 r
->driver_path
= NULL
;
12566 ndr
->flags
= _flags_save_string
;
12569 uint32_t _flags_save_string
= ndr
->flags
;
12570 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12571 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
12572 if (_ptr_data_file
) {
12573 NDR_PULL_ALLOC(ndr
, r
->data_file
);
12574 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
12576 r
->data_file
= NULL
;
12578 ndr
->flags
= _flags_save_string
;
12581 uint32_t _flags_save_string
= ndr
->flags
;
12582 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12583 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
12584 if (_ptr_config_file
) {
12585 NDR_PULL_ALLOC(ndr
, r
->config_file
);
12586 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
12588 r
->config_file
= NULL
;
12590 ndr
->flags
= _flags_save_string
;
12592 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr
, NDR_SCALARS
, &r
->driver_attributes
));
12593 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->config_version
));
12594 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->driver_version
));
12595 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
12597 if (ndr_flags
& NDR_BUFFERS
) {
12599 uint32_t _flags_save_string
= ndr
->flags
;
12600 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12601 if (r
->driver_name
) {
12602 uint32_t _relative_save_offset
;
12603 _relative_save_offset
= ndr
->offset
;
12604 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
12605 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12606 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
12607 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
12608 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
12609 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12610 ndr
->relative_highest_offset
= ndr
->offset
;
12612 ndr
->offset
= _relative_save_offset
;
12614 ndr
->flags
= _flags_save_string
;
12617 uint32_t _flags_save_string
= ndr
->flags
;
12618 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12619 if (r
->architecture
) {
12620 uint32_t _relative_save_offset
;
12621 _relative_save_offset
= ndr
->offset
;
12622 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12623 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12624 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12625 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12627 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12628 ndr
->relative_highest_offset
= ndr
->offset
;
12630 ndr
->offset
= _relative_save_offset
;
12632 ndr
->flags
= _flags_save_string
;
12635 uint32_t _flags_save_string
= ndr
->flags
;
12636 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12637 if (r
->driver_path
) {
12638 uint32_t _relative_save_offset
;
12639 _relative_save_offset
= ndr
->offset
;
12640 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12641 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12642 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12643 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12644 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12645 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12646 ndr
->relative_highest_offset
= ndr
->offset
;
12648 ndr
->offset
= _relative_save_offset
;
12650 ndr
->flags
= _flags_save_string
;
12653 uint32_t _flags_save_string
= ndr
->flags
;
12654 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12655 if (r
->data_file
) {
12656 uint32_t _relative_save_offset
;
12657 _relative_save_offset
= ndr
->offset
;
12658 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12659 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12660 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12661 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12662 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12663 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12664 ndr
->relative_highest_offset
= ndr
->offset
;
12666 ndr
->offset
= _relative_save_offset
;
12668 ndr
->flags
= _flags_save_string
;
12671 uint32_t _flags_save_string
= ndr
->flags
;
12672 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12673 if (r
->config_file
) {
12674 uint32_t _relative_save_offset
;
12675 _relative_save_offset
= ndr
->offset
;
12676 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12677 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12678 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12679 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12680 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12681 if (ndr
->offset
> ndr
->relative_highest_offset
) {
12682 ndr
->relative_highest_offset
= ndr
->offset
;
12684 ndr
->offset
= _relative_save_offset
;
12686 ndr
->flags
= _flags_save_string
;
12689 return NDR_ERR_SUCCESS
;
12692 _PUBLIC_
void ndr_print_spoolss_DriverInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo5
*r
)
12694 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo5");
12696 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12697 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12699 if (r
->driver_name
) {
12700 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12703 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12705 if (r
->architecture
) {
12706 ndr_print_string(ndr
, "architecture", r
->architecture
);
12709 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12711 if (r
->driver_path
) {
12712 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12715 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12717 if (r
->data_file
) {
12718 ndr_print_string(ndr
, "data_file", r
->data_file
);
12721 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12723 if (r
->config_file
) {
12724 ndr_print_string(ndr
, "config_file", r
->config_file
);
12727 ndr_print_spoolss_DriverAttributes(ndr
, "driver_attributes", r
->driver_attributes
);
12728 ndr_print_uint32(ndr
, "config_version", r
->config_version
);
12729 ndr_print_uint32(ndr
, "driver_version", r
->driver_version
);
12733 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12735 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo5
, ic
);
12738 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo6
*r
)
12740 if (ndr_flags
& NDR_SCALARS
) {
12741 NDR_CHECK(ndr_push_align(ndr
, 8));
12742 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12744 uint32_t _flags_save_string
= ndr
->flags
;
12745 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12746 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12747 ndr
->flags
= _flags_save_string
;
12750 uint32_t _flags_save_string
= ndr
->flags
;
12751 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12752 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
12753 ndr
->flags
= _flags_save_string
;
12756 uint32_t _flags_save_string
= ndr
->flags
;
12757 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12758 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
12759 ndr
->flags
= _flags_save_string
;
12762 uint32_t _flags_save_string
= ndr
->flags
;
12763 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12764 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
12765 ndr
->flags
= _flags_save_string
;
12768 uint32_t _flags_save_string
= ndr
->flags
;
12769 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12770 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
12771 ndr
->flags
= _flags_save_string
;
12774 uint32_t _flags_save_string
= ndr
->flags
;
12775 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12776 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
12777 ndr
->flags
= _flags_save_string
;
12780 uint32_t _flags_save_string_array
= ndr
->flags
;
12781 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12782 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
12783 ndr
->flags
= _flags_save_string_array
;
12786 uint32_t _flags_save_string
= ndr
->flags
;
12787 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12788 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
12789 ndr
->flags
= _flags_save_string
;
12792 uint32_t _flags_save_string
= ndr
->flags
;
12793 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12794 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
12795 ndr
->flags
= _flags_save_string
;
12798 uint32_t _flags_save_string_array
= ndr
->flags
;
12799 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12800 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
12801 ndr
->flags
= _flags_save_string_array
;
12803 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
12804 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
12806 uint32_t _flags_save_string
= ndr
->flags
;
12807 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12808 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
12809 ndr
->flags
= _flags_save_string
;
12812 uint32_t _flags_save_string
= ndr
->flags
;
12813 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12814 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
12815 ndr
->flags
= _flags_save_string
;
12818 uint32_t _flags_save_string
= ndr
->flags
;
12819 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12820 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
12821 ndr
->flags
= _flags_save_string
;
12824 uint32_t _flags_save_string
= ndr
->flags
;
12825 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12826 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
12827 ndr
->flags
= _flags_save_string
;
12829 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
12831 if (ndr_flags
& NDR_BUFFERS
) {
12833 uint32_t _flags_save_string
= ndr
->flags
;
12834 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12835 if (r
->driver_name
) {
12836 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
12837 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12838 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
12840 ndr
->flags
= _flags_save_string
;
12843 uint32_t _flags_save_string
= ndr
->flags
;
12844 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12845 if (r
->architecture
) {
12846 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
12847 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12848 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
12850 ndr
->flags
= _flags_save_string
;
12853 uint32_t _flags_save_string
= ndr
->flags
;
12854 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12855 if (r
->driver_path
) {
12856 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
12857 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
12858 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
12860 ndr
->flags
= _flags_save_string
;
12863 uint32_t _flags_save_string
= ndr
->flags
;
12864 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12865 if (r
->data_file
) {
12866 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
12867 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
12868 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
12870 ndr
->flags
= _flags_save_string
;
12873 uint32_t _flags_save_string
= ndr
->flags
;
12874 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12875 if (r
->config_file
) {
12876 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
12877 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
12878 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
12880 ndr
->flags
= _flags_save_string
;
12883 uint32_t _flags_save_string
= ndr
->flags
;
12884 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12885 if (r
->help_file
) {
12886 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->help_file
));
12887 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
12888 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->help_file
));
12890 ndr
->flags
= _flags_save_string
;
12893 uint32_t _flags_save_string_array
= ndr
->flags
;
12894 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12895 if (r
->dependent_files
) {
12896 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dependent_files
));
12897 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
12898 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dependent_files
));
12900 ndr
->flags
= _flags_save_string_array
;
12903 uint32_t _flags_save_string
= ndr
->flags
;
12904 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12905 if (r
->monitor_name
) {
12906 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
12907 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
12908 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
12910 ndr
->flags
= _flags_save_string
;
12913 uint32_t _flags_save_string
= ndr
->flags
;
12914 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12915 if (r
->default_datatype
) {
12916 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->default_datatype
));
12917 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
12918 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->default_datatype
));
12920 ndr
->flags
= _flags_save_string
;
12923 uint32_t _flags_save_string_array
= ndr
->flags
;
12924 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12925 if (r
->previous_names
) {
12926 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->previous_names
));
12927 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
12928 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->previous_names
));
12930 ndr
->flags
= _flags_save_string_array
;
12933 uint32_t _flags_save_string
= ndr
->flags
;
12934 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12935 if (r
->manufacturer_name
) {
12936 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->manufacturer_name
));
12937 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
12938 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->manufacturer_name
));
12940 ndr
->flags
= _flags_save_string
;
12943 uint32_t _flags_save_string
= ndr
->flags
;
12944 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12945 if (r
->manufacturer_url
) {
12946 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->manufacturer_url
));
12947 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
12948 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->manufacturer_url
));
12950 ndr
->flags
= _flags_save_string
;
12953 uint32_t _flags_save_string
= ndr
->flags
;
12954 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12955 if (r
->hardware_id
) {
12956 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->hardware_id
));
12957 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
12958 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->hardware_id
));
12960 ndr
->flags
= _flags_save_string
;
12963 uint32_t _flags_save_string
= ndr
->flags
;
12964 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12966 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->provider
));
12967 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
12968 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->provider
));
12970 ndr
->flags
= _flags_save_string
;
12973 return NDR_ERR_SUCCESS
;
12976 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo6
*r
)
12978 uint32_t _ptr_driver_name
;
12979 TALLOC_CTX
*_mem_save_driver_name_0
;
12980 uint32_t _ptr_architecture
;
12981 TALLOC_CTX
*_mem_save_architecture_0
;
12982 uint32_t _ptr_driver_path
;
12983 TALLOC_CTX
*_mem_save_driver_path_0
;
12984 uint32_t _ptr_data_file
;
12985 TALLOC_CTX
*_mem_save_data_file_0
;
12986 uint32_t _ptr_config_file
;
12987 TALLOC_CTX
*_mem_save_config_file_0
;
12988 uint32_t _ptr_help_file
;
12989 TALLOC_CTX
*_mem_save_help_file_0
;
12990 uint32_t _ptr_dependent_files
;
12991 TALLOC_CTX
*_mem_save_dependent_files_0
;
12992 uint32_t _ptr_monitor_name
;
12993 TALLOC_CTX
*_mem_save_monitor_name_0
;
12994 uint32_t _ptr_default_datatype
;
12995 TALLOC_CTX
*_mem_save_default_datatype_0
;
12996 uint32_t _ptr_previous_names
;
12997 TALLOC_CTX
*_mem_save_previous_names_0
;
12998 uint32_t _ptr_manufacturer_name
;
12999 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
13000 uint32_t _ptr_manufacturer_url
;
13001 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
13002 uint32_t _ptr_hardware_id
;
13003 TALLOC_CTX
*_mem_save_hardware_id_0
;
13004 uint32_t _ptr_provider
;
13005 TALLOC_CTX
*_mem_save_provider_0
;
13006 if (ndr_flags
& NDR_SCALARS
) {
13007 NDR_CHECK(ndr_pull_align(ndr
, 8));
13008 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
13010 uint32_t _flags_save_string
= ndr
->flags
;
13011 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13012 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
13013 if (_ptr_driver_name
) {
13014 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
13015 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
13017 r
->driver_name
= NULL
;
13019 ndr
->flags
= _flags_save_string
;
13022 uint32_t _flags_save_string
= ndr
->flags
;
13023 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13024 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
13025 if (_ptr_architecture
) {
13026 NDR_PULL_ALLOC(ndr
, r
->architecture
);
13027 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
13029 r
->architecture
= NULL
;
13031 ndr
->flags
= _flags_save_string
;
13034 uint32_t _flags_save_string
= ndr
->flags
;
13035 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13036 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
13037 if (_ptr_driver_path
) {
13038 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
13039 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
13041 r
->driver_path
= NULL
;
13043 ndr
->flags
= _flags_save_string
;
13046 uint32_t _flags_save_string
= ndr
->flags
;
13047 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13048 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
13049 if (_ptr_data_file
) {
13050 NDR_PULL_ALLOC(ndr
, r
->data_file
);
13051 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
13053 r
->data_file
= NULL
;
13055 ndr
->flags
= _flags_save_string
;
13058 uint32_t _flags_save_string
= ndr
->flags
;
13059 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13060 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
13061 if (_ptr_config_file
) {
13062 NDR_PULL_ALLOC(ndr
, r
->config_file
);
13063 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
13065 r
->config_file
= NULL
;
13067 ndr
->flags
= _flags_save_string
;
13070 uint32_t _flags_save_string
= ndr
->flags
;
13071 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13072 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
13073 if (_ptr_help_file
) {
13074 NDR_PULL_ALLOC(ndr
, r
->help_file
);
13075 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
13077 r
->help_file
= NULL
;
13079 ndr
->flags
= _flags_save_string
;
13082 uint32_t _flags_save_string_array
= ndr
->flags
;
13083 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13084 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
13085 if (_ptr_dependent_files
) {
13086 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
13087 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
13089 r
->dependent_files
= NULL
;
13091 ndr
->flags
= _flags_save_string_array
;
13094 uint32_t _flags_save_string
= ndr
->flags
;
13095 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13096 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
13097 if (_ptr_monitor_name
) {
13098 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
13099 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
13101 r
->monitor_name
= NULL
;
13103 ndr
->flags
= _flags_save_string
;
13106 uint32_t _flags_save_string
= ndr
->flags
;
13107 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13108 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
13109 if (_ptr_default_datatype
) {
13110 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
13111 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
13113 r
->default_datatype
= NULL
;
13115 ndr
->flags
= _flags_save_string
;
13118 uint32_t _flags_save_string_array
= ndr
->flags
;
13119 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13120 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
13121 if (_ptr_previous_names
) {
13122 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
13123 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
13125 r
->previous_names
= NULL
;
13127 ndr
->flags
= _flags_save_string_array
;
13129 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
13130 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
13132 uint32_t _flags_save_string
= ndr
->flags
;
13133 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13134 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
13135 if (_ptr_manufacturer_name
) {
13136 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
13137 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
13139 r
->manufacturer_name
= NULL
;
13141 ndr
->flags
= _flags_save_string
;
13144 uint32_t _flags_save_string
= ndr
->flags
;
13145 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13146 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
13147 if (_ptr_manufacturer_url
) {
13148 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
13149 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
13151 r
->manufacturer_url
= NULL
;
13153 ndr
->flags
= _flags_save_string
;
13156 uint32_t _flags_save_string
= ndr
->flags
;
13157 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13158 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
13159 if (_ptr_hardware_id
) {
13160 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
13161 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
13163 r
->hardware_id
= NULL
;
13165 ndr
->flags
= _flags_save_string
;
13168 uint32_t _flags_save_string
= ndr
->flags
;
13169 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13170 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
13171 if (_ptr_provider
) {
13172 NDR_PULL_ALLOC(ndr
, r
->provider
);
13173 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
13175 r
->provider
= NULL
;
13177 ndr
->flags
= _flags_save_string
;
13179 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
13181 if (ndr_flags
& NDR_BUFFERS
) {
13183 uint32_t _flags_save_string
= ndr
->flags
;
13184 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13185 if (r
->driver_name
) {
13186 uint32_t _relative_save_offset
;
13187 _relative_save_offset
= ndr
->offset
;
13188 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
13189 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13190 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
13191 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
13192 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
13193 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13194 ndr
->relative_highest_offset
= ndr
->offset
;
13196 ndr
->offset
= _relative_save_offset
;
13198 ndr
->flags
= _flags_save_string
;
13201 uint32_t _flags_save_string
= ndr
->flags
;
13202 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13203 if (r
->architecture
) {
13204 uint32_t _relative_save_offset
;
13205 _relative_save_offset
= ndr
->offset
;
13206 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
13207 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13208 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
13209 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
13210 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
13211 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13212 ndr
->relative_highest_offset
= ndr
->offset
;
13214 ndr
->offset
= _relative_save_offset
;
13216 ndr
->flags
= _flags_save_string
;
13219 uint32_t _flags_save_string
= ndr
->flags
;
13220 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13221 if (r
->driver_path
) {
13222 uint32_t _relative_save_offset
;
13223 _relative_save_offset
= ndr
->offset
;
13224 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
13225 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13226 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
13227 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
13228 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
13229 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13230 ndr
->relative_highest_offset
= ndr
->offset
;
13232 ndr
->offset
= _relative_save_offset
;
13234 ndr
->flags
= _flags_save_string
;
13237 uint32_t _flags_save_string
= ndr
->flags
;
13238 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13239 if (r
->data_file
) {
13240 uint32_t _relative_save_offset
;
13241 _relative_save_offset
= ndr
->offset
;
13242 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
13243 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13244 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
13245 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
13246 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
13247 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13248 ndr
->relative_highest_offset
= ndr
->offset
;
13250 ndr
->offset
= _relative_save_offset
;
13252 ndr
->flags
= _flags_save_string
;
13255 uint32_t _flags_save_string
= ndr
->flags
;
13256 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13257 if (r
->config_file
) {
13258 uint32_t _relative_save_offset
;
13259 _relative_save_offset
= ndr
->offset
;
13260 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
13261 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13262 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
13263 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
13264 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
13265 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13266 ndr
->relative_highest_offset
= ndr
->offset
;
13268 ndr
->offset
= _relative_save_offset
;
13270 ndr
->flags
= _flags_save_string
;
13273 uint32_t _flags_save_string
= ndr
->flags
;
13274 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13275 if (r
->help_file
) {
13276 uint32_t _relative_save_offset
;
13277 _relative_save_offset
= ndr
->offset
;
13278 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
13279 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13280 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
13281 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
13282 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
13283 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13284 ndr
->relative_highest_offset
= ndr
->offset
;
13286 ndr
->offset
= _relative_save_offset
;
13288 ndr
->flags
= _flags_save_string
;
13291 uint32_t _flags_save_string_array
= ndr
->flags
;
13292 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13293 if (r
->dependent_files
) {
13294 uint32_t _relative_save_offset
;
13295 _relative_save_offset
= ndr
->offset
;
13296 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
13297 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13298 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
13299 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
13300 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
13301 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13302 ndr
->relative_highest_offset
= ndr
->offset
;
13304 ndr
->offset
= _relative_save_offset
;
13306 ndr
->flags
= _flags_save_string_array
;
13309 uint32_t _flags_save_string
= ndr
->flags
;
13310 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13311 if (r
->monitor_name
) {
13312 uint32_t _relative_save_offset
;
13313 _relative_save_offset
= ndr
->offset
;
13314 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
13315 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13316 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
13317 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
13318 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
13319 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13320 ndr
->relative_highest_offset
= ndr
->offset
;
13322 ndr
->offset
= _relative_save_offset
;
13324 ndr
->flags
= _flags_save_string
;
13327 uint32_t _flags_save_string
= ndr
->flags
;
13328 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13329 if (r
->default_datatype
) {
13330 uint32_t _relative_save_offset
;
13331 _relative_save_offset
= ndr
->offset
;
13332 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
13333 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13334 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
13335 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
13336 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
13337 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13338 ndr
->relative_highest_offset
= ndr
->offset
;
13340 ndr
->offset
= _relative_save_offset
;
13342 ndr
->flags
= _flags_save_string
;
13345 uint32_t _flags_save_string_array
= ndr
->flags
;
13346 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13347 if (r
->previous_names
) {
13348 uint32_t _relative_save_offset
;
13349 _relative_save_offset
= ndr
->offset
;
13350 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
13351 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13352 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
13353 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
13354 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
13355 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13356 ndr
->relative_highest_offset
= ndr
->offset
;
13358 ndr
->offset
= _relative_save_offset
;
13360 ndr
->flags
= _flags_save_string_array
;
13363 uint32_t _flags_save_string
= ndr
->flags
;
13364 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13365 if (r
->manufacturer_name
) {
13366 uint32_t _relative_save_offset
;
13367 _relative_save_offset
= ndr
->offset
;
13368 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
13369 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13370 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
13371 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
13372 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
13373 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13374 ndr
->relative_highest_offset
= ndr
->offset
;
13376 ndr
->offset
= _relative_save_offset
;
13378 ndr
->flags
= _flags_save_string
;
13381 uint32_t _flags_save_string
= ndr
->flags
;
13382 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13383 if (r
->manufacturer_url
) {
13384 uint32_t _relative_save_offset
;
13385 _relative_save_offset
= ndr
->offset
;
13386 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
13387 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13388 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
13389 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
13390 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
13391 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13392 ndr
->relative_highest_offset
= ndr
->offset
;
13394 ndr
->offset
= _relative_save_offset
;
13396 ndr
->flags
= _flags_save_string
;
13399 uint32_t _flags_save_string
= ndr
->flags
;
13400 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13401 if (r
->hardware_id
) {
13402 uint32_t _relative_save_offset
;
13403 _relative_save_offset
= ndr
->offset
;
13404 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
13405 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13406 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
13407 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
13408 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
13409 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13410 ndr
->relative_highest_offset
= ndr
->offset
;
13412 ndr
->offset
= _relative_save_offset
;
13414 ndr
->flags
= _flags_save_string
;
13417 uint32_t _flags_save_string
= ndr
->flags
;
13418 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13420 uint32_t _relative_save_offset
;
13421 _relative_save_offset
= ndr
->offset
;
13422 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
13423 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13424 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
13425 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
13426 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
13427 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13428 ndr
->relative_highest_offset
= ndr
->offset
;
13430 ndr
->offset
= _relative_save_offset
;
13432 ndr
->flags
= _flags_save_string
;
13435 return NDR_ERR_SUCCESS
;
13438 _PUBLIC_
void ndr_print_spoolss_DriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo6
*r
)
13440 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo6");
13442 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13443 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13445 if (r
->driver_name
) {
13446 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13449 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13451 if (r
->architecture
) {
13452 ndr_print_string(ndr
, "architecture", r
->architecture
);
13455 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
13457 if (r
->driver_path
) {
13458 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
13461 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
13463 if (r
->data_file
) {
13464 ndr_print_string(ndr
, "data_file", r
->data_file
);
13467 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
13469 if (r
->config_file
) {
13470 ndr_print_string(ndr
, "config_file", r
->config_file
);
13473 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
13475 if (r
->help_file
) {
13476 ndr_print_string(ndr
, "help_file", r
->help_file
);
13479 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
13481 if (r
->dependent_files
) {
13482 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
13485 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13487 if (r
->monitor_name
) {
13488 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
13491 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
13493 if (r
->default_datatype
) {
13494 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
13497 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
13499 if (r
->previous_names
) {
13500 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
13503 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
13504 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
13505 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
13507 if (r
->manufacturer_name
) {
13508 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
13511 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
13513 if (r
->manufacturer_url
) {
13514 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
13517 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
13519 if (r
->hardware_id
) {
13520 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
13523 ndr_print_ptr(ndr
, "provider", r
->provider
);
13526 ndr_print_string(ndr
, "provider", r
->provider
);
13532 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13534 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo6
, ic
);
13537 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo7
*r
)
13539 if (ndr_flags
& NDR_SCALARS
) {
13540 NDR_CHECK(ndr_push_align(ndr
, 5));
13541 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
13542 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
13544 uint32_t _flags_save_string
= ndr
->flags
;
13545 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13546 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
13547 ndr
->flags
= _flags_save_string
;
13550 uint32_t _flags_save_string
= ndr
->flags
;
13551 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13552 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->inf_name
));
13553 ndr
->flags
= _flags_save_string
;
13556 uint32_t _flags_save_string
= ndr
->flags
;
13557 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13558 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->install_source_root
));
13559 ndr
->flags
= _flags_save_string
;
13561 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
13563 if (ndr_flags
& NDR_BUFFERS
) {
13565 uint32_t _flags_save_string
= ndr
->flags
;
13566 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13567 if (r
->driver_name
) {
13568 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
13569 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
13570 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
13572 ndr
->flags
= _flags_save_string
;
13575 uint32_t _flags_save_string
= ndr
->flags
;
13576 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13578 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->inf_name
));
13579 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->inf_name
));
13580 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->inf_name
));
13582 ndr
->flags
= _flags_save_string
;
13585 uint32_t _flags_save_string
= ndr
->flags
;
13586 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13587 if (r
->install_source_root
) {
13588 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->install_source_root
));
13589 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->install_source_root
));
13590 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->install_source_root
));
13592 ndr
->flags
= _flags_save_string
;
13595 return NDR_ERR_SUCCESS
;
13598 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo7
*r
)
13600 uint32_t _ptr_driver_name
;
13601 TALLOC_CTX
*_mem_save_driver_name_0
;
13602 uint32_t _ptr_inf_name
;
13603 TALLOC_CTX
*_mem_save_inf_name_0
;
13604 uint32_t _ptr_install_source_root
;
13605 TALLOC_CTX
*_mem_save_install_source_root_0
;
13606 if (ndr_flags
& NDR_SCALARS
) {
13607 NDR_CHECK(ndr_pull_align(ndr
, 5));
13608 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
13609 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
13611 uint32_t _flags_save_string
= ndr
->flags
;
13612 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13613 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
13614 if (_ptr_driver_name
) {
13615 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
13616 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
13618 r
->driver_name
= NULL
;
13620 ndr
->flags
= _flags_save_string
;
13623 uint32_t _flags_save_string
= ndr
->flags
;
13624 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13625 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_name
));
13626 if (_ptr_inf_name
) {
13627 NDR_PULL_ALLOC(ndr
, r
->inf_name
);
13628 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->inf_name
, _ptr_inf_name
));
13630 r
->inf_name
= NULL
;
13632 ndr
->flags
= _flags_save_string
;
13635 uint32_t _flags_save_string
= ndr
->flags
;
13636 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13637 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_install_source_root
));
13638 if (_ptr_install_source_root
) {
13639 NDR_PULL_ALLOC(ndr
, r
->install_source_root
);
13640 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->install_source_root
, _ptr_install_source_root
));
13642 r
->install_source_root
= NULL
;
13644 ndr
->flags
= _flags_save_string
;
13646 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
13648 if (ndr_flags
& NDR_BUFFERS
) {
13650 uint32_t _flags_save_string
= ndr
->flags
;
13651 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13652 if (r
->driver_name
) {
13653 uint32_t _relative_save_offset
;
13654 _relative_save_offset
= ndr
->offset
;
13655 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
13656 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13657 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
13658 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
13659 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
13660 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13661 ndr
->relative_highest_offset
= ndr
->offset
;
13663 ndr
->offset
= _relative_save_offset
;
13665 ndr
->flags
= _flags_save_string
;
13668 uint32_t _flags_save_string
= ndr
->flags
;
13669 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13671 uint32_t _relative_save_offset
;
13672 _relative_save_offset
= ndr
->offset
;
13673 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->inf_name
));
13674 _mem_save_inf_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13675 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_name
, 0);
13676 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->inf_name
));
13677 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_name_0
, 0);
13678 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13679 ndr
->relative_highest_offset
= ndr
->offset
;
13681 ndr
->offset
= _relative_save_offset
;
13683 ndr
->flags
= _flags_save_string
;
13686 uint32_t _flags_save_string
= ndr
->flags
;
13687 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13688 if (r
->install_source_root
) {
13689 uint32_t _relative_save_offset
;
13690 _relative_save_offset
= ndr
->offset
;
13691 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->install_source_root
));
13692 _mem_save_install_source_root_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13693 NDR_PULL_SET_MEM_CTX(ndr
, r
->install_source_root
, 0);
13694 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->install_source_root
));
13695 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_install_source_root_0
, 0);
13696 if (ndr
->offset
> ndr
->relative_highest_offset
) {
13697 ndr
->relative_highest_offset
= ndr
->offset
;
13699 ndr
->offset
= _relative_save_offset
;
13701 ndr
->flags
= _flags_save_string
;
13704 return NDR_ERR_SUCCESS
;
13707 _PUBLIC_
void ndr_print_spoolss_DriverInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo7
*r
)
13709 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo7");
13711 ndr_print_uint32(ndr
, "size", r
->size
);
13712 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13713 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13715 if (r
->driver_name
) {
13716 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13719 ndr_print_ptr(ndr
, "inf_name", r
->inf_name
);
13722 ndr_print_string(ndr
, "inf_name", r
->inf_name
);
13725 ndr_print_ptr(ndr
, "install_source_root", r
->install_source_root
);
13727 if (r
->install_source_root
) {
13728 ndr_print_string(ndr
, "install_source_root", r
->install_source_root
);
13734 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo7(const struct spoolss_DriverInfo7
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13736 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo7
, ic
);
13739 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo8
*r
)
13741 if (ndr_flags
& NDR_SCALARS
) {
13742 NDR_CHECK(ndr_push_align(ndr
, 8));
13743 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
13745 uint32_t _flags_save_string
= ndr
->flags
;
13746 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13747 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
13748 ndr
->flags
= _flags_save_string
;
13751 uint32_t _flags_save_string
= ndr
->flags
;
13752 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13753 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
13754 ndr
->flags
= _flags_save_string
;
13757 uint32_t _flags_save_string
= ndr
->flags
;
13758 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13759 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
13760 ndr
->flags
= _flags_save_string
;
13763 uint32_t _flags_save_string
= ndr
->flags
;
13764 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13765 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
13766 ndr
->flags
= _flags_save_string
;
13769 uint32_t _flags_save_string
= ndr
->flags
;
13770 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13771 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
13772 ndr
->flags
= _flags_save_string
;
13775 uint32_t _flags_save_string
= ndr
->flags
;
13776 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13777 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
13778 ndr
->flags
= _flags_save_string
;
13781 uint32_t _flags_save_string_array
= ndr
->flags
;
13782 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13783 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
13784 ndr
->flags
= _flags_save_string_array
;
13787 uint32_t _flags_save_string
= ndr
->flags
;
13788 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13789 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
13790 ndr
->flags
= _flags_save_string
;
13793 uint32_t _flags_save_string
= ndr
->flags
;
13794 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13795 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
13796 ndr
->flags
= _flags_save_string
;
13799 uint32_t _flags_save_string_array
= ndr
->flags
;
13800 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13801 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
13802 ndr
->flags
= _flags_save_string_array
;
13804 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
13805 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
13807 uint32_t _flags_save_string
= ndr
->flags
;
13808 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13809 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
13810 ndr
->flags
= _flags_save_string
;
13813 uint32_t _flags_save_string
= ndr
->flags
;
13814 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13815 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
13816 ndr
->flags
= _flags_save_string
;
13819 uint32_t _flags_save_string
= ndr
->flags
;
13820 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13821 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
13822 ndr
->flags
= _flags_save_string
;
13825 uint32_t _flags_save_string
= ndr
->flags
;
13826 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13827 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
13828 ndr
->flags
= _flags_save_string
;
13831 uint32_t _flags_save_string
= ndr
->flags
;
13832 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13833 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
13834 ndr
->flags
= _flags_save_string
;
13837 uint32_t _flags_save_string
= ndr
->flags
;
13838 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13839 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->vendor_setup
));
13840 ndr
->flags
= _flags_save_string
;
13843 uint32_t _flags_save_string_array
= ndr
->flags
;
13844 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13845 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->color_profiles
));
13846 ndr
->flags
= _flags_save_string_array
;
13849 uint32_t _flags_save_string
= ndr
->flags
;
13850 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13851 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->inf_path
));
13852 ndr
->flags
= _flags_save_string
;
13854 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
13856 uint32_t _flags_save_string_array
= ndr
->flags
;
13857 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13858 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->core_driver_dependencies
));
13859 ndr
->flags
= _flags_save_string_array
;
13861 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
13862 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
13863 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
13865 if (ndr_flags
& NDR_BUFFERS
) {
13867 uint32_t _flags_save_string
= ndr
->flags
;
13868 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13869 if (r
->driver_name
) {
13870 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_name
));
13871 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
13872 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_name
));
13874 ndr
->flags
= _flags_save_string
;
13877 uint32_t _flags_save_string
= ndr
->flags
;
13878 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13879 if (r
->architecture
) {
13880 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->architecture
));
13881 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
13882 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->architecture
));
13884 ndr
->flags
= _flags_save_string
;
13887 uint32_t _flags_save_string
= ndr
->flags
;
13888 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13889 if (r
->driver_path
) {
13890 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->driver_path
));
13891 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
13892 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->driver_path
));
13894 ndr
->flags
= _flags_save_string
;
13897 uint32_t _flags_save_string
= ndr
->flags
;
13898 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13899 if (r
->data_file
) {
13900 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data_file
));
13901 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
13902 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data_file
));
13904 ndr
->flags
= _flags_save_string
;
13907 uint32_t _flags_save_string
= ndr
->flags
;
13908 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13909 if (r
->config_file
) {
13910 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->config_file
));
13911 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
13912 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->config_file
));
13914 ndr
->flags
= _flags_save_string
;
13917 uint32_t _flags_save_string
= ndr
->flags
;
13918 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13919 if (r
->help_file
) {
13920 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->help_file
));
13921 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
13922 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->help_file
));
13924 ndr
->flags
= _flags_save_string
;
13927 uint32_t _flags_save_string_array
= ndr
->flags
;
13928 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13929 if (r
->dependent_files
) {
13930 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dependent_files
));
13931 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
13932 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dependent_files
));
13934 ndr
->flags
= _flags_save_string_array
;
13937 uint32_t _flags_save_string
= ndr
->flags
;
13938 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13939 if (r
->monitor_name
) {
13940 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
13941 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
13942 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
13944 ndr
->flags
= _flags_save_string
;
13947 uint32_t _flags_save_string
= ndr
->flags
;
13948 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13949 if (r
->default_datatype
) {
13950 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->default_datatype
));
13951 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
13952 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->default_datatype
));
13954 ndr
->flags
= _flags_save_string
;
13957 uint32_t _flags_save_string_array
= ndr
->flags
;
13958 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13959 if (r
->previous_names
) {
13960 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->previous_names
));
13961 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
13962 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->previous_names
));
13964 ndr
->flags
= _flags_save_string_array
;
13967 uint32_t _flags_save_string
= ndr
->flags
;
13968 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13969 if (r
->manufacturer_name
) {
13970 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->manufacturer_name
));
13971 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
13972 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->manufacturer_name
));
13974 ndr
->flags
= _flags_save_string
;
13977 uint32_t _flags_save_string
= ndr
->flags
;
13978 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13979 if (r
->manufacturer_url
) {
13980 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->manufacturer_url
));
13981 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
13982 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->manufacturer_url
));
13984 ndr
->flags
= _flags_save_string
;
13987 uint32_t _flags_save_string
= ndr
->flags
;
13988 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13989 if (r
->hardware_id
) {
13990 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->hardware_id
));
13991 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
13992 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->hardware_id
));
13994 ndr
->flags
= _flags_save_string
;
13997 uint32_t _flags_save_string
= ndr
->flags
;
13998 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14000 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->provider
));
14001 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
14002 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->provider
));
14004 ndr
->flags
= _flags_save_string
;
14007 uint32_t _flags_save_string
= ndr
->flags
;
14008 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14009 if (r
->print_processor
) {
14010 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->print_processor
));
14011 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
14012 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->print_processor
));
14014 ndr
->flags
= _flags_save_string
;
14017 uint32_t _flags_save_string
= ndr
->flags
;
14018 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14019 if (r
->vendor_setup
) {
14020 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->vendor_setup
));
14021 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->vendor_setup
));
14022 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->vendor_setup
));
14024 ndr
->flags
= _flags_save_string
;
14027 uint32_t _flags_save_string_array
= ndr
->flags
;
14028 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14029 if (r
->color_profiles
) {
14030 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->color_profiles
));
14031 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->color_profiles
));
14032 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->color_profiles
));
14034 ndr
->flags
= _flags_save_string_array
;
14037 uint32_t _flags_save_string
= ndr
->flags
;
14038 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14040 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->inf_path
));
14041 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->inf_path
));
14042 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->inf_path
));
14044 ndr
->flags
= _flags_save_string
;
14047 uint32_t _flags_save_string_array
= ndr
->flags
;
14048 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14049 if (r
->core_driver_dependencies
) {
14050 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->core_driver_dependencies
));
14051 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
14052 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->core_driver_dependencies
));
14054 ndr
->flags
= _flags_save_string_array
;
14057 return NDR_ERR_SUCCESS
;
14060 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo8
*r
)
14062 uint32_t _ptr_driver_name
;
14063 TALLOC_CTX
*_mem_save_driver_name_0
;
14064 uint32_t _ptr_architecture
;
14065 TALLOC_CTX
*_mem_save_architecture_0
;
14066 uint32_t _ptr_driver_path
;
14067 TALLOC_CTX
*_mem_save_driver_path_0
;
14068 uint32_t _ptr_data_file
;
14069 TALLOC_CTX
*_mem_save_data_file_0
;
14070 uint32_t _ptr_config_file
;
14071 TALLOC_CTX
*_mem_save_config_file_0
;
14072 uint32_t _ptr_help_file
;
14073 TALLOC_CTX
*_mem_save_help_file_0
;
14074 uint32_t _ptr_dependent_files
;
14075 TALLOC_CTX
*_mem_save_dependent_files_0
;
14076 uint32_t _ptr_monitor_name
;
14077 TALLOC_CTX
*_mem_save_monitor_name_0
;
14078 uint32_t _ptr_default_datatype
;
14079 TALLOC_CTX
*_mem_save_default_datatype_0
;
14080 uint32_t _ptr_previous_names
;
14081 TALLOC_CTX
*_mem_save_previous_names_0
;
14082 uint32_t _ptr_manufacturer_name
;
14083 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
14084 uint32_t _ptr_manufacturer_url
;
14085 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
14086 uint32_t _ptr_hardware_id
;
14087 TALLOC_CTX
*_mem_save_hardware_id_0
;
14088 uint32_t _ptr_provider
;
14089 TALLOC_CTX
*_mem_save_provider_0
;
14090 uint32_t _ptr_print_processor
;
14091 TALLOC_CTX
*_mem_save_print_processor_0
;
14092 uint32_t _ptr_vendor_setup
;
14093 TALLOC_CTX
*_mem_save_vendor_setup_0
;
14094 uint32_t _ptr_color_profiles
;
14095 TALLOC_CTX
*_mem_save_color_profiles_0
;
14096 uint32_t _ptr_inf_path
;
14097 TALLOC_CTX
*_mem_save_inf_path_0
;
14098 uint32_t _ptr_core_driver_dependencies
;
14099 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
14100 if (ndr_flags
& NDR_SCALARS
) {
14101 NDR_CHECK(ndr_pull_align(ndr
, 8));
14102 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
14104 uint32_t _flags_save_string
= ndr
->flags
;
14105 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14106 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
14107 if (_ptr_driver_name
) {
14108 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
14109 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
14111 r
->driver_name
= NULL
;
14113 ndr
->flags
= _flags_save_string
;
14116 uint32_t _flags_save_string
= ndr
->flags
;
14117 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14118 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
14119 if (_ptr_architecture
) {
14120 NDR_PULL_ALLOC(ndr
, r
->architecture
);
14121 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
14123 r
->architecture
= NULL
;
14125 ndr
->flags
= _flags_save_string
;
14128 uint32_t _flags_save_string
= ndr
->flags
;
14129 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14130 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
14131 if (_ptr_driver_path
) {
14132 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
14133 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
14135 r
->driver_path
= NULL
;
14137 ndr
->flags
= _flags_save_string
;
14140 uint32_t _flags_save_string
= ndr
->flags
;
14141 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14142 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
14143 if (_ptr_data_file
) {
14144 NDR_PULL_ALLOC(ndr
, r
->data_file
);
14145 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
14147 r
->data_file
= NULL
;
14149 ndr
->flags
= _flags_save_string
;
14152 uint32_t _flags_save_string
= ndr
->flags
;
14153 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14154 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
14155 if (_ptr_config_file
) {
14156 NDR_PULL_ALLOC(ndr
, r
->config_file
);
14157 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
14159 r
->config_file
= NULL
;
14161 ndr
->flags
= _flags_save_string
;
14164 uint32_t _flags_save_string
= ndr
->flags
;
14165 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14166 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
14167 if (_ptr_help_file
) {
14168 NDR_PULL_ALLOC(ndr
, r
->help_file
);
14169 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
14171 r
->help_file
= NULL
;
14173 ndr
->flags
= _flags_save_string
;
14176 uint32_t _flags_save_string_array
= ndr
->flags
;
14177 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14178 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
14179 if (_ptr_dependent_files
) {
14180 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
14181 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
14183 r
->dependent_files
= NULL
;
14185 ndr
->flags
= _flags_save_string_array
;
14188 uint32_t _flags_save_string
= ndr
->flags
;
14189 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14190 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
14191 if (_ptr_monitor_name
) {
14192 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
14193 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
14195 r
->monitor_name
= NULL
;
14197 ndr
->flags
= _flags_save_string
;
14200 uint32_t _flags_save_string
= ndr
->flags
;
14201 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14202 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
14203 if (_ptr_default_datatype
) {
14204 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
14205 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
14207 r
->default_datatype
= NULL
;
14209 ndr
->flags
= _flags_save_string
;
14212 uint32_t _flags_save_string_array
= ndr
->flags
;
14213 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14214 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
14215 if (_ptr_previous_names
) {
14216 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
14217 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
14219 r
->previous_names
= NULL
;
14221 ndr
->flags
= _flags_save_string_array
;
14223 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
14224 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
14226 uint32_t _flags_save_string
= ndr
->flags
;
14227 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14228 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
14229 if (_ptr_manufacturer_name
) {
14230 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
14231 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
14233 r
->manufacturer_name
= NULL
;
14235 ndr
->flags
= _flags_save_string
;
14238 uint32_t _flags_save_string
= ndr
->flags
;
14239 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14240 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
14241 if (_ptr_manufacturer_url
) {
14242 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
14243 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
14245 r
->manufacturer_url
= NULL
;
14247 ndr
->flags
= _flags_save_string
;
14250 uint32_t _flags_save_string
= ndr
->flags
;
14251 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14252 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
14253 if (_ptr_hardware_id
) {
14254 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
14255 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
14257 r
->hardware_id
= NULL
;
14259 ndr
->flags
= _flags_save_string
;
14262 uint32_t _flags_save_string
= ndr
->flags
;
14263 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14264 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
14265 if (_ptr_provider
) {
14266 NDR_PULL_ALLOC(ndr
, r
->provider
);
14267 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
14269 r
->provider
= NULL
;
14271 ndr
->flags
= _flags_save_string
;
14274 uint32_t _flags_save_string
= ndr
->flags
;
14275 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14276 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
14277 if (_ptr_print_processor
) {
14278 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
14279 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
14281 r
->print_processor
= NULL
;
14283 ndr
->flags
= _flags_save_string
;
14286 uint32_t _flags_save_string
= ndr
->flags
;
14287 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14288 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
14289 if (_ptr_vendor_setup
) {
14290 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
14291 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->vendor_setup
, _ptr_vendor_setup
));
14293 r
->vendor_setup
= NULL
;
14295 ndr
->flags
= _flags_save_string
;
14298 uint32_t _flags_save_string_array
= ndr
->flags
;
14299 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14300 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
14301 if (_ptr_color_profiles
) {
14302 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
14303 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->color_profiles
, _ptr_color_profiles
));
14305 r
->color_profiles
= NULL
;
14307 ndr
->flags
= _flags_save_string_array
;
14310 uint32_t _flags_save_string
= ndr
->flags
;
14311 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14312 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
14313 if (_ptr_inf_path
) {
14314 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
14315 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->inf_path
, _ptr_inf_path
));
14317 r
->inf_path
= NULL
;
14319 ndr
->flags
= _flags_save_string
;
14321 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
14323 uint32_t _flags_save_string_array
= ndr
->flags
;
14324 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14325 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
14326 if (_ptr_core_driver_dependencies
) {
14327 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
14328 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->core_driver_dependencies
, _ptr_core_driver_dependencies
));
14330 r
->core_driver_dependencies
= NULL
;
14332 ndr
->flags
= _flags_save_string_array
;
14334 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
14335 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
14336 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
14338 if (ndr_flags
& NDR_BUFFERS
) {
14340 uint32_t _flags_save_string
= ndr
->flags
;
14341 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14342 if (r
->driver_name
) {
14343 uint32_t _relative_save_offset
;
14344 _relative_save_offset
= ndr
->offset
;
14345 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
14346 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14347 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
14348 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
14349 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
14350 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14351 ndr
->relative_highest_offset
= ndr
->offset
;
14353 ndr
->offset
= _relative_save_offset
;
14355 ndr
->flags
= _flags_save_string
;
14358 uint32_t _flags_save_string
= ndr
->flags
;
14359 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14360 if (r
->architecture
) {
14361 uint32_t _relative_save_offset
;
14362 _relative_save_offset
= ndr
->offset
;
14363 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
14364 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14365 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
14366 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
14367 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
14368 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14369 ndr
->relative_highest_offset
= ndr
->offset
;
14371 ndr
->offset
= _relative_save_offset
;
14373 ndr
->flags
= _flags_save_string
;
14376 uint32_t _flags_save_string
= ndr
->flags
;
14377 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14378 if (r
->driver_path
) {
14379 uint32_t _relative_save_offset
;
14380 _relative_save_offset
= ndr
->offset
;
14381 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
14382 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14383 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
14384 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
14385 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
14386 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14387 ndr
->relative_highest_offset
= ndr
->offset
;
14389 ndr
->offset
= _relative_save_offset
;
14391 ndr
->flags
= _flags_save_string
;
14394 uint32_t _flags_save_string
= ndr
->flags
;
14395 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14396 if (r
->data_file
) {
14397 uint32_t _relative_save_offset
;
14398 _relative_save_offset
= ndr
->offset
;
14399 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
14400 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14401 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
14402 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
14403 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
14404 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14405 ndr
->relative_highest_offset
= ndr
->offset
;
14407 ndr
->offset
= _relative_save_offset
;
14409 ndr
->flags
= _flags_save_string
;
14412 uint32_t _flags_save_string
= ndr
->flags
;
14413 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14414 if (r
->config_file
) {
14415 uint32_t _relative_save_offset
;
14416 _relative_save_offset
= ndr
->offset
;
14417 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
14418 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14419 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
14420 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
14421 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
14422 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14423 ndr
->relative_highest_offset
= ndr
->offset
;
14425 ndr
->offset
= _relative_save_offset
;
14427 ndr
->flags
= _flags_save_string
;
14430 uint32_t _flags_save_string
= ndr
->flags
;
14431 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14432 if (r
->help_file
) {
14433 uint32_t _relative_save_offset
;
14434 _relative_save_offset
= ndr
->offset
;
14435 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
14436 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14437 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
14438 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
14439 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
14440 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14441 ndr
->relative_highest_offset
= ndr
->offset
;
14443 ndr
->offset
= _relative_save_offset
;
14445 ndr
->flags
= _flags_save_string
;
14448 uint32_t _flags_save_string_array
= ndr
->flags
;
14449 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14450 if (r
->dependent_files
) {
14451 uint32_t _relative_save_offset
;
14452 _relative_save_offset
= ndr
->offset
;
14453 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
14454 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14455 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
14456 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
14457 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
14458 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14459 ndr
->relative_highest_offset
= ndr
->offset
;
14461 ndr
->offset
= _relative_save_offset
;
14463 ndr
->flags
= _flags_save_string_array
;
14466 uint32_t _flags_save_string
= ndr
->flags
;
14467 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14468 if (r
->monitor_name
) {
14469 uint32_t _relative_save_offset
;
14470 _relative_save_offset
= ndr
->offset
;
14471 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
14472 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14473 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
14474 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
14475 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
14476 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14477 ndr
->relative_highest_offset
= ndr
->offset
;
14479 ndr
->offset
= _relative_save_offset
;
14481 ndr
->flags
= _flags_save_string
;
14484 uint32_t _flags_save_string
= ndr
->flags
;
14485 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14486 if (r
->default_datatype
) {
14487 uint32_t _relative_save_offset
;
14488 _relative_save_offset
= ndr
->offset
;
14489 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
14490 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14491 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
14492 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
14493 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
14494 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14495 ndr
->relative_highest_offset
= ndr
->offset
;
14497 ndr
->offset
= _relative_save_offset
;
14499 ndr
->flags
= _flags_save_string
;
14502 uint32_t _flags_save_string_array
= ndr
->flags
;
14503 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14504 if (r
->previous_names
) {
14505 uint32_t _relative_save_offset
;
14506 _relative_save_offset
= ndr
->offset
;
14507 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
14508 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14509 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
14510 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
14511 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
14512 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14513 ndr
->relative_highest_offset
= ndr
->offset
;
14515 ndr
->offset
= _relative_save_offset
;
14517 ndr
->flags
= _flags_save_string_array
;
14520 uint32_t _flags_save_string
= ndr
->flags
;
14521 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14522 if (r
->manufacturer_name
) {
14523 uint32_t _relative_save_offset
;
14524 _relative_save_offset
= ndr
->offset
;
14525 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
14526 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14527 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
14528 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
14529 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
14530 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14531 ndr
->relative_highest_offset
= ndr
->offset
;
14533 ndr
->offset
= _relative_save_offset
;
14535 ndr
->flags
= _flags_save_string
;
14538 uint32_t _flags_save_string
= ndr
->flags
;
14539 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14540 if (r
->manufacturer_url
) {
14541 uint32_t _relative_save_offset
;
14542 _relative_save_offset
= ndr
->offset
;
14543 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
14544 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14545 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
14546 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
14547 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
14548 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14549 ndr
->relative_highest_offset
= ndr
->offset
;
14551 ndr
->offset
= _relative_save_offset
;
14553 ndr
->flags
= _flags_save_string
;
14556 uint32_t _flags_save_string
= ndr
->flags
;
14557 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14558 if (r
->hardware_id
) {
14559 uint32_t _relative_save_offset
;
14560 _relative_save_offset
= ndr
->offset
;
14561 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
14562 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14563 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
14564 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
14565 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
14566 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14567 ndr
->relative_highest_offset
= ndr
->offset
;
14569 ndr
->offset
= _relative_save_offset
;
14571 ndr
->flags
= _flags_save_string
;
14574 uint32_t _flags_save_string
= ndr
->flags
;
14575 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14577 uint32_t _relative_save_offset
;
14578 _relative_save_offset
= ndr
->offset
;
14579 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
14580 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14581 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
14582 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
14583 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
14584 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14585 ndr
->relative_highest_offset
= ndr
->offset
;
14587 ndr
->offset
= _relative_save_offset
;
14589 ndr
->flags
= _flags_save_string
;
14592 uint32_t _flags_save_string
= ndr
->flags
;
14593 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14594 if (r
->print_processor
) {
14595 uint32_t _relative_save_offset
;
14596 _relative_save_offset
= ndr
->offset
;
14597 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
14598 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14599 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
14600 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
14601 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
14602 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14603 ndr
->relative_highest_offset
= ndr
->offset
;
14605 ndr
->offset
= _relative_save_offset
;
14607 ndr
->flags
= _flags_save_string
;
14610 uint32_t _flags_save_string
= ndr
->flags
;
14611 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14612 if (r
->vendor_setup
) {
14613 uint32_t _relative_save_offset
;
14614 _relative_save_offset
= ndr
->offset
;
14615 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->vendor_setup
));
14616 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14617 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
14618 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->vendor_setup
));
14619 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
14620 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14621 ndr
->relative_highest_offset
= ndr
->offset
;
14623 ndr
->offset
= _relative_save_offset
;
14625 ndr
->flags
= _flags_save_string
;
14628 uint32_t _flags_save_string_array
= ndr
->flags
;
14629 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14630 if (r
->color_profiles
) {
14631 uint32_t _relative_save_offset
;
14632 _relative_save_offset
= ndr
->offset
;
14633 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->color_profiles
));
14634 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14635 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
14636 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->color_profiles
));
14637 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
14638 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14639 ndr
->relative_highest_offset
= ndr
->offset
;
14641 ndr
->offset
= _relative_save_offset
;
14643 ndr
->flags
= _flags_save_string_array
;
14646 uint32_t _flags_save_string
= ndr
->flags
;
14647 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14649 uint32_t _relative_save_offset
;
14650 _relative_save_offset
= ndr
->offset
;
14651 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->inf_path
));
14652 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14653 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
14654 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->inf_path
));
14655 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
14656 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14657 ndr
->relative_highest_offset
= ndr
->offset
;
14659 ndr
->offset
= _relative_save_offset
;
14661 ndr
->flags
= _flags_save_string
;
14664 uint32_t _flags_save_string_array
= ndr
->flags
;
14665 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14666 if (r
->core_driver_dependencies
) {
14667 uint32_t _relative_save_offset
;
14668 _relative_save_offset
= ndr
->offset
;
14669 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->core_driver_dependencies
));
14670 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14671 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
14672 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->core_driver_dependencies
));
14673 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
14674 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14675 ndr
->relative_highest_offset
= ndr
->offset
;
14677 ndr
->offset
= _relative_save_offset
;
14679 ndr
->flags
= _flags_save_string_array
;
14682 return NDR_ERR_SUCCESS
;
14685 _PUBLIC_
void ndr_print_spoolss_DriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo8
*r
)
14687 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo8");
14689 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
14690 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
14692 if (r
->driver_name
) {
14693 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
14696 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
14698 if (r
->architecture
) {
14699 ndr_print_string(ndr
, "architecture", r
->architecture
);
14702 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
14704 if (r
->driver_path
) {
14705 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
14708 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
14710 if (r
->data_file
) {
14711 ndr_print_string(ndr
, "data_file", r
->data_file
);
14714 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
14716 if (r
->config_file
) {
14717 ndr_print_string(ndr
, "config_file", r
->config_file
);
14720 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
14722 if (r
->help_file
) {
14723 ndr_print_string(ndr
, "help_file", r
->help_file
);
14726 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
14728 if (r
->dependent_files
) {
14729 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
14732 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
14734 if (r
->monitor_name
) {
14735 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
14738 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
14740 if (r
->default_datatype
) {
14741 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
14744 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
14746 if (r
->previous_names
) {
14747 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
14750 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
14751 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
14752 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
14754 if (r
->manufacturer_name
) {
14755 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
14758 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
14760 if (r
->manufacturer_url
) {
14761 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
14764 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
14766 if (r
->hardware_id
) {
14767 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
14770 ndr_print_ptr(ndr
, "provider", r
->provider
);
14773 ndr_print_string(ndr
, "provider", r
->provider
);
14776 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
14778 if (r
->print_processor
) {
14779 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
14782 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
14784 if (r
->vendor_setup
) {
14785 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
14788 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
14790 if (r
->color_profiles
) {
14791 ndr_print_string_array(ndr
, "color_profiles", r
->color_profiles
);
14794 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
14797 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
14800 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
14801 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
14803 if (r
->core_driver_dependencies
) {
14804 ndr_print_string_array(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
14807 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
14808 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
14812 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14814 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo8
, ic
);
14817 static enum ndr_err_code
ndr_push_spoolss_DriverFileType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverFileType r
)
14819 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
14820 return NDR_ERR_SUCCESS
;
14823 static enum ndr_err_code
ndr_pull_spoolss_DriverFileType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverFileType
*r
)
14826 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
14828 return NDR_ERR_SUCCESS
;
14831 _PUBLIC_
void ndr_print_spoolss_DriverFileType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverFileType r
)
14833 const char *val
= NULL
;
14836 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING
: val
= "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
14837 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION
: val
= "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
14838 case SPOOLSS_DRIVER_FILE_TYPE_DATA
: val
= "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
14839 case SPOOLSS_DRIVER_FILE_TYPE_HELP
: val
= "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
14840 case SPOOLSS_DRIVER_FILE_TYPE_OTHER
: val
= "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
14842 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
14845 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverFileInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverFileInfo
*r
)
14847 if (ndr_flags
& NDR_SCALARS
) {
14848 NDR_CHECK(ndr_push_align(ndr
, 5));
14850 uint32_t _flags_save_string
= ndr
->flags
;
14851 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14852 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->file_name
));
14853 ndr
->flags
= _flags_save_string
;
14855 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr
, NDR_SCALARS
, r
->file_type
));
14856 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->file_version
));
14857 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
14859 if (ndr_flags
& NDR_BUFFERS
) {
14861 uint32_t _flags_save_string
= ndr
->flags
;
14862 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14863 if (r
->file_name
) {
14864 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->file_name
));
14865 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->file_name
));
14866 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->file_name
));
14868 ndr
->flags
= _flags_save_string
;
14871 return NDR_ERR_SUCCESS
;
14874 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverFileInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverFileInfo
*r
)
14876 uint32_t _ptr_file_name
;
14877 TALLOC_CTX
*_mem_save_file_name_0
;
14878 if (ndr_flags
& NDR_SCALARS
) {
14879 NDR_CHECK(ndr_pull_align(ndr
, 5));
14881 uint32_t _flags_save_string
= ndr
->flags
;
14882 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14883 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_file_name
));
14884 if (_ptr_file_name
) {
14885 NDR_PULL_ALLOC(ndr
, r
->file_name
);
14886 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->file_name
, _ptr_file_name
));
14888 r
->file_name
= NULL
;
14890 ndr
->flags
= _flags_save_string
;
14892 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr
, NDR_SCALARS
, &r
->file_type
));
14893 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->file_version
));
14894 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
14896 if (ndr_flags
& NDR_BUFFERS
) {
14898 uint32_t _flags_save_string
= ndr
->flags
;
14899 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14900 if (r
->file_name
) {
14901 uint32_t _relative_save_offset
;
14902 _relative_save_offset
= ndr
->offset
;
14903 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->file_name
));
14904 _mem_save_file_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14905 NDR_PULL_SET_MEM_CTX(ndr
, r
->file_name
, 0);
14906 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->file_name
));
14907 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_file_name_0
, 0);
14908 if (ndr
->offset
> ndr
->relative_highest_offset
) {
14909 ndr
->relative_highest_offset
= ndr
->offset
;
14911 ndr
->offset
= _relative_save_offset
;
14913 ndr
->flags
= _flags_save_string
;
14916 return NDR_ERR_SUCCESS
;
14919 _PUBLIC_
void ndr_print_spoolss_DriverFileInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverFileInfo
*r
)
14921 ndr_print_struct(ndr
, name
, "spoolss_DriverFileInfo");
14923 ndr_print_ptr(ndr
, "file_name", r
->file_name
);
14925 if (r
->file_name
) {
14926 ndr_print_string(ndr
, "file_name", r
->file_name
);
14929 ndr_print_spoolss_DriverFileType(ndr
, "file_type", r
->file_type
);
14930 ndr_print_uint32(ndr
, "file_version", r
->file_version
);
14934 _PUBLIC_
void ndr_print_spoolss_DriverInfo101(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo101
*r
)
14936 uint32_t cntr_file_info_1
;
14937 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo101");
14939 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
14940 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
14942 if (r
->driver_name
) {
14943 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
14946 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
14948 if (r
->architecture
) {
14949 ndr_print_string(ndr
, "architecture", r
->architecture
);
14952 ndr_print_ptr(ndr
, "file_info", r
->file_info
);
14954 if (r
->file_info
) {
14955 ndr
->print(ndr
, "%s: ARRAY(%d)", "file_info", (int)r
->file_count
);
14957 for (cntr_file_info_1
=0;cntr_file_info_1
<r
->file_count
;cntr_file_info_1
++) {
14959 if (asprintf(&idx_1
, "[%d]", cntr_file_info_1
) != -1) {
14960 ndr_print_spoolss_DriverFileInfo(ndr
, "file_info", &r
->file_info
[cntr_file_info_1
]);
14967 ndr_print_uint32(ndr
, "file_count", r
->file_count
);
14968 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
14970 if (r
->monitor_name
) {
14971 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
14974 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
14976 if (r
->default_datatype
) {
14977 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
14980 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
14982 if (r
->previous_names
) {
14983 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
14986 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
14987 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
14988 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
14990 if (r
->manufacturer_name
) {
14991 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
14994 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
14996 if (r
->manufacturer_url
) {
14997 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
15000 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
15002 if (r
->hardware_id
) {
15003 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
15006 ndr_print_ptr(ndr
, "provider", r
->provider
);
15009 ndr_print_string(ndr
, "provider", r
->provider
);
15015 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15017 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo101
, ic
);
15020 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverInfo
*r
)
15022 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15024 uint32_t _flags_save_UNION
= ndr
->flags
;
15025 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15026 if (ndr_flags
& NDR_SCALARS
) {
15027 int level
= ndr_push_get_switch_value(ndr
, r
);
15028 NDR_CHECK(ndr_push_union_align(ndr
, 8));
15031 NDR_CHECK(ndr_push_align(ndr
, 5));
15032 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15033 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15037 NDR_CHECK(ndr_push_align(ndr
, 5));
15038 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15039 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15043 NDR_CHECK(ndr_push_align(ndr
, 5));
15044 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15045 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
15049 NDR_CHECK(ndr_push_align(ndr
, 5));
15050 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15051 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
15055 NDR_CHECK(ndr_push_align(ndr
, 5));
15056 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15057 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
15061 NDR_CHECK(ndr_push_align(ndr
, 8));
15062 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15063 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
15067 NDR_CHECK(ndr_push_align(ndr
, 5));
15068 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15069 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
15073 NDR_CHECK(ndr_push_align(ndr
, 8));
15074 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15075 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
15079 NDR_CHECK(ndr_push_align(ndr
, 8));
15080 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15081 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
15089 if (ndr_flags
& NDR_BUFFERS
) {
15090 int level
= ndr_push_get_switch_value(ndr
, r
);
15091 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15094 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15098 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15102 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
15106 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
15110 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
15114 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
15118 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
15122 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
15126 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
15134 ndr
->flags
= _flags_save_UNION
;
15136 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15137 return NDR_ERR_SUCCESS
;
15140 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverInfo
*r
)
15142 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15145 uint32_t _flags_save_UNION
= ndr
->flags
;
15146 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15147 level
= ndr_pull_get_switch_value(ndr
, r
);
15148 if (ndr_flags
& NDR_SCALARS
) {
15149 NDR_CHECK(ndr_pull_union_align(ndr
, 8));
15152 NDR_CHECK(ndr_pull_align(ndr
, 5));
15153 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15154 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15158 NDR_CHECK(ndr_pull_align(ndr
, 5));
15159 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15160 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15164 NDR_CHECK(ndr_pull_align(ndr
, 5));
15165 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15166 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
15170 NDR_CHECK(ndr_pull_align(ndr
, 5));
15171 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15172 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
15176 NDR_CHECK(ndr_pull_align(ndr
, 5));
15177 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15178 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
15182 NDR_CHECK(ndr_pull_align(ndr
, 8));
15183 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15184 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
15188 NDR_CHECK(ndr_pull_align(ndr
, 5));
15189 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15190 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
15194 NDR_CHECK(ndr_pull_align(ndr
, 8));
15195 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15196 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
15200 NDR_CHECK(ndr_pull_align(ndr
, 8));
15201 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15202 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
15210 if (ndr_flags
& NDR_BUFFERS
) {
15211 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15214 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15218 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15222 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
15226 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
15230 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
15234 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
15238 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
15242 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
15246 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
15254 ndr
->flags
= _flags_save_UNION
;
15256 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15257 return NDR_ERR_SUCCESS
;
15260 _PUBLIC_
void ndr_print_spoolss_DriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverInfo
*r
)
15264 uint32_t _flags_save_UNION
= ndr
->flags
;
15265 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15266 level
= ndr_print_get_switch_value(ndr
, r
);
15267 ndr_print_union(ndr
, name
, level
, "spoolss_DriverInfo");
15270 ndr_print_spoolss_DriverInfo1(ndr
, "info1", &r
->info1
);
15274 ndr_print_spoolss_DriverInfo2(ndr
, "info2", &r
->info2
);
15278 ndr_print_spoolss_DriverInfo3(ndr
, "info3", &r
->info3
);
15282 ndr_print_spoolss_DriverInfo4(ndr
, "info4", &r
->info4
);
15286 ndr_print_spoolss_DriverInfo5(ndr
, "info5", &r
->info5
);
15290 ndr_print_spoolss_DriverInfo6(ndr
, "info6", &r
->info6
);
15294 ndr_print_spoolss_DriverInfo7(ndr
, "info7", &r
->info7
);
15298 ndr_print_spoolss_DriverInfo8(ndr
, "info8", &r
->info8
);
15302 ndr_print_spoolss_DriverInfo101(ndr
, "info101", &r
->info101
);
15309 ndr
->flags
= _flags_save_UNION
;
15313 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15315 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
15316 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo
, ic
);
15319 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverDirectoryInfo1
*r
)
15321 if (ndr_flags
& NDR_SCALARS
) {
15322 NDR_CHECK(ndr_push_align(ndr
, 4));
15324 uint32_t _flags_save_string
= ndr
->flags
;
15325 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15326 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
15327 ndr
->flags
= _flags_save_string
;
15329 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15331 if (ndr_flags
& NDR_BUFFERS
) {
15333 return NDR_ERR_SUCCESS
;
15336 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverDirectoryInfo1
*r
)
15338 if (ndr_flags
& NDR_SCALARS
) {
15339 NDR_CHECK(ndr_pull_align(ndr
, 4));
15341 uint32_t _flags_save_string
= ndr
->flags
;
15342 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15343 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
15344 ndr
->flags
= _flags_save_string
;
15346 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15348 if (ndr_flags
& NDR_BUFFERS
) {
15350 return NDR_ERR_SUCCESS
;
15353 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverDirectoryInfo1
*r
)
15355 ndr_print_struct(ndr
, name
, "spoolss_DriverDirectoryInfo1");
15357 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
15361 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15363 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo1
, ic
);
15366 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverDirectoryInfo
*r
)
15368 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15370 uint32_t _flags_save_UNION
= ndr
->flags
;
15371 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15372 if (ndr_flags
& NDR_SCALARS
) {
15373 int level
= ndr_push_get_switch_value(ndr
, r
);
15374 NDR_CHECK(ndr_push_union_align(ndr
, 4));
15377 NDR_CHECK(ndr_push_align(ndr
, 4));
15378 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15379 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15383 NDR_CHECK(ndr_push_align(ndr
, 4));
15384 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15385 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15390 if (ndr_flags
& NDR_BUFFERS
) {
15391 int level
= ndr_push_get_switch_value(ndr
, r
);
15392 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15402 ndr
->flags
= _flags_save_UNION
;
15404 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15405 return NDR_ERR_SUCCESS
;
15408 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverDirectoryInfo
*r
)
15410 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15413 uint32_t _flags_save_UNION
= ndr
->flags
;
15414 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15415 level
= ndr_pull_get_switch_value(ndr
, r
);
15416 if (ndr_flags
& NDR_SCALARS
) {
15417 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
15420 NDR_CHECK(ndr_pull_align(ndr
, 4));
15421 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15422 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15426 NDR_CHECK(ndr_pull_align(ndr
, 4));
15427 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15428 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15433 if (ndr_flags
& NDR_BUFFERS
) {
15434 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15444 ndr
->flags
= _flags_save_UNION
;
15446 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15447 return NDR_ERR_SUCCESS
;
15450 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverDirectoryInfo
*r
)
15454 uint32_t _flags_save_UNION
= ndr
->flags
;
15455 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15456 level
= ndr_print_get_switch_value(ndr
, r
);
15457 ndr_print_union(ndr
, name
, level
, "spoolss_DriverDirectoryInfo");
15460 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
15464 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
15468 ndr
->flags
= _flags_save_UNION
;
15472 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15474 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
15475 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo
, ic
);
15478 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorInfo1
*r
)
15480 if (ndr_flags
& NDR_SCALARS
) {
15481 NDR_CHECK(ndr_push_align(ndr
, 5));
15483 uint32_t _flags_save_string
= ndr
->flags
;
15484 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15485 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor_name
));
15486 ndr
->flags
= _flags_save_string
;
15488 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
15490 if (ndr_flags
& NDR_BUFFERS
) {
15492 uint32_t _flags_save_string
= ndr
->flags
;
15493 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15494 if (r
->print_processor_name
) {
15495 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->print_processor_name
));
15496 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor_name
));
15497 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->print_processor_name
));
15499 ndr
->flags
= _flags_save_string
;
15502 return NDR_ERR_SUCCESS
;
15505 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorInfo1
*r
)
15507 uint32_t _ptr_print_processor_name
;
15508 TALLOC_CTX
*_mem_save_print_processor_name_0
;
15509 if (ndr_flags
& NDR_SCALARS
) {
15510 NDR_CHECK(ndr_pull_align(ndr
, 5));
15512 uint32_t _flags_save_string
= ndr
->flags
;
15513 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15514 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
15515 if (_ptr_print_processor_name
) {
15516 NDR_PULL_ALLOC(ndr
, r
->print_processor_name
);
15517 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor_name
, _ptr_print_processor_name
));
15519 r
->print_processor_name
= NULL
;
15521 ndr
->flags
= _flags_save_string
;
15523 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
15525 if (ndr_flags
& NDR_BUFFERS
) {
15527 uint32_t _flags_save_string
= ndr
->flags
;
15528 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15529 if (r
->print_processor_name
) {
15530 uint32_t _relative_save_offset
;
15531 _relative_save_offset
= ndr
->offset
;
15532 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor_name
));
15533 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15534 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor_name
, 0);
15535 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor_name
));
15536 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
15537 if (ndr
->offset
> ndr
->relative_highest_offset
) {
15538 ndr
->relative_highest_offset
= ndr
->offset
;
15540 ndr
->offset
= _relative_save_offset
;
15542 ndr
->flags
= _flags_save_string
;
15545 return NDR_ERR_SUCCESS
;
15548 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorInfo1
*r
)
15550 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorInfo1");
15552 ndr_print_ptr(ndr
, "print_processor_name", r
->print_processor_name
);
15554 if (r
->print_processor_name
) {
15555 ndr_print_string(ndr
, "print_processor_name", r
->print_processor_name
);
15561 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15563 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorInfo1
, ic
);
15566 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorInfo
*r
)
15568 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15570 uint32_t _flags_save_UNION
= ndr
->flags
;
15571 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15572 if (ndr_flags
& NDR_SCALARS
) {
15573 int level
= ndr_push_get_switch_value(ndr
, r
);
15574 NDR_CHECK(ndr_push_union_align(ndr
, 5));
15577 NDR_CHECK(ndr_push_align(ndr
, 5));
15578 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15579 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15587 if (ndr_flags
& NDR_BUFFERS
) {
15588 int level
= ndr_push_get_switch_value(ndr
, r
);
15589 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15592 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15600 ndr
->flags
= _flags_save_UNION
;
15602 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15603 return NDR_ERR_SUCCESS
;
15606 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorInfo
*r
)
15608 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15611 uint32_t _flags_save_UNION
= ndr
->flags
;
15612 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15613 level
= ndr_pull_get_switch_value(ndr
, r
);
15614 if (ndr_flags
& NDR_SCALARS
) {
15615 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
15618 NDR_CHECK(ndr_pull_align(ndr
, 5));
15619 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15620 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15628 if (ndr_flags
& NDR_BUFFERS
) {
15629 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15632 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15640 ndr
->flags
= _flags_save_UNION
;
15642 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15643 return NDR_ERR_SUCCESS
;
15646 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorInfo
*r
)
15650 uint32_t _flags_save_UNION
= ndr
->flags
;
15651 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15652 level
= ndr_print_get_switch_value(ndr
, r
);
15653 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorInfo");
15656 ndr_print_spoolss_PrintProcessorInfo1(ndr
, "info1", &r
->info1
);
15663 ndr
->flags
= _flags_save_UNION
;
15667 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
15669 if (ndr_flags
& NDR_SCALARS
) {
15670 NDR_CHECK(ndr_push_align(ndr
, 4));
15672 uint32_t _flags_save_string
= ndr
->flags
;
15673 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15674 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
15675 ndr
->flags
= _flags_save_string
;
15677 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15679 if (ndr_flags
& NDR_BUFFERS
) {
15681 return NDR_ERR_SUCCESS
;
15684 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorDirectoryInfo1
*r
)
15686 if (ndr_flags
& NDR_SCALARS
) {
15687 NDR_CHECK(ndr_pull_align(ndr
, 4));
15689 uint32_t _flags_save_string
= ndr
->flags
;
15690 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15691 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
15692 ndr
->flags
= _flags_save_string
;
15694 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15696 if (ndr_flags
& NDR_BUFFERS
) {
15698 return NDR_ERR_SUCCESS
;
15701 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
15703 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorDirectoryInfo1");
15705 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
15709 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15711 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo1
, ic
);
15714 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
15716 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15718 uint32_t _flags_save_UNION
= ndr
->flags
;
15719 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15720 if (ndr_flags
& NDR_SCALARS
) {
15721 int level
= ndr_push_get_switch_value(ndr
, r
);
15722 NDR_CHECK(ndr_push_union_align(ndr
, 4));
15725 NDR_CHECK(ndr_push_align(ndr
, 4));
15726 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15727 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15731 NDR_CHECK(ndr_push_align(ndr
, 4));
15732 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15733 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15738 if (ndr_flags
& NDR_BUFFERS
) {
15739 int level
= ndr_push_get_switch_value(ndr
, r
);
15740 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15750 ndr
->flags
= _flags_save_UNION
;
15752 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15753 return NDR_ERR_SUCCESS
;
15756 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorDirectoryInfo
*r
)
15758 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15761 uint32_t _flags_save_UNION
= ndr
->flags
;
15762 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15763 level
= ndr_pull_get_switch_value(ndr
, r
);
15764 if (ndr_flags
& NDR_SCALARS
) {
15765 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
15768 NDR_CHECK(ndr_pull_align(ndr
, 4));
15769 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15770 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15774 NDR_CHECK(ndr_pull_align(ndr
, 4));
15775 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15776 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15781 if (ndr_flags
& NDR_BUFFERS
) {
15782 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15792 ndr
->flags
= _flags_save_UNION
;
15794 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15795 return NDR_ERR_SUCCESS
;
15798 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
15802 uint32_t _flags_save_UNION
= ndr
->flags
;
15803 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
15804 level
= ndr_print_get_switch_value(ndr
, r
);
15805 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorDirectoryInfo");
15808 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
15812 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
15816 ndr
->flags
= _flags_save_UNION
;
15820 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15822 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
15823 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo
, ic
);
15826 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DocumentInfo1
*r
)
15828 if (ndr_flags
& NDR_SCALARS
) {
15829 NDR_CHECK(ndr_push_align(ndr
, 5));
15830 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
15831 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->output_file
));
15832 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
15833 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
15835 if (ndr_flags
& NDR_BUFFERS
) {
15836 if (r
->document_name
) {
15837 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
15838 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15839 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
15840 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15842 if (r
->output_file
) {
15843 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
15844 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15845 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
15846 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->output_file
, ndr_charset_length(r
->output_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15849 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
15850 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15851 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
15852 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15855 return NDR_ERR_SUCCESS
;
15858 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DocumentInfo1
*r
)
15860 uint32_t _ptr_document_name
;
15861 TALLOC_CTX
*_mem_save_document_name_0
;
15862 uint32_t _ptr_output_file
;
15863 TALLOC_CTX
*_mem_save_output_file_0
;
15864 uint32_t _ptr_datatype
;
15865 TALLOC_CTX
*_mem_save_datatype_0
;
15866 if (ndr_flags
& NDR_SCALARS
) {
15867 NDR_CHECK(ndr_pull_align(ndr
, 5));
15868 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
15869 if (_ptr_document_name
) {
15870 NDR_PULL_ALLOC(ndr
, r
->document_name
);
15872 r
->document_name
= NULL
;
15874 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_output_file
));
15875 if (_ptr_output_file
) {
15876 NDR_PULL_ALLOC(ndr
, r
->output_file
);
15878 r
->output_file
= NULL
;
15880 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
15881 if (_ptr_datatype
) {
15882 NDR_PULL_ALLOC(ndr
, r
->datatype
);
15884 r
->datatype
= NULL
;
15886 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
15888 if (ndr_flags
& NDR_BUFFERS
) {
15889 if (r
->document_name
) {
15890 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15891 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
15892 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
15893 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
15894 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
15895 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->document_name
), ndr_get_array_length(ndr
, &r
->document_name
));
15897 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
15898 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
15899 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
15901 if (r
->output_file
) {
15902 _mem_save_output_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15903 NDR_PULL_SET_MEM_CTX(ndr
, r
->output_file
, 0);
15904 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->output_file
));
15905 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->output_file
));
15906 if (ndr_get_array_length(ndr
, &r
->output_file
) > ndr_get_array_size(ndr
, &r
->output_file
)) {
15907 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->output_file
), ndr_get_array_length(ndr
, &r
->output_file
));
15909 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t)));
15910 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->output_file
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t), CH_UTF16
));
15911 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_output_file_0
, 0);
15914 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15915 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
15916 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
15917 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
15918 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
15919 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->datatype
), ndr_get_array_length(ndr
, &r
->datatype
));
15921 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
15922 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
15923 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
15926 return NDR_ERR_SUCCESS
;
15929 _PUBLIC_
void ndr_print_spoolss_DocumentInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DocumentInfo1
*r
)
15931 ndr_print_struct(ndr
, name
, "spoolss_DocumentInfo1");
15933 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
15935 if (r
->document_name
) {
15936 ndr_print_string(ndr
, "document_name", r
->document_name
);
15939 ndr_print_ptr(ndr
, "output_file", r
->output_file
);
15941 if (r
->output_file
) {
15942 ndr_print_string(ndr
, "output_file", r
->output_file
);
15945 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
15948 ndr_print_string(ndr
, "datatype", r
->datatype
);
15954 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DocumentInfo
*r
)
15956 if (ndr_flags
& NDR_SCALARS
) {
15957 int level
= ndr_push_get_switch_value(ndr
, r
);
15958 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
15959 NDR_CHECK(ndr_push_union_align(ndr
, 5));
15962 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
15976 if (ndr_flags
& NDR_BUFFERS
) {
15977 int level
= ndr_push_get_switch_value(ndr
, r
);
15981 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
15996 return NDR_ERR_SUCCESS
;
15999 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DocumentInfo
*r
)
16003 TALLOC_CTX
*_mem_save_info1_0
;
16004 level
= ndr_pull_get_switch_value(ndr
, r
);
16005 if (ndr_flags
& NDR_SCALARS
) {
16006 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
16007 if (_level
!= level
) {
16008 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
16010 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
16013 uint32_t _ptr_info1
;
16014 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
16016 NDR_PULL_ALLOC(ndr
, r
->info1
);
16033 if (ndr_flags
& NDR_BUFFERS
) {
16037 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16038 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
16039 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
16040 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
16055 return NDR_ERR_SUCCESS
;
16058 _PUBLIC_
void ndr_print_spoolss_DocumentInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DocumentInfo
*r
)
16061 level
= ndr_print_get_switch_value(ndr
, r
);
16062 ndr_print_union(ndr
, name
, level
, "spoolss_DocumentInfo");
16065 ndr_print_ptr(ndr
, "info1", r
->info1
);
16068 ndr_print_spoolss_DocumentInfo1(ndr
, "info1", r
->info1
);
16085 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersion(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersion
*r
)
16087 if (ndr_flags
& NDR_SCALARS
) {
16088 NDR_CHECK(ndr_push_align(ndr
, 4));
16089 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersion(r
, ndr
->iconv_convenience
, ndr
->flags
)));
16090 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
16091 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
16092 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
16093 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
16095 uint32_t _flags_save_string
= ndr
->flags
;
16096 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16098 struct ndr_push
*_ndr_extra_string
;
16099 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
16100 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
16101 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
16103 ndr
->flags
= _flags_save_string
;
16105 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
16107 if (ndr_flags
& NDR_BUFFERS
) {
16109 return NDR_ERR_SUCCESS
;
16112 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersion(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersion
*r
)
16114 if (ndr_flags
& NDR_SCALARS
) {
16115 NDR_CHECK(ndr_pull_align(ndr
, 4));
16116 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
16117 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
16118 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
16119 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
16120 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->platform_id
));
16122 uint32_t _flags_save_string
= ndr
->flags
;
16123 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16125 struct ndr_pull
*_ndr_extra_string
;
16126 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
16127 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
16128 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
16130 ndr
->flags
= _flags_save_string
;
16132 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
16134 if (ndr_flags
& NDR_BUFFERS
) {
16136 return NDR_ERR_SUCCESS
;
16139 _PUBLIC_
void ndr_print_spoolss_OSVersion(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersion
*r
)
16141 ndr_print_struct(ndr
, name
, "spoolss_OSVersion");
16143 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
);
16144 ndr_print_uint32(ndr
, "major", r
->major
);
16145 ndr_print_uint32(ndr
, "minor", r
->minor
);
16146 ndr_print_uint32(ndr
, "build", r
->build
);
16147 ndr_print_uint32(ndr
, "platform_id", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->platform_id
);
16148 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
16152 _PUBLIC_
size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16154 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersion
, ic
);
16157 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersionEx(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersionEx
*r
)
16159 if (ndr_flags
& NDR_SCALARS
) {
16160 NDR_CHECK(ndr_push_align(ndr
, 4));
16161 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersionEx(r
, ndr
->iconv_convenience
, ndr
->flags
)));
16162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
16163 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
16164 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
16165 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
16167 uint32_t _flags_save_string
= ndr
->flags
;
16168 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16170 struct ndr_push
*_ndr_extra_string
;
16171 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
16172 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
16173 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
16175 ndr
->flags
= _flags_save_string
;
16177 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->service_pack_major
));
16178 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->service_pack_minor
));
16179 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->suite_mask
));
16180 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->product_type
));
16181 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->reserved
));
16182 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
16184 if (ndr_flags
& NDR_BUFFERS
) {
16186 return NDR_ERR_SUCCESS
;
16189 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersionEx(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersionEx
*r
)
16191 if (ndr_flags
& NDR_SCALARS
) {
16192 NDR_CHECK(ndr_pull_align(ndr
, 4));
16193 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
16194 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
16195 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
16196 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
16197 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->platform_id
));
16199 uint32_t _flags_save_string
= ndr
->flags
;
16200 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16202 struct ndr_pull
*_ndr_extra_string
;
16203 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
16204 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
16205 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
16207 ndr
->flags
= _flags_save_string
;
16209 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->service_pack_major
));
16210 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->service_pack_minor
));
16211 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->suite_mask
));
16212 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->product_type
));
16213 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->reserved
));
16214 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
16216 if (ndr_flags
& NDR_BUFFERS
) {
16218 return NDR_ERR_SUCCESS
;
16221 _PUBLIC_
void ndr_print_spoolss_OSVersionEx(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersionEx
*r
)
16223 ndr_print_struct(ndr
, name
, "spoolss_OSVersionEx");
16225 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
);
16226 ndr_print_uint32(ndr
, "major", r
->major
);
16227 ndr_print_uint32(ndr
, "minor", r
->minor
);
16228 ndr_print_uint32(ndr
, "build", r
->build
);
16229 ndr_print_uint32(ndr
, "platform_id", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->platform_id
);
16230 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
16231 ndr_print_uint16(ndr
, "service_pack_major", r
->service_pack_major
);
16232 ndr_print_uint16(ndr
, "service_pack_minor", r
->service_pack_minor
);
16233 ndr_print_uint16(ndr
, "suite_mask", r
->suite_mask
);
16234 ndr_print_uint8(ndr
, "product_type", r
->product_type
);
16235 ndr_print_uint8(ndr
, "reserved", r
->reserved
);
16239 _PUBLIC_
size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16241 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersionEx
, ic
);
16244 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterData
*r
)
16246 if (ndr_flags
& NDR_SCALARS
) {
16247 int level
= ndr_push_get_switch_value(ndr
, r
);
16248 NDR_CHECK(ndr_push_union_align(ndr
, 4));
16255 uint32_t _flags_save_string
= ndr
->flags
;
16256 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16257 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->string
));
16258 ndr
->flags
= _flags_save_string
;
16264 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
16265 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
16266 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->binary
));
16267 ndr
->flags
= _flags_save_DATA_BLOB
;
16272 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->value
));
16275 case REG_MULTI_SZ
: {
16277 uint32_t _flags_save_string_array
= ndr
->flags
;
16278 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16279 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
16280 ndr
->flags
= _flags_save_string_array
;
16286 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
16287 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
16288 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->data
));
16289 ndr
->flags
= _flags_save_DATA_BLOB
;
16295 if (ndr_flags
& NDR_BUFFERS
) {
16296 int level
= ndr_push_get_switch_value(ndr
, r
);
16318 return NDR_ERR_SUCCESS
;
16321 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterData
*r
)
16324 level
= ndr_pull_get_switch_value(ndr
, r
);
16325 if (ndr_flags
& NDR_SCALARS
) {
16326 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
16333 uint32_t _flags_save_string
= ndr
->flags
;
16334 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16335 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->string
));
16336 ndr
->flags
= _flags_save_string
;
16342 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
16343 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
16344 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->binary
));
16345 ndr
->flags
= _flags_save_DATA_BLOB
;
16350 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value
));
16353 case REG_MULTI_SZ
: {
16355 uint32_t _flags_save_string_array
= ndr
->flags
;
16356 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16357 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
16358 ndr
->flags
= _flags_save_string_array
;
16364 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
16365 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
16366 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->data
));
16367 ndr
->flags
= _flags_save_DATA_BLOB
;
16373 if (ndr_flags
& NDR_BUFFERS
) {
16395 return NDR_ERR_SUCCESS
;
16398 _PUBLIC_
void ndr_print_spoolss_PrinterData(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterData
*r
)
16401 level
= ndr_print_get_switch_value(ndr
, r
);
16402 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterData");
16408 ndr_print_string(ndr
, "string", r
->string
);
16412 ndr_print_DATA_BLOB(ndr
, "binary", r
->binary
);
16416 ndr_print_uint32(ndr
, "value", r
->value
);
16420 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
16424 ndr_print_DATA_BLOB(ndr
, "data", r
->data
);
16430 static enum ndr_err_code
ndr_push_spoolss_FormFlags(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_FormFlags r
)
16432 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
16433 return NDR_ERR_SUCCESS
;
16436 static enum ndr_err_code
ndr_pull_spoolss_FormFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_FormFlags
*r
)
16439 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
16441 return NDR_ERR_SUCCESS
;
16444 _PUBLIC_
void ndr_print_spoolss_FormFlags(struct ndr_print
*ndr
, const char *name
, enum spoolss_FormFlags r
)
16446 const char *val
= NULL
;
16449 case SPOOLSS_FORM_USER
: val
= "SPOOLSS_FORM_USER"; break;
16450 case SPOOLSS_FORM_BUILTIN
: val
= "SPOOLSS_FORM_BUILTIN"; break;
16451 case SPOOLSS_FORM_PRINTER
: val
= "SPOOLSS_FORM_PRINTER"; break;
16453 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16456 static enum ndr_err_code
ndr_push_spoolss_FormSize(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormSize
*r
)
16458 if (ndr_flags
& NDR_SCALARS
) {
16459 NDR_CHECK(ndr_push_align(ndr
, 4));
16460 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->width
));
16461 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->height
));
16462 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
16464 if (ndr_flags
& NDR_BUFFERS
) {
16466 return NDR_ERR_SUCCESS
;
16469 static enum ndr_err_code
ndr_pull_spoolss_FormSize(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormSize
*r
)
16471 if (ndr_flags
& NDR_SCALARS
) {
16472 NDR_CHECK(ndr_pull_align(ndr
, 4));
16473 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->width
));
16474 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->height
));
16475 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
16477 if (ndr_flags
& NDR_BUFFERS
) {
16479 return NDR_ERR_SUCCESS
;
16482 _PUBLIC_
void ndr_print_spoolss_FormSize(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormSize
*r
)
16484 ndr_print_struct(ndr
, name
, "spoolss_FormSize");
16486 ndr_print_uint32(ndr
, "width", r
->width
);
16487 ndr_print_uint32(ndr
, "height", r
->height
);
16491 static enum ndr_err_code
ndr_push_spoolss_FormArea(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormArea
*r
)
16493 if (ndr_flags
& NDR_SCALARS
) {
16494 NDR_CHECK(ndr_push_align(ndr
, 4));
16495 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->left
));
16496 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->top
));
16497 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->right
));
16498 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bottom
));
16499 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
16501 if (ndr_flags
& NDR_BUFFERS
) {
16503 return NDR_ERR_SUCCESS
;
16506 static enum ndr_err_code
ndr_pull_spoolss_FormArea(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormArea
*r
)
16508 if (ndr_flags
& NDR_SCALARS
) {
16509 NDR_CHECK(ndr_pull_align(ndr
, 4));
16510 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->left
));
16511 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->top
));
16512 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->right
));
16513 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bottom
));
16514 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
16516 if (ndr_flags
& NDR_BUFFERS
) {
16518 return NDR_ERR_SUCCESS
;
16521 _PUBLIC_
void ndr_print_spoolss_FormArea(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormArea
*r
)
16523 ndr_print_struct(ndr
, name
, "spoolss_FormArea");
16525 ndr_print_uint32(ndr
, "left", r
->left
);
16526 ndr_print_uint32(ndr
, "top", r
->top
);
16527 ndr_print_uint32(ndr
, "right", r
->right
);
16528 ndr_print_uint32(ndr
, "bottom", r
->bottom
);
16532 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo1
*r
)
16534 if (ndr_flags
& NDR_SCALARS
) {
16535 NDR_CHECK(ndr_push_align(ndr
, 5));
16536 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
16538 uint32_t _flags_save_string
= ndr
->flags
;
16539 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16540 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
16541 ndr
->flags
= _flags_save_string
;
16543 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16544 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16545 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16547 if (ndr_flags
& NDR_BUFFERS
) {
16549 uint32_t _flags_save_string
= ndr
->flags
;
16550 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16551 if (r
->form_name
) {
16552 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->form_name
));
16553 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
16554 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->form_name
));
16556 ndr
->flags
= _flags_save_string
;
16559 return NDR_ERR_SUCCESS
;
16562 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo1
*r
)
16564 uint32_t _ptr_form_name
;
16565 TALLOC_CTX
*_mem_save_form_name_0
;
16566 if (ndr_flags
& NDR_SCALARS
) {
16567 NDR_CHECK(ndr_pull_align(ndr
, 5));
16568 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
16570 uint32_t _flags_save_string
= ndr
->flags
;
16571 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16572 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
16573 if (_ptr_form_name
) {
16574 NDR_PULL_ALLOC(ndr
, r
->form_name
);
16575 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
16577 r
->form_name
= NULL
;
16579 ndr
->flags
= _flags_save_string
;
16581 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16582 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16583 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16585 if (ndr_flags
& NDR_BUFFERS
) {
16587 uint32_t _flags_save_string
= ndr
->flags
;
16588 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16589 if (r
->form_name
) {
16590 uint32_t _relative_save_offset
;
16591 _relative_save_offset
= ndr
->offset
;
16592 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
16593 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16594 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
16595 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
16596 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
16597 if (ndr
->offset
> ndr
->relative_highest_offset
) {
16598 ndr
->relative_highest_offset
= ndr
->offset
;
16600 ndr
->offset
= _relative_save_offset
;
16602 ndr
->flags
= _flags_save_string
;
16605 return NDR_ERR_SUCCESS
;
16608 _PUBLIC_
void ndr_print_spoolss_FormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo1
*r
)
16610 ndr_print_struct(ndr
, name
, "spoolss_FormInfo1");
16612 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16613 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16615 if (r
->form_name
) {
16616 ndr_print_string(ndr
, "form_name", r
->form_name
);
16619 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
16620 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
16624 _PUBLIC_
size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16626 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo1
, ic
);
16629 static enum ndr_err_code
ndr_push_spoolss_FormStringType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
16631 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16632 return NDR_ERR_SUCCESS
;
16635 static enum ndr_err_code
ndr_pull_spoolss_FormStringType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
16638 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16640 return NDR_ERR_SUCCESS
;
16643 _PUBLIC_
void ndr_print_spoolss_FormStringType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
16645 ndr_print_uint32(ndr
, name
, r
);
16647 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE
, r
);
16648 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL
, r
);
16649 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR
, r
);
16653 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo2
*r
)
16655 if (ndr_flags
& NDR_SCALARS
) {
16656 NDR_CHECK(ndr_push_align(ndr
, 5));
16657 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
16659 uint32_t _flags_save_string
= ndr
->flags
;
16660 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16661 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
16662 ndr
->flags
= _flags_save_string
;
16664 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16665 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16667 uint32_t _flags_save_string
= ndr
->flags
;
16668 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
16669 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->keyword
));
16670 ndr
->flags
= _flags_save_string
;
16672 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
16674 uint32_t _flags_save_string
= ndr
->flags
;
16675 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16676 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->mui_dll
));
16677 ndr
->flags
= _flags_save_string
;
16679 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
16681 uint32_t _flags_save_string
= ndr
->flags
;
16682 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16683 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->display_name
));
16684 ndr
->flags
= _flags_save_string
;
16686 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lang_id
));
16687 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unused
));
16688 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16690 if (ndr_flags
& NDR_BUFFERS
) {
16692 uint32_t _flags_save_string
= ndr
->flags
;
16693 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16694 if (r
->form_name
) {
16695 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->form_name
));
16696 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
16697 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->form_name
));
16699 ndr
->flags
= _flags_save_string
;
16702 uint32_t _flags_save_string
= ndr
->flags
;
16703 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
16705 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->keyword
));
16706 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->keyword
));
16707 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->keyword
));
16709 ndr
->flags
= _flags_save_string
;
16712 uint32_t _flags_save_string
= ndr
->flags
;
16713 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16715 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->mui_dll
));
16716 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mui_dll
));
16717 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->mui_dll
));
16719 ndr
->flags
= _flags_save_string
;
16722 uint32_t _flags_save_string
= ndr
->flags
;
16723 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16724 if (r
->display_name
) {
16725 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->display_name
));
16726 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->display_name
));
16727 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->display_name
));
16729 ndr
->flags
= _flags_save_string
;
16732 return NDR_ERR_SUCCESS
;
16735 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo2
*r
)
16737 uint32_t _ptr_form_name
;
16738 TALLOC_CTX
*_mem_save_form_name_0
;
16739 uint32_t _ptr_keyword
;
16740 TALLOC_CTX
*_mem_save_keyword_0
;
16741 uint32_t _ptr_mui_dll
;
16742 TALLOC_CTX
*_mem_save_mui_dll_0
;
16743 uint32_t _ptr_display_name
;
16744 TALLOC_CTX
*_mem_save_display_name_0
;
16745 if (ndr_flags
& NDR_SCALARS
) {
16746 NDR_CHECK(ndr_pull_align(ndr
, 5));
16747 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
16749 uint32_t _flags_save_string
= ndr
->flags
;
16750 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16751 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
16752 if (_ptr_form_name
) {
16753 NDR_PULL_ALLOC(ndr
, r
->form_name
);
16754 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
16756 r
->form_name
= NULL
;
16758 ndr
->flags
= _flags_save_string
;
16760 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16761 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16763 uint32_t _flags_save_string
= ndr
->flags
;
16764 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
16765 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
16766 if (_ptr_keyword
) {
16767 NDR_PULL_ALLOC(ndr
, r
->keyword
);
16768 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->keyword
, _ptr_keyword
));
16772 ndr
->flags
= _flags_save_string
;
16774 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
16776 uint32_t _flags_save_string
= ndr
->flags
;
16777 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16778 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
16779 if (_ptr_mui_dll
) {
16780 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
16781 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->mui_dll
, _ptr_mui_dll
));
16785 ndr
->flags
= _flags_save_string
;
16787 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
16789 uint32_t _flags_save_string
= ndr
->flags
;
16790 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16791 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
16792 if (_ptr_display_name
) {
16793 NDR_PULL_ALLOC(ndr
, r
->display_name
);
16794 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->display_name
, _ptr_display_name
));
16796 r
->display_name
= NULL
;
16798 ndr
->flags
= _flags_save_string
;
16800 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lang_id
));
16801 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unused
));
16802 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16804 if (ndr_flags
& NDR_BUFFERS
) {
16806 uint32_t _flags_save_string
= ndr
->flags
;
16807 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16808 if (r
->form_name
) {
16809 uint32_t _relative_save_offset
;
16810 _relative_save_offset
= ndr
->offset
;
16811 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
16812 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16813 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
16814 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
16815 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
16816 if (ndr
->offset
> ndr
->relative_highest_offset
) {
16817 ndr
->relative_highest_offset
= ndr
->offset
;
16819 ndr
->offset
= _relative_save_offset
;
16821 ndr
->flags
= _flags_save_string
;
16824 uint32_t _flags_save_string
= ndr
->flags
;
16825 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
16827 uint32_t _relative_save_offset
;
16828 _relative_save_offset
= ndr
->offset
;
16829 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->keyword
));
16830 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16831 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
16832 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->keyword
));
16833 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
16834 if (ndr
->offset
> ndr
->relative_highest_offset
) {
16835 ndr
->relative_highest_offset
= ndr
->offset
;
16837 ndr
->offset
= _relative_save_offset
;
16839 ndr
->flags
= _flags_save_string
;
16842 uint32_t _flags_save_string
= ndr
->flags
;
16843 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16845 uint32_t _relative_save_offset
;
16846 _relative_save_offset
= ndr
->offset
;
16847 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->mui_dll
));
16848 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16849 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
16850 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mui_dll
));
16851 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
16852 if (ndr
->offset
> ndr
->relative_highest_offset
) {
16853 ndr
->relative_highest_offset
= ndr
->offset
;
16855 ndr
->offset
= _relative_save_offset
;
16857 ndr
->flags
= _flags_save_string
;
16860 uint32_t _flags_save_string
= ndr
->flags
;
16861 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16862 if (r
->display_name
) {
16863 uint32_t _relative_save_offset
;
16864 _relative_save_offset
= ndr
->offset
;
16865 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->display_name
));
16866 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16867 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
16868 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->display_name
));
16869 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
16870 if (ndr
->offset
> ndr
->relative_highest_offset
) {
16871 ndr
->relative_highest_offset
= ndr
->offset
;
16873 ndr
->offset
= _relative_save_offset
;
16875 ndr
->flags
= _flags_save_string
;
16878 return NDR_ERR_SUCCESS
;
16881 _PUBLIC_
void ndr_print_spoolss_FormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo2
*r
)
16883 ndr_print_struct(ndr
, name
, "spoolss_FormInfo2");
16885 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16886 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16888 if (r
->form_name
) {
16889 ndr_print_string(ndr
, "form_name", r
->form_name
);
16892 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
16893 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
16894 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
16897 ndr_print_string(ndr
, "keyword", r
->keyword
);
16900 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
16901 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
16904 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
16907 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
16908 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
16910 if (r
->display_name
) {
16911 ndr_print_string(ndr
, "display_name", r
->display_name
);
16914 ndr_print_uint16(ndr
, "lang_id", r
->lang_id
);
16915 ndr_print_uint16(ndr
, "unused", r
->unused
);
16919 _PUBLIC_
size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16921 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo2
, ic
);
16924 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_FormInfo
*r
)
16926 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16928 uint32_t _flags_save_UNION
= ndr
->flags
;
16929 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
16930 if (ndr_flags
& NDR_SCALARS
) {
16931 int level
= ndr_push_get_switch_value(ndr
, r
);
16932 NDR_CHECK(ndr_push_union_align(ndr
, 5));
16935 NDR_CHECK(ndr_push_align(ndr
, 5));
16936 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16937 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16941 NDR_CHECK(ndr_push_align(ndr
, 5));
16942 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16943 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16951 if (ndr_flags
& NDR_BUFFERS
) {
16952 int level
= ndr_push_get_switch_value(ndr
, r
);
16953 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16956 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16960 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16968 ndr
->flags
= _flags_save_UNION
;
16970 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16971 return NDR_ERR_SUCCESS
;
16974 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_FormInfo
*r
)
16976 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16979 uint32_t _flags_save_UNION
= ndr
->flags
;
16980 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
16981 level
= ndr_pull_get_switch_value(ndr
, r
);
16982 if (ndr_flags
& NDR_SCALARS
) {
16983 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
16986 NDR_CHECK(ndr_pull_align(ndr
, 5));
16987 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16988 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16992 NDR_CHECK(ndr_pull_align(ndr
, 5));
16993 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16994 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
17002 if (ndr_flags
& NDR_BUFFERS
) {
17003 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
17006 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17010 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
17018 ndr
->flags
= _flags_save_UNION
;
17020 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17021 return NDR_ERR_SUCCESS
;
17024 _PUBLIC_
void ndr_print_spoolss_FormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_FormInfo
*r
)
17028 uint32_t _flags_save_UNION
= ndr
->flags
;
17029 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
17030 level
= ndr_print_get_switch_value(ndr
, r
);
17031 ndr_print_union(ndr
, name
, level
, "spoolss_FormInfo");
17034 ndr_print_spoolss_FormInfo1(ndr
, "info1", &r
->info1
);
17038 ndr_print_spoolss_FormInfo2(ndr
, "info2", &r
->info2
);
17045 ndr
->flags
= _flags_save_UNION
;
17049 _PUBLIC_
size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
17051 flags
|= LIBNDR_FLAG_RELATIVE_REVERSE
;
17052 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo
, ic
);
17055 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo1
*r
)
17057 if (ndr_flags
& NDR_SCALARS
) {
17058 NDR_CHECK(ndr_push_align(ndr
, 5));
17059 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
17060 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
17061 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
17062 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
17063 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17065 if (ndr_flags
& NDR_BUFFERS
) {
17066 if (r
->form_name
) {
17067 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
17068 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
17069 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
17070 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17073 return NDR_ERR_SUCCESS
;
17076 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo1
*r
)
17078 uint32_t _ptr_form_name
;
17079 TALLOC_CTX
*_mem_save_form_name_0
;
17080 if (ndr_flags
& NDR_SCALARS
) {
17081 NDR_CHECK(ndr_pull_align(ndr
, 5));
17082 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
17083 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
17084 if (_ptr_form_name
) {
17085 NDR_PULL_ALLOC(ndr
, r
->form_name
);
17087 r
->form_name
= NULL
;
17089 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
17090 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
17091 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17093 if (ndr_flags
& NDR_BUFFERS
) {
17094 if (r
->form_name
) {
17095 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17096 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
17097 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
17098 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
17099 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
17100 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->form_name
), ndr_get_array_length(ndr
, &r
->form_name
));
17102 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
17103 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
17104 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
17107 return NDR_ERR_SUCCESS
;
17110 _PUBLIC_
void ndr_print_spoolss_AddFormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo1
*r
)
17112 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo1");
17114 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
17115 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
17117 if (r
->form_name
) {
17118 ndr_print_string(ndr
, "form_name", r
->form_name
);
17121 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
17122 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
17126 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo2
*r
)
17128 if (ndr_flags
& NDR_SCALARS
) {
17129 NDR_CHECK(ndr_push_align(ndr
, 5));
17130 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
17131 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
17132 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
17133 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
17134 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->keyword
));
17135 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
17136 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->mui_dll
));
17137 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
17138 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->display_name
));
17139 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
17140 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17142 if (ndr_flags
& NDR_BUFFERS
) {
17143 if (r
->form_name
) {
17144 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
17145 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
17146 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
17147 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17150 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
17151 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
17152 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
17153 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->keyword
, ndr_charset_length(r
->keyword
, CH_DOS
), sizeof(uint8_t), CH_DOS
));
17156 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
17157 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
17158 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
17159 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->mui_dll
, ndr_charset_length(r
->mui_dll
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17161 if (r
->display_name
) {
17162 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
17163 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
17164 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
17165 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->display_name
, ndr_charset_length(r
->display_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17168 return NDR_ERR_SUCCESS
;
17171 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo2
*r
)
17173 uint32_t _ptr_form_name
;
17174 TALLOC_CTX
*_mem_save_form_name_0
;
17175 uint32_t _ptr_keyword
;
17176 TALLOC_CTX
*_mem_save_keyword_0
;
17177 uint32_t _ptr_mui_dll
;
17178 TALLOC_CTX
*_mem_save_mui_dll_0
;
17179 uint32_t _ptr_display_name
;
17180 TALLOC_CTX
*_mem_save_display_name_0
;
17181 if (ndr_flags
& NDR_SCALARS
) {
17182 NDR_CHECK(ndr_pull_align(ndr
, 5));
17183 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
17184 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
17185 if (_ptr_form_name
) {
17186 NDR_PULL_ALLOC(ndr
, r
->form_name
);
17188 r
->form_name
= NULL
;
17190 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
17191 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
17192 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
17193 if (_ptr_keyword
) {
17194 NDR_PULL_ALLOC(ndr
, r
->keyword
);
17198 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
17199 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
17200 if (_ptr_mui_dll
) {
17201 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
17205 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
17206 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
17207 if (_ptr_display_name
) {
17208 NDR_PULL_ALLOC(ndr
, r
->display_name
);
17210 r
->display_name
= NULL
;
17212 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
17213 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17215 if (ndr_flags
& NDR_BUFFERS
) {
17216 if (r
->form_name
) {
17217 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17218 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
17219 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
17220 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
17221 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
17222 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->form_name
), ndr_get_array_length(ndr
, &r
->form_name
));
17224 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
17225 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
17226 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
17229 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17230 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
17231 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->keyword
));
17232 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->keyword
));
17233 if (ndr_get_array_length(ndr
, &r
->keyword
) > ndr_get_array_size(ndr
, &r
->keyword
)) {
17234 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->keyword
), ndr_get_array_length(ndr
, &r
->keyword
));
17236 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t)));
17237 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->keyword
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t), CH_DOS
));
17238 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
17241 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17242 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
17243 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->mui_dll
));
17244 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->mui_dll
));
17245 if (ndr_get_array_length(ndr
, &r
->mui_dll
) > ndr_get_array_size(ndr
, &r
->mui_dll
)) {
17246 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->mui_dll
), ndr_get_array_length(ndr
, &r
->mui_dll
));
17248 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t)));
17249 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->mui_dll
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t), CH_UTF16
));
17250 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
17252 if (r
->display_name
) {
17253 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17254 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
17255 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->display_name
));
17256 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->display_name
));
17257 if (ndr_get_array_length(ndr
, &r
->display_name
) > ndr_get_array_size(ndr
, &r
->display_name
)) {
17258 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->display_name
), ndr_get_array_length(ndr
, &r
->display_name
));
17260 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t)));
17261 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->display_name
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t), CH_UTF16
));
17262 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
17265 return NDR_ERR_SUCCESS
;
17268 _PUBLIC_
void ndr_print_spoolss_AddFormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo2
*r
)
17270 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo2");
17272 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
17273 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
17275 if (r
->form_name
) {
17276 ndr_print_string(ndr
, "form_name", r
->form_name
);
17279 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
17280 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
17281 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
17284 ndr_print_string(ndr
, "keyword", r
->keyword
);
17287 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
17288 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
17291 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
17294 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
17295 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
17297 if (r
->display_name
) {
17298 ndr_print_string(ndr
, "display_name", r
->display_name
);
17301 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
17305 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddFormInfo
*r
)
17307 if (ndr_flags
& NDR_SCALARS
) {
17308 int level
= ndr_push_get_switch_value(ndr
, r
);
17309 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
17310 NDR_CHECK(ndr_push_union_align(ndr
, 5));
17313 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
17317 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
17321 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
17324 if (ndr_flags
& NDR_BUFFERS
) {
17325 int level
= ndr_push_get_switch_value(ndr
, r
);
17329 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
17335 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
17340 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
17343 return NDR_ERR_SUCCESS
;
17346 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddFormInfo
*r
)
17350 TALLOC_CTX
*_mem_save_info1_0
;
17351 TALLOC_CTX
*_mem_save_info2_0
;
17352 level
= ndr_pull_get_switch_value(ndr
, r
);
17353 if (ndr_flags
& NDR_SCALARS
) {
17354 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
17355 if (_level
!= level
) {
17356 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
17358 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
17361 uint32_t _ptr_info1
;
17362 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
17364 NDR_PULL_ALLOC(ndr
, r
->info1
);
17371 uint32_t _ptr_info2
;
17372 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
17374 NDR_PULL_ALLOC(ndr
, r
->info2
);
17381 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
17384 if (ndr_flags
& NDR_BUFFERS
) {
17388 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17389 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
17390 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
17391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
17397 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17398 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
17399 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
17400 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
17405 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
17408 return NDR_ERR_SUCCESS
;
17411 _PUBLIC_
void ndr_print_spoolss_AddFormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddFormInfo
*r
)
17414 level
= ndr_print_get_switch_value(ndr
, r
);
17415 ndr_print_union(ndr
, name
, level
, "spoolss_AddFormInfo");
17418 ndr_print_ptr(ndr
, "info1", r
->info1
);
17421 ndr_print_spoolss_AddFormInfo1(ndr
, "info1", r
->info1
);
17427 ndr_print_ptr(ndr
, "info2", r
->info2
);
17430 ndr_print_spoolss_AddFormInfo2(ndr
, "info2", r
->info2
);
17436 ndr_print_bad_level(ndr
, name
, level
);
17440 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo1
*r
)
17442 if (ndr_flags
& NDR_SCALARS
) {
17443 NDR_CHECK(ndr_push_align(ndr
, 5));
17445 uint32_t _flags_save_string
= ndr
->flags
;
17446 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17447 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
17448 ndr
->flags
= _flags_save_string
;
17450 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17452 if (ndr_flags
& NDR_BUFFERS
) {
17454 uint32_t _flags_save_string
= ndr
->flags
;
17455 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17456 if (r
->port_name
) {
17457 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->port_name
));
17458 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
17459 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->port_name
));
17461 ndr
->flags
= _flags_save_string
;
17464 return NDR_ERR_SUCCESS
;
17467 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo1
*r
)
17469 uint32_t _ptr_port_name
;
17470 TALLOC_CTX
*_mem_save_port_name_0
;
17471 if (ndr_flags
& NDR_SCALARS
) {
17472 NDR_CHECK(ndr_pull_align(ndr
, 5));
17474 uint32_t _flags_save_string
= ndr
->flags
;
17475 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17476 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
17477 if (_ptr_port_name
) {
17478 NDR_PULL_ALLOC(ndr
, r
->port_name
);
17479 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
17481 r
->port_name
= NULL
;
17483 ndr
->flags
= _flags_save_string
;
17485 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17487 if (ndr_flags
& NDR_BUFFERS
) {
17489 uint32_t _flags_save_string
= ndr
->flags
;
17490 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17491 if (r
->port_name
) {
17492 uint32_t _relative_save_offset
;
17493 _relative_save_offset
= ndr
->offset
;
17494 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
17495 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17496 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
17497 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
17498 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
17499 if (ndr
->offset
> ndr
->relative_highest_offset
) {
17500 ndr
->relative_highest_offset
= ndr
->offset
;
17502 ndr
->offset
= _relative_save_offset
;
17504 ndr
->flags
= _flags_save_string
;
17507 return NDR_ERR_SUCCESS
;
17510 _PUBLIC_
void ndr_print_spoolss_PortInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo1
*r
)
17512 ndr_print_struct(ndr
, name
, "spoolss_PortInfo1");
17514 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
17516 if (r
->port_name
) {
17517 ndr_print_string(ndr
, "port_name", r
->port_name
);
17523 _PUBLIC_
size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17525 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo1
, ic
);
17528 static enum ndr_err_code
ndr_push_spoolss_PortType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17530 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17531 return NDR_ERR_SUCCESS
;
17534 static enum ndr_err_code
ndr_pull_spoolss_PortType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17537 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17539 return NDR_ERR_SUCCESS
;
17542 _PUBLIC_
void ndr_print_spoolss_PortType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17544 ndr_print_uint32(ndr
, name
, r
);
17546 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE
, r
);
17547 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ
, r
);
17548 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED
, r
);
17549 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED
, r
);
17553 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo2
*r
)
17555 if (ndr_flags
& NDR_SCALARS
) {
17556 NDR_CHECK(ndr_push_align(ndr
, 5));
17558 uint32_t _flags_save_string
= ndr
->flags
;
17559 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17560 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
17561 ndr
->flags
= _flags_save_string
;
17564 uint32_t _flags_save_string
= ndr
->flags
;
17565 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17566 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
17567 ndr
->flags
= _flags_save_string
;
17570 uint32_t _flags_save_string
= ndr
->flags
;
17571 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17572 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
17573 ndr
->flags
= _flags_save_string
;
17575 NDR_CHECK(ndr_push_spoolss_PortType(ndr
, NDR_SCALARS
, r
->port_type
));
17576 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
17577 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17579 if (ndr_flags
& NDR_BUFFERS
) {
17581 uint32_t _flags_save_string
= ndr
->flags
;
17582 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17583 if (r
->port_name
) {
17584 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->port_name
));
17585 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
17586 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->port_name
));
17588 ndr
->flags
= _flags_save_string
;
17591 uint32_t _flags_save_string
= ndr
->flags
;
17592 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17593 if (r
->monitor_name
) {
17594 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
17595 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
17596 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
17598 ndr
->flags
= _flags_save_string
;
17601 uint32_t _flags_save_string
= ndr
->flags
;
17602 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17603 if (r
->description
) {
17604 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->description
));
17605 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
17606 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->description
));
17608 ndr
->flags
= _flags_save_string
;
17611 return NDR_ERR_SUCCESS
;
17614 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo2
*r
)
17616 uint32_t _ptr_port_name
;
17617 TALLOC_CTX
*_mem_save_port_name_0
;
17618 uint32_t _ptr_monitor_name
;
17619 TALLOC_CTX
*_mem_save_monitor_name_0
;
17620 uint32_t _ptr_description
;
17621 TALLOC_CTX
*_mem_save_description_0
;
17622 if (ndr_flags
& NDR_SCALARS
) {
17623 NDR_CHECK(ndr_pull_align(ndr
, 5));
17625 uint32_t _flags_save_string
= ndr
->flags
;
17626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17627 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
17628 if (_ptr_port_name
) {
17629 NDR_PULL_ALLOC(ndr
, r
->port_name
);
17630 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
17632 r
->port_name
= NULL
;
17634 ndr
->flags
= _flags_save_string
;
17637 uint32_t _flags_save_string
= ndr
->flags
;
17638 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17639 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
17640 if (_ptr_monitor_name
) {
17641 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
17642 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
17644 r
->monitor_name
= NULL
;
17646 ndr
->flags
= _flags_save_string
;
17649 uint32_t _flags_save_string
= ndr
->flags
;
17650 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17651 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
17652 if (_ptr_description
) {
17653 NDR_PULL_ALLOC(ndr
, r
->description
);
17654 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
17656 r
->description
= NULL
;
17658 ndr
->flags
= _flags_save_string
;
17660 NDR_CHECK(ndr_pull_spoolss_PortType(ndr
, NDR_SCALARS
, &r
->port_type
));
17661 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
17662 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17664 if (ndr_flags
& NDR_BUFFERS
) {
17666 uint32_t _flags_save_string
= ndr
->flags
;
17667 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17668 if (r
->port_name
) {
17669 uint32_t _relative_save_offset
;
17670 _relative_save_offset
= ndr
->offset
;
17671 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
17672 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17673 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
17674 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
17675 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
17676 if (ndr
->offset
> ndr
->relative_highest_offset
) {
17677 ndr
->relative_highest_offset
= ndr
->offset
;
17679 ndr
->offset
= _relative_save_offset
;
17681 ndr
->flags
= _flags_save_string
;
17684 uint32_t _flags_save_string
= ndr
->flags
;
17685 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17686 if (r
->monitor_name
) {
17687 uint32_t _relative_save_offset
;
17688 _relative_save_offset
= ndr
->offset
;
17689 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
17690 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17691 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
17692 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
17693 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
17694 if (ndr
->offset
> ndr
->relative_highest_offset
) {
17695 ndr
->relative_highest_offset
= ndr
->offset
;
17697 ndr
->offset
= _relative_save_offset
;
17699 ndr
->flags
= _flags_save_string
;
17702 uint32_t _flags_save_string
= ndr
->flags
;
17703 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17704 if (r
->description
) {
17705 uint32_t _relative_save_offset
;
17706 _relative_save_offset
= ndr
->offset
;
17707 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
17708 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17709 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
17710 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
17711 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
17712 if (ndr
->offset
> ndr
->relative_highest_offset
) {
17713 ndr
->relative_highest_offset
= ndr
->offset
;
17715 ndr
->offset
= _relative_save_offset
;
17717 ndr
->flags
= _flags_save_string
;
17720 return NDR_ERR_SUCCESS
;
17723 _PUBLIC_
void ndr_print_spoolss_PortInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo2
*r
)
17725 ndr_print_struct(ndr
, name
, "spoolss_PortInfo2");
17727 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
17729 if (r
->port_name
) {
17730 ndr_print_string(ndr
, "port_name", r
->port_name
);
17733 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
17735 if (r
->monitor_name
) {
17736 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
17739 ndr_print_ptr(ndr
, "description", r
->description
);
17741 if (r
->description
) {
17742 ndr_print_string(ndr
, "description", r
->description
);
17745 ndr_print_spoolss_PortType(ndr
, "port_type", r
->port_type
);
17746 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
17750 _PUBLIC_
size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17752 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo2
, ic
);
17755 static enum ndr_err_code
ndr_push_spoolss_PortStatus(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortStatus r
)
17757 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
17758 return NDR_ERR_SUCCESS
;
17761 static enum ndr_err_code
ndr_pull_spoolss_PortStatus(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortStatus
*r
)
17764 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
17766 return NDR_ERR_SUCCESS
;
17769 _PUBLIC_
void ndr_print_spoolss_PortStatus(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortStatus r
)
17771 const char *val
= NULL
;
17774 case PORT_STATUS_CLEAR
: val
= "PORT_STATUS_CLEAR"; break;
17775 case PORT_STATUS_OFFLINE
: val
= "PORT_STATUS_OFFLINE"; break;
17776 case PORT_STATUS_PAPER_JAM
: val
= "PORT_STATUS_PAPER_JAM"; break;
17777 case PORT_STATUS_PAPER_OUT
: val
= "PORT_STATUS_PAPER_OUT"; break;
17778 case PORT_STATUS_OUTPUT_BIN_FULL
: val
= "PORT_STATUS_OUTPUT_BIN_FULL"; break;
17779 case PORT_STATUS_PAPER_PROBLEM
: val
= "PORT_STATUS_PAPER_PROBLEM"; break;
17780 case PORT_STATUS_NO_TONER
: val
= "PORT_STATUS_NO_TONER"; break;
17781 case PORT_STATUS_DOOR_OPEN
: val
= "PORT_STATUS_DOOR_OPEN"; break;
17782 case PORT_STATUS_USER_INTERVENTION
: val
= "PORT_STATUS_USER_INTERVENTION"; break;
17783 case PORT_STATUS_OUT_OF_MEMORY
: val
= "PORT_STATUS_OUT_OF_MEMORY"; break;
17784 case PORT_STATUS_TONER_LOW
: val
= "PORT_STATUS_TONER_LOW"; break;
17785 case PORT_STATUS_WARMING_UP
: val
= "PORT_STATUS_WARMING_UP"; break;
17786 case PORT_STATUS_POWER_SAVE
: val
= "PORT_STATUS_POWER_SAVE"; break;
17788 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17791 static enum ndr_err_code
ndr_push_spoolss_PortSeverity(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortSeverity r
)
17793 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
17794 return NDR_ERR_SUCCESS
;
17797 static enum ndr_err_code
ndr_pull_spoolss_PortSeverity(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortSeverity
*r
)
17800 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
17802 return NDR_ERR_SUCCESS
;
17805 _PUBLIC_
void ndr_print_spoolss_PortSeverity(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortSeverity r
)
17807 const char *val
= NULL
;
17810 case PORT_STATUS_TYPE_ERROR
: val
= "PORT_STATUS_TYPE_ERROR"; break;
17811 case PORT_STATUS_TYPE_WARNING
: val
= "PORT_STATUS_TYPE_WARNING"; break;
17812 case PORT_STATUS_TYPE_INFO
: val
= "PORT_STATUS_TYPE_INFO"; break;
17814 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17817 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo3
*r
)
17819 if (ndr_flags
& NDR_SCALARS
) {
17820 NDR_CHECK(ndr_push_align(ndr
, 5));
17821 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr
, NDR_SCALARS
, r
->status
));
17823 uint32_t _flags_save_string
= ndr
->flags
;
17824 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17825 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->status_string
));
17826 ndr
->flags
= _flags_save_string
;
17828 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr
, NDR_SCALARS
, r
->severity
));
17829 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17831 if (ndr_flags
& NDR_BUFFERS
) {
17833 uint32_t _flags_save_string
= ndr
->flags
;
17834 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17835 if (r
->status_string
) {
17836 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->status_string
));
17837 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->status_string
));
17838 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->status_string
));
17840 ndr
->flags
= _flags_save_string
;
17843 return NDR_ERR_SUCCESS
;
17846 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo3
*r
)
17848 uint32_t _ptr_status_string
;
17849 TALLOC_CTX
*_mem_save_status_string_0
;
17850 if (ndr_flags
& NDR_SCALARS
) {
17851 NDR_CHECK(ndr_pull_align(ndr
, 5));
17852 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr
, NDR_SCALARS
, &r
->status
));
17854 uint32_t _flags_save_string
= ndr
->flags
;
17855 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17856 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_status_string
));
17857 if (_ptr_status_string
) {
17858 NDR_PULL_ALLOC(ndr
, r
->status_string
);
17859 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->status_string
, _ptr_status_string
));
17861 r
->status_string
= NULL
;
17863 ndr
->flags
= _flags_save_string
;
17865 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr
, NDR_SCALARS
, &r
->severity
));
17866 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17868 if (ndr_flags
& NDR_BUFFERS
) {
17870 uint32_t _flags_save_string
= ndr
->flags
;
17871 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17872 if (r
->status_string
) {
17873 uint32_t _relative_save_offset
;
17874 _relative_save_offset
= ndr
->offset
;
17875 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->status_string
));
17876 _mem_save_status_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17877 NDR_PULL_SET_MEM_CTX(ndr
, r
->status_string
, 0);
17878 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->status_string
));
17879 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_string_0
, 0);
17880 if (ndr
->offset
> ndr
->relative_highest_offset
) {
17881 ndr
->relative_highest_offset
= ndr
->offset
;
17883 ndr
->offset
= _relative_save_offset
;
17885 ndr
->flags
= _flags_save_string
;
17888 return NDR_ERR_SUCCESS
;
17891 _PUBLIC_
void ndr_print_spoolss_PortInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo3
*r
)
17893 ndr_print_struct(ndr
, name
, "spoolss_PortInfo3");
17895 ndr_print_spoolss_PortStatus(ndr
, "status", r
->status
);
17896 ndr_print_ptr(ndr
, "status_string", r
->status_string
);
17898 if (r
->status_string
) {
17899 ndr_print_string(ndr
, "status_string", r
->status_string
);
17902 ndr_print_spoolss_PortSeverity(ndr
, "severity", r
->severity
);
17906 _PUBLIC_
size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17908 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo3
, ic
);
17911 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfoFF(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfoFF
*r
)
17913 if (ndr_flags
& NDR_SCALARS
) {
17914 NDR_CHECK(ndr_push_align(ndr
, 5));
17916 uint32_t _flags_save_string
= ndr
->flags
;
17917 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17918 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
17919 ndr
->flags
= _flags_save_string
;
17921 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->monitor_data
));
17922 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17924 if (ndr_flags
& NDR_BUFFERS
) {
17926 uint32_t _flags_save_string
= ndr
->flags
;
17927 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17928 if (r
->port_name
) {
17929 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->port_name
));
17930 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
17931 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->port_name
));
17933 ndr
->flags
= _flags_save_string
;
17936 return NDR_ERR_SUCCESS
;
17939 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfoFF(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfoFF
*r
)
17941 uint32_t _ptr_port_name
;
17942 TALLOC_CTX
*_mem_save_port_name_0
;
17943 if (ndr_flags
& NDR_SCALARS
) {
17944 NDR_CHECK(ndr_pull_align(ndr
, 5));
17946 uint32_t _flags_save_string
= ndr
->flags
;
17947 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17948 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
17949 if (_ptr_port_name
) {
17950 NDR_PULL_ALLOC(ndr
, r
->port_name
);
17951 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
17953 r
->port_name
= NULL
;
17955 ndr
->flags
= _flags_save_string
;
17957 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->monitor_data
));
17958 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17960 if (ndr_flags
& NDR_BUFFERS
) {
17962 uint32_t _flags_save_string
= ndr
->flags
;
17963 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17964 if (r
->port_name
) {
17965 uint32_t _relative_save_offset
;
17966 _relative_save_offset
= ndr
->offset
;
17967 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
17968 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17969 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
17970 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
17971 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
17972 if (ndr
->offset
> ndr
->relative_highest_offset
) {
17973 ndr
->relative_highest_offset
= ndr
->offset
;
17975 ndr
->offset
= _relative_save_offset
;
17977 ndr
->flags
= _flags_save_string
;
17980 return NDR_ERR_SUCCESS
;
17983 _PUBLIC_
void ndr_print_spoolss_PortInfoFF(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfoFF
*r
)
17985 ndr_print_struct(ndr
, name
, "spoolss_PortInfoFF");
17987 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
17989 if (r
->port_name
) {
17990 ndr_print_string(ndr
, "port_name", r
->port_name
);
17993 ndr_print_DATA_BLOB(ndr
, "monitor_data", r
->monitor_data
);
17997 _PUBLIC_
size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17999 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfoFF
, ic
);
18002 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PortInfo
*r
)
18004 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
18006 uint32_t _flags_save_UNION
= ndr
->flags
;
18007 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18008 if (ndr_flags
& NDR_SCALARS
) {
18009 int level
= ndr_push_get_switch_value(ndr
, r
);
18010 NDR_CHECK(ndr_push_union_align(ndr
, 5));
18013 NDR_CHECK(ndr_push_align(ndr
, 5));
18014 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18015 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
18019 NDR_CHECK(ndr_push_align(ndr
, 5));
18020 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18021 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
18025 NDR_CHECK(ndr_push_align(ndr
, 5));
18026 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18027 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
18031 NDR_CHECK(ndr_push_align(ndr
, 5));
18032 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18033 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
18041 if (ndr_flags
& NDR_BUFFERS
) {
18042 int level
= ndr_push_get_switch_value(ndr
, r
);
18043 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
18046 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
18050 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
18054 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
18058 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
18066 ndr
->flags
= _flags_save_UNION
;
18068 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18069 return NDR_ERR_SUCCESS
;
18072 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PortInfo
*r
)
18074 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
18077 uint32_t _flags_save_UNION
= ndr
->flags
;
18078 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18079 level
= ndr_pull_get_switch_value(ndr
, r
);
18080 if (ndr_flags
& NDR_SCALARS
) {
18081 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
18084 NDR_CHECK(ndr_pull_align(ndr
, 5));
18085 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18086 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
18090 NDR_CHECK(ndr_pull_align(ndr
, 5));
18091 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18092 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
18096 NDR_CHECK(ndr_pull_align(ndr
, 5));
18097 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18098 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
18102 NDR_CHECK(ndr_pull_align(ndr
, 5));
18103 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18104 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
18112 if (ndr_flags
& NDR_BUFFERS
) {
18113 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
18116 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
18120 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
18124 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
18128 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
18136 ndr
->flags
= _flags_save_UNION
;
18138 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18139 return NDR_ERR_SUCCESS
;
18142 _PUBLIC_
void ndr_print_spoolss_PortInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PortInfo
*r
)
18146 uint32_t _flags_save_UNION
= ndr
->flags
;
18147 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18148 level
= ndr_print_get_switch_value(ndr
, r
);
18149 ndr_print_union(ndr
, name
, level
, "spoolss_PortInfo");
18152 ndr_print_spoolss_PortInfo1(ndr
, "info1", &r
->info1
);
18156 ndr_print_spoolss_PortInfo2(ndr
, "info2", &r
->info2
);
18160 ndr_print_spoolss_PortInfo3(ndr
, "info3", &r
->info3
);
18164 ndr_print_spoolss_PortInfoFF(ndr
, "infoFF", &r
->infoFF
);
18171 ndr
->flags
= _flags_save_UNION
;
18175 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo1
*r
)
18177 if (ndr_flags
& NDR_SCALARS
) {
18178 NDR_CHECK(ndr_push_align(ndr
, 5));
18180 uint32_t _flags_save_string
= ndr
->flags
;
18181 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18182 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
18183 ndr
->flags
= _flags_save_string
;
18185 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18187 if (ndr_flags
& NDR_BUFFERS
) {
18189 uint32_t _flags_save_string
= ndr
->flags
;
18190 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18191 if (r
->monitor_name
) {
18192 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
18193 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
18194 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
18196 ndr
->flags
= _flags_save_string
;
18199 return NDR_ERR_SUCCESS
;
18202 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo1
*r
)
18204 uint32_t _ptr_monitor_name
;
18205 TALLOC_CTX
*_mem_save_monitor_name_0
;
18206 if (ndr_flags
& NDR_SCALARS
) {
18207 NDR_CHECK(ndr_pull_align(ndr
, 5));
18209 uint32_t _flags_save_string
= ndr
->flags
;
18210 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18211 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
18212 if (_ptr_monitor_name
) {
18213 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
18214 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
18216 r
->monitor_name
= NULL
;
18218 ndr
->flags
= _flags_save_string
;
18220 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18222 if (ndr_flags
& NDR_BUFFERS
) {
18224 uint32_t _flags_save_string
= ndr
->flags
;
18225 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18226 if (r
->monitor_name
) {
18227 uint32_t _relative_save_offset
;
18228 _relative_save_offset
= ndr
->offset
;
18229 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
18230 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18231 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
18232 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
18233 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
18234 if (ndr
->offset
> ndr
->relative_highest_offset
) {
18235 ndr
->relative_highest_offset
= ndr
->offset
;
18237 ndr
->offset
= _relative_save_offset
;
18239 ndr
->flags
= _flags_save_string
;
18242 return NDR_ERR_SUCCESS
;
18245 _PUBLIC_
void ndr_print_spoolss_MonitorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo1
*r
)
18247 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo1");
18249 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
18251 if (r
->monitor_name
) {
18252 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
18258 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
18260 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo1
, ic
);
18263 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo2
*r
)
18265 if (ndr_flags
& NDR_SCALARS
) {
18266 NDR_CHECK(ndr_push_align(ndr
, 5));
18268 uint32_t _flags_save_string
= ndr
->flags
;
18269 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18270 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
18271 ndr
->flags
= _flags_save_string
;
18274 uint32_t _flags_save_string
= ndr
->flags
;
18275 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18276 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->environment
));
18277 ndr
->flags
= _flags_save_string
;
18280 uint32_t _flags_save_string
= ndr
->flags
;
18281 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18282 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dll_name
));
18283 ndr
->flags
= _flags_save_string
;
18285 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18287 if (ndr_flags
& NDR_BUFFERS
) {
18289 uint32_t _flags_save_string
= ndr
->flags
;
18290 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18291 if (r
->monitor_name
) {
18292 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->monitor_name
));
18293 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
18294 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->monitor_name
));
18296 ndr
->flags
= _flags_save_string
;
18299 uint32_t _flags_save_string
= ndr
->flags
;
18300 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18301 if (r
->environment
) {
18302 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->environment
));
18303 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->environment
));
18304 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->environment
));
18306 ndr
->flags
= _flags_save_string
;
18309 uint32_t _flags_save_string
= ndr
->flags
;
18310 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18312 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->dll_name
));
18313 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
18314 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->dll_name
));
18316 ndr
->flags
= _flags_save_string
;
18319 return NDR_ERR_SUCCESS
;
18322 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo2
*r
)
18324 uint32_t _ptr_monitor_name
;
18325 TALLOC_CTX
*_mem_save_monitor_name_0
;
18326 uint32_t _ptr_environment
;
18327 TALLOC_CTX
*_mem_save_environment_0
;
18328 uint32_t _ptr_dll_name
;
18329 TALLOC_CTX
*_mem_save_dll_name_0
;
18330 if (ndr_flags
& NDR_SCALARS
) {
18331 NDR_CHECK(ndr_pull_align(ndr
, 5));
18333 uint32_t _flags_save_string
= ndr
->flags
;
18334 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18335 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
18336 if (_ptr_monitor_name
) {
18337 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
18338 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
18340 r
->monitor_name
= NULL
;
18342 ndr
->flags
= _flags_save_string
;
18345 uint32_t _flags_save_string
= ndr
->flags
;
18346 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18347 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
18348 if (_ptr_environment
) {
18349 NDR_PULL_ALLOC(ndr
, r
->environment
);
18350 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->environment
, _ptr_environment
));
18352 r
->environment
= NULL
;
18354 ndr
->flags
= _flags_save_string
;
18357 uint32_t _flags_save_string
= ndr
->flags
;
18358 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18359 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dll_name
));
18360 if (_ptr_dll_name
) {
18361 NDR_PULL_ALLOC(ndr
, r
->dll_name
);
18362 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dll_name
, _ptr_dll_name
));
18364 r
->dll_name
= NULL
;
18366 ndr
->flags
= _flags_save_string
;
18368 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18370 if (ndr_flags
& NDR_BUFFERS
) {
18372 uint32_t _flags_save_string
= ndr
->flags
;
18373 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18374 if (r
->monitor_name
) {
18375 uint32_t _relative_save_offset
;
18376 _relative_save_offset
= ndr
->offset
;
18377 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
18378 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18379 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
18380 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
18381 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
18382 if (ndr
->offset
> ndr
->relative_highest_offset
) {
18383 ndr
->relative_highest_offset
= ndr
->offset
;
18385 ndr
->offset
= _relative_save_offset
;
18387 ndr
->flags
= _flags_save_string
;
18390 uint32_t _flags_save_string
= ndr
->flags
;
18391 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18392 if (r
->environment
) {
18393 uint32_t _relative_save_offset
;
18394 _relative_save_offset
= ndr
->offset
;
18395 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->environment
));
18396 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18397 NDR_PULL_SET_MEM_CTX(ndr
, r
->environment
, 0);
18398 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->environment
));
18399 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
18400 if (ndr
->offset
> ndr
->relative_highest_offset
) {
18401 ndr
->relative_highest_offset
= ndr
->offset
;
18403 ndr
->offset
= _relative_save_offset
;
18405 ndr
->flags
= _flags_save_string
;
18408 uint32_t _flags_save_string
= ndr
->flags
;
18409 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18411 uint32_t _relative_save_offset
;
18412 _relative_save_offset
= ndr
->offset
;
18413 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dll_name
));
18414 _mem_save_dll_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18415 NDR_PULL_SET_MEM_CTX(ndr
, r
->dll_name
, 0);
18416 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
18417 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dll_name_0
, 0);
18418 if (ndr
->offset
> ndr
->relative_highest_offset
) {
18419 ndr
->relative_highest_offset
= ndr
->offset
;
18421 ndr
->offset
= _relative_save_offset
;
18423 ndr
->flags
= _flags_save_string
;
18426 return NDR_ERR_SUCCESS
;
18429 _PUBLIC_
void ndr_print_spoolss_MonitorInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo2
*r
)
18431 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo2");
18433 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
18435 if (r
->monitor_name
) {
18436 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
18439 ndr_print_ptr(ndr
, "environment", r
->environment
);
18441 if (r
->environment
) {
18442 ndr_print_string(ndr
, "environment", r
->environment
);
18445 ndr_print_ptr(ndr
, "dll_name", r
->dll_name
);
18448 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
18454 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
18456 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo2
, ic
);
18459 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_MonitorInfo
*r
)
18461 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
18463 uint32_t _flags_save_UNION
= ndr
->flags
;
18464 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18465 if (ndr_flags
& NDR_SCALARS
) {
18466 int level
= ndr_push_get_switch_value(ndr
, r
);
18467 NDR_CHECK(ndr_push_union_align(ndr
, 5));
18470 NDR_CHECK(ndr_push_align(ndr
, 5));
18471 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18472 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
18476 NDR_CHECK(ndr_push_align(ndr
, 5));
18477 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18478 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
18486 if (ndr_flags
& NDR_BUFFERS
) {
18487 int level
= ndr_push_get_switch_value(ndr
, r
);
18488 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
18491 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
18495 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
18503 ndr
->flags
= _flags_save_UNION
;
18505 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18506 return NDR_ERR_SUCCESS
;
18509 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_MonitorInfo
*r
)
18511 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
18514 uint32_t _flags_save_UNION
= ndr
->flags
;
18515 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18516 level
= ndr_pull_get_switch_value(ndr
, r
);
18517 if (ndr_flags
& NDR_SCALARS
) {
18518 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
18521 NDR_CHECK(ndr_pull_align(ndr
, 5));
18522 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18523 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
18527 NDR_CHECK(ndr_pull_align(ndr
, 5));
18528 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18529 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
18537 if (ndr_flags
& NDR_BUFFERS
) {
18538 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
18541 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
18545 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
18553 ndr
->flags
= _flags_save_UNION
;
18555 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18556 return NDR_ERR_SUCCESS
;
18559 _PUBLIC_
void ndr_print_spoolss_MonitorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_MonitorInfo
*r
)
18563 uint32_t _flags_save_UNION
= ndr
->flags
;
18564 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18565 level
= ndr_print_get_switch_value(ndr
, r
);
18566 ndr_print_union(ndr
, name
, level
, "spoolss_MonitorInfo");
18569 ndr_print_spoolss_MonitorInfo1(ndr
, "info1", &r
->info1
);
18573 ndr_print_spoolss_MonitorInfo2(ndr
, "info2", &r
->info2
);
18580 ndr
->flags
= _flags_save_UNION
;
18584 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
18586 if (ndr_flags
& NDR_SCALARS
) {
18587 NDR_CHECK(ndr_push_align(ndr
, 5));
18589 uint32_t _flags_save_string
= ndr
->flags
;
18590 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18591 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name_array
));
18592 ndr
->flags
= _flags_save_string
;
18594 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18596 if (ndr_flags
& NDR_BUFFERS
) {
18598 uint32_t _flags_save_string
= ndr
->flags
;
18599 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18600 if (r
->name_array
) {
18601 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->name_array
));
18602 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name_array
));
18603 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->name_array
));
18605 ndr
->flags
= _flags_save_string
;
18608 return NDR_ERR_SUCCESS
;
18611 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcDataTypesInfo1
*r
)
18613 uint32_t _ptr_name_array
;
18614 TALLOC_CTX
*_mem_save_name_array_0
;
18615 if (ndr_flags
& NDR_SCALARS
) {
18616 NDR_CHECK(ndr_pull_align(ndr
, 5));
18618 uint32_t _flags_save_string
= ndr
->flags
;
18619 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18620 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name_array
));
18621 if (_ptr_name_array
) {
18622 NDR_PULL_ALLOC(ndr
, r
->name_array
);
18623 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name_array
, _ptr_name_array
));
18625 r
->name_array
= NULL
;
18627 ndr
->flags
= _flags_save_string
;
18629 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18631 if (ndr_flags
& NDR_BUFFERS
) {
18633 uint32_t _flags_save_string
= ndr
->flags
;
18634 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18635 if (r
->name_array
) {
18636 uint32_t _relative_save_offset
;
18637 _relative_save_offset
= ndr
->offset
;
18638 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name_array
));
18639 _mem_save_name_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18640 NDR_PULL_SET_MEM_CTX(ndr
, r
->name_array
, 0);
18641 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name_array
));
18642 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_array_0
, 0);
18643 if (ndr
->offset
> ndr
->relative_highest_offset
) {
18644 ndr
->relative_highest_offset
= ndr
->offset
;
18646 ndr
->offset
= _relative_save_offset
;
18648 ndr
->flags
= _flags_save_string
;
18651 return NDR_ERR_SUCCESS
;
18654 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
18656 ndr_print_struct(ndr
, name
, "spoolss_PrintProcDataTypesInfo1");
18658 ndr_print_ptr(ndr
, "name_array", r
->name_array
);
18660 if (r
->name_array
) {
18661 ndr_print_string(ndr
, "name_array", r
->name_array
);
18667 _PUBLIC_
size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
18669 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcDataTypesInfo1
, ic
);
18672 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcDataTypesInfo
*r
)
18674 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
18676 uint32_t _flags_save_UNION
= ndr
->flags
;
18677 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18678 if (ndr_flags
& NDR_SCALARS
) {
18679 int level
= ndr_push_get_switch_value(ndr
, r
);
18680 NDR_CHECK(ndr_push_union_align(ndr
, 5));
18683 NDR_CHECK(ndr_push_align(ndr
, 5));
18684 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18685 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
18693 if (ndr_flags
& NDR_BUFFERS
) {
18694 int level
= ndr_push_get_switch_value(ndr
, r
);
18695 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
18698 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
18706 ndr
->flags
= _flags_save_UNION
;
18708 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18709 return NDR_ERR_SUCCESS
;
18712 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcDataTypesInfo
*r
)
18714 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
18717 uint32_t _flags_save_UNION
= ndr
->flags
;
18718 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18719 level
= ndr_pull_get_switch_value(ndr
, r
);
18720 if (ndr_flags
& NDR_SCALARS
) {
18721 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
18724 NDR_CHECK(ndr_pull_align(ndr
, 5));
18725 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18726 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
18734 if (ndr_flags
& NDR_BUFFERS
) {
18735 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
18738 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
18746 ndr
->flags
= _flags_save_UNION
;
18748 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18749 return NDR_ERR_SUCCESS
;
18752 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcDataTypesInfo
*r
)
18756 uint32_t _flags_save_UNION
= ndr
->flags
;
18757 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_RELATIVE_REVERSE
);
18758 level
= ndr_print_get_switch_value(ndr
, r
);
18759 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcDataTypesInfo");
18762 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr
, "info1", &r
->info1
);
18769 ndr
->flags
= _flags_save_UNION
;
18773 static enum ndr_err_code
ndr_push_spoolss_PrinterChangeFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18775 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18776 return NDR_ERR_SUCCESS
;
18779 static enum ndr_err_code
ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18782 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18784 return NDR_ERR_SUCCESS
;
18787 _PUBLIC_
void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18789 ndr_print_uint32(ndr
, name
, r
);
18791 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER
, r
);
18792 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER
, r
);
18793 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER
, r
);
18794 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER
, r
);
18795 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB
, r
);
18796 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB
, r
);
18797 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB
, r
);
18798 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB
, r
);
18799 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM
, r
);
18800 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM
, r
);
18801 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM
, r
);
18802 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT
, r
);
18803 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT
, r
);
18804 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT
, r
);
18805 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR
, r
);
18806 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR
, r
);
18807 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER
, r
);
18808 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER
, r
);
18809 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER
, r
);
18810 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER
, r
);
18811 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT
, r
);
18815 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobNotifyField(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobNotifyField r
)
18817 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
18818 return NDR_ERR_SUCCESS
;
18821 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobNotifyField(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobNotifyField
*r
)
18824 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
18826 return NDR_ERR_SUCCESS
;
18829 _PUBLIC_
void ndr_print_spoolss_JobNotifyField(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobNotifyField r
)
18831 const char *val
= NULL
;
18834 case JOB_NOTIFY_FIELD_PRINTER_NAME
: val
= "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
18835 case JOB_NOTIFY_FIELD_MACHINE_NAME
: val
= "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
18836 case JOB_NOTIFY_FIELD_PORT_NAME
: val
= "JOB_NOTIFY_FIELD_PORT_NAME"; break;
18837 case JOB_NOTIFY_FIELD_USER_NAME
: val
= "JOB_NOTIFY_FIELD_USER_NAME"; break;
18838 case JOB_NOTIFY_FIELD_NOTIFY_NAME
: val
= "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
18839 case JOB_NOTIFY_FIELD_DATATYPE
: val
= "JOB_NOTIFY_FIELD_DATATYPE"; break;
18840 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR
: val
= "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18841 case JOB_NOTIFY_FIELD_PARAMETERS
: val
= "JOB_NOTIFY_FIELD_PARAMETERS"; break;
18842 case JOB_NOTIFY_FIELD_DRIVER_NAME
: val
= "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
18843 case JOB_NOTIFY_FIELD_DEVMODE
: val
= "JOB_NOTIFY_FIELD_DEVMODE"; break;
18844 case JOB_NOTIFY_FIELD_STATUS
: val
= "JOB_NOTIFY_FIELD_STATUS"; break;
18845 case JOB_NOTIFY_FIELD_STATUS_STRING
: val
= "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
18846 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: val
= "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18847 case JOB_NOTIFY_FIELD_DOCUMENT
: val
= "JOB_NOTIFY_FIELD_DOCUMENT"; break;
18848 case JOB_NOTIFY_FIELD_PRIORITY
: val
= "JOB_NOTIFY_FIELD_PRIORITY"; break;
18849 case JOB_NOTIFY_FIELD_POSITION
: val
= "JOB_NOTIFY_FIELD_POSITION"; break;
18850 case JOB_NOTIFY_FIELD_SUBMITTED
: val
= "JOB_NOTIFY_FIELD_SUBMITTED"; break;
18851 case JOB_NOTIFY_FIELD_START_TIME
: val
= "JOB_NOTIFY_FIELD_START_TIME"; break;
18852 case JOB_NOTIFY_FIELD_UNTIL_TIME
: val
= "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
18853 case JOB_NOTIFY_FIELD_TIME
: val
= "JOB_NOTIFY_FIELD_TIME"; break;
18854 case JOB_NOTIFY_FIELD_TOTAL_PAGES
: val
= "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
18855 case JOB_NOTIFY_FIELD_PAGES_PRINTED
: val
= "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
18856 case JOB_NOTIFY_FIELD_TOTAL_BYTES
: val
= "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
18857 case JOB_NOTIFY_FIELD_BYTES_PRINTED
: val
= "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
18859 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18862 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintNotifyField(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrintNotifyField r
)
18864 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
18865 return NDR_ERR_SUCCESS
;
18868 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintNotifyField(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrintNotifyField
*r
)
18871 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
18873 return NDR_ERR_SUCCESS
;
18876 _PUBLIC_
void ndr_print_spoolss_PrintNotifyField(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrintNotifyField r
)
18878 const char *val
= NULL
;
18881 case PRINTER_NOTIFY_FIELD_SERVER_NAME
: val
= "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
18882 case PRINTER_NOTIFY_FIELD_PRINTER_NAME
: val
= "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
18883 case PRINTER_NOTIFY_FIELD_SHARE_NAME
: val
= "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
18884 case PRINTER_NOTIFY_FIELD_PORT_NAME
: val
= "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
18885 case PRINTER_NOTIFY_FIELD_DRIVER_NAME
: val
= "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
18886 case PRINTER_NOTIFY_FIELD_COMMENT
: val
= "PRINTER_NOTIFY_FIELD_COMMENT"; break;
18887 case PRINTER_NOTIFY_FIELD_LOCATION
: val
= "PRINTER_NOTIFY_FIELD_LOCATION"; break;
18888 case PRINTER_NOTIFY_FIELD_DEVMODE
: val
= "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
18889 case PRINTER_NOTIFY_FIELD_SEPFILE
: val
= "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
18890 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR
: val
= "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18891 case PRINTER_NOTIFY_FIELD_PARAMETERS
: val
= "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
18892 case PRINTER_NOTIFY_FIELD_DATATYPE
: val
= "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
18893 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: val
= "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18894 case PRINTER_NOTIFY_FIELD_ATTRIBUTES
: val
= "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
18895 case PRINTER_NOTIFY_FIELD_PRIORITY
: val
= "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
18896 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY
: val
= "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
18897 case PRINTER_NOTIFY_FIELD_START_TIME
: val
= "PRINTER_NOTIFY_FIELD_START_TIME"; break;
18898 case PRINTER_NOTIFY_FIELD_UNTIL_TIME
: val
= "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
18899 case PRINTER_NOTIFY_FIELD_STATUS
: val
= "PRINTER_NOTIFY_FIELD_STATUS"; break;
18900 case PRINTER_NOTIFY_FIELD_STATUS_STRING
: val
= "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
18901 case PRINTER_NOTIFY_FIELD_CJOBS
: val
= "PRINTER_NOTIFY_FIELD_CJOBS"; break;
18902 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM
: val
= "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
18903 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES
: val
= "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
18904 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED
: val
= "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
18905 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES
: val
= "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
18906 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED
: val
= "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
18907 case PRINTER_NOTIFY_FIELD_OBJECT_GUID
: val
= "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
18908 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME
: val
= "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
18910 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18913 static enum ndr_err_code
ndr_push_spoolss_NotifyType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyType r
)
18915 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
18916 return NDR_ERR_SUCCESS
;
18919 static enum ndr_err_code
ndr_pull_spoolss_NotifyType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyType
*r
)
18922 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
18924 return NDR_ERR_SUCCESS
;
18927 _PUBLIC_
void ndr_print_spoolss_NotifyType(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyType r
)
18929 const char *val
= NULL
;
18932 case PRINTER_NOTIFY_TYPE
: val
= "PRINTER_NOTIFY_TYPE"; break;
18933 case JOB_NOTIFY_TYPE
: val
= "JOB_NOTIFY_TYPE"; break;
18935 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18938 static enum ndr_err_code
ndr_push_spoolss_Field(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_Field
*r
)
18940 if (ndr_flags
& NDR_SCALARS
) {
18941 int level
= ndr_push_get_switch_value(ndr
, r
);
18942 NDR_CHECK(ndr_push_union_align(ndr
, 2));
18944 case PRINTER_NOTIFY_TYPE
: {
18945 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
18948 case JOB_NOTIFY_TYPE
: {
18949 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
18953 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
18958 if (ndr_flags
& NDR_BUFFERS
) {
18959 int level
= ndr_push_get_switch_value(ndr
, r
);
18961 case PRINTER_NOTIFY_TYPE
:
18964 case JOB_NOTIFY_TYPE
:
18972 return NDR_ERR_SUCCESS
;
18975 static enum ndr_err_code
ndr_pull_spoolss_Field(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_Field
*r
)
18978 level
= ndr_pull_get_switch_value(ndr
, r
);
18979 if (ndr_flags
& NDR_SCALARS
) {
18980 NDR_CHECK(ndr_pull_union_align(ndr
, 2));
18982 case PRINTER_NOTIFY_TYPE
: {
18983 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
18986 case JOB_NOTIFY_TYPE
: {
18987 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
18991 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
18996 if (ndr_flags
& NDR_BUFFERS
) {
18998 case PRINTER_NOTIFY_TYPE
:
19001 case JOB_NOTIFY_TYPE
:
19009 return NDR_ERR_SUCCESS
;
19012 static enum ndr_err_code
ndr_push_spoolss_NotifyOptionType(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOptionType
*r
)
19014 uint32_t cntr_fields_1
;
19015 if (ndr_flags
& NDR_SCALARS
) {
19016 NDR_CHECK(ndr_push_align(ndr
, 5));
19017 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
19018 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->u1
));
19019 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u2
));
19020 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u3
));
19021 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
19022 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->fields
));
19023 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19025 if (ndr_flags
& NDR_BUFFERS
) {
19027 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
19028 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
19029 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
));
19030 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
19034 return NDR_ERR_SUCCESS
;
19037 static enum ndr_err_code
ndr_pull_spoolss_NotifyOptionType(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOptionType
*r
)
19039 uint32_t _ptr_fields
;
19040 uint32_t cntr_fields_1
;
19041 TALLOC_CTX
*_mem_save_fields_0
;
19042 TALLOC_CTX
*_mem_save_fields_1
;
19043 if (ndr_flags
& NDR_SCALARS
) {
19044 NDR_CHECK(ndr_pull_align(ndr
, 5));
19045 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
19046 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->u1
));
19047 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u2
));
19048 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u3
));
19049 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
19050 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_fields
));
19052 NDR_PULL_ALLOC(ndr
, r
->fields
);
19056 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19058 if (ndr_flags
& NDR_BUFFERS
) {
19060 _mem_save_fields_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19061 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
19062 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->fields
));
19063 NDR_PULL_ALLOC_N(ndr
, r
->fields
, ndr_get_array_size(ndr
, &r
->fields
));
19064 _mem_save_fields_1
= NDR_PULL_GET_MEM_CTX(ndr
);
19065 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
19066 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
19067 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
));
19068 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
19070 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_1
, 0);
19071 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_0
, 0);
19074 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->fields
, r
->count
));
19077 return NDR_ERR_SUCCESS
;
19080 _PUBLIC_
void ndr_print_spoolss_NotifyOptionType(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOptionType
*r
)
19082 uint32_t cntr_fields_1
;
19083 ndr_print_struct(ndr
, name
, "spoolss_NotifyOptionType");
19085 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
19086 ndr_print_uint16(ndr
, "u1", r
->u1
);
19087 ndr_print_uint32(ndr
, "u2", r
->u2
);
19088 ndr_print_uint32(ndr
, "u3", r
->u3
);
19089 ndr_print_uint32(ndr
, "count", r
->count
);
19090 ndr_print_ptr(ndr
, "fields", r
->fields
);
19093 ndr
->print(ndr
, "%s: ARRAY(%d)", "fields", (int)r
->count
);
19095 for (cntr_fields_1
=0;cntr_fields_1
<r
->count
;cntr_fields_1
++) {
19097 if (asprintf(&idx_1
, "[%d]", cntr_fields_1
) != -1) {
19098 ndr_print_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
);
19099 ndr_print_spoolss_Field(ndr
, "fields", &r
->fields
[cntr_fields_1
]);
19109 static enum ndr_err_code
ndr_push_spoolssNotifyOptionFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19112 return NDR_ERR_SUCCESS
;
19115 static enum ndr_err_code
ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19118 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19120 return NDR_ERR_SUCCESS
;
19123 _PUBLIC_
void ndr_print_spoolssNotifyOptionFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19125 ndr_print_uint32(ndr
, name
, r
);
19127 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH
, r
);
19131 static enum ndr_err_code
ndr_push_spoolss_NotifyOption(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOption
*r
)
19133 uint32_t cntr_types_1
;
19134 if (ndr_flags
& NDR_SCALARS
) {
19135 NDR_CHECK(ndr_push_align(ndr
, 5));
19136 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
19137 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, r
->flags
));
19138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
19139 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->types
));
19140 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19142 if (ndr_flags
& NDR_BUFFERS
) {
19144 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
19145 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
19146 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
19148 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
19149 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
19153 return NDR_ERR_SUCCESS
;
19156 static enum ndr_err_code
ndr_pull_spoolss_NotifyOption(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOption
*r
)
19158 uint32_t _ptr_types
;
19159 uint32_t cntr_types_1
;
19160 TALLOC_CTX
*_mem_save_types_0
;
19161 TALLOC_CTX
*_mem_save_types_1
;
19162 if (ndr_flags
& NDR_SCALARS
) {
19163 NDR_CHECK(ndr_pull_align(ndr
, 5));
19164 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
19165 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, &r
->flags
));
19166 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
19167 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_types
));
19169 NDR_PULL_ALLOC(ndr
, r
->types
);
19173 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19175 if (ndr_flags
& NDR_BUFFERS
) {
19177 _mem_save_types_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19178 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
19179 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->types
));
19180 NDR_PULL_ALLOC_N(ndr
, r
->types
, ndr_get_array_size(ndr
, &r
->types
));
19181 _mem_save_types_1
= NDR_PULL_GET_MEM_CTX(ndr
);
19182 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
19183 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
19184 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
19186 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
19187 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
19189 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_1
, 0);
19190 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_0
, 0);
19193 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->types
, r
->count
));
19196 return NDR_ERR_SUCCESS
;
19199 _PUBLIC_
void ndr_print_spoolss_NotifyOption(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOption
*r
)
19201 uint32_t cntr_types_1
;
19202 ndr_print_struct(ndr
, name
, "spoolss_NotifyOption");
19204 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
19205 ndr_print_spoolssNotifyOptionFlags(ndr
, "flags", r
->flags
);
19206 ndr_print_uint32(ndr
, "count", r
->count
);
19207 ndr_print_ptr(ndr
, "types", r
->types
);
19210 ndr
->print(ndr
, "%s: ARRAY(%d)", "types", (int)r
->count
);
19212 for (cntr_types_1
=0;cntr_types_1
<r
->count
;cntr_types_1
++) {
19214 if (asprintf(&idx_1
, "[%d]", cntr_types_1
) != -1) {
19215 ndr_print_spoolss_NotifyOptionType(ndr
, "types", &r
->types
[cntr_types_1
]);
19225 static enum ndr_err_code
ndr_push_spoolss_NotifyString(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyString
*r
)
19227 if (ndr_flags
& NDR_SCALARS
) {
19228 NDR_CHECK(ndr_push_align(ndr
, 5));
19229 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
19230 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->string
));
19231 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19233 if (ndr_flags
& NDR_BUFFERS
) {
19235 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
/ 2));
19236 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->string
, r
->size
/ 2, sizeof(uint16_t), CH_UTF16
));
19239 return NDR_ERR_SUCCESS
;
19242 static enum ndr_err_code
ndr_pull_spoolss_NotifyString(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyString
*r
)
19244 uint32_t _ptr_string
;
19245 TALLOC_CTX
*_mem_save_string_0
;
19246 if (ndr_flags
& NDR_SCALARS
) {
19247 NDR_CHECK(ndr_pull_align(ndr
, 5));
19248 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
19249 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_string
));
19251 NDR_PULL_ALLOC(ndr
, r
->string
);
19255 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19257 if (ndr_flags
& NDR_BUFFERS
) {
19259 _mem_save_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19260 NDR_PULL_SET_MEM_CTX(ndr
, r
->string
, 0);
19261 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->string
));
19262 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->string
, ndr_get_array_size(ndr
, &r
->string
), sizeof(uint16_t), CH_UTF16
));
19263 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_string_0
, 0);
19266 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->string
, r
->size
/ 2));
19269 return NDR_ERR_SUCCESS
;
19272 _PUBLIC_
void ndr_print_spoolss_NotifyString(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyString
*r
)
19274 ndr_print_struct(ndr
, name
, "spoolss_NotifyString");
19276 ndr_print_uint32(ndr
, "size", r
->size
);
19277 ndr_print_ptr(ndr
, "string", r
->string
);
19280 ndr_print_string(ndr
, "string", r
->string
);
19286 static enum ndr_err_code
ndr_push_spoolss_NotifyTable(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyTable r
)
19288 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
19289 return NDR_ERR_SUCCESS
;
19292 static enum ndr_err_code
ndr_pull_spoolss_NotifyTable(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyTable
*r
)
19295 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
19297 return NDR_ERR_SUCCESS
;
19300 _PUBLIC_
void ndr_print_spoolss_NotifyTable(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyTable r
)
19302 const char *val
= NULL
;
19305 case NOTIFY_TABLE_DWORD
: val
= "NOTIFY_TABLE_DWORD"; break;
19306 case NOTIFY_TABLE_STRING
: val
= "NOTIFY_TABLE_STRING"; break;
19307 case NOTIFY_TABLE_DEVMODE
: val
= "NOTIFY_TABLE_DEVMODE"; break;
19308 case NOTIFY_TABLE_TIME
: val
= "NOTIFY_TABLE_TIME"; break;
19309 case NOTIFY_TABLE_SECURITYDESCRIPTOR
: val
= "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
19311 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
19314 static enum ndr_err_code
ndr_push_spoolss_NotifyData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_NotifyData
*r
)
19316 if (ndr_flags
& NDR_SCALARS
) {
19317 int level
= ndr_push_get_switch_value(ndr
, r
);
19318 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
19319 NDR_CHECK(ndr_push_union_align(ndr
, 5));
19322 uint32_t cntr_integer_0
;
19323 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
19324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->integer
[cntr_integer_0
]));
19329 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
19333 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
19337 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
19341 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
19345 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19348 if (ndr_flags
& NDR_BUFFERS
) {
19349 int level
= ndr_push_get_switch_value(ndr
, r
);
19355 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
19359 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
19363 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
19367 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
19371 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19374 return NDR_ERR_SUCCESS
;
19377 static enum ndr_err_code
ndr_pull_spoolss_NotifyData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_NotifyData
*r
)
19381 level
= ndr_pull_get_switch_value(ndr
, r
);
19382 if (ndr_flags
& NDR_SCALARS
) {
19383 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
19384 if (_level
!= level
) {
19385 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
19387 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
19390 uint32_t cntr_integer_0
;
19391 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
19392 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->integer
[cntr_integer_0
]));
19397 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
19401 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
19405 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
19409 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
19413 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19416 if (ndr_flags
& NDR_BUFFERS
) {
19422 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
19426 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
19430 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
19434 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
19438 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19441 return NDR_ERR_SUCCESS
;
19444 _PUBLIC_
void ndr_print_spoolss_NotifyData(struct ndr_print
*ndr
, const char *name
, const union spoolss_NotifyData
*r
)
19447 uint32_t cntr_integer_0
;
19448 level
= ndr_print_get_switch_value(ndr
, r
);
19449 ndr_print_union(ndr
, name
, level
, "spoolss_NotifyData");
19452 ndr
->print(ndr
, "%s: ARRAY(%d)", "integer", (int)2);
19454 for (cntr_integer_0
=0;cntr_integer_0
<2;cntr_integer_0
++) {
19456 if (asprintf(&idx_0
, "[%d]", cntr_integer_0
) != -1) {
19457 ndr_print_uint32(ndr
, "integer", r
->integer
[cntr_integer_0
]);
19465 ndr_print_spoolss_NotifyString(ndr
, "string", &r
->string
);
19469 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode", &r
->devmode
);
19473 ndr_print_spoolss_TimeCtr(ndr
, "time", &r
->time
);
19477 ndr_print_sec_desc_buf(ndr
, "sd", &r
->sd
);
19481 ndr_print_bad_level(ndr
, name
, level
);
19485 static enum ndr_err_code
ndr_push_spoolss_Notify(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_Notify
*r
)
19487 if (ndr_flags
& NDR_SCALARS
) {
19488 NDR_CHECK(ndr_push_align(ndr
, 5));
19489 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
19490 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->field
, r
->type
));
19491 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
19492 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr
, NDR_SCALARS
, r
->variable_type
));
19493 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
19494 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
19495 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
19496 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19498 if (ndr_flags
& NDR_BUFFERS
) {
19499 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
19501 return NDR_ERR_SUCCESS
;
19504 static enum ndr_err_code
ndr_pull_spoolss_Notify(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Notify
*r
)
19506 if (ndr_flags
& NDR_SCALARS
) {
19507 NDR_CHECK(ndr_pull_align(ndr
, 5));
19508 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
19509 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->field
, r
->type
));
19510 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
19511 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr
, NDR_SCALARS
, &r
->variable_type
));
19512 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
19513 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
19514 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
19515 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19517 if (ndr_flags
& NDR_BUFFERS
) {
19518 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
19520 return NDR_ERR_SUCCESS
;
19523 _PUBLIC_
void ndr_print_spoolss_Notify(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Notify
*r
)
19525 ndr_print_struct(ndr
, name
, "spoolss_Notify");
19527 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
19528 ndr_print_set_switch_value(ndr
, &r
->field
, r
->type
);
19529 ndr_print_spoolss_Field(ndr
, "field", &r
->field
);
19530 ndr_print_spoolss_NotifyTable(ndr
, "variable_type", r
->variable_type
);
19531 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
19532 ndr_print_set_switch_value(ndr
, &r
->data
, r
->variable_type
);
19533 ndr_print_spoolss_NotifyData(ndr
, "data", &r
->data
);
19537 static enum ndr_err_code
ndr_push_spoolss_NotifyInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyInfo
*r
)
19539 uint32_t cntr_notifies_0
;
19540 if (ndr_flags
& NDR_SCALARS
) {
19541 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
19542 NDR_CHECK(ndr_push_align(ndr
, 5));
19543 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
19544 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
19545 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
19546 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
19547 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
19549 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19551 if (ndr_flags
& NDR_BUFFERS
) {
19552 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
19553 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
19556 return NDR_ERR_SUCCESS
;
19559 static enum ndr_err_code
ndr_pull_spoolss_NotifyInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyInfo
*r
)
19561 uint32_t cntr_notifies_0
;
19562 TALLOC_CTX
*_mem_save_notifies_0
;
19563 if (ndr_flags
& NDR_SCALARS
) {
19564 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notifies
));
19565 NDR_CHECK(ndr_pull_align(ndr
, 5));
19566 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
19567 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
19568 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
19569 NDR_PULL_ALLOC_N(ndr
, r
->notifies
, ndr_get_array_size(ndr
, &r
->notifies
));
19570 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19571 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
19572 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
19573 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
19575 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
19577 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->notifies
, r
->count
));
19579 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19581 if (ndr_flags
& NDR_BUFFERS
) {
19582 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19583 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
19584 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
19585 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
19587 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
19589 return NDR_ERR_SUCCESS
;
19592 _PUBLIC_
void ndr_print_spoolss_NotifyInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyInfo
*r
)
19594 uint32_t cntr_notifies_0
;
19595 ndr_print_struct(ndr
, name
, "spoolss_NotifyInfo");
19597 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
19598 ndr_print_uint32(ndr
, "flags", r
->flags
);
19599 ndr_print_uint32(ndr
, "count", r
->count
);
19600 ndr
->print(ndr
, "%s: ARRAY(%d)", "notifies", (int)r
->count
);
19602 for (cntr_notifies_0
=0;cntr_notifies_0
<r
->count
;cntr_notifies_0
++) {
19604 if (asprintf(&idx_0
, "[%d]", cntr_notifies_0
) != -1) {
19605 ndr_print_spoolss_Notify(ndr
, "notifies", &r
->notifies
[cntr_notifies_0
]);
19613 static enum ndr_err_code
ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_ReplyPrinterInfo
*r
)
19615 if (ndr_flags
& NDR_SCALARS
) {
19616 int level
= ndr_push_get_switch_value(ndr
, r
);
19617 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
19618 NDR_CHECK(ndr_push_union_align(ndr
, 5));
19621 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
19625 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19628 if (ndr_flags
& NDR_BUFFERS
) {
19629 int level
= ndr_push_get_switch_value(ndr
, r
);
19633 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
19638 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19641 return NDR_ERR_SUCCESS
;
19644 static enum ndr_err_code
ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_ReplyPrinterInfo
*r
)
19648 TALLOC_CTX
*_mem_save_info0_0
;
19649 level
= ndr_pull_get_switch_value(ndr
, r
);
19650 if (ndr_flags
& NDR_SCALARS
) {
19651 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
19652 if (_level
!= level
) {
19653 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
19655 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
19658 uint32_t _ptr_info0
;
19659 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
19661 NDR_PULL_ALLOC(ndr
, r
->info0
);
19668 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19671 if (ndr_flags
& NDR_BUFFERS
) {
19675 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19676 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
19677 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
19678 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
19683 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
19686 return NDR_ERR_SUCCESS
;
19689 _PUBLIC_
void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_ReplyPrinterInfo
*r
)
19692 level
= ndr_print_get_switch_value(ndr
, r
);
19693 ndr_print_union(ndr
, name
, level
, "spoolss_ReplyPrinterInfo");
19696 ndr_print_ptr(ndr
, "info0", r
->info0
);
19699 ndr_print_spoolss_NotifyInfo(ndr
, "info0", r
->info0
);
19705 ndr_print_bad_level(ndr
, name
, level
);
19709 static enum ndr_err_code
ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19711 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19712 return NDR_ERR_SUCCESS
;
19715 static enum ndr_err_code
ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19718 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19720 return NDR_ERR_SUCCESS
;
19723 _PUBLIC_
void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19725 ndr_print_uint32(ndr
, name
, r
);
19727 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED
, r
);
19728 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED
, r
);
19729 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH
, r
);
19733 static enum ndr_err_code
ndr_push_spoolss_UserLevel1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel1
*r
)
19735 if (ndr_flags
& NDR_SCALARS
) {
19736 NDR_CHECK(ndr_push_align(ndr
, 5));
19737 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
19738 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
19739 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
19740 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
19741 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
19742 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
19743 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
19744 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19746 if (ndr_flags
& NDR_BUFFERS
) {
19748 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
19749 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19750 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
19751 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19754 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
19755 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19756 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
19757 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19760 return NDR_ERR_SUCCESS
;
19763 static enum ndr_err_code
ndr_pull_spoolss_UserLevel1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel1
*r
)
19765 uint32_t _ptr_client
;
19766 TALLOC_CTX
*_mem_save_client_0
;
19767 uint32_t _ptr_user
;
19768 TALLOC_CTX
*_mem_save_user_0
;
19769 if (ndr_flags
& NDR_SCALARS
) {
19770 NDR_CHECK(ndr_pull_align(ndr
, 5));
19771 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
19772 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
19774 NDR_PULL_ALLOC(ndr
, r
->client
);
19778 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
19780 NDR_PULL_ALLOC(ndr
, r
->user
);
19784 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
19785 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
19786 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
19787 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
19788 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19790 if (ndr_flags
& NDR_BUFFERS
) {
19792 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19793 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
19794 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
19795 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
19796 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
19797 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->client
), ndr_get_array_length(ndr
, &r
->client
));
19799 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
19800 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
19801 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
19804 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19805 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
19806 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
19807 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
19808 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
19809 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->user
), ndr_get_array_length(ndr
, &r
->user
));
19811 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
19812 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
19813 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
19816 return NDR_ERR_SUCCESS
;
19819 _PUBLIC_
void ndr_print_spoolss_UserLevel1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel1
*r
)
19821 ndr_print_struct(ndr
, name
, "spoolss_UserLevel1");
19823 ndr_print_uint32(ndr
, "size", r
->size
);
19824 ndr_print_ptr(ndr
, "client", r
->client
);
19827 ndr_print_string(ndr
, "client", r
->client
);
19830 ndr_print_ptr(ndr
, "user", r
->user
);
19833 ndr_print_string(ndr
, "user", r
->user
);
19836 ndr_print_uint32(ndr
, "build", r
->build
);
19837 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
19838 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
19839 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
19843 static enum ndr_err_code
ndr_push_spoolss_UserLevel2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel2
*r
)
19845 if (ndr_flags
& NDR_SCALARS
) {
19846 NDR_CHECK(ndr_push_align(ndr
, 4));
19847 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->not_used
));
19848 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
19850 if (ndr_flags
& NDR_BUFFERS
) {
19852 return NDR_ERR_SUCCESS
;
19855 static enum ndr_err_code
ndr_pull_spoolss_UserLevel2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel2
*r
)
19857 if (ndr_flags
& NDR_SCALARS
) {
19858 NDR_CHECK(ndr_pull_align(ndr
, 4));
19859 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->not_used
));
19860 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
19862 if (ndr_flags
& NDR_BUFFERS
) {
19864 return NDR_ERR_SUCCESS
;
19867 _PUBLIC_
void ndr_print_spoolss_UserLevel2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel2
*r
)
19869 ndr_print_struct(ndr
, name
, "spoolss_UserLevel2");
19871 ndr_print_uint32(ndr
, "not_used", r
->not_used
);
19875 static enum ndr_err_code
ndr_push_spoolss_UserLevel3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel3
*r
)
19877 if (ndr_flags
& NDR_SCALARS
) {
19878 NDR_CHECK(ndr_push_align(ndr
, 5));
19879 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
19880 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
19881 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size2
));
19882 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
19883 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
19884 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
19885 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
19886 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
19887 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
19888 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reserved
));
19889 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19891 if (ndr_flags
& NDR_BUFFERS
) {
19893 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
19894 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19895 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
19896 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19899 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
19900 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19901 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
19902 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19905 return NDR_ERR_SUCCESS
;
19908 static enum ndr_err_code
ndr_pull_spoolss_UserLevel3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel3
*r
)
19910 uint32_t _ptr_client
;
19911 TALLOC_CTX
*_mem_save_client_0
;
19912 uint32_t _ptr_user
;
19913 TALLOC_CTX
*_mem_save_user_0
;
19914 if (ndr_flags
& NDR_SCALARS
) {
19915 NDR_CHECK(ndr_pull_align(ndr
, 5));
19916 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
19917 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
19918 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size2
));
19919 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
19921 NDR_PULL_ALLOC(ndr
, r
->client
);
19925 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
19927 NDR_PULL_ALLOC(ndr
, r
->user
);
19931 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
19932 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
19933 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
19934 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
19935 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reserved
));
19936 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19938 if (ndr_flags
& NDR_BUFFERS
) {
19940 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19941 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
19942 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
19943 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
19944 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
19945 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->client
), ndr_get_array_length(ndr
, &r
->client
));
19947 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
19948 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
19949 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
19952 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19953 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
19954 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
19955 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
19956 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
19957 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->user
), ndr_get_array_length(ndr
, &r
->user
));
19959 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
19960 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
19961 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
19964 return NDR_ERR_SUCCESS
;
19967 _PUBLIC_
void ndr_print_spoolss_UserLevel3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel3
*r
)
19969 ndr_print_struct(ndr
, name
, "spoolss_UserLevel3");
19971 ndr_print_uint32(ndr
, "size", r
->size
);
19972 ndr_print_uint32(ndr
, "flags", r
->flags
);
19973 ndr_print_uint32(ndr
, "size2", r
->size2
);
19974 ndr_print_ptr(ndr
, "client", r
->client
);
19977 ndr_print_string(ndr
, "client", r
->client
);
19980 ndr_print_ptr(ndr
, "user", r
->user
);
19983 ndr_print_string(ndr
, "user", r
->user
);
19986 ndr_print_uint32(ndr
, "build", r
->build
);
19987 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
19988 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
19989 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
19990 ndr_print_udlong(ndr
, "reserved", r
->reserved
);
19994 static enum ndr_err_code
ndr_push_spoolss_UserLevel(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_UserLevel
*r
)
19996 if (ndr_flags
& NDR_SCALARS
) {
19997 int level
= ndr_push_get_switch_value(ndr
, r
);
19998 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
19999 NDR_CHECK(ndr_push_union_align(ndr
, 5));
20002 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level1
));
20006 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level2
));
20010 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level3
));
20014 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
20017 if (ndr_flags
& NDR_BUFFERS
) {
20018 int level
= ndr_push_get_switch_value(ndr
, r
);
20022 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
20028 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
20034 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
20039 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
20042 return NDR_ERR_SUCCESS
;
20045 static enum ndr_err_code
ndr_pull_spoolss_UserLevel(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_UserLevel
*r
)
20049 TALLOC_CTX
*_mem_save_level1_0
;
20050 TALLOC_CTX
*_mem_save_level2_0
;
20051 TALLOC_CTX
*_mem_save_level3_0
;
20052 level
= ndr_pull_get_switch_value(ndr
, r
);
20053 if (ndr_flags
& NDR_SCALARS
) {
20054 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
20055 if (_level
!= level
) {
20056 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
20058 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
20061 uint32_t _ptr_level1
;
20062 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level1
));
20064 NDR_PULL_ALLOC(ndr
, r
->level1
);
20071 uint32_t _ptr_level2
;
20072 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level2
));
20074 NDR_PULL_ALLOC(ndr
, r
->level2
);
20081 uint32_t _ptr_level3
;
20082 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level3
));
20084 NDR_PULL_ALLOC(ndr
, r
->level3
);
20091 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
20094 if (ndr_flags
& NDR_BUFFERS
) {
20098 _mem_save_level1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20099 NDR_PULL_SET_MEM_CTX(ndr
, r
->level1
, 0);
20100 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
20101 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level1_0
, 0);
20107 _mem_save_level2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20108 NDR_PULL_SET_MEM_CTX(ndr
, r
->level2
, 0);
20109 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
20110 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level2_0
, 0);
20116 _mem_save_level3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20117 NDR_PULL_SET_MEM_CTX(ndr
, r
->level3
, 0);
20118 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
20119 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level3_0
, 0);
20124 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
20127 return NDR_ERR_SUCCESS
;
20130 _PUBLIC_
void ndr_print_spoolss_UserLevel(struct ndr_print
*ndr
, const char *name
, const union spoolss_UserLevel
*r
)
20133 level
= ndr_print_get_switch_value(ndr
, r
);
20134 ndr_print_union(ndr
, name
, level
, "spoolss_UserLevel");
20137 ndr_print_ptr(ndr
, "level1", r
->level1
);
20140 ndr_print_spoolss_UserLevel1(ndr
, "level1", r
->level1
);
20146 ndr_print_ptr(ndr
, "level2", r
->level2
);
20149 ndr_print_spoolss_UserLevel2(ndr
, "level2", r
->level2
);
20155 ndr_print_ptr(ndr
, "level3", r
->level3
);
20158 ndr_print_spoolss_UserLevel3(ndr
, "level3", r
->level3
);
20164 ndr_print_bad_level(ndr
, name
, level
);
20168 static enum ndr_err_code
ndr_push_spoolss_UserLevelCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevelCtr
*r
)
20170 if (ndr_flags
& NDR_SCALARS
) {
20171 NDR_CHECK(ndr_push_align(ndr
, 5));
20172 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
20173 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->user_info
, r
->level
));
20174 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
20175 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
20177 if (ndr_flags
& NDR_BUFFERS
) {
20178 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
20180 return NDR_ERR_SUCCESS
;
20183 static enum ndr_err_code
ndr_pull_spoolss_UserLevelCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevelCtr
*r
)
20185 if (ndr_flags
& NDR_SCALARS
) {
20186 NDR_CHECK(ndr_pull_align(ndr
, 5));
20187 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
20188 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->user_info
, r
->level
));
20189 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
20190 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
20192 if (ndr_flags
& NDR_BUFFERS
) {
20193 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
20195 return NDR_ERR_SUCCESS
;
20198 _PUBLIC_
void ndr_print_spoolss_UserLevelCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevelCtr
*r
)
20200 ndr_print_struct(ndr
, name
, "spoolss_UserLevelCtr");
20202 ndr_print_uint32(ndr
, "level", r
->level
);
20203 ndr_print_set_switch_value(ndr
, &r
->user_info
, r
->level
);
20204 ndr_print_spoolss_UserLevel(ndr
, "user_info", &r
->user_info
);
20208 static enum ndr_err_code
ndr_push_spoolss_AccessRights(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
20210 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
20211 return NDR_ERR_SUCCESS
;
20214 static enum ndr_err_code
ndr_pull_spoolss_AccessRights(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
20217 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
20219 return NDR_ERR_SUCCESS
;
20222 _PUBLIC_
void ndr_print_spoolss_AccessRights(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
20224 ndr_print_uint32(ndr
, name
, r
);
20226 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER
, r
);
20227 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE
, r
);
20228 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER
, r
);
20229 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE
, r
);
20230 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER
, r
);
20231 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ
, r
);
20235 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterEnumValues(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterEnumValues
*r
)
20237 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
20238 if (ndr_flags
& NDR_SCALARS
) {
20239 NDR_CHECK(ndr_push_align(ndr
, 5));
20240 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
20242 uint32_t _flags_save_string
= ndr
->flags
;
20243 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
20244 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->value_name
));
20245 ndr
->flags
= _flags_save_string
;
20247 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2 * strlen_m_term(r
->value_name
)));
20248 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->type
));
20249 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data
));
20250 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_PrinterData(r
->data
, r
->type
, ndr
->iconv_convenience
, ndr
->flags
)));
20251 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
20253 if (ndr_flags
& NDR_BUFFERS
) {
20254 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
20256 uint32_t _flags_save_string
= ndr
->flags
;
20257 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
20258 if (r
->value_name
) {
20259 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->value_name
));
20260 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->value_name
));
20261 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->value_name
));
20263 ndr
->flags
= _flags_save_string
;
20266 NDR_CHECK(ndr_push_relative_ptr2_start(ndr
, r
->data
));
20268 struct ndr_push
*_ndr_data
;
20269 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_data
, 0, r
->data_length
));
20270 NDR_CHECK(ndr_push_set_switch_value(_ndr_data
, r
->data
, r
->type
));
20271 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, r
->data
));
20272 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_data
, 0, r
->data_length
));
20274 NDR_CHECK(ndr_push_relative_ptr2_end(ndr
, r
->data
));
20277 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
20278 return NDR_ERR_SUCCESS
;
20281 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterEnumValues
*r
)
20283 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
20284 uint32_t _ptr_value_name
;
20285 TALLOC_CTX
*_mem_save_value_name_0
;
20286 uint32_t _ptr_data
;
20287 TALLOC_CTX
*_mem_save_data_0
;
20288 if (ndr_flags
& NDR_SCALARS
) {
20289 NDR_CHECK(ndr_pull_align(ndr
, 5));
20290 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
20292 uint32_t _flags_save_string
= ndr
->flags
;
20293 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
20294 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value_name
));
20295 if (_ptr_value_name
) {
20296 NDR_PULL_ALLOC(ndr
, r
->value_name
);
20297 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->value_name
, _ptr_value_name
));
20299 r
->value_name
= NULL
;
20301 ndr
->flags
= _flags_save_string
;
20303 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value_name_len
));
20304 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->type
));
20305 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
20307 NDR_PULL_ALLOC(ndr
, r
->data
);
20308 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data
, _ptr_data
));
20312 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data_length
));
20313 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
20315 if (ndr_flags
& NDR_BUFFERS
) {
20316 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
20318 uint32_t _flags_save_string
= ndr
->flags
;
20319 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
20320 if (r
->value_name
) {
20321 uint32_t _relative_save_offset
;
20322 _relative_save_offset
= ndr
->offset
;
20323 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->value_name
));
20324 _mem_save_value_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20325 NDR_PULL_SET_MEM_CTX(ndr
, r
->value_name
, 0);
20326 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->value_name
));
20327 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_name_0
, 0);
20328 if (ndr
->offset
> ndr
->relative_highest_offset
) {
20329 ndr
->relative_highest_offset
= ndr
->offset
;
20331 ndr
->offset
= _relative_save_offset
;
20333 ndr
->flags
= _flags_save_string
;
20336 uint32_t _relative_save_offset
;
20337 _relative_save_offset
= ndr
->offset
;
20338 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data
));
20339 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20340 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
20342 struct ndr_pull
*_ndr_data
;
20343 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 0, r
->data_length
));
20344 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, r
->data
, r
->type
));
20345 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, r
->data
));
20346 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 0, r
->data_length
));
20348 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
20349 if (ndr
->offset
> ndr
->relative_highest_offset
) {
20350 ndr
->relative_highest_offset
= ndr
->offset
;
20352 ndr
->offset
= _relative_save_offset
;
20355 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
20356 return NDR_ERR_SUCCESS
;
20359 _PUBLIC_
void ndr_print_spoolss_PrinterEnumValues(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterEnumValues
*r
)
20361 ndr_print_struct(ndr
, name
, "spoolss_PrinterEnumValues");
20363 ndr_print_ptr(ndr
, "value_name", r
->value_name
);
20365 if (r
->value_name
) {
20366 ndr_print_string(ndr
, "value_name", r
->value_name
);
20369 ndr_print_uint32(ndr
, "value_name_len", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2 * strlen_m_term(r
->value_name
):r
->value_name_len
);
20370 ndr_print_winreg_Type(ndr
, "type", r
->type
);
20371 ndr_print_ptr(ndr
, "data", r
->data
);
20374 ndr_print_set_switch_value(ndr
, r
->data
, r
->type
);
20375 ndr_print_spoolss_PrinterData(ndr
, "data", r
->data
);
20378 ndr_print_uint32(ndr
, "data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_PrinterData(r
->data
, r
->type
, ndr
->iconv_convenience
, ndr
->flags
):r
->data_length
);
20382 _PUBLIC_
size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues
*r
, struct smb_iconv_convenience
*ic
, int flags
)
20384 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterEnumValues
, ic
);
20387 static enum ndr_err_code
ndr_push_spoolss_KeyNames(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_KeyNames
*r
)
20389 if (ndr_flags
& NDR_SCALARS
) {
20390 int level
= ndr_push_get_switch_value(ndr
, r
);
20391 NDR_CHECK(ndr_push_union_align(ndr
, 4));
20401 uint32_t _flags_save_string_array
= ndr
->flags
;
20402 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
20403 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
20404 ndr
->flags
= _flags_save_string_array
;
20410 if (ndr_flags
& NDR_BUFFERS
) {
20411 int level
= ndr_push_get_switch_value(ndr
, r
);
20424 return NDR_ERR_SUCCESS
;
20427 static enum ndr_err_code
ndr_pull_spoolss_KeyNames(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_KeyNames
*r
)
20430 level
= ndr_pull_get_switch_value(ndr
, r
);
20431 if (ndr_flags
& NDR_SCALARS
) {
20432 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
20442 uint32_t _flags_save_string_array
= ndr
->flags
;
20443 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
20444 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
20445 ndr
->flags
= _flags_save_string_array
;
20451 if (ndr_flags
& NDR_BUFFERS
) {
20464 return NDR_ERR_SUCCESS
;
20467 _PUBLIC_
void ndr_print_spoolss_KeyNames(struct ndr_print
*ndr
, const char *name
, const union spoolss_KeyNames
*r
)
20470 level
= ndr_print_get_switch_value(ndr
, r
);
20471 ndr_print_union(ndr
, name
, level
, "spoolss_KeyNames");
20480 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
20486 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeleteDriverFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
20488 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
20489 return NDR_ERR_SUCCESS
;
20492 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
20495 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
20497 return NDR_ERR_SUCCESS
;
20500 _PUBLIC_
void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
20502 ndr_print_uint32(ndr
, name
, r
);
20504 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES
, r
);
20505 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION
, r
);
20506 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES
, r
);
20510 static enum ndr_err_code
ndr_push_spoolss_PortProtocol(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortProtocol r
)
20512 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
20513 return NDR_ERR_SUCCESS
;
20516 static enum ndr_err_code
ndr_pull_spoolss_PortProtocol(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortProtocol
*r
)
20519 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
20521 return NDR_ERR_SUCCESS
;
20524 _PUBLIC_
void ndr_print_spoolss_PortProtocol(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortProtocol r
)
20526 const char *val
= NULL
;
20529 case PROTOCOL_RAWTCP_TYPE
: val
= "PROTOCOL_RAWTCP_TYPE"; break;
20530 case PROTOCOL_LPR_TYPE
: val
= "PROTOCOL_LPR_TYPE"; break;
20532 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
20535 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData1
*r
)
20537 if (ndr_flags
& NDR_SCALARS
) {
20538 NDR_CHECK(ndr_push_align(ndr
, 4));
20539 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
20540 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000001));
20541 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
20542 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
20543 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
20544 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
20545 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
20546 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
20547 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
20548 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
20549 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
20550 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
20551 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
20552 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
20553 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
20554 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
20556 if (ndr_flags
& NDR_BUFFERS
) {
20558 return NDR_ERR_SUCCESS
;
20561 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData1
*r
)
20563 if (ndr_flags
& NDR_SCALARS
) {
20564 NDR_CHECK(ndr_pull_align(ndr
, 4));
20565 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
20566 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
20567 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
20568 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
20569 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
20570 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
20571 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
20572 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
20573 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
20574 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
20575 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
20576 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
20577 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
20578 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
20579 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
20580 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
20582 if (ndr_flags
& NDR_BUFFERS
) {
20584 return NDR_ERR_SUCCESS
;
20587 _PUBLIC_
void ndr_print_spoolss_PortData1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData1
*r
)
20589 ndr_print_struct(ndr
, name
, "spoolss_PortData1");
20591 ndr_print_string(ndr
, "portname", r
->portname
);
20592 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000001:r
->version
);
20593 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
20594 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
20595 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
20596 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
20597 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
20598 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
20599 ndr_print_string(ndr
, "queue", r
->queue
);
20600 ndr_print_string(ndr
, "ip_address", r
->ip_address
);
20601 ndr_print_string(ndr
, "hardware_address", r
->hardware_address
);
20602 ndr_print_string(ndr
, "device_type", r
->device_type
);
20603 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
20604 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
20605 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
20609 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData2
*r
)
20611 if (ndr_flags
& NDR_SCALARS
) {
20612 NDR_CHECK(ndr_push_align(ndr
, 4));
20613 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
20614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000002));
20615 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
20616 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
20617 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
20618 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
20619 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
20620 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
20621 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
20622 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
20623 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
20624 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
20625 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
20626 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_monitor_mib_index
));
20627 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
20629 if (ndr_flags
& NDR_BUFFERS
) {
20631 return NDR_ERR_SUCCESS
;
20634 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData2
*r
)
20636 if (ndr_flags
& NDR_SCALARS
) {
20637 NDR_CHECK(ndr_pull_align(ndr
, 4));
20638 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
20639 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
20640 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
20641 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
20642 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
20643 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
20644 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
20645 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
20646 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
20647 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
20648 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
20649 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
20650 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
20651 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_monitor_mib_index
));
20652 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
20654 if (ndr_flags
& NDR_BUFFERS
) {
20656 return NDR_ERR_SUCCESS
;
20659 _PUBLIC_
void ndr_print_spoolss_PortData2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData2
*r
)
20661 ndr_print_struct(ndr
, name
, "spoolss_PortData2");
20663 ndr_print_string(ndr
, "portname", r
->portname
);
20664 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000002:r
->version
);
20665 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
20666 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
20667 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
20668 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
20669 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
20670 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
20671 ndr_print_string(ndr
, "queue", r
->queue
);
20672 ndr_print_string(ndr
, "device_type", r
->device_type
);
20673 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
20674 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
20675 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
20676 ndr_print_uint32(ndr
, "port_monitor_mib_index", r
->port_monitor_mib_index
);
20680 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorUi(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorUi
*r
)
20682 if (ndr_flags
& NDR_SCALARS
) {
20683 NDR_CHECK(ndr_push_align(ndr
, 4));
20685 uint32_t _flags_save_string
= ndr
->flags
;
20686 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
20687 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
20688 ndr
->flags
= _flags_save_string
;
20690 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
20692 if (ndr_flags
& NDR_BUFFERS
) {
20694 return NDR_ERR_SUCCESS
;
20697 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorUi(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorUi
*r
)
20699 if (ndr_flags
& NDR_SCALARS
) {
20700 NDR_CHECK(ndr_pull_align(ndr
, 4));
20702 uint32_t _flags_save_string
= ndr
->flags
;
20703 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
20704 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
20705 ndr
->flags
= _flags_save_string
;
20707 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
20709 if (ndr_flags
& NDR_BUFFERS
) {
20711 return NDR_ERR_SUCCESS
;
20714 _PUBLIC_
void ndr_print_spoolss_MonitorUi(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorUi
*r
)
20716 ndr_print_struct(ndr
, name
, "spoolss_MonitorUi");
20718 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
20722 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
20724 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
20725 return NDR_ERR_SUCCESS
;
20728 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
20731 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
20733 return NDR_ERR_SUCCESS
;
20736 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
20738 ndr_print_uint32(ndr
, name
, r
);
20740 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE
, r
);
20741 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE
, r
);
20742 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES
, r
);
20743 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES
, r
);
20744 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY
, r
);
20745 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER
, r
);
20746 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS
, r
);
20747 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE
, r
);
20751 static enum ndr_err_code
ndr_push_spoolss_CorePrinterDriver(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_CorePrinterDriver
*r
)
20753 if (ndr_flags
& NDR_SCALARS
) {
20754 NDR_CHECK(ndr_push_align(ndr
, 8));
20755 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->core_driver_guid
));
20756 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
20757 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
20758 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, 520, sizeof(uint8_t), CH_UTF8
));
20759 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
20761 if (ndr_flags
& NDR_BUFFERS
) {
20763 return NDR_ERR_SUCCESS
;
20766 static enum ndr_err_code
ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_CorePrinterDriver
*r
)
20768 if (ndr_flags
& NDR_SCALARS
) {
20769 NDR_CHECK(ndr_pull_align(ndr
, 8));
20770 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->core_driver_guid
));
20771 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
20772 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
20773 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, 520, sizeof(uint8_t), CH_UTF8
));
20774 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
20776 if (ndr_flags
& NDR_BUFFERS
) {
20778 return NDR_ERR_SUCCESS
;
20781 _PUBLIC_
void ndr_print_spoolss_CorePrinterDriver(struct ndr_print
*ndr
, const char *name
, const struct spoolss_CorePrinterDriver
*r
)
20783 ndr_print_struct(ndr
, name
, "spoolss_CorePrinterDriver");
20785 ndr_print_GUID(ndr
, "core_driver_guid", &r
->core_driver_guid
);
20786 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
20787 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
20788 ndr_print_string(ndr
, "formname", r
->formname
);
20792 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinters
*r
)
20794 if (flags
& NDR_IN
) {
20795 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
20796 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20797 if (r
->in
.server
) {
20798 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20799 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
20800 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20801 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20804 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20805 if (r
->in
.buffer
) {
20806 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20808 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20810 if (flags
& NDR_OUT
) {
20811 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20813 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20815 if (r
->out
.needed
== NULL
) {
20816 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20818 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20819 if (r
->out
.count
== NULL
) {
20820 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20822 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20823 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20825 return NDR_ERR_SUCCESS
;
20828 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinters
*r
)
20830 uint32_t _ptr_server
;
20831 uint32_t _ptr_buffer
;
20832 uint32_t _ptr_info
;
20833 TALLOC_CTX
*_mem_save_server_0
;
20834 TALLOC_CTX
*_mem_save_buffer_0
;
20835 TALLOC_CTX
*_mem_save_info_0
;
20836 TALLOC_CTX
*_mem_save_needed_0
;
20837 TALLOC_CTX
*_mem_save_count_0
;
20838 if (flags
& NDR_IN
) {
20839 ZERO_STRUCT(r
->out
);
20841 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
20842 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20844 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20846 r
->in
.server
= NULL
;
20848 if (r
->in
.server
) {
20849 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20850 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20851 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20852 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20853 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20854 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
20856 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20857 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20858 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20860 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20861 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20863 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20865 r
->in
.buffer
= NULL
;
20867 if (r
->in
.buffer
) {
20868 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20869 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20870 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20871 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20873 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20874 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20875 ZERO_STRUCTP(r
->out
.needed
);
20876 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20877 ZERO_STRUCTP(r
->out
.count
);
20879 if (flags
& NDR_OUT
) {
20880 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20882 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20884 r
->out
.info
= NULL
;
20887 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20888 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20889 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
20890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20892 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20893 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20895 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20896 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20897 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20898 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20899 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20900 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20902 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20903 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
20904 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
20905 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
20906 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20908 return NDR_ERR_SUCCESS
;
20911 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinters
*r
)
20913 uint32_t cntr_info_0
;
20914 if (flags
& NDR_IN
) {
20915 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20916 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
20918 if (flags
& NDR_OUT
) {
20919 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20920 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20921 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20923 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20924 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20927 return NDR_ERR_SUCCESS
;
20930 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinters
*r
)
20932 uint32_t cntr_info_0
;
20933 TALLOC_CTX
*_mem_save_info_0
;
20934 if (flags
& NDR_IN
) {
20935 ZERO_STRUCT(r
->out
);
20937 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20938 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
20940 if (flags
& NDR_OUT
) {
20941 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
20942 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20943 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20944 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20945 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20946 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20948 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20949 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20951 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20953 return NDR_ERR_SUCCESS
;
20956 _PUBLIC_
void ndr_print_spoolss_EnumPrinters(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinters
*r
)
20958 uint32_t cntr_info_2
;
20959 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinters");
20961 if (flags
& NDR_SET_VALUES
) {
20962 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20964 if (flags
& NDR_IN
) {
20965 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinters");
20967 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->in
.flags
);
20968 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20970 if (r
->in
.server
) {
20971 ndr_print_string(ndr
, "server", r
->in
.server
);
20974 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20975 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20977 if (r
->in
.buffer
) {
20978 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20981 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20984 if (flags
& NDR_OUT
) {
20985 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinters");
20987 ndr_print_ptr(ndr
, "count", r
->out
.count
);
20989 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
20991 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20993 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
20995 if (*r
->out
.info
) {
20996 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
20998 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
21000 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
21001 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
21002 ndr_print_spoolss_PrinterInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
21010 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21012 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21014 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21020 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinter
*r
)
21022 if (flags
& NDR_IN
) {
21023 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
21024 if (r
->in
.printername
) {
21025 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
21026 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21027 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
21028 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21030 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
21031 if (r
->in
.datatype
) {
21032 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
21033 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21034 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
21035 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21037 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
21038 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
21040 if (flags
& NDR_OUT
) {
21041 if (r
->out
.handle
== NULL
) {
21042 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21044 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
21045 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21047 return NDR_ERR_SUCCESS
;
21050 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinter
*r
)
21052 uint32_t _ptr_printername
;
21053 uint32_t _ptr_datatype
;
21054 TALLOC_CTX
*_mem_save_printername_0
;
21055 TALLOC_CTX
*_mem_save_datatype_0
;
21056 TALLOC_CTX
*_mem_save_handle_0
;
21057 if (flags
& NDR_IN
) {
21058 ZERO_STRUCT(r
->out
);
21060 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
21061 if (_ptr_printername
) {
21062 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
21064 r
->in
.printername
= NULL
;
21066 if (r
->in
.printername
) {
21067 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21068 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
21069 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
21070 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
21071 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
21072 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.printername
), ndr_get_array_length(ndr
, &r
->in
.printername
));
21074 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
21075 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
21076 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
21078 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
21079 if (_ptr_datatype
) {
21080 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
21082 r
->in
.datatype
= NULL
;
21084 if (r
->in
.datatype
) {
21085 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21086 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
21087 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
21088 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
21089 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
21090 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.datatype
), ndr_get_array_length(ndr
, &r
->in
.datatype
));
21092 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
21093 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
21094 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
21096 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
21097 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
21098 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
21099 ZERO_STRUCTP(r
->out
.handle
);
21101 if (flags
& NDR_OUT
) {
21102 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21103 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
21105 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21106 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21107 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
21108 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21109 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21111 return NDR_ERR_SUCCESS
;
21114 _PUBLIC_
void ndr_print_spoolss_OpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinter
*r
)
21116 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinter");
21118 if (flags
& NDR_SET_VALUES
) {
21119 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21121 if (flags
& NDR_IN
) {
21122 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinter");
21124 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
21126 if (r
->in
.printername
) {
21127 ndr_print_string(ndr
, "printername", r
->in
.printername
);
21130 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
21132 if (r
->in
.datatype
) {
21133 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
21136 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
21137 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
21140 if (flags
& NDR_OUT
) {
21141 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinter");
21143 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
21145 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
21147 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21153 static enum ndr_err_code
ndr_push_spoolss_SetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetJob
*r
)
21155 if (flags
& NDR_IN
) {
21156 if (r
->in
.handle
== NULL
) {
21157 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21159 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21160 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
21161 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.ctr
));
21163 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
21165 NDR_CHECK(ndr_push_spoolss_JobControl(ndr
, NDR_SCALARS
, r
->in
.command
));
21167 if (flags
& NDR_OUT
) {
21168 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21170 return NDR_ERR_SUCCESS
;
21173 static enum ndr_err_code
ndr_pull_spoolss_SetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetJob
*r
)
21176 TALLOC_CTX
*_mem_save_handle_0
;
21177 TALLOC_CTX
*_mem_save_ctr_0
;
21178 if (flags
& NDR_IN
) {
21179 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21180 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21182 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21183 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21184 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21185 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21186 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
21187 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
21189 NDR_PULL_ALLOC(ndr
, r
->in
.ctr
);
21194 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21195 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.ctr
, 0);
21196 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
21197 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, 0);
21199 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
21201 if (flags
& NDR_OUT
) {
21202 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21204 return NDR_ERR_SUCCESS
;
21207 _PUBLIC_
void ndr_print_spoolss_SetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetJob
*r
)
21209 ndr_print_struct(ndr
, name
, "spoolss_SetJob");
21211 if (flags
& NDR_SET_VALUES
) {
21212 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21214 if (flags
& NDR_IN
) {
21215 ndr_print_struct(ndr
, "in", "spoolss_SetJob");
21217 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21219 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21221 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
21222 ndr_print_ptr(ndr
, "ctr", r
->in
.ctr
);
21225 ndr_print_spoolss_JobInfoContainer(ndr
, "ctr", r
->in
.ctr
);
21228 ndr_print_spoolss_JobControl(ndr
, "command", r
->in
.command
);
21231 if (flags
& NDR_OUT
) {
21232 ndr_print_struct(ndr
, "out", "spoolss_SetJob");
21234 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21240 static enum ndr_err_code
ndr_push_spoolss_GetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetJob
*r
)
21242 if (flags
& NDR_IN
) {
21243 if (r
->in
.handle
== NULL
) {
21244 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21246 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21247 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
21248 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21249 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21250 if (r
->in
.buffer
) {
21251 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21253 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21255 if (flags
& NDR_OUT
) {
21256 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21259 struct ndr_push
*_ndr_info
;
21260 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21261 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21262 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21263 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21266 if (r
->out
.needed
== NULL
) {
21267 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21269 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21270 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21272 return NDR_ERR_SUCCESS
;
21275 static enum ndr_err_code
ndr_pull_spoolss_GetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetJob
*r
)
21277 uint32_t _ptr_buffer
;
21278 uint32_t _ptr_info
;
21279 TALLOC_CTX
*_mem_save_handle_0
;
21280 TALLOC_CTX
*_mem_save_buffer_0
;
21281 TALLOC_CTX
*_mem_save_info_0
;
21282 TALLOC_CTX
*_mem_save_needed_0
;
21283 if (flags
& NDR_IN
) {
21284 ZERO_STRUCT(r
->out
);
21286 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21287 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21289 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21290 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21291 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21292 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21293 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
21294 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21295 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21297 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21299 r
->in
.buffer
= NULL
;
21301 if (r
->in
.buffer
) {
21302 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21303 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21304 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21305 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21307 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21308 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21309 ZERO_STRUCTP(r
->out
.needed
);
21311 if (flags
& NDR_OUT
) {
21312 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21314 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21316 r
->out
.info
= NULL
;
21319 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21320 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21322 struct ndr_pull
*_ndr_info
;
21323 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21324 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21325 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21326 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21328 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21330 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21331 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21333 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21334 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21335 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21336 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21337 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21339 return NDR_ERR_SUCCESS
;
21342 _PUBLIC_
void ndr_print_spoolss_GetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetJob
*r
)
21344 ndr_print_struct(ndr
, name
, "spoolss_GetJob");
21346 if (flags
& NDR_SET_VALUES
) {
21347 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21349 if (flags
& NDR_IN
) {
21350 ndr_print_struct(ndr
, "in", "spoolss_GetJob");
21352 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21354 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21356 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
21357 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21358 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21360 if (r
->in
.buffer
) {
21361 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21364 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21367 if (flags
& NDR_OUT
) {
21368 ndr_print_struct(ndr
, "out", "spoolss_GetJob");
21370 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21373 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
21374 ndr_print_spoolss_JobInfo(ndr
, "info", r
->out
.info
);
21377 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21379 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21381 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21387 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumJobs
*r
)
21389 if (flags
& NDR_IN
) {
21390 if (r
->in
.handle
== NULL
) {
21391 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21393 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21394 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.firstjob
));
21395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.numjobs
));
21396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21397 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21398 if (r
->in
.buffer
) {
21399 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21401 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21403 if (flags
& NDR_OUT
) {
21404 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21406 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
21408 if (r
->out
.needed
== NULL
) {
21409 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21411 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21412 if (r
->out
.count
== NULL
) {
21413 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21415 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
21416 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21418 return NDR_ERR_SUCCESS
;
21421 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumJobs
*r
)
21423 uint32_t _ptr_buffer
;
21424 uint32_t _ptr_info
;
21425 TALLOC_CTX
*_mem_save_handle_0
;
21426 TALLOC_CTX
*_mem_save_buffer_0
;
21427 TALLOC_CTX
*_mem_save_info_0
;
21428 TALLOC_CTX
*_mem_save_needed_0
;
21429 TALLOC_CTX
*_mem_save_count_0
;
21430 if (flags
& NDR_IN
) {
21431 ZERO_STRUCT(r
->out
);
21433 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21434 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21436 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21437 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21438 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21439 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21440 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.firstjob
));
21441 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.numjobs
));
21442 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21443 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21445 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21447 r
->in
.buffer
= NULL
;
21449 if (r
->in
.buffer
) {
21450 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21451 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21452 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21453 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21455 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21456 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21457 ZERO_STRUCTP(r
->out
.needed
);
21458 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21459 ZERO_STRUCTP(r
->out
.count
);
21461 if (flags
& NDR_OUT
) {
21462 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21464 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21466 r
->out
.info
= NULL
;
21469 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21470 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21471 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
21472 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21474 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21475 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21477 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21478 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21479 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21480 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21481 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21482 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21484 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21485 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
21486 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
21487 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
21488 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21490 return NDR_ERR_SUCCESS
;
21493 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumJobs
*r
)
21495 uint32_t cntr_info_0
;
21496 if (flags
& NDR_IN
) {
21497 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21498 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
21500 if (flags
& NDR_OUT
) {
21501 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21502 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21503 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21505 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21506 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21509 return NDR_ERR_SUCCESS
;
21512 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumJobs
*r
)
21514 uint32_t cntr_info_0
;
21515 TALLOC_CTX
*_mem_save_info_0
;
21516 if (flags
& NDR_IN
) {
21517 ZERO_STRUCT(r
->out
);
21519 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21520 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
21522 if (flags
& NDR_OUT
) {
21523 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
21524 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21525 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21526 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21527 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21528 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21530 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21531 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21533 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21535 return NDR_ERR_SUCCESS
;
21538 _PUBLIC_
void ndr_print_spoolss_EnumJobs(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumJobs
*r
)
21540 uint32_t cntr_info_2
;
21541 ndr_print_struct(ndr
, name
, "spoolss_EnumJobs");
21543 if (flags
& NDR_SET_VALUES
) {
21544 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21546 if (flags
& NDR_IN
) {
21547 ndr_print_struct(ndr
, "in", "spoolss_EnumJobs");
21549 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21551 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21553 ndr_print_uint32(ndr
, "firstjob", r
->in
.firstjob
);
21554 ndr_print_uint32(ndr
, "numjobs", r
->in
.numjobs
);
21555 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21556 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21558 if (r
->in
.buffer
) {
21559 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21562 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21565 if (flags
& NDR_OUT
) {
21566 ndr_print_struct(ndr
, "out", "spoolss_EnumJobs");
21568 ndr_print_ptr(ndr
, "count", r
->out
.count
);
21570 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
21572 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21574 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
21576 if (*r
->out
.info
) {
21577 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
21579 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
21581 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
21582 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
21583 ndr_print_spoolss_JobInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
21591 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21593 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21595 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21601 static enum ndr_err_code
ndr_push_spoolss_AddPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinter
*r
)
21603 if (flags
& NDR_IN
) {
21604 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21605 if (r
->in
.server
) {
21606 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21607 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21608 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21609 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21611 if (r
->in
.info_ctr
== NULL
) {
21612 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21614 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
21615 if (r
->in
.devmode_ctr
== NULL
) {
21616 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21618 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
21619 if (r
->in
.secdesc_ctr
== NULL
) {
21620 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21622 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
21624 if (flags
& NDR_OUT
) {
21625 if (r
->out
.handle
== NULL
) {
21626 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21628 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
21629 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21631 return NDR_ERR_SUCCESS
;
21634 static enum ndr_err_code
ndr_pull_spoolss_AddPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinter
*r
)
21636 uint32_t _ptr_server
;
21637 TALLOC_CTX
*_mem_save_server_0
;
21638 TALLOC_CTX
*_mem_save_info_ctr_0
;
21639 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
21640 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
21641 TALLOC_CTX
*_mem_save_handle_0
;
21642 if (flags
& NDR_IN
) {
21643 ZERO_STRUCT(r
->out
);
21645 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21647 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21649 r
->in
.server
= NULL
;
21651 if (r
->in
.server
) {
21652 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21653 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21654 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21655 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21656 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
21657 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
21659 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
21660 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
21661 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21663 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21664 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
21666 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21667 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21668 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
21669 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21670 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21671 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
21673 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21674 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21675 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
21676 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21677 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21678 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
21680 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21681 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21682 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
21683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21684 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
21685 ZERO_STRUCTP(r
->out
.handle
);
21687 if (flags
& NDR_OUT
) {
21688 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21689 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
21691 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21692 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21693 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
21694 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21695 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21697 return NDR_ERR_SUCCESS
;
21700 _PUBLIC_
void ndr_print_spoolss_AddPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinter
*r
)
21702 ndr_print_struct(ndr
, name
, "spoolss_AddPrinter");
21704 if (flags
& NDR_SET_VALUES
) {
21705 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21707 if (flags
& NDR_IN
) {
21708 ndr_print_struct(ndr
, "in", "spoolss_AddPrinter");
21710 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21712 if (r
->in
.server
) {
21713 ndr_print_string(ndr
, "server", r
->in
.server
);
21716 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
21718 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
21720 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
21722 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
21724 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
21726 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
21730 if (flags
& NDR_OUT
) {
21731 ndr_print_struct(ndr
, "out", "spoolss_AddPrinter");
21733 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
21735 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
21737 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21743 static enum ndr_err_code
ndr_push_spoolss_DeletePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinter
*r
)
21745 if (flags
& NDR_IN
) {
21746 if (r
->in
.handle
== NULL
) {
21747 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21749 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21751 if (flags
& NDR_OUT
) {
21752 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21754 return NDR_ERR_SUCCESS
;
21757 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinter
*r
)
21759 TALLOC_CTX
*_mem_save_handle_0
;
21760 if (flags
& NDR_IN
) {
21761 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21762 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21764 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21765 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21766 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21767 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21769 if (flags
& NDR_OUT
) {
21770 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21772 return NDR_ERR_SUCCESS
;
21775 _PUBLIC_
void ndr_print_spoolss_DeletePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinter
*r
)
21777 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinter");
21779 if (flags
& NDR_SET_VALUES
) {
21780 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21782 if (flags
& NDR_IN
) {
21783 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinter");
21785 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21787 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21791 if (flags
& NDR_OUT
) {
21792 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinter");
21794 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21800 static enum ndr_err_code
ndr_push_spoolss_SetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinter
*r
)
21802 if (flags
& NDR_IN
) {
21803 if (r
->in
.handle
== NULL
) {
21804 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21806 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21807 if (r
->in
.info_ctr
== NULL
) {
21808 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21810 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
21811 if (r
->in
.devmode_ctr
== NULL
) {
21812 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21814 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
21815 if (r
->in
.secdesc_ctr
== NULL
) {
21816 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21818 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
21819 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr
, NDR_SCALARS
, r
->in
.command
));
21821 if (flags
& NDR_OUT
) {
21822 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21824 return NDR_ERR_SUCCESS
;
21827 static enum ndr_err_code
ndr_pull_spoolss_SetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinter
*r
)
21829 TALLOC_CTX
*_mem_save_handle_0
;
21830 TALLOC_CTX
*_mem_save_info_ctr_0
;
21831 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
21832 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
21833 if (flags
& NDR_IN
) {
21834 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21835 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21837 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21838 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21839 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21840 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21841 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21842 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
21844 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21845 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21846 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
21847 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21848 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21849 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
21851 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21852 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21853 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
21854 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21855 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21856 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
21858 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21859 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
21860 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
21861 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
21862 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
21864 if (flags
& NDR_OUT
) {
21865 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21867 return NDR_ERR_SUCCESS
;
21870 _PUBLIC_
void ndr_print_spoolss_SetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinter
*r
)
21872 ndr_print_struct(ndr
, name
, "spoolss_SetPrinter");
21874 if (flags
& NDR_SET_VALUES
) {
21875 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21877 if (flags
& NDR_IN
) {
21878 ndr_print_struct(ndr
, "in", "spoolss_SetPrinter");
21880 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21882 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21884 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
21886 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
21888 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
21890 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
21892 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
21894 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
21896 ndr_print_spoolss_PrinterControl(ndr
, "command", r
->in
.command
);
21899 if (flags
& NDR_OUT
) {
21900 ndr_print_struct(ndr
, "out", "spoolss_SetPrinter");
21902 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21908 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinter
*r
)
21910 if (flags
& NDR_IN
) {
21911 if (r
->in
.handle
== NULL
) {
21912 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21914 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21915 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21916 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21917 if (r
->in
.buffer
) {
21918 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21920 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21922 if (flags
& NDR_OUT
) {
21923 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21926 struct ndr_push
*_ndr_info
;
21927 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21928 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21929 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21930 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21933 if (r
->out
.needed
== NULL
) {
21934 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21936 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21937 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21939 return NDR_ERR_SUCCESS
;
21942 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinter
*r
)
21944 uint32_t _ptr_buffer
;
21945 uint32_t _ptr_info
;
21946 TALLOC_CTX
*_mem_save_handle_0
;
21947 TALLOC_CTX
*_mem_save_buffer_0
;
21948 TALLOC_CTX
*_mem_save_info_0
;
21949 TALLOC_CTX
*_mem_save_needed_0
;
21950 if (flags
& NDR_IN
) {
21951 ZERO_STRUCT(r
->out
);
21953 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21954 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21956 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21957 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21958 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21960 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21961 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21963 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21965 r
->in
.buffer
= NULL
;
21967 if (r
->in
.buffer
) {
21968 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21969 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21970 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21971 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21973 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21974 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21975 ZERO_STRUCTP(r
->out
.needed
);
21977 if (flags
& NDR_OUT
) {
21978 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21980 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21982 r
->out
.info
= NULL
;
21985 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21986 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21988 struct ndr_pull
*_ndr_info
;
21989 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21990 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21991 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21992 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21994 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21996 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21997 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21999 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22000 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22001 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22002 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22003 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22005 return NDR_ERR_SUCCESS
;
22008 _PUBLIC_
void ndr_print_spoolss_GetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinter
*r
)
22010 ndr_print_struct(ndr
, name
, "spoolss_GetPrinter");
22012 if (flags
& NDR_SET_VALUES
) {
22013 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22015 if (flags
& NDR_IN
) {
22016 ndr_print_struct(ndr
, "in", "spoolss_GetPrinter");
22018 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22020 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22022 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22023 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22025 if (r
->in
.buffer
) {
22026 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22029 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22032 if (flags
& NDR_OUT
) {
22033 ndr_print_struct(ndr
, "out", "spoolss_GetPrinter");
22035 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22038 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22039 ndr_print_spoolss_PrinterInfo(ndr
, "info", r
->out
.info
);
22042 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22044 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22046 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22052 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
22054 if (flags
& NDR_IN
) {
22055 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
22056 if (r
->in
.servername
) {
22057 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22058 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22059 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22060 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22062 if (r
->in
.info_ctr
== NULL
) {
22063 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22065 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
22067 if (flags
& NDR_OUT
) {
22068 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22070 return NDR_ERR_SUCCESS
;
22073 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriver
*r
)
22075 uint32_t _ptr_servername
;
22076 TALLOC_CTX
*_mem_save_servername_0
;
22077 TALLOC_CTX
*_mem_save_info_ctr_0
;
22078 if (flags
& NDR_IN
) {
22079 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
22080 if (_ptr_servername
) {
22081 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
22083 r
->in
.servername
= NULL
;
22085 if (r
->in
.servername
) {
22086 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22087 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
22088 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
22089 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
22090 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
22091 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.servername
), ndr_get_array_length(ndr
, &r
->in
.servername
));
22093 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
22094 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
22095 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
22097 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22098 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
22100 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22101 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
22102 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
22103 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
22105 if (flags
& NDR_OUT
) {
22106 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22108 return NDR_ERR_SUCCESS
;
22111 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
22113 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriver");
22115 if (flags
& NDR_SET_VALUES
) {
22116 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22118 if (flags
& NDR_IN
) {
22119 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriver");
22121 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
22123 if (r
->in
.servername
) {
22124 ndr_print_string(ndr
, "servername", r
->in
.servername
);
22127 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
22129 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
22133 if (flags
& NDR_OUT
) {
22134 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriver");
22136 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22142 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDrivers
*r
)
22144 if (flags
& NDR_IN
) {
22145 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
22146 if (r
->in
.server
) {
22147 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22148 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22149 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22150 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22152 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
22153 if (r
->in
.environment
) {
22154 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22155 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22156 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22157 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22159 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22160 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22161 if (r
->in
.buffer
) {
22162 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22164 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22166 if (flags
& NDR_OUT
) {
22167 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22169 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
22171 if (r
->out
.needed
== NULL
) {
22172 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22174 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22175 if (r
->out
.count
== NULL
) {
22176 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22178 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
22179 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22181 return NDR_ERR_SUCCESS
;
22184 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDrivers
*r
)
22186 uint32_t _ptr_server
;
22187 uint32_t _ptr_environment
;
22188 uint32_t _ptr_buffer
;
22189 uint32_t _ptr_info
;
22190 TALLOC_CTX
*_mem_save_server_0
;
22191 TALLOC_CTX
*_mem_save_environment_0
;
22192 TALLOC_CTX
*_mem_save_buffer_0
;
22193 TALLOC_CTX
*_mem_save_info_0
;
22194 TALLOC_CTX
*_mem_save_needed_0
;
22195 TALLOC_CTX
*_mem_save_count_0
;
22196 if (flags
& NDR_IN
) {
22197 ZERO_STRUCT(r
->out
);
22199 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
22201 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
22203 r
->in
.server
= NULL
;
22205 if (r
->in
.server
) {
22206 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22207 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
22208 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
22209 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
22210 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
22211 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
22213 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
22214 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
22215 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
22217 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
22218 if (_ptr_environment
) {
22219 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
22221 r
->in
.environment
= NULL
;
22223 if (r
->in
.environment
) {
22224 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22225 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
22226 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
22227 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
22228 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
22229 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.environment
), ndr_get_array_length(ndr
, &r
->in
.environment
));
22231 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
22232 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
22233 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
22235 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22236 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22238 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22240 r
->in
.buffer
= NULL
;
22242 if (r
->in
.buffer
) {
22243 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22244 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22245 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22246 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22248 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22249 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22250 ZERO_STRUCTP(r
->out
.needed
);
22251 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22252 ZERO_STRUCTP(r
->out
.count
);
22254 if (flags
& NDR_OUT
) {
22255 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22257 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22259 r
->out
.info
= NULL
;
22262 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22263 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22264 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
22265 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22267 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22268 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22270 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22271 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22272 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22273 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22274 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22275 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22277 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22278 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
22279 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
22280 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
22281 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22283 return NDR_ERR_SUCCESS
;
22286 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDrivers
*r
)
22288 uint32_t cntr_info_0
;
22289 if (flags
& NDR_IN
) {
22290 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22291 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
22293 if (flags
& NDR_OUT
) {
22294 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22295 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22296 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22298 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22299 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22302 return NDR_ERR_SUCCESS
;
22305 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDrivers
*r
)
22307 uint32_t cntr_info_0
;
22308 TALLOC_CTX
*_mem_save_info_0
;
22309 if (flags
& NDR_IN
) {
22310 ZERO_STRUCT(r
->out
);
22312 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22313 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
22315 if (flags
& NDR_OUT
) {
22316 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
22317 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22318 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22319 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22320 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22321 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22323 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22324 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22326 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22328 return NDR_ERR_SUCCESS
;
22331 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDrivers
*r
)
22333 uint32_t cntr_info_2
;
22334 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDrivers");
22336 if (flags
& NDR_SET_VALUES
) {
22337 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22339 if (flags
& NDR_IN
) {
22340 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDrivers");
22342 ndr_print_ptr(ndr
, "server", r
->in
.server
);
22344 if (r
->in
.server
) {
22345 ndr_print_string(ndr
, "server", r
->in
.server
);
22348 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
22350 if (r
->in
.environment
) {
22351 ndr_print_string(ndr
, "environment", r
->in
.environment
);
22354 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22355 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22357 if (r
->in
.buffer
) {
22358 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22361 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22364 if (flags
& NDR_OUT
) {
22365 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDrivers");
22367 ndr_print_ptr(ndr
, "count", r
->out
.count
);
22369 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
22371 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22373 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
22375 if (*r
->out
.info
) {
22376 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
22378 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
22380 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
22381 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
22382 ndr_print_spoolss_DriverInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
22390 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22392 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22394 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22400 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
22402 if (flags
& NDR_IN
) {
22403 if (r
->in
.handle
== NULL
) {
22404 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22406 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22407 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
22408 if (r
->in
.architecture
) {
22409 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22410 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22411 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22412 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22414 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22415 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22416 if (r
->in
.buffer
) {
22417 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22421 if (flags
& NDR_OUT
) {
22422 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22425 struct ndr_push
*_ndr_info
;
22426 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22427 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22428 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
22429 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22432 if (r
->out
.needed
== NULL
) {
22433 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22436 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22438 return NDR_ERR_SUCCESS
;
22441 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver
*r
)
22443 uint32_t _ptr_architecture
;
22444 uint32_t _ptr_buffer
;
22445 uint32_t _ptr_info
;
22446 TALLOC_CTX
*_mem_save_handle_0
;
22447 TALLOC_CTX
*_mem_save_architecture_0
;
22448 TALLOC_CTX
*_mem_save_buffer_0
;
22449 TALLOC_CTX
*_mem_save_info_0
;
22450 TALLOC_CTX
*_mem_save_needed_0
;
22451 if (flags
& NDR_IN
) {
22452 ZERO_STRUCT(r
->out
);
22454 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22455 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22457 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22458 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22459 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22460 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22461 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
22462 if (_ptr_architecture
) {
22463 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
22465 r
->in
.architecture
= NULL
;
22467 if (r
->in
.architecture
) {
22468 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22469 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
22470 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
22471 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
22472 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
22473 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.architecture
), ndr_get_array_length(ndr
, &r
->in
.architecture
));
22475 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
22476 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
22477 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
22479 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22480 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22482 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22484 r
->in
.buffer
= NULL
;
22486 if (r
->in
.buffer
) {
22487 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22488 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22489 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22490 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22492 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22493 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22494 ZERO_STRUCTP(r
->out
.needed
);
22496 if (flags
& NDR_OUT
) {
22497 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22499 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22501 r
->out
.info
= NULL
;
22504 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22505 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22507 struct ndr_pull
*_ndr_info
;
22508 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22509 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22510 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
22511 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22513 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22515 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22516 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22518 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22519 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22520 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22521 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22522 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22524 return NDR_ERR_SUCCESS
;
22527 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
22529 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver");
22531 if (flags
& NDR_SET_VALUES
) {
22532 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22534 if (flags
& NDR_IN
) {
22535 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver");
22537 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22539 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22541 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
22543 if (r
->in
.architecture
) {
22544 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
22547 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22548 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22550 if (r
->in
.buffer
) {
22551 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22554 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22557 if (flags
& NDR_OUT
) {
22558 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver");
22560 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22563 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22564 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
22567 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22569 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22571 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22577 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
22579 if (flags
& NDR_IN
) {
22580 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
22581 if (r
->in
.server
) {
22582 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, 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
.server
, CH_UTF16
)));
22585 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22587 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
22588 if (r
->in
.environment
) {
22589 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22590 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22591 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22592 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22594 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22595 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22596 if (r
->in
.buffer
) {
22597 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22601 if (flags
& NDR_OUT
) {
22602 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22605 struct ndr_push
*_ndr_info
;
22606 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22607 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22608 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
22609 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22612 if (r
->out
.needed
== NULL
) {
22613 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22615 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22616 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22618 return NDR_ERR_SUCCESS
;
22621 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverDirectory
*r
)
22623 uint32_t _ptr_server
;
22624 uint32_t _ptr_environment
;
22625 uint32_t _ptr_buffer
;
22626 uint32_t _ptr_info
;
22627 TALLOC_CTX
*_mem_save_server_0
;
22628 TALLOC_CTX
*_mem_save_environment_0
;
22629 TALLOC_CTX
*_mem_save_buffer_0
;
22630 TALLOC_CTX
*_mem_save_info_0
;
22631 TALLOC_CTX
*_mem_save_needed_0
;
22632 if (flags
& NDR_IN
) {
22633 ZERO_STRUCT(r
->out
);
22635 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
22637 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
22639 r
->in
.server
= NULL
;
22641 if (r
->in
.server
) {
22642 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22643 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
22644 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
22645 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
22646 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
22647 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
22649 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
22650 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
22651 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
22653 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
22654 if (_ptr_environment
) {
22655 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
22657 r
->in
.environment
= NULL
;
22659 if (r
->in
.environment
) {
22660 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22661 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
22662 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
22663 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
22664 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
22665 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.environment
), ndr_get_array_length(ndr
, &r
->in
.environment
));
22667 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
22668 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
22669 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
22671 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22672 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22674 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22676 r
->in
.buffer
= NULL
;
22678 if (r
->in
.buffer
) {
22679 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22680 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22681 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22682 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22684 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22685 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22686 ZERO_STRUCTP(r
->out
.needed
);
22688 if (flags
& NDR_OUT
) {
22689 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22691 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22693 r
->out
.info
= NULL
;
22696 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22697 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22699 struct ndr_pull
*_ndr_info
;
22700 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22701 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22702 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
22703 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22705 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22707 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22708 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22710 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22711 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22712 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22713 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22714 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22716 return NDR_ERR_SUCCESS
;
22719 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
22721 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverDirectory");
22723 if (flags
& NDR_SET_VALUES
) {
22724 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22726 if (flags
& NDR_IN
) {
22727 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverDirectory");
22729 ndr_print_ptr(ndr
, "server", r
->in
.server
);
22731 if (r
->in
.server
) {
22732 ndr_print_string(ndr
, "server", r
->in
.server
);
22735 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
22737 if (r
->in
.environment
) {
22738 ndr_print_string(ndr
, "environment", r
->in
.environment
);
22741 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22742 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22744 if (r
->in
.buffer
) {
22745 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22748 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22751 if (flags
& NDR_OUT
) {
22752 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverDirectory");
22754 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22757 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22758 ndr_print_spoolss_DriverDirectoryInfo(ndr
, "info", r
->out
.info
);
22761 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22763 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22765 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22771 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
22773 if (flags
& NDR_IN
) {
22774 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
22775 if (r
->in
.server
) {
22776 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22777 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22778 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22779 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22781 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22782 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22783 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22784 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22785 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
22786 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22787 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
22788 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22790 if (flags
& NDR_OUT
) {
22791 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22793 return NDR_ERR_SUCCESS
;
22796 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriver
*r
)
22798 uint32_t _ptr_server
;
22799 TALLOC_CTX
*_mem_save_server_0
;
22800 if (flags
& NDR_IN
) {
22801 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
22803 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
22805 r
->in
.server
= NULL
;
22807 if (r
->in
.server
) {
22808 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22809 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
22810 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
22811 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
22812 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
22813 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
22815 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
22816 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
22817 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
22819 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
22820 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
22821 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
22822 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.architecture
), ndr_get_array_length(ndr
, &r
->in
.architecture
));
22824 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
22825 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
22826 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
22827 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
22828 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
22829 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.driver
), ndr_get_array_length(ndr
, &r
->in
.driver
));
22831 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
22832 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
22834 if (flags
& NDR_OUT
) {
22835 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22837 return NDR_ERR_SUCCESS
;
22840 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
22842 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriver");
22844 if (flags
& NDR_SET_VALUES
) {
22845 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22847 if (flags
& NDR_IN
) {
22848 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriver");
22850 ndr_print_ptr(ndr
, "server", r
->in
.server
);
22852 if (r
->in
.server
) {
22853 ndr_print_string(ndr
, "server", r
->in
.server
);
22856 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
22857 ndr_print_string(ndr
, "driver", r
->in
.driver
);
22860 if (flags
& NDR_OUT
) {
22861 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriver");
22863 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22869 static enum ndr_err_code
ndr_push_spoolss_AddPrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
22871 if (flags
& NDR_IN
) {
22872 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
22873 if (r
->in
.server
) {
22874 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22875 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22876 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22877 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22879 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22880 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22881 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
22882 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22883 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
22884 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22885 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
22886 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
));
22887 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
22888 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22889 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
22890 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
));
22892 if (flags
& NDR_OUT
) {
22893 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22895 return NDR_ERR_SUCCESS
;
22898 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProcessor
*r
)
22900 uint32_t _ptr_server
;
22901 TALLOC_CTX
*_mem_save_server_0
;
22902 if (flags
& NDR_IN
) {
22903 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
22905 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
22907 r
->in
.server
= NULL
;
22909 if (r
->in
.server
) {
22910 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22911 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
22912 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
22913 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
22914 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
22915 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
22917 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
22918 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
22919 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
22921 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
22922 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
22923 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
22924 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.architecture
), ndr_get_array_length(ndr
, &r
->in
.architecture
));
22926 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
22927 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
22928 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.path_name
));
22929 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.path_name
));
22930 if (ndr_get_array_length(ndr
, &r
->in
.path_name
) > ndr_get_array_size(ndr
, &r
->in
.path_name
)) {
22931 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.path_name
), ndr_get_array_length(ndr
, &r
->in
.path_name
));
22933 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.path_name
), sizeof(uint16_t)));
22934 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.path_name
, ndr_get_array_length(ndr
, &r
->in
.path_name
), sizeof(uint16_t), CH_UTF16
));
22935 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
22936 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
22937 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
22938 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.print_processor_name
), ndr_get_array_length(ndr
, &r
->in
.print_processor_name
));
22940 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
22941 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.print_processor_name
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t), CH_UTF16
));
22943 if (flags
& NDR_OUT
) {
22944 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22946 return NDR_ERR_SUCCESS
;
22949 _PUBLIC_
void ndr_print_spoolss_AddPrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
22951 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProcessor");
22953 if (flags
& NDR_SET_VALUES
) {
22954 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22956 if (flags
& NDR_IN
) {
22957 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProcessor");
22959 ndr_print_ptr(ndr
, "server", r
->in
.server
);
22961 if (r
->in
.server
) {
22962 ndr_print_string(ndr
, "server", r
->in
.server
);
22965 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
22966 ndr_print_string(ndr
, "path_name", r
->in
.path_name
);
22967 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
22970 if (flags
& NDR_OUT
) {
22971 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProcessor");
22973 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22979 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcessors
*r
)
22981 if (flags
& NDR_IN
) {
22982 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
22983 if (r
->in
.servername
) {
22984 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22985 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22986 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22987 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22989 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
22990 if (r
->in
.environment
) {
22991 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22992 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22993 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22994 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22996 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22997 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22998 if (r
->in
.buffer
) {
22999 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23001 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23003 if (flags
& NDR_OUT
) {
23004 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23006 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
23008 if (r
->out
.needed
== NULL
) {
23009 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23011 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23012 if (r
->out
.count
== NULL
) {
23013 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23015 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
23016 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23018 return NDR_ERR_SUCCESS
;
23021 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcessors
*r
)
23023 uint32_t _ptr_servername
;
23024 uint32_t _ptr_environment
;
23025 uint32_t _ptr_buffer
;
23026 uint32_t _ptr_info
;
23027 TALLOC_CTX
*_mem_save_servername_0
;
23028 TALLOC_CTX
*_mem_save_environment_0
;
23029 TALLOC_CTX
*_mem_save_buffer_0
;
23030 TALLOC_CTX
*_mem_save_info_0
;
23031 TALLOC_CTX
*_mem_save_needed_0
;
23032 TALLOC_CTX
*_mem_save_count_0
;
23033 if (flags
& NDR_IN
) {
23034 ZERO_STRUCT(r
->out
);
23036 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
23037 if (_ptr_servername
) {
23038 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
23040 r
->in
.servername
= NULL
;
23042 if (r
->in
.servername
) {
23043 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23044 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
23045 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
23046 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
23047 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
23048 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.servername
), ndr_get_array_length(ndr
, &r
->in
.servername
));
23050 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
23051 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
23052 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
23054 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
23055 if (_ptr_environment
) {
23056 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
23058 r
->in
.environment
= NULL
;
23060 if (r
->in
.environment
) {
23061 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23062 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
23063 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
23064 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
23065 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
23066 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.environment
), ndr_get_array_length(ndr
, &r
->in
.environment
));
23068 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
23069 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
23070 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
23072 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23073 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23075 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23077 r
->in
.buffer
= NULL
;
23079 if (r
->in
.buffer
) {
23080 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23081 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23082 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23083 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23085 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23086 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23087 ZERO_STRUCTP(r
->out
.needed
);
23088 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23089 ZERO_STRUCTP(r
->out
.count
);
23091 if (flags
& NDR_OUT
) {
23092 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23094 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23096 r
->out
.info
= NULL
;
23099 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23100 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23101 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
23102 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23104 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23105 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23107 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23108 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23109 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23110 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23111 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23112 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23114 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23115 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
23116 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
23117 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
23118 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23120 return NDR_ERR_SUCCESS
;
23123 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcessors
*r
)
23125 uint32_t cntr_info_0
;
23126 if (flags
& NDR_IN
) {
23127 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23128 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
23130 if (flags
& NDR_OUT
) {
23131 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23132 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23133 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23135 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23136 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23139 return NDR_ERR_SUCCESS
;
23142 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcessors
*r
)
23144 uint32_t cntr_info_0
;
23145 TALLOC_CTX
*_mem_save_info_0
;
23146 if (flags
& NDR_IN
) {
23147 ZERO_STRUCT(r
->out
);
23149 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23150 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
23152 if (flags
& NDR_OUT
) {
23153 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
23154 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23155 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23156 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23157 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23158 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23160 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23161 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23163 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23165 return NDR_ERR_SUCCESS
;
23168 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcessors
*r
)
23170 uint32_t cntr_info_2
;
23171 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcessors");
23173 if (flags
& NDR_SET_VALUES
) {
23174 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23176 if (flags
& NDR_IN
) {
23177 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcessors");
23179 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
23181 if (r
->in
.servername
) {
23182 ndr_print_string(ndr
, "servername", r
->in
.servername
);
23185 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
23187 if (r
->in
.environment
) {
23188 ndr_print_string(ndr
, "environment", r
->in
.environment
);
23191 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23192 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23194 if (r
->in
.buffer
) {
23195 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23198 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23201 if (flags
& NDR_OUT
) {
23202 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcessors");
23204 ndr_print_ptr(ndr
, "count", r
->out
.count
);
23206 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
23208 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23210 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
23212 if (*r
->out
.info
) {
23213 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
23215 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
23217 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
23218 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
23219 ndr_print_spoolss_PrintProcessorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
23227 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23229 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23231 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23237 static enum ndr_err_code
ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
23239 if (flags
& NDR_IN
) {
23240 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
23241 if (r
->in
.server
) {
23242 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
23243 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23244 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
23245 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23247 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
23248 if (r
->in
.environment
) {
23249 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
23250 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23251 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
23252 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23254 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23255 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23256 if (r
->in
.buffer
) {
23257 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23259 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23261 if (flags
& NDR_OUT
) {
23262 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23265 struct ndr_push
*_ndr_info
;
23266 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23267 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23268 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
23269 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23272 if (r
->out
.needed
== NULL
) {
23273 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23275 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23276 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23278 return NDR_ERR_SUCCESS
;
23281 static enum ndr_err_code
ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrintProcessorDirectory
*r
)
23283 uint32_t _ptr_server
;
23284 uint32_t _ptr_environment
;
23285 uint32_t _ptr_buffer
;
23286 uint32_t _ptr_info
;
23287 TALLOC_CTX
*_mem_save_server_0
;
23288 TALLOC_CTX
*_mem_save_environment_0
;
23289 TALLOC_CTX
*_mem_save_buffer_0
;
23290 TALLOC_CTX
*_mem_save_info_0
;
23291 TALLOC_CTX
*_mem_save_needed_0
;
23292 if (flags
& NDR_IN
) {
23293 ZERO_STRUCT(r
->out
);
23295 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
23297 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
23299 r
->in
.server
= NULL
;
23301 if (r
->in
.server
) {
23302 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23303 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
23304 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
23305 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
23306 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
23307 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
23309 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
23310 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
23311 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
23313 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
23314 if (_ptr_environment
) {
23315 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
23317 r
->in
.environment
= NULL
;
23319 if (r
->in
.environment
) {
23320 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23321 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
23322 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
23323 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
23324 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
23325 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.environment
), ndr_get_array_length(ndr
, &r
->in
.environment
));
23327 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
23328 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
23329 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
23331 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23332 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23334 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23336 r
->in
.buffer
= NULL
;
23338 if (r
->in
.buffer
) {
23339 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23340 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23341 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23342 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23344 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23345 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23346 ZERO_STRUCTP(r
->out
.needed
);
23348 if (flags
& NDR_OUT
) {
23349 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23351 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23353 r
->out
.info
= NULL
;
23356 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23357 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23359 struct ndr_pull
*_ndr_info
;
23360 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23361 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23362 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
23363 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23365 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23367 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23368 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23370 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23371 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23372 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23373 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23374 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23376 return NDR_ERR_SUCCESS
;
23379 _PUBLIC_
void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
23381 ndr_print_struct(ndr
, name
, "spoolss_GetPrintProcessorDirectory");
23383 if (flags
& NDR_SET_VALUES
) {
23384 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23386 if (flags
& NDR_IN
) {
23387 ndr_print_struct(ndr
, "in", "spoolss_GetPrintProcessorDirectory");
23389 ndr_print_ptr(ndr
, "server", r
->in
.server
);
23391 if (r
->in
.server
) {
23392 ndr_print_string(ndr
, "server", r
->in
.server
);
23395 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
23397 if (r
->in
.environment
) {
23398 ndr_print_string(ndr
, "environment", r
->in
.environment
);
23401 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23402 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23404 if (r
->in
.buffer
) {
23405 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23408 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23411 if (flags
& NDR_OUT
) {
23412 ndr_print_struct(ndr
, "out", "spoolss_GetPrintProcessorDirectory");
23414 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23417 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
23418 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr
, "info", r
->out
.info
);
23421 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23423 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23425 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23431 static enum ndr_err_code
ndr_push_spoolss_StartDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartDocPrinter
*r
)
23433 if (flags
& NDR_IN
) {
23434 if (r
->in
.handle
== NULL
) {
23435 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23437 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23438 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23439 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23440 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23442 if (flags
& NDR_OUT
) {
23443 if (r
->out
.job_id
== NULL
) {
23444 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23446 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.job_id
));
23447 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23449 return NDR_ERR_SUCCESS
;
23452 static enum ndr_err_code
ndr_pull_spoolss_StartDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartDocPrinter
*r
)
23454 TALLOC_CTX
*_mem_save_handle_0
;
23455 TALLOC_CTX
*_mem_save_job_id_0
;
23456 if (flags
& NDR_IN
) {
23457 ZERO_STRUCT(r
->out
);
23459 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23460 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23462 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23463 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23464 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23465 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23466 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23467 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23468 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23469 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
23470 ZERO_STRUCTP(r
->out
.job_id
);
23472 if (flags
& NDR_OUT
) {
23473 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23474 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
23476 _mem_save_job_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23477 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.job_id
, LIBNDR_FLAG_REF_ALLOC
);
23478 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.job_id
));
23479 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_job_id_0
, LIBNDR_FLAG_REF_ALLOC
);
23480 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23482 return NDR_ERR_SUCCESS
;
23485 _PUBLIC_
void ndr_print_spoolss_StartDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartDocPrinter
*r
)
23487 ndr_print_struct(ndr
, name
, "spoolss_StartDocPrinter");
23489 if (flags
& NDR_SET_VALUES
) {
23490 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23492 if (flags
& NDR_IN
) {
23493 ndr_print_struct(ndr
, "in", "spoolss_StartDocPrinter");
23495 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23497 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23499 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23500 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
23501 ndr_print_spoolss_DocumentInfo(ndr
, "info", &r
->in
.info
);
23504 if (flags
& NDR_OUT
) {
23505 ndr_print_struct(ndr
, "out", "spoolss_StartDocPrinter");
23507 ndr_print_ptr(ndr
, "job_id", r
->out
.job_id
);
23509 ndr_print_uint32(ndr
, "job_id", *r
->out
.job_id
);
23511 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23517 static enum ndr_err_code
ndr_push_spoolss_StartPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartPagePrinter
*r
)
23519 if (flags
& NDR_IN
) {
23520 if (r
->in
.handle
== NULL
) {
23521 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23523 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23525 if (flags
& NDR_OUT
) {
23526 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23528 return NDR_ERR_SUCCESS
;
23531 static enum ndr_err_code
ndr_pull_spoolss_StartPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartPagePrinter
*r
)
23533 TALLOC_CTX
*_mem_save_handle_0
;
23534 if (flags
& NDR_IN
) {
23535 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23536 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23538 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23539 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23540 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23541 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23543 if (flags
& NDR_OUT
) {
23544 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23546 return NDR_ERR_SUCCESS
;
23549 _PUBLIC_
void ndr_print_spoolss_StartPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartPagePrinter
*r
)
23551 ndr_print_struct(ndr
, name
, "spoolss_StartPagePrinter");
23553 if (flags
& NDR_SET_VALUES
) {
23554 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23556 if (flags
& NDR_IN
) {
23557 ndr_print_struct(ndr
, "in", "spoolss_StartPagePrinter");
23559 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23561 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23565 if (flags
& NDR_OUT
) {
23566 ndr_print_struct(ndr
, "out", "spoolss_StartPagePrinter");
23568 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23574 static enum ndr_err_code
ndr_push_spoolss_WritePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_WritePrinter
*r
)
23576 if (flags
& NDR_IN
) {
23577 if (r
->in
.handle
== NULL
) {
23578 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23580 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23581 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
23582 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data
.length
));
23584 if (flags
& NDR_OUT
) {
23585 if (r
->out
.num_written
== NULL
) {
23586 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23588 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_written
));
23589 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23591 return NDR_ERR_SUCCESS
;
23594 static enum ndr_err_code
ndr_pull_spoolss_WritePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_WritePrinter
*r
)
23596 TALLOC_CTX
*_mem_save_handle_0
;
23597 TALLOC_CTX
*_mem_save_num_written_0
;
23598 if (flags
& NDR_IN
) {
23599 ZERO_STRUCT(r
->out
);
23601 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23602 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23604 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23605 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23606 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23607 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23608 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.data
));
23609 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._data_size
));
23610 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
23611 ZERO_STRUCTP(r
->out
.num_written
);
23613 if (flags
& NDR_OUT
) {
23614 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23615 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
23617 _mem_save_num_written_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23618 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_written
, LIBNDR_FLAG_REF_ALLOC
);
23619 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_written
));
23620 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_written_0
, LIBNDR_FLAG_REF_ALLOC
);
23621 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23623 return NDR_ERR_SUCCESS
;
23626 _PUBLIC_
void ndr_print_spoolss_WritePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WritePrinter
*r
)
23628 ndr_print_struct(ndr
, name
, "spoolss_WritePrinter");
23630 if (flags
& NDR_SET_VALUES
) {
23631 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23633 if (flags
& NDR_IN
) {
23634 ndr_print_struct(ndr
, "in", "spoolss_WritePrinter");
23636 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23638 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23640 ndr_print_DATA_BLOB(ndr
, "data", r
->in
.data
);
23641 ndr_print_uint32(ndr
, "_data_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.data
.length
:r
->in
._data_size
);
23644 if (flags
& NDR_OUT
) {
23645 ndr_print_struct(ndr
, "out", "spoolss_WritePrinter");
23647 ndr_print_ptr(ndr
, "num_written", r
->out
.num_written
);
23649 ndr_print_uint32(ndr
, "num_written", *r
->out
.num_written
);
23651 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23657 static enum ndr_err_code
ndr_push_spoolss_EndPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndPagePrinter
*r
)
23659 if (flags
& NDR_IN
) {
23660 if (r
->in
.handle
== NULL
) {
23661 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23663 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23665 if (flags
& NDR_OUT
) {
23666 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23668 return NDR_ERR_SUCCESS
;
23671 static enum ndr_err_code
ndr_pull_spoolss_EndPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndPagePrinter
*r
)
23673 TALLOC_CTX
*_mem_save_handle_0
;
23674 if (flags
& NDR_IN
) {
23675 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23676 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23678 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23679 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23680 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23681 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23683 if (flags
& NDR_OUT
) {
23684 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23686 return NDR_ERR_SUCCESS
;
23689 _PUBLIC_
void ndr_print_spoolss_EndPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndPagePrinter
*r
)
23691 ndr_print_struct(ndr
, name
, "spoolss_EndPagePrinter");
23693 if (flags
& NDR_SET_VALUES
) {
23694 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23696 if (flags
& NDR_IN
) {
23697 ndr_print_struct(ndr
, "in", "spoolss_EndPagePrinter");
23699 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23701 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23705 if (flags
& NDR_OUT
) {
23706 ndr_print_struct(ndr
, "out", "spoolss_EndPagePrinter");
23708 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23714 static enum ndr_err_code
ndr_push_spoolss_AbortPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AbortPrinter
*r
)
23716 if (flags
& NDR_IN
) {
23717 if (r
->in
.handle
== NULL
) {
23718 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23720 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23722 if (flags
& NDR_OUT
) {
23723 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23725 return NDR_ERR_SUCCESS
;
23728 static enum ndr_err_code
ndr_pull_spoolss_AbortPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AbortPrinter
*r
)
23730 TALLOC_CTX
*_mem_save_handle_0
;
23731 if (flags
& NDR_IN
) {
23732 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23733 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23735 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23736 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23737 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23738 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23740 if (flags
& NDR_OUT
) {
23741 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23743 return NDR_ERR_SUCCESS
;
23746 _PUBLIC_
void ndr_print_spoolss_AbortPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AbortPrinter
*r
)
23748 ndr_print_struct(ndr
, name
, "spoolss_AbortPrinter");
23750 if (flags
& NDR_SET_VALUES
) {
23751 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23753 if (flags
& NDR_IN
) {
23754 ndr_print_struct(ndr
, "in", "spoolss_AbortPrinter");
23756 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23758 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23762 if (flags
& NDR_OUT
) {
23763 ndr_print_struct(ndr
, "out", "spoolss_AbortPrinter");
23765 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23771 static enum ndr_err_code
ndr_push_spoolss_ReadPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReadPrinter
*r
)
23773 if (flags
& NDR_IN
) {
23774 if (r
->in
.handle
== NULL
) {
23775 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23777 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23778 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
23780 if (flags
& NDR_OUT
) {
23781 if (r
->out
.data
== NULL
) {
23782 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23784 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_size
));
23785 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_size
));
23786 if (r
->out
._data_size
== NULL
) {
23787 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23789 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._data_size
));
23790 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23792 return NDR_ERR_SUCCESS
;
23795 static enum ndr_err_code
ndr_pull_spoolss_ReadPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReadPrinter
*r
)
23797 TALLOC_CTX
*_mem_save_handle_0
;
23798 TALLOC_CTX
*_mem_save__data_size_0
;
23799 if (flags
& NDR_IN
) {
23800 ZERO_STRUCT(r
->out
);
23802 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23803 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23805 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23806 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23807 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23808 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23809 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_size
));
23810 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_size
);
23811 memset(r
->out
.data
, 0, (r
->in
.data_size
) * sizeof(*r
->out
.data
));
23812 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
23813 ZERO_STRUCTP(r
->out
._data_size
);
23815 if (flags
& NDR_OUT
) {
23816 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
23817 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23818 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
23820 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
23821 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23822 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
23824 _mem_save__data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23825 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._data_size
, LIBNDR_FLAG_REF_ALLOC
);
23826 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._data_size
));
23827 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__data_size_0
, LIBNDR_FLAG_REF_ALLOC
);
23828 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23830 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_size
));
23833 return NDR_ERR_SUCCESS
;
23836 _PUBLIC_
void ndr_print_spoolss_ReadPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReadPrinter
*r
)
23838 ndr_print_struct(ndr
, name
, "spoolss_ReadPrinter");
23840 if (flags
& NDR_SET_VALUES
) {
23841 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23843 if (flags
& NDR_IN
) {
23844 ndr_print_struct(ndr
, "in", "spoolss_ReadPrinter");
23846 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23848 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23850 ndr_print_uint32(ndr
, "data_size", r
->in
.data_size
);
23853 if (flags
& NDR_OUT
) {
23854 ndr_print_struct(ndr
, "out", "spoolss_ReadPrinter");
23856 ndr_print_ptr(ndr
, "data", r
->out
.data
);
23858 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_size
);
23860 ndr_print_ptr(ndr
, "_data_size", r
->out
._data_size
);
23862 ndr_print_uint32(ndr
, "_data_size", *r
->out
._data_size
);
23864 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23870 static enum ndr_err_code
ndr_push_spoolss_EndDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndDocPrinter
*r
)
23872 if (flags
& NDR_IN
) {
23873 if (r
->in
.handle
== NULL
) {
23874 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23876 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23878 if (flags
& NDR_OUT
) {
23879 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23881 return NDR_ERR_SUCCESS
;
23884 static enum ndr_err_code
ndr_pull_spoolss_EndDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndDocPrinter
*r
)
23886 TALLOC_CTX
*_mem_save_handle_0
;
23887 if (flags
& NDR_IN
) {
23888 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23889 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23891 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23892 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23893 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23894 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23896 if (flags
& NDR_OUT
) {
23897 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23899 return NDR_ERR_SUCCESS
;
23902 _PUBLIC_
void ndr_print_spoolss_EndDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndDocPrinter
*r
)
23904 ndr_print_struct(ndr
, name
, "spoolss_EndDocPrinter");
23906 if (flags
& NDR_SET_VALUES
) {
23907 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23909 if (flags
& NDR_IN
) {
23910 ndr_print_struct(ndr
, "in", "spoolss_EndDocPrinter");
23912 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23914 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23918 if (flags
& NDR_OUT
) {
23919 ndr_print_struct(ndr
, "out", "spoolss_EndDocPrinter");
23921 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23927 static enum ndr_err_code
ndr_push_spoolss_AddJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddJob
*r
)
23929 if (flags
& NDR_IN
) {
23930 if (r
->in
.handle
== NULL
) {
23931 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23933 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23935 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23936 if (r
->in
.buffer
) {
23937 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
23938 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
23940 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23942 if (flags
& NDR_OUT
) {
23943 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
23944 if (r
->out
.buffer
) {
23945 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
23946 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
23948 if (r
->out
.needed
== NULL
) {
23949 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23951 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23952 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23954 return NDR_ERR_SUCCESS
;
23957 static enum ndr_err_code
ndr_pull_spoolss_AddJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddJob
*r
)
23959 uint32_t _ptr_buffer
;
23960 TALLOC_CTX
*_mem_save_handle_0
;
23961 TALLOC_CTX
*_mem_save_buffer_0
;
23962 TALLOC_CTX
*_mem_save_needed_0
;
23963 if (flags
& NDR_IN
) {
23964 ZERO_STRUCT(r
->out
);
23966 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23967 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23969 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23970 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23971 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23972 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23973 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23974 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23976 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23978 r
->in
.buffer
= NULL
;
23980 if (r
->in
.buffer
) {
23981 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23982 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23983 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
23984 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
23985 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
23986 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23988 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23989 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23990 ZERO_STRUCTP(r
->out
.needed
);
23991 if (r
->in
.buffer
) {
23992 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
23995 if (flags
& NDR_OUT
) {
23996 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23998 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
24000 r
->out
.buffer
= NULL
;
24002 if (r
->out
.buffer
) {
24003 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24004 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
24005 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
24006 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
24007 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
24008 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24010 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24011 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24013 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24014 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24015 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24016 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24017 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24018 if (r
->out
.buffer
) {
24019 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
24022 return NDR_ERR_SUCCESS
;
24025 _PUBLIC_
void ndr_print_spoolss_AddJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddJob
*r
)
24027 ndr_print_struct(ndr
, name
, "spoolss_AddJob");
24029 if (flags
& NDR_SET_VALUES
) {
24030 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24032 if (flags
& NDR_IN
) {
24033 ndr_print_struct(ndr
, "in", "spoolss_AddJob");
24035 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24037 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24039 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24040 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24042 if (r
->in
.buffer
) {
24043 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
24046 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24049 if (flags
& NDR_OUT
) {
24050 ndr_print_struct(ndr
, "out", "spoolss_AddJob");
24052 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
24054 if (r
->out
.buffer
) {
24055 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
24058 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24060 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24062 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24068 static enum ndr_err_code
ndr_push_spoolss_ScheduleJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_ScheduleJob
*r
)
24070 if (flags
& NDR_IN
) {
24071 if (r
->in
.handle
== NULL
) {
24072 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24074 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24075 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.jobid
));
24077 if (flags
& NDR_OUT
) {
24078 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24080 return NDR_ERR_SUCCESS
;
24083 static enum ndr_err_code
ndr_pull_spoolss_ScheduleJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_ScheduleJob
*r
)
24085 TALLOC_CTX
*_mem_save_handle_0
;
24086 if (flags
& NDR_IN
) {
24087 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24088 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24090 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24091 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24092 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24093 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24094 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.jobid
));
24096 if (flags
& NDR_OUT
) {
24097 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24099 return NDR_ERR_SUCCESS
;
24102 _PUBLIC_
void ndr_print_spoolss_ScheduleJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ScheduleJob
*r
)
24104 ndr_print_struct(ndr
, name
, "spoolss_ScheduleJob");
24106 if (flags
& NDR_SET_VALUES
) {
24107 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24109 if (flags
& NDR_IN
) {
24110 ndr_print_struct(ndr
, "in", "spoolss_ScheduleJob");
24112 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24114 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24116 ndr_print_uint32(ndr
, "jobid", r
->in
.jobid
);
24119 if (flags
& NDR_OUT
) {
24120 ndr_print_struct(ndr
, "out", "spoolss_ScheduleJob");
24122 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24128 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_GetPrinterData
*r
)
24130 if (flags
& NDR_IN
) {
24131 if (r
->in
.handle
== NULL
) {
24132 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24134 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24135 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
24136 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24137 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
24138 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
));
24139 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24141 if (flags
& NDR_OUT
) {
24142 if (r
->out
.type
== NULL
) {
24143 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24145 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
24146 if (r
->out
.data
== NULL
) {
24147 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24149 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.data
));
24150 if (r
->out
.needed
== NULL
) {
24151 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24153 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24154 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24156 return NDR_ERR_SUCCESS
;
24159 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct _spoolss_GetPrinterData
*r
)
24161 TALLOC_CTX
*_mem_save_handle_0
;
24162 TALLOC_CTX
*_mem_save_type_0
;
24163 TALLOC_CTX
*_mem_save_data_0
;
24164 TALLOC_CTX
*_mem_save_needed_0
;
24165 if (flags
& NDR_IN
) {
24166 ZERO_STRUCT(r
->out
);
24168 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24169 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24171 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24172 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24173 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24174 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24175 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
24176 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
24177 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
24178 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.value_name
), ndr_get_array_length(ndr
, &r
->in
.value_name
));
24180 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
24181 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t), CH_UTF16
));
24182 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24183 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
24184 ZERO_STRUCTP(r
->out
.type
);
24185 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
24186 ZERO_STRUCTP(r
->out
.data
);
24187 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24188 ZERO_STRUCTP(r
->out
.needed
);
24190 if (flags
& NDR_OUT
) {
24191 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24192 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
24194 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24195 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
24196 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
24197 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
24198 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24199 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
24201 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24202 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
24203 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.data
));
24204 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
24205 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24206 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24208 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24209 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24210 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24211 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24212 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24214 return NDR_ERR_SUCCESS
;
24217 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_GetPrinterData
*r
)
24219 if (flags
& NDR_IN
) {
24220 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
24222 if (flags
& NDR_OUT
) {
24223 if (r
->out
.data
== NULL
) {
24224 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24226 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
24227 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
24229 return NDR_ERR_SUCCESS
;
24232 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct __spoolss_GetPrinterData
*r
)
24234 TALLOC_CTX
*_mem_save_data_0
;
24235 if (flags
& NDR_IN
) {
24236 ZERO_STRUCT(r
->out
);
24238 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
24239 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
24240 ZERO_STRUCTP(r
->out
.data
);
24242 if (flags
& NDR_OUT
) {
24243 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24244 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
24246 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24247 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
24248 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
24249 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
24250 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
24252 return NDR_ERR_SUCCESS
;
24255 _PUBLIC_
void ndr_print_spoolss_GetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterData
*r
)
24257 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterData");
24259 if (flags
& NDR_SET_VALUES
) {
24260 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24262 if (flags
& NDR_IN
) {
24263 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterData");
24265 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24267 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24269 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
24270 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24273 if (flags
& NDR_OUT
) {
24274 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterData");
24276 ndr_print_ptr(ndr
, "type", r
->out
.type
);
24278 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
24280 ndr_print_ptr(ndr
, "data", r
->out
.data
);
24282 ndr_print_set_switch_value(ndr
, r
->out
.data
, *r
->out
.type
);
24283 ndr_print_spoolss_PrinterData(ndr
, "data", r
->out
.data
);
24285 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24287 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24289 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24295 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_SetPrinterData
*r
)
24297 if (flags
& NDR_IN
) {
24298 if (r
->in
.handle
== NULL
) {
24299 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24301 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24302 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
24303 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24304 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
24305 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
));
24306 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
24307 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
24308 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
._offered
));
24310 if (flags
& NDR_OUT
) {
24311 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24313 return NDR_ERR_SUCCESS
;
24316 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_SetPrinterData
*r
)
24318 if (flags
& NDR_IN
) {
24319 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
24321 if (flags
& NDR_OUT
) {
24322 if (r
->out
.data
== NULL
) {
24323 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24325 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
24326 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
24328 return NDR_ERR_SUCCESS
;
24331 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterData
*r
)
24333 TALLOC_CTX
*_mem_save_handle_0
;
24334 if (flags
& NDR_IN
) {
24335 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24336 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24338 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24339 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24340 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24341 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24342 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
24343 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
24344 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
24345 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.value_name
), ndr_get_array_length(ndr
, &r
->in
.value_name
));
24347 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
24348 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t), CH_UTF16
));
24349 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
24351 struct ndr_pull
*_ndr_data
;
24352 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 4, -1));
24353 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, &r
->in
.data
, r
->in
.type
));
24354 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
24355 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 4, -1));
24357 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._offered
));
24359 if (flags
& NDR_OUT
) {
24360 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24362 return NDR_ERR_SUCCESS
;
24365 _PUBLIC_
void ndr_print_spoolss_SetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterData
*r
)
24367 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterData");
24369 if (flags
& NDR_SET_VALUES
) {
24370 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24372 if (flags
& NDR_IN
) {
24373 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterData");
24375 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24377 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24379 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
24380 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
24381 ndr_print_set_switch_value(ndr
, &r
->in
.data
, r
->in
.type
);
24382 ndr_print_spoolss_PrinterData(ndr
, "data", &r
->in
.data
);
24383 ndr_print_uint32(ndr
, "_offered", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_PrinterData(&r
->in
.data
, r
->in
.type
, ndr
->iconv_convenience
, flags
):r
->in
._offered
);
24386 if (flags
& NDR_OUT
) {
24387 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterData");
24389 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24395 static enum ndr_err_code
ndr_push_spoolss_WaitForPrinterChange(struct ndr_push
*ndr
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
24397 if (flags
& NDR_IN
) {
24399 if (flags
& NDR_OUT
) {
24400 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24402 return NDR_ERR_SUCCESS
;
24405 static enum ndr_err_code
ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull
*ndr
, int flags
, struct spoolss_WaitForPrinterChange
*r
)
24407 if (flags
& NDR_IN
) {
24409 if (flags
& NDR_OUT
) {
24410 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24412 return NDR_ERR_SUCCESS
;
24415 _PUBLIC_
void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
24417 ndr_print_struct(ndr
, name
, "spoolss_WaitForPrinterChange");
24419 if (flags
& NDR_SET_VALUES
) {
24420 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24422 if (flags
& NDR_IN
) {
24423 ndr_print_struct(ndr
, "in", "spoolss_WaitForPrinterChange");
24427 if (flags
& NDR_OUT
) {
24428 ndr_print_struct(ndr
, "out", "spoolss_WaitForPrinterChange");
24430 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24436 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ClosePrinter
*r
)
24438 if (flags
& NDR_IN
) {
24439 if (r
->in
.handle
== NULL
) {
24440 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24442 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24444 if (flags
& NDR_OUT
) {
24445 if (r
->out
.handle
== NULL
) {
24446 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24448 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24449 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24451 return NDR_ERR_SUCCESS
;
24454 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ClosePrinter
*r
)
24456 TALLOC_CTX
*_mem_save_handle_0
;
24457 if (flags
& NDR_IN
) {
24458 ZERO_STRUCT(r
->out
);
24460 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24461 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24463 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24464 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24465 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24466 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24467 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24468 *r
->out
.handle
= *r
->in
.handle
;
24470 if (flags
& NDR_OUT
) {
24471 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24472 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24474 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24475 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24476 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24477 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24478 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24480 return NDR_ERR_SUCCESS
;
24483 _PUBLIC_
void ndr_print_spoolss_ClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ClosePrinter
*r
)
24485 ndr_print_struct(ndr
, name
, "spoolss_ClosePrinter");
24487 if (flags
& NDR_SET_VALUES
) {
24488 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24490 if (flags
& NDR_IN
) {
24491 ndr_print_struct(ndr
, "in", "spoolss_ClosePrinter");
24493 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24495 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24499 if (flags
& NDR_OUT
) {
24500 ndr_print_struct(ndr
, "out", "spoolss_ClosePrinter");
24502 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
24504 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
24506 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24512 static enum ndr_err_code
ndr_push_spoolss_AddForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddForm
*r
)
24514 if (flags
& NDR_IN
) {
24515 if (r
->in
.handle
== NULL
) {
24516 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24518 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24519 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24520 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
24521 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24523 if (flags
& NDR_OUT
) {
24524 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24526 return NDR_ERR_SUCCESS
;
24529 static enum ndr_err_code
ndr_pull_spoolss_AddForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddForm
*r
)
24531 TALLOC_CTX
*_mem_save_handle_0
;
24532 if (flags
& NDR_IN
) {
24533 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24534 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24536 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24537 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24538 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24539 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24540 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24541 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
24542 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24544 if (flags
& NDR_OUT
) {
24545 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24547 return NDR_ERR_SUCCESS
;
24550 _PUBLIC_
void ndr_print_spoolss_AddForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddForm
*r
)
24552 ndr_print_struct(ndr
, name
, "spoolss_AddForm");
24554 if (flags
& NDR_SET_VALUES
) {
24555 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24557 if (flags
& NDR_IN
) {
24558 ndr_print_struct(ndr
, "in", "spoolss_AddForm");
24560 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24562 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24564 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24565 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
24566 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
24569 if (flags
& NDR_OUT
) {
24570 ndr_print_struct(ndr
, "out", "spoolss_AddForm");
24572 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24578 static enum ndr_err_code
ndr_push_spoolss_DeleteForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteForm
*r
)
24580 if (flags
& NDR_IN
) {
24581 if (r
->in
.handle
== NULL
) {
24582 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24584 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24585 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24586 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24587 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24588 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
));
24590 if (flags
& NDR_OUT
) {
24591 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24593 return NDR_ERR_SUCCESS
;
24596 static enum ndr_err_code
ndr_pull_spoolss_DeleteForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteForm
*r
)
24598 TALLOC_CTX
*_mem_save_handle_0
;
24599 if (flags
& NDR_IN
) {
24600 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24601 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24603 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24604 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24605 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24606 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24607 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
24608 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
24609 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
24610 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.form_name
), ndr_get_array_length(ndr
, &r
->in
.form_name
));
24612 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
24613 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.form_name
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t), CH_UTF16
));
24615 if (flags
& NDR_OUT
) {
24616 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24618 return NDR_ERR_SUCCESS
;
24621 _PUBLIC_
void ndr_print_spoolss_DeleteForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteForm
*r
)
24623 ndr_print_struct(ndr
, name
, "spoolss_DeleteForm");
24625 if (flags
& NDR_SET_VALUES
) {
24626 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24628 if (flags
& NDR_IN
) {
24629 ndr_print_struct(ndr
, "in", "spoolss_DeleteForm");
24631 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24633 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24635 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
24638 if (flags
& NDR_OUT
) {
24639 ndr_print_struct(ndr
, "out", "spoolss_DeleteForm");
24641 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24647 static enum ndr_err_code
ndr_push_spoolss_GetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetForm
*r
)
24649 if (flags
& NDR_IN
) {
24650 if (r
->in
.handle
== NULL
) {
24651 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24653 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24654 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24655 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24656 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24657 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
));
24658 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24659 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24660 if (r
->in
.buffer
) {
24661 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24663 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24665 if (flags
& NDR_OUT
) {
24666 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24669 struct ndr_push
*_ndr_info
;
24670 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
24671 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
24672 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
24673 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
24676 if (r
->out
.needed
== NULL
) {
24677 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24679 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24680 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24682 return NDR_ERR_SUCCESS
;
24685 static enum ndr_err_code
ndr_pull_spoolss_GetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetForm
*r
)
24687 uint32_t _ptr_buffer
;
24688 uint32_t _ptr_info
;
24689 TALLOC_CTX
*_mem_save_handle_0
;
24690 TALLOC_CTX
*_mem_save_buffer_0
;
24691 TALLOC_CTX
*_mem_save_info_0
;
24692 TALLOC_CTX
*_mem_save_needed_0
;
24693 if (flags
& NDR_IN
) {
24694 ZERO_STRUCT(r
->out
);
24696 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24697 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24699 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24700 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24701 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24702 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24703 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
24704 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
24705 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
24706 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.form_name
), ndr_get_array_length(ndr
, &r
->in
.form_name
));
24708 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
24709 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.form_name
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t), CH_UTF16
));
24710 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24711 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24713 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24715 r
->in
.buffer
= NULL
;
24717 if (r
->in
.buffer
) {
24718 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24719 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24720 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
24721 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24723 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24724 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24725 ZERO_STRUCTP(r
->out
.needed
);
24727 if (flags
& NDR_OUT
) {
24728 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24730 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24732 r
->out
.info
= NULL
;
24735 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24736 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24738 struct ndr_pull
*_ndr_info
;
24739 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
24740 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
24741 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
24742 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
24744 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24746 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24747 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24749 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24750 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24751 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24752 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24753 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24755 return NDR_ERR_SUCCESS
;
24758 _PUBLIC_
void ndr_print_spoolss_GetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetForm
*r
)
24760 ndr_print_struct(ndr
, name
, "spoolss_GetForm");
24762 if (flags
& NDR_SET_VALUES
) {
24763 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24765 if (flags
& NDR_IN
) {
24766 ndr_print_struct(ndr
, "in", "spoolss_GetForm");
24768 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24770 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24772 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
24773 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24774 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24776 if (r
->in
.buffer
) {
24777 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
24780 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24783 if (flags
& NDR_OUT
) {
24784 ndr_print_struct(ndr
, "out", "spoolss_GetForm");
24786 ndr_print_ptr(ndr
, "info", r
->out
.info
);
24789 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
24790 ndr_print_spoolss_FormInfo(ndr
, "info", r
->out
.info
);
24793 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24795 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24797 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24803 static enum ndr_err_code
ndr_push_spoolss_SetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetForm
*r
)
24805 if (flags
& NDR_IN
) {
24806 if (r
->in
.handle
== NULL
) {
24807 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24809 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24810 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24811 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24812 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
24813 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
));
24814 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24815 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
24816 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24818 if (flags
& NDR_OUT
) {
24819 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24821 return NDR_ERR_SUCCESS
;
24824 static enum ndr_err_code
ndr_pull_spoolss_SetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetForm
*r
)
24826 TALLOC_CTX
*_mem_save_handle_0
;
24827 if (flags
& NDR_IN
) {
24828 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24829 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24831 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24832 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24833 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24834 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24835 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
24836 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
24837 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
24838 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.form_name
), ndr_get_array_length(ndr
, &r
->in
.form_name
));
24840 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
24841 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.form_name
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t), CH_UTF16
));
24842 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24843 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
24844 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24846 if (flags
& NDR_OUT
) {
24847 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24849 return NDR_ERR_SUCCESS
;
24852 _PUBLIC_
void ndr_print_spoolss_SetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetForm
*r
)
24854 ndr_print_struct(ndr
, name
, "spoolss_SetForm");
24856 if (flags
& NDR_SET_VALUES
) {
24857 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24859 if (flags
& NDR_IN
) {
24860 ndr_print_struct(ndr
, "in", "spoolss_SetForm");
24862 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24864 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24866 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
24867 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24868 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
24869 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
24872 if (flags
& NDR_OUT
) {
24873 ndr_print_struct(ndr
, "out", "spoolss_SetForm");
24875 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24881 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumForms
*r
)
24883 if (flags
& NDR_IN
) {
24884 if (r
->in
.handle
== NULL
) {
24885 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24887 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24888 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24889 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24890 if (r
->in
.buffer
) {
24891 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24893 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24895 if (flags
& NDR_OUT
) {
24896 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24898 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
24900 if (r
->out
.needed
== NULL
) {
24901 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24903 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24904 if (r
->out
.count
== NULL
) {
24905 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24907 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
24908 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24910 return NDR_ERR_SUCCESS
;
24913 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumForms
*r
)
24915 uint32_t _ptr_buffer
;
24916 uint32_t _ptr_info
;
24917 TALLOC_CTX
*_mem_save_handle_0
;
24918 TALLOC_CTX
*_mem_save_buffer_0
;
24919 TALLOC_CTX
*_mem_save_info_0
;
24920 TALLOC_CTX
*_mem_save_needed_0
;
24921 TALLOC_CTX
*_mem_save_count_0
;
24922 if (flags
& NDR_IN
) {
24923 ZERO_STRUCT(r
->out
);
24925 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24926 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24928 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24929 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24930 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24931 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24932 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24933 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24935 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24937 r
->in
.buffer
= NULL
;
24939 if (r
->in
.buffer
) {
24940 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24941 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24942 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
24943 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24945 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24946 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24947 ZERO_STRUCTP(r
->out
.needed
);
24948 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24949 ZERO_STRUCTP(r
->out
.count
);
24951 if (flags
& NDR_OUT
) {
24952 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24954 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24956 r
->out
.info
= NULL
;
24959 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24960 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24961 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
24962 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24964 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24965 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24967 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24968 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24969 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24970 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24971 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24972 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24974 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24975 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
24976 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
24977 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
24978 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24980 return NDR_ERR_SUCCESS
;
24983 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumForms
*r
)
24985 uint32_t cntr_info_0
;
24986 if (flags
& NDR_IN
) {
24987 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24988 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
24990 if (flags
& NDR_OUT
) {
24991 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24992 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24993 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24995 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24996 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24999 return NDR_ERR_SUCCESS
;
25002 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumForms
*r
)
25004 uint32_t cntr_info_0
;
25005 TALLOC_CTX
*_mem_save_info_0
;
25006 if (flags
& NDR_IN
) {
25007 ZERO_STRUCT(r
->out
);
25009 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25010 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
25012 if (flags
& NDR_OUT
) {
25013 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
25014 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25015 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25016 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25017 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25018 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25020 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25021 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25023 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25025 return NDR_ERR_SUCCESS
;
25028 _PUBLIC_
void ndr_print_spoolss_EnumForms(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumForms
*r
)
25030 uint32_t cntr_info_2
;
25031 ndr_print_struct(ndr
, name
, "spoolss_EnumForms");
25033 if (flags
& NDR_SET_VALUES
) {
25034 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25036 if (flags
& NDR_IN
) {
25037 ndr_print_struct(ndr
, "in", "spoolss_EnumForms");
25039 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25041 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25043 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25044 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25046 if (r
->in
.buffer
) {
25047 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
25050 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25053 if (flags
& NDR_OUT
) {
25054 ndr_print_struct(ndr
, "out", "spoolss_EnumForms");
25056 ndr_print_ptr(ndr
, "count", r
->out
.count
);
25058 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
25060 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25062 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
25064 if (*r
->out
.info
) {
25065 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
25067 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
25069 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
25070 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
25071 ndr_print_spoolss_FormInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
25079 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25081 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25083 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25089 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPorts
*r
)
25091 if (flags
& NDR_IN
) {
25092 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
25093 if (r
->in
.servername
) {
25094 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
25095 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25096 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
25097 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25100 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25101 if (r
->in
.buffer
) {
25102 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
25104 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25106 if (flags
& NDR_OUT
) {
25107 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
25109 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
25111 if (r
->out
.needed
== NULL
) {
25112 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25114 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
25115 if (r
->out
.count
== NULL
) {
25116 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25118 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
25119 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25121 return NDR_ERR_SUCCESS
;
25124 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPorts
*r
)
25126 uint32_t _ptr_servername
;
25127 uint32_t _ptr_buffer
;
25128 uint32_t _ptr_info
;
25129 TALLOC_CTX
*_mem_save_servername_0
;
25130 TALLOC_CTX
*_mem_save_buffer_0
;
25131 TALLOC_CTX
*_mem_save_info_0
;
25132 TALLOC_CTX
*_mem_save_needed_0
;
25133 TALLOC_CTX
*_mem_save_count_0
;
25134 if (flags
& NDR_IN
) {
25135 ZERO_STRUCT(r
->out
);
25137 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
25138 if (_ptr_servername
) {
25139 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
25141 r
->in
.servername
= NULL
;
25143 if (r
->in
.servername
) {
25144 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25145 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
25146 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
25147 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
25148 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
25149 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.servername
), ndr_get_array_length(ndr
, &r
->in
.servername
));
25151 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
25152 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
25153 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
25155 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25156 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25158 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25160 r
->in
.buffer
= NULL
;
25162 if (r
->in
.buffer
) {
25163 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25164 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25165 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
25166 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25168 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25169 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25170 ZERO_STRUCTP(r
->out
.needed
);
25171 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25172 ZERO_STRUCTP(r
->out
.count
);
25174 if (flags
& NDR_OUT
) {
25175 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
25177 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25179 r
->out
.info
= NULL
;
25182 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25183 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25184 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
25185 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25187 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25188 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25190 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25191 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
25192 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
25193 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25194 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25195 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25197 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25198 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
25199 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
25200 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
25201 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25203 return NDR_ERR_SUCCESS
;
25206 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPorts
*r
)
25208 uint32_t cntr_info_0
;
25209 if (flags
& NDR_IN
) {
25210 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25211 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
25213 if (flags
& NDR_OUT
) {
25214 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25215 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25216 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25218 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25219 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25222 return NDR_ERR_SUCCESS
;
25225 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPorts
*r
)
25227 uint32_t cntr_info_0
;
25228 TALLOC_CTX
*_mem_save_info_0
;
25229 if (flags
& NDR_IN
) {
25230 ZERO_STRUCT(r
->out
);
25232 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25233 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
25235 if (flags
& NDR_OUT
) {
25236 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
25237 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25238 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25239 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25240 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25241 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25243 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25244 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25246 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25248 return NDR_ERR_SUCCESS
;
25251 _PUBLIC_
void ndr_print_spoolss_EnumPorts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPorts
*r
)
25253 uint32_t cntr_info_2
;
25254 ndr_print_struct(ndr
, name
, "spoolss_EnumPorts");
25256 if (flags
& NDR_SET_VALUES
) {
25257 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25259 if (flags
& NDR_IN
) {
25260 ndr_print_struct(ndr
, "in", "spoolss_EnumPorts");
25262 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
25264 if (r
->in
.servername
) {
25265 ndr_print_string(ndr
, "servername", r
->in
.servername
);
25268 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25269 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25271 if (r
->in
.buffer
) {
25272 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
25275 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25278 if (flags
& NDR_OUT
) {
25279 ndr_print_struct(ndr
, "out", "spoolss_EnumPorts");
25281 ndr_print_ptr(ndr
, "count", r
->out
.count
);
25283 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
25285 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25287 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
25289 if (*r
->out
.info
) {
25290 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
25292 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
25294 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
25295 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
25296 ndr_print_spoolss_PortInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
25304 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25306 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25308 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25314 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumMonitors
*r
)
25316 if (flags
& NDR_IN
) {
25317 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
25318 if (r
->in
.servername
) {
25319 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
25320 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25321 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
25322 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25325 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25326 if (r
->in
.buffer
) {
25327 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
25329 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25331 if (flags
& NDR_OUT
) {
25332 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
25334 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
25336 if (r
->out
.needed
== NULL
) {
25337 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25339 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
25340 if (r
->out
.count
== NULL
) {
25341 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
25344 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25346 return NDR_ERR_SUCCESS
;
25349 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumMonitors
*r
)
25351 uint32_t _ptr_servername
;
25352 uint32_t _ptr_buffer
;
25353 uint32_t _ptr_info
;
25354 TALLOC_CTX
*_mem_save_servername_0
;
25355 TALLOC_CTX
*_mem_save_buffer_0
;
25356 TALLOC_CTX
*_mem_save_info_0
;
25357 TALLOC_CTX
*_mem_save_needed_0
;
25358 TALLOC_CTX
*_mem_save_count_0
;
25359 if (flags
& NDR_IN
) {
25360 ZERO_STRUCT(r
->out
);
25362 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
25363 if (_ptr_servername
) {
25364 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
25366 r
->in
.servername
= NULL
;
25368 if (r
->in
.servername
) {
25369 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25370 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
25371 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
25372 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
25373 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
25374 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.servername
), ndr_get_array_length(ndr
, &r
->in
.servername
));
25376 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
25377 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
25378 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
25380 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25381 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25383 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25385 r
->in
.buffer
= NULL
;
25387 if (r
->in
.buffer
) {
25388 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25389 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25390 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
25391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25393 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25394 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25395 ZERO_STRUCTP(r
->out
.needed
);
25396 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25397 ZERO_STRUCTP(r
->out
.count
);
25399 if (flags
& NDR_OUT
) {
25400 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
25402 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25404 r
->out
.info
= NULL
;
25407 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25408 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25409 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
25410 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25412 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25413 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25415 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25416 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
25417 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
25418 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25419 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25420 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25422 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25423 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
25424 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
25425 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
25426 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25428 return NDR_ERR_SUCCESS
;
25431 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumMonitors
*r
)
25433 uint32_t cntr_info_0
;
25434 if (flags
& NDR_IN
) {
25435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25436 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
25438 if (flags
& NDR_OUT
) {
25439 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25440 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25441 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25443 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25444 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25447 return NDR_ERR_SUCCESS
;
25450 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumMonitors
*r
)
25452 uint32_t cntr_info_0
;
25453 TALLOC_CTX
*_mem_save_info_0
;
25454 if (flags
& NDR_IN
) {
25455 ZERO_STRUCT(r
->out
);
25457 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25458 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
25460 if (flags
& NDR_OUT
) {
25461 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
25462 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25463 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25464 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25465 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25466 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25468 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25469 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25471 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25473 return NDR_ERR_SUCCESS
;
25476 _PUBLIC_
void ndr_print_spoolss_EnumMonitors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumMonitors
*r
)
25478 uint32_t cntr_info_2
;
25479 ndr_print_struct(ndr
, name
, "spoolss_EnumMonitors");
25481 if (flags
& NDR_SET_VALUES
) {
25482 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25484 if (flags
& NDR_IN
) {
25485 ndr_print_struct(ndr
, "in", "spoolss_EnumMonitors");
25487 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
25489 if (r
->in
.servername
) {
25490 ndr_print_string(ndr
, "servername", r
->in
.servername
);
25493 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25494 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25496 if (r
->in
.buffer
) {
25497 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
25500 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25503 if (flags
& NDR_OUT
) {
25504 ndr_print_struct(ndr
, "out", "spoolss_EnumMonitors");
25506 ndr_print_ptr(ndr
, "count", r
->out
.count
);
25508 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
25510 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25512 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
25514 if (*r
->out
.info
) {
25515 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
25517 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
25519 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
25520 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
25521 ndr_print_spoolss_MonitorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
25529 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25531 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25533 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25539 static enum ndr_err_code
ndr_push_spoolss_AddPort(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPort
*r
)
25541 if (flags
& NDR_IN
) {
25542 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
25543 if (r
->in
.server_name
) {
25544 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
25545 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25546 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
25547 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
));
25549 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
25550 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
25551 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25552 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
25553 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
));
25555 if (flags
& NDR_OUT
) {
25556 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25558 return NDR_ERR_SUCCESS
;
25561 static enum ndr_err_code
ndr_pull_spoolss_AddPort(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPort
*r
)
25563 uint32_t _ptr_server_name
;
25564 TALLOC_CTX
*_mem_save_server_name_0
;
25565 if (flags
& NDR_IN
) {
25566 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
25567 if (_ptr_server_name
) {
25568 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
25570 r
->in
.server_name
= NULL
;
25572 if (r
->in
.server_name
) {
25573 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25574 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
25575 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
25576 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
25577 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
25578 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
25580 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
25581 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
25582 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
25584 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
25585 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.monitor_name
));
25586 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.monitor_name
));
25587 if (ndr_get_array_length(ndr
, &r
->in
.monitor_name
) > ndr_get_array_size(ndr
, &r
->in
.monitor_name
)) {
25588 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.monitor_name
), ndr_get_array_length(ndr
, &r
->in
.monitor_name
));
25590 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.monitor_name
), sizeof(uint16_t)));
25591 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.monitor_name
, ndr_get_array_length(ndr
, &r
->in
.monitor_name
), sizeof(uint16_t), CH_UTF16
));
25593 if (flags
& NDR_OUT
) {
25594 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25596 return NDR_ERR_SUCCESS
;
25599 _PUBLIC_
void ndr_print_spoolss_AddPort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPort
*r
)
25601 ndr_print_struct(ndr
, name
, "spoolss_AddPort");
25603 if (flags
& NDR_SET_VALUES
) {
25604 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25606 if (flags
& NDR_IN
) {
25607 ndr_print_struct(ndr
, "in", "spoolss_AddPort");
25609 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
25611 if (r
->in
.server_name
) {
25612 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
25615 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
25616 ndr_print_string(ndr
, "monitor_name", r
->in
.monitor_name
);
25619 if (flags
& NDR_OUT
) {
25620 ndr_print_struct(ndr
, "out", "spoolss_AddPort");
25622 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25628 static enum ndr_err_code
ndr_push_spoolss_ConfigurePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_ConfigurePort
*r
)
25630 if (flags
& NDR_IN
) {
25632 if (flags
& NDR_OUT
) {
25633 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25635 return NDR_ERR_SUCCESS
;
25638 static enum ndr_err_code
ndr_pull_spoolss_ConfigurePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_ConfigurePort
*r
)
25640 if (flags
& NDR_IN
) {
25642 if (flags
& NDR_OUT
) {
25643 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25645 return NDR_ERR_SUCCESS
;
25648 _PUBLIC_
void ndr_print_spoolss_ConfigurePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ConfigurePort
*r
)
25650 ndr_print_struct(ndr
, name
, "spoolss_ConfigurePort");
25652 if (flags
& NDR_SET_VALUES
) {
25653 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25655 if (flags
& NDR_IN
) {
25656 ndr_print_struct(ndr
, "in", "spoolss_ConfigurePort");
25660 if (flags
& NDR_OUT
) {
25661 ndr_print_struct(ndr
, "out", "spoolss_ConfigurePort");
25663 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25669 static enum ndr_err_code
ndr_push_spoolss_DeletePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePort
*r
)
25671 if (flags
& NDR_IN
) {
25673 if (flags
& NDR_OUT
) {
25674 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25676 return NDR_ERR_SUCCESS
;
25679 static enum ndr_err_code
ndr_pull_spoolss_DeletePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePort
*r
)
25681 if (flags
& NDR_IN
) {
25683 if (flags
& NDR_OUT
) {
25684 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25686 return NDR_ERR_SUCCESS
;
25689 _PUBLIC_
void ndr_print_spoolss_DeletePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePort
*r
)
25691 ndr_print_struct(ndr
, name
, "spoolss_DeletePort");
25693 if (flags
& NDR_SET_VALUES
) {
25694 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25696 if (flags
& NDR_IN
) {
25697 ndr_print_struct(ndr
, "in", "spoolss_DeletePort");
25701 if (flags
& NDR_OUT
) {
25702 ndr_print_struct(ndr
, "out", "spoolss_DeletePort");
25704 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25710 static enum ndr_err_code
ndr_push_spoolss_CreatePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
25712 if (flags
& NDR_IN
) {
25713 if (r
->in
.handle
== NULL
) {
25714 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25716 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25717 if (r
->in
.devmode_ctr
== NULL
) {
25718 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25720 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25722 if (flags
& NDR_OUT
) {
25723 if (r
->out
.gdi_handle
== NULL
) {
25724 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25726 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
25727 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25729 return NDR_ERR_SUCCESS
;
25732 static enum ndr_err_code
ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_CreatePrinterIC
*r
)
25734 TALLOC_CTX
*_mem_save_handle_0
;
25735 TALLOC_CTX
*_mem_save_gdi_handle_0
;
25736 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
25737 if (flags
& NDR_IN
) {
25738 ZERO_STRUCT(r
->out
);
25740 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25741 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25743 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25744 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25745 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25746 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25747 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25748 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
25750 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25751 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25752 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25753 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25754 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
25755 ZERO_STRUCTP(r
->out
.gdi_handle
);
25757 if (flags
& NDR_OUT
) {
25758 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25759 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
25761 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25762 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
25763 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
25764 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25765 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25767 return NDR_ERR_SUCCESS
;
25770 _PUBLIC_
void ndr_print_spoolss_CreatePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
25772 ndr_print_struct(ndr
, name
, "spoolss_CreatePrinterIC");
25774 if (flags
& NDR_SET_VALUES
) {
25775 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25777 if (flags
& NDR_IN
) {
25778 ndr_print_struct(ndr
, "in", "spoolss_CreatePrinterIC");
25780 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25782 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25784 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25786 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25790 if (flags
& NDR_OUT
) {
25791 ndr_print_struct(ndr
, "out", "spoolss_CreatePrinterIC");
25793 ndr_print_ptr(ndr
, "gdi_handle", r
->out
.gdi_handle
);
25795 ndr_print_policy_handle(ndr
, "gdi_handle", r
->out
.gdi_handle
);
25797 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25803 static enum ndr_err_code
ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
25805 if (flags
& NDR_IN
) {
25807 if (flags
& NDR_OUT
) {
25808 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25810 return NDR_ERR_SUCCESS
;
25813 static enum ndr_err_code
ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
25815 if (flags
& NDR_IN
) {
25817 if (flags
& NDR_OUT
) {
25818 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25820 return NDR_ERR_SUCCESS
;
25823 _PUBLIC_
void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
25825 ndr_print_struct(ndr
, name
, "spoolss_PlayGDIScriptOnPrinterIC");
25827 if (flags
& NDR_SET_VALUES
) {
25828 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25830 if (flags
& NDR_IN
) {
25831 ndr_print_struct(ndr
, "in", "spoolss_PlayGDIScriptOnPrinterIC");
25835 if (flags
& NDR_OUT
) {
25836 ndr_print_struct(ndr
, "out", "spoolss_PlayGDIScriptOnPrinterIC");
25838 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25844 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
25846 if (flags
& NDR_IN
) {
25847 if (r
->in
.gdi_handle
== NULL
) {
25848 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25850 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.gdi_handle
));
25852 if (flags
& NDR_OUT
) {
25853 if (r
->out
.gdi_handle
== NULL
) {
25854 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25856 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
25857 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25859 return NDR_ERR_SUCCESS
;
25862 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterIC
*r
)
25864 TALLOC_CTX
*_mem_save_gdi_handle_0
;
25865 if (flags
& NDR_IN
) {
25866 ZERO_STRUCT(r
->out
);
25868 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25869 NDR_PULL_ALLOC(ndr
, r
->in
.gdi_handle
);
25871 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25872 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
25873 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.gdi_handle
));
25874 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25875 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
25876 *r
->out
.gdi_handle
= *r
->in
.gdi_handle
;
25878 if (flags
& NDR_OUT
) {
25879 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25880 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
25882 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25883 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
25884 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
25885 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25886 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25888 return NDR_ERR_SUCCESS
;
25891 _PUBLIC_
void ndr_print_spoolss_DeletePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
25893 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterIC");
25895 if (flags
& NDR_SET_VALUES
) {
25896 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25898 if (flags
& NDR_IN
) {
25899 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterIC");
25901 ndr_print_ptr(ndr
, "gdi_handle", r
->in
.gdi_handle
);
25903 ndr_print_policy_handle(ndr
, "gdi_handle", r
->in
.gdi_handle
);
25907 if (flags
& NDR_OUT
) {
25908 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterIC");
25910 ndr_print_ptr(ndr
, "gdi_handle", r
->out
.gdi_handle
);
25912 ndr_print_policy_handle(ndr
, "gdi_handle", r
->out
.gdi_handle
);
25914 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25920 static enum ndr_err_code
ndr_push_spoolss_AddPrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
25922 if (flags
& NDR_IN
) {
25924 if (flags
& NDR_OUT
) {
25925 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25927 return NDR_ERR_SUCCESS
;
25930 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterConnection
*r
)
25932 if (flags
& NDR_IN
) {
25934 if (flags
& NDR_OUT
) {
25935 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25937 return NDR_ERR_SUCCESS
;
25940 _PUBLIC_
void ndr_print_spoolss_AddPrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
25942 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterConnection");
25944 if (flags
& NDR_SET_VALUES
) {
25945 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25947 if (flags
& NDR_IN
) {
25948 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterConnection");
25952 if (flags
& NDR_OUT
) {
25953 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterConnection");
25955 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25961 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
25963 if (flags
& NDR_IN
) {
25965 if (flags
& NDR_OUT
) {
25966 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25968 return NDR_ERR_SUCCESS
;
25971 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterConnection
*r
)
25973 if (flags
& NDR_IN
) {
25975 if (flags
& NDR_OUT
) {
25976 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25978 return NDR_ERR_SUCCESS
;
25981 _PUBLIC_
void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
25983 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterConnection");
25985 if (flags
& NDR_SET_VALUES
) {
25986 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25988 if (flags
& NDR_IN
) {
25989 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterConnection");
25993 if (flags
& NDR_OUT
) {
25994 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterConnection");
25996 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26002 static enum ndr_err_code
ndr_push_spoolss_PrinterMessageBox(struct ndr_push
*ndr
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
26004 if (flags
& NDR_IN
) {
26006 if (flags
& NDR_OUT
) {
26007 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26009 return NDR_ERR_SUCCESS
;
26012 static enum ndr_err_code
ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull
*ndr
, int flags
, struct spoolss_PrinterMessageBox
*r
)
26014 if (flags
& NDR_IN
) {
26016 if (flags
& NDR_OUT
) {
26017 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26019 return NDR_ERR_SUCCESS
;
26022 _PUBLIC_
void ndr_print_spoolss_PrinterMessageBox(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
26024 ndr_print_struct(ndr
, name
, "spoolss_PrinterMessageBox");
26026 if (flags
& NDR_SET_VALUES
) {
26027 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26029 if (flags
& NDR_IN
) {
26030 ndr_print_struct(ndr
, "in", "spoolss_PrinterMessageBox");
26034 if (flags
& NDR_OUT
) {
26035 ndr_print_struct(ndr
, "out", "spoolss_PrinterMessageBox");
26037 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26043 static enum ndr_err_code
ndr_push_spoolss_AddMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddMonitor
*r
)
26045 if (flags
& NDR_IN
) {
26047 if (flags
& NDR_OUT
) {
26048 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26050 return NDR_ERR_SUCCESS
;
26053 static enum ndr_err_code
ndr_pull_spoolss_AddMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddMonitor
*r
)
26055 if (flags
& NDR_IN
) {
26057 if (flags
& NDR_OUT
) {
26058 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26060 return NDR_ERR_SUCCESS
;
26063 _PUBLIC_
void ndr_print_spoolss_AddMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddMonitor
*r
)
26065 ndr_print_struct(ndr
, name
, "spoolss_AddMonitor");
26067 if (flags
& NDR_SET_VALUES
) {
26068 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26070 if (flags
& NDR_IN
) {
26071 ndr_print_struct(ndr
, "in", "spoolss_AddMonitor");
26075 if (flags
& NDR_OUT
) {
26076 ndr_print_struct(ndr
, "out", "spoolss_AddMonitor");
26078 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26084 static enum ndr_err_code
ndr_push_spoolss_DeleteMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteMonitor
*r
)
26086 if (flags
& NDR_IN
) {
26088 if (flags
& NDR_OUT
) {
26089 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26091 return NDR_ERR_SUCCESS
;
26094 static enum ndr_err_code
ndr_pull_spoolss_DeleteMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteMonitor
*r
)
26096 if (flags
& NDR_IN
) {
26098 if (flags
& NDR_OUT
) {
26099 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26101 return NDR_ERR_SUCCESS
;
26104 _PUBLIC_
void ndr_print_spoolss_DeleteMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteMonitor
*r
)
26106 ndr_print_struct(ndr
, name
, "spoolss_DeleteMonitor");
26108 if (flags
& NDR_SET_VALUES
) {
26109 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26111 if (flags
& NDR_IN
) {
26112 ndr_print_struct(ndr
, "in", "spoolss_DeleteMonitor");
26116 if (flags
& NDR_OUT
) {
26117 ndr_print_struct(ndr
, "out", "spoolss_DeleteMonitor");
26119 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26125 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
26127 if (flags
& NDR_IN
) {
26129 if (flags
& NDR_OUT
) {
26130 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26132 return NDR_ERR_SUCCESS
;
26135 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProcessor
*r
)
26137 if (flags
& NDR_IN
) {
26139 if (flags
& NDR_OUT
) {
26140 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26142 return NDR_ERR_SUCCESS
;
26145 _PUBLIC_
void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
26147 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProcessor");
26149 if (flags
& NDR_SET_VALUES
) {
26150 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26152 if (flags
& NDR_IN
) {
26153 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProcessor");
26157 if (flags
& NDR_OUT
) {
26158 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProcessor");
26160 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26166 static enum ndr_err_code
ndr_push_spoolss_AddPrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
26168 if (flags
& NDR_IN
) {
26170 if (flags
& NDR_OUT
) {
26171 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26173 return NDR_ERR_SUCCESS
;
26176 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProvidor
*r
)
26178 if (flags
& NDR_IN
) {
26180 if (flags
& NDR_OUT
) {
26181 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26183 return NDR_ERR_SUCCESS
;
26186 _PUBLIC_
void ndr_print_spoolss_AddPrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
26188 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProvidor");
26190 if (flags
& NDR_SET_VALUES
) {
26191 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26193 if (flags
& NDR_IN
) {
26194 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProvidor");
26198 if (flags
& NDR_OUT
) {
26199 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProvidor");
26201 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26207 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
26209 if (flags
& NDR_IN
) {
26211 if (flags
& NDR_OUT
) {
26212 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26214 return NDR_ERR_SUCCESS
;
26217 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProvidor
*r
)
26219 if (flags
& NDR_IN
) {
26221 if (flags
& NDR_OUT
) {
26222 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26224 return NDR_ERR_SUCCESS
;
26227 _PUBLIC_
void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
26229 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProvidor");
26231 if (flags
& NDR_SET_VALUES
) {
26232 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26234 if (flags
& NDR_IN
) {
26235 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProvidor");
26239 if (flags
& NDR_OUT
) {
26240 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProvidor");
26242 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26248 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcDataTypes
*r
)
26250 if (flags
& NDR_IN
) {
26251 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
26252 if (r
->in
.servername
) {
26253 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
26254 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26255 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
26256 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26258 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.print_processor_name
));
26259 if (r
->in
.print_processor_name
) {
26260 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
26261 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26262 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
26263 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
));
26265 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
26266 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
26267 if (r
->in
.buffer
) {
26268 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
26270 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26272 if (flags
& NDR_OUT
) {
26273 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
26275 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
26277 if (r
->out
.needed
== NULL
) {
26278 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26280 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26281 if (r
->out
.count
== NULL
) {
26282 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26284 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
26285 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26287 return NDR_ERR_SUCCESS
;
26290 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcDataTypes
*r
)
26292 uint32_t _ptr_servername
;
26293 uint32_t _ptr_print_processor_name
;
26294 uint32_t _ptr_buffer
;
26295 uint32_t _ptr_info
;
26296 TALLOC_CTX
*_mem_save_servername_0
;
26297 TALLOC_CTX
*_mem_save_print_processor_name_0
;
26298 TALLOC_CTX
*_mem_save_buffer_0
;
26299 TALLOC_CTX
*_mem_save_info_0
;
26300 TALLOC_CTX
*_mem_save_needed_0
;
26301 TALLOC_CTX
*_mem_save_count_0
;
26302 if (flags
& NDR_IN
) {
26303 ZERO_STRUCT(r
->out
);
26305 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
26306 if (_ptr_servername
) {
26307 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
26309 r
->in
.servername
= NULL
;
26311 if (r
->in
.servername
) {
26312 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26313 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
26314 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
26315 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
26316 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
26317 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.servername
), ndr_get_array_length(ndr
, &r
->in
.servername
));
26319 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
26320 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
26321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
26323 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
26324 if (_ptr_print_processor_name
) {
26325 NDR_PULL_ALLOC(ndr
, r
->in
.print_processor_name
);
26327 r
->in
.print_processor_name
= NULL
;
26329 if (r
->in
.print_processor_name
) {
26330 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26331 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.print_processor_name
, 0);
26332 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
26333 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
26334 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
26335 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.print_processor_name
), ndr_get_array_length(ndr
, &r
->in
.print_processor_name
));
26337 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
26338 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.print_processor_name
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t), CH_UTF16
));
26339 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
26341 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
26342 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
26344 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
26346 r
->in
.buffer
= NULL
;
26348 if (r
->in
.buffer
) {
26349 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26350 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
26351 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
26352 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
26354 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
26355 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26356 ZERO_STRUCTP(r
->out
.needed
);
26357 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
26358 ZERO_STRUCTP(r
->out
.count
);
26360 if (flags
& NDR_OUT
) {
26361 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
26363 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
26365 r
->out
.info
= NULL
;
26368 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26369 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
26370 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
26371 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
26373 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26374 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26376 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26377 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26378 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26379 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26380 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26381 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
26383 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26384 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
26385 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
26386 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
26387 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26389 return NDR_ERR_SUCCESS
;
26392 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcDataTypes
*r
)
26394 uint32_t cntr_info_0
;
26395 if (flags
& NDR_IN
) {
26396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
26397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
26399 if (flags
& NDR_OUT
) {
26400 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
26401 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
26402 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
26404 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
26405 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
26408 return NDR_ERR_SUCCESS
;
26411 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcDataTypes
*r
)
26413 uint32_t cntr_info_0
;
26414 TALLOC_CTX
*_mem_save_info_0
;
26415 if (flags
& NDR_IN
) {
26416 ZERO_STRUCT(r
->out
);
26418 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
26419 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
26421 if (flags
& NDR_OUT
) {
26422 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
26423 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26424 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
26425 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
26426 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
26427 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
26429 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
26430 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
26432 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
26434 return NDR_ERR_SUCCESS
;
26437 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcDataTypes
*r
)
26439 uint32_t cntr_info_2
;
26440 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcDataTypes");
26442 if (flags
& NDR_SET_VALUES
) {
26443 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26445 if (flags
& NDR_IN
) {
26446 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcDataTypes");
26448 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
26450 if (r
->in
.servername
) {
26451 ndr_print_string(ndr
, "servername", r
->in
.servername
);
26454 ndr_print_ptr(ndr
, "print_processor_name", r
->in
.print_processor_name
);
26456 if (r
->in
.print_processor_name
) {
26457 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
26460 ndr_print_uint32(ndr
, "level", r
->in
.level
);
26461 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
26463 if (r
->in
.buffer
) {
26464 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
26467 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
26470 if (flags
& NDR_OUT
) {
26471 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcDataTypes");
26473 ndr_print_ptr(ndr
, "count", r
->out
.count
);
26475 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
26477 ndr_print_ptr(ndr
, "info", r
->out
.info
);
26479 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
26481 if (*r
->out
.info
) {
26482 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
26484 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
26486 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
26487 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
26488 ndr_print_spoolss_PrintProcDataTypesInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
26496 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26498 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26500 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26506 static enum ndr_err_code
ndr_push_spoolss_ResetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinter
*r
)
26508 if (flags
& NDR_IN
) {
26509 if (r
->in
.handle
== NULL
) {
26510 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26512 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26513 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_type
));
26514 if (r
->in
.data_type
) {
26515 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
26516 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26517 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
26518 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
));
26520 if (r
->in
.devmode_ctr
== NULL
) {
26521 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26523 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
26525 if (flags
& NDR_OUT
) {
26526 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26528 return NDR_ERR_SUCCESS
;
26531 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinter
*r
)
26533 uint32_t _ptr_data_type
;
26534 TALLOC_CTX
*_mem_save_handle_0
;
26535 TALLOC_CTX
*_mem_save_data_type_0
;
26536 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
26537 if (flags
& NDR_IN
) {
26538 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26539 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26541 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26542 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26543 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26544 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26545 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
26546 if (_ptr_data_type
) {
26547 NDR_PULL_ALLOC(ndr
, r
->in
.data_type
);
26549 r
->in
.data_type
= NULL
;
26551 if (r
->in
.data_type
) {
26552 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26553 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_type
, 0);
26554 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data_type
));
26555 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data_type
));
26556 if (ndr_get_array_length(ndr
, &r
->in
.data_type
) > ndr_get_array_size(ndr
, &r
->in
.data_type
)) {
26557 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.data_type
), ndr_get_array_length(ndr
, &r
->in
.data_type
));
26559 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.data_type
), sizeof(uint16_t)));
26560 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.data_type
, ndr_get_array_length(ndr
, &r
->in
.data_type
), sizeof(uint16_t), CH_UTF16
));
26561 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
26563 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26564 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
26566 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26567 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26568 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
26569 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26571 if (flags
& NDR_OUT
) {
26572 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26574 return NDR_ERR_SUCCESS
;
26577 _PUBLIC_
void ndr_print_spoolss_ResetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinter
*r
)
26579 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinter");
26581 if (flags
& NDR_SET_VALUES
) {
26582 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26584 if (flags
& NDR_IN
) {
26585 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinter");
26587 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26589 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26591 ndr_print_ptr(ndr
, "data_type", r
->in
.data_type
);
26593 if (r
->in
.data_type
) {
26594 ndr_print_string(ndr
, "data_type", r
->in
.data_type
);
26597 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
26599 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
26603 if (flags
& NDR_OUT
) {
26604 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinter");
26606 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26612 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver2(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
26614 if (flags
& NDR_IN
) {
26615 if (r
->in
.handle
== NULL
) {
26616 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26618 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26619 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
26620 if (r
->in
.architecture
) {
26621 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
26622 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26623 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
26624 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26626 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
26627 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
26628 if (r
->in
.buffer
) {
26629 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
26631 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26632 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_major_version
));
26633 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_minor_version
));
26635 if (flags
& NDR_OUT
) {
26636 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
26639 struct ndr_push
*_ndr_info
;
26640 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
26641 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
26642 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
26643 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
26646 if (r
->out
.needed
== NULL
) {
26647 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26649 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26650 if (r
->out
.server_major_version
== NULL
) {
26651 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26653 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_major_version
));
26654 if (r
->out
.server_minor_version
== NULL
) {
26655 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26657 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_minor_version
));
26658 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26660 return NDR_ERR_SUCCESS
;
26663 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver2
*r
)
26665 uint32_t _ptr_architecture
;
26666 uint32_t _ptr_buffer
;
26667 uint32_t _ptr_info
;
26668 TALLOC_CTX
*_mem_save_handle_0
;
26669 TALLOC_CTX
*_mem_save_architecture_0
;
26670 TALLOC_CTX
*_mem_save_buffer_0
;
26671 TALLOC_CTX
*_mem_save_info_0
;
26672 TALLOC_CTX
*_mem_save_needed_0
;
26673 TALLOC_CTX
*_mem_save_server_major_version_0
;
26674 TALLOC_CTX
*_mem_save_server_minor_version_0
;
26675 if (flags
& NDR_IN
) {
26676 ZERO_STRUCT(r
->out
);
26678 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26679 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26681 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26682 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26683 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26684 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26685 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
26686 if (_ptr_architecture
) {
26687 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
26689 r
->in
.architecture
= NULL
;
26691 if (r
->in
.architecture
) {
26692 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26693 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
26694 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
26695 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
26696 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
26697 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.architecture
), ndr_get_array_length(ndr
, &r
->in
.architecture
));
26699 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
26700 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
26701 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
26703 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
26704 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
26706 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
26708 r
->in
.buffer
= NULL
;
26710 if (r
->in
.buffer
) {
26711 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26712 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
26713 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
26714 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
26716 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
26717 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_major_version
));
26718 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_minor_version
));
26719 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26720 ZERO_STRUCTP(r
->out
.needed
);
26721 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
26722 ZERO_STRUCTP(r
->out
.server_major_version
);
26723 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
26724 ZERO_STRUCTP(r
->out
.server_minor_version
);
26726 if (flags
& NDR_OUT
) {
26727 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
26729 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
26731 r
->out
.info
= NULL
;
26734 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26735 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
26737 struct ndr_pull
*_ndr_info
;
26738 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
26739 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
26740 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
26741 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
26743 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
26745 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26746 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26748 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26749 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26750 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26751 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26752 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26753 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
26755 _mem_save_server_major_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26756 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_major_version
, LIBNDR_FLAG_REF_ALLOC
);
26757 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_major_version
));
26758 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_major_version_0
, LIBNDR_FLAG_REF_ALLOC
);
26759 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26760 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
26762 _mem_save_server_minor_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26763 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_minor_version
, LIBNDR_FLAG_REF_ALLOC
);
26764 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_minor_version
));
26765 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_minor_version_0
, LIBNDR_FLAG_REF_ALLOC
);
26766 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26768 return NDR_ERR_SUCCESS
;
26771 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
26773 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver2");
26775 if (flags
& NDR_SET_VALUES
) {
26776 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26778 if (flags
& NDR_IN
) {
26779 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver2");
26781 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26783 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26785 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
26787 if (r
->in
.architecture
) {
26788 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
26791 ndr_print_uint32(ndr
, "level", r
->in
.level
);
26792 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
26794 if (r
->in
.buffer
) {
26795 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
26798 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
26799 ndr_print_uint32(ndr
, "client_major_version", r
->in
.client_major_version
);
26800 ndr_print_uint32(ndr
, "client_minor_version", r
->in
.client_minor_version
);
26803 if (flags
& NDR_OUT
) {
26804 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver2");
26806 ndr_print_ptr(ndr
, "info", r
->out
.info
);
26809 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
26810 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
26813 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26815 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26817 ndr_print_ptr(ndr
, "server_major_version", r
->out
.server_major_version
);
26819 ndr_print_uint32(ndr
, "server_major_version", *r
->out
.server_major_version
);
26821 ndr_print_ptr(ndr
, "server_minor_version", r
->out
.server_minor_version
);
26823 ndr_print_uint32(ndr
, "server_minor_version", *r
->out
.server_minor_version
);
26825 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26831 static enum ndr_err_code
ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
26833 if (flags
& NDR_IN
) {
26835 if (flags
& NDR_OUT
) {
26836 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26838 return NDR_ERR_SUCCESS
;
26841 static enum ndr_err_code
ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindFirstPrinterChangeNotification
*r
)
26843 if (flags
& NDR_IN
) {
26845 if (flags
& NDR_OUT
) {
26846 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26848 return NDR_ERR_SUCCESS
;
26851 _PUBLIC_
void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
26853 ndr_print_struct(ndr
, name
, "spoolss_FindFirstPrinterChangeNotification");
26855 if (flags
& NDR_SET_VALUES
) {
26856 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26858 if (flags
& NDR_IN
) {
26859 ndr_print_struct(ndr
, "in", "spoolss_FindFirstPrinterChangeNotification");
26863 if (flags
& NDR_OUT
) {
26864 ndr_print_struct(ndr
, "out", "spoolss_FindFirstPrinterChangeNotification");
26866 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26872 static enum ndr_err_code
ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
26874 if (flags
& NDR_IN
) {
26876 if (flags
& NDR_OUT
) {
26877 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26879 return NDR_ERR_SUCCESS
;
26882 static enum ndr_err_code
ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindNextPrinterChangeNotification
*r
)
26884 if (flags
& NDR_IN
) {
26886 if (flags
& NDR_OUT
) {
26887 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26889 return NDR_ERR_SUCCESS
;
26892 _PUBLIC_
void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
26894 ndr_print_struct(ndr
, name
, "spoolss_FindNextPrinterChangeNotification");
26896 if (flags
& NDR_SET_VALUES
) {
26897 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26899 if (flags
& NDR_IN
) {
26900 ndr_print_struct(ndr
, "in", "spoolss_FindNextPrinterChangeNotification");
26904 if (flags
& NDR_OUT
) {
26905 ndr_print_struct(ndr
, "out", "spoolss_FindNextPrinterChangeNotification");
26907 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26913 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
26915 if (flags
& NDR_IN
) {
26916 if (r
->in
.handle
== NULL
) {
26917 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26919 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26921 if (flags
& NDR_OUT
) {
26922 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26924 return NDR_ERR_SUCCESS
;
26927 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindClosePrinterNotify
*r
)
26929 TALLOC_CTX
*_mem_save_handle_0
;
26930 if (flags
& NDR_IN
) {
26931 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26932 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26934 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26935 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26936 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26939 if (flags
& NDR_OUT
) {
26940 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26942 return NDR_ERR_SUCCESS
;
26945 _PUBLIC_
void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
26947 ndr_print_struct(ndr
, name
, "spoolss_FindClosePrinterNotify");
26949 if (flags
& NDR_SET_VALUES
) {
26950 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26952 if (flags
& NDR_IN
) {
26953 ndr_print_struct(ndr
, "in", "spoolss_FindClosePrinterNotify");
26955 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26957 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26961 if (flags
& NDR_OUT
) {
26962 ndr_print_struct(ndr
, "out", "spoolss_FindClosePrinterNotify");
26964 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26970 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
26972 if (flags
& NDR_IN
) {
26974 if (flags
& NDR_OUT
) {
26975 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26977 return NDR_ERR_SUCCESS
;
26980 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
26982 if (flags
& NDR_IN
) {
26984 if (flags
& NDR_OUT
) {
26985 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26987 return NDR_ERR_SUCCESS
;
26990 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
26992 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26994 if (flags
& NDR_SET_VALUES
) {
26995 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26997 if (flags
& NDR_IN
) {
26998 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
27002 if (flags
& NDR_OUT
) {
27003 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
27005 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27011 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
27013 if (flags
& NDR_IN
) {
27014 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
27015 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27016 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
27017 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
));
27018 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
27019 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
27020 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
27021 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
27022 if (r
->in
.buffer
) {
27023 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
27024 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
27027 if (flags
& NDR_OUT
) {
27028 if (r
->out
.handle
== NULL
) {
27029 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27031 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27032 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27034 return NDR_ERR_SUCCESS
;
27037 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyOpenPrinter
*r
)
27039 uint32_t _ptr_buffer
;
27040 TALLOC_CTX
*_mem_save_buffer_0
;
27041 TALLOC_CTX
*_mem_save_handle_0
;
27042 if (flags
& NDR_IN
) {
27043 ZERO_STRUCT(r
->out
);
27045 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
27046 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
27047 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
27048 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server_name
), ndr_get_array_length(ndr
, &r
->in
.server_name
));
27050 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
27051 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server_name
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t), CH_UTF16
));
27052 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
27053 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
27054 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
27055 if (r
->in
.bufsize
> 512) {
27056 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
27058 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
27060 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
27062 r
->in
.buffer
= NULL
;
27064 if (r
->in
.buffer
) {
27065 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27066 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
27067 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
27068 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
27069 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
27070 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
27072 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27073 ZERO_STRUCTP(r
->out
.handle
);
27074 if (r
->in
.buffer
) {
27075 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
27078 if (flags
& NDR_OUT
) {
27079 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27080 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27082 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27083 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27084 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27085 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27086 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27088 return NDR_ERR_SUCCESS
;
27091 _PUBLIC_
void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
27093 ndr_print_struct(ndr
, name
, "spoolss_ReplyOpenPrinter");
27095 if (flags
& NDR_SET_VALUES
) {
27096 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27098 if (flags
& NDR_IN
) {
27099 ndr_print_struct(ndr
, "in", "spoolss_ReplyOpenPrinter");
27101 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
27102 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
27103 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
27104 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
27105 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
27107 if (r
->in
.buffer
) {
27108 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
27113 if (flags
& NDR_OUT
) {
27114 ndr_print_struct(ndr
, "out", "spoolss_ReplyOpenPrinter");
27116 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
27118 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
27120 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27126 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
27128 if (flags
& NDR_IN
) {
27129 if (r
->in
.handle
== NULL
) {
27130 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27132 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27133 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
27134 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
27135 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
27136 if (r
->in
.buffer
) {
27137 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
27138 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
27141 if (flags
& NDR_OUT
) {
27142 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27144 return NDR_ERR_SUCCESS
;
27147 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinter
*r
)
27149 uint32_t _ptr_buffer
;
27150 TALLOC_CTX
*_mem_save_handle_0
;
27151 TALLOC_CTX
*_mem_save_buffer_0
;
27152 if (flags
& NDR_IN
) {
27153 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27154 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27156 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27157 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27158 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27159 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27160 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
27161 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
27162 if (r
->in
.bufsize
> 512) {
27163 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
27165 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
27167 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
27169 r
->in
.buffer
= NULL
;
27171 if (r
->in
.buffer
) {
27172 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27173 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
27174 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
27175 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
27176 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
27177 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
27179 if (r
->in
.buffer
) {
27180 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
27183 if (flags
& NDR_OUT
) {
27184 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27186 return NDR_ERR_SUCCESS
;
27189 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
27191 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinter");
27193 if (flags
& NDR_SET_VALUES
) {
27194 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27196 if (flags
& NDR_IN
) {
27197 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinter");
27199 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27201 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27203 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
27204 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
27205 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
27207 if (r
->in
.buffer
) {
27208 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
27213 if (flags
& NDR_OUT
) {
27214 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinter");
27216 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27222 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
27224 if (flags
& NDR_IN
) {
27225 if (r
->in
.handle
== NULL
) {
27226 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27228 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27230 if (flags
& NDR_OUT
) {
27231 if (r
->out
.handle
== NULL
) {
27232 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27234 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27235 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27237 return NDR_ERR_SUCCESS
;
27240 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyClosePrinter
*r
)
27242 TALLOC_CTX
*_mem_save_handle_0
;
27243 if (flags
& NDR_IN
) {
27244 ZERO_STRUCT(r
->out
);
27246 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27247 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27249 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27250 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27251 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27252 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27253 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27254 *r
->out
.handle
= *r
->in
.handle
;
27256 if (flags
& NDR_OUT
) {
27257 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27258 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27260 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27261 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27262 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27263 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27264 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27266 return NDR_ERR_SUCCESS
;
27269 _PUBLIC_
void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
27271 ndr_print_struct(ndr
, name
, "spoolss_ReplyClosePrinter");
27273 if (flags
& NDR_SET_VALUES
) {
27274 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27276 if (flags
& NDR_IN
) {
27277 ndr_print_struct(ndr
, "in", "spoolss_ReplyClosePrinter");
27279 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27281 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27285 if (flags
& NDR_OUT
) {
27286 ndr_print_struct(ndr
, "out", "spoolss_ReplyClosePrinter");
27288 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
27290 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
27292 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27298 static enum ndr_err_code
ndr_push_spoolss_AddPortEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPortEx
*r
)
27300 if (flags
& NDR_IN
) {
27302 if (flags
& NDR_OUT
) {
27303 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27305 return NDR_ERR_SUCCESS
;
27308 static enum ndr_err_code
ndr_pull_spoolss_AddPortEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPortEx
*r
)
27310 if (flags
& NDR_IN
) {
27312 if (flags
& NDR_OUT
) {
27313 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27315 return NDR_ERR_SUCCESS
;
27318 _PUBLIC_
void ndr_print_spoolss_AddPortEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPortEx
*r
)
27320 ndr_print_struct(ndr
, name
, "spoolss_AddPortEx");
27322 if (flags
& NDR_SET_VALUES
) {
27323 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27325 if (flags
& NDR_IN
) {
27326 ndr_print_struct(ndr
, "in", "spoolss_AddPortEx");
27330 if (flags
& NDR_OUT
) {
27331 ndr_print_struct(ndr
, "out", "spoolss_AddPortEx");
27333 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27339 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
27341 if (flags
& NDR_IN
) {
27343 if (flags
& NDR_OUT
) {
27344 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27346 return NDR_ERR_SUCCESS
;
27349 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
27351 if (flags
& NDR_IN
) {
27353 if (flags
& NDR_OUT
) {
27354 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27356 return NDR_ERR_SUCCESS
;
27359 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
27361 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotification");
27363 if (flags
& NDR_SET_VALUES
) {
27364 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27366 if (flags
& NDR_IN
) {
27367 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
27371 if (flags
& NDR_OUT
) {
27372 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
27374 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27380 static enum ndr_err_code
ndr_push_spoolss_SpoolerInit(struct ndr_push
*ndr
, int flags
, const struct spoolss_SpoolerInit
*r
)
27382 if (flags
& NDR_IN
) {
27384 if (flags
& NDR_OUT
) {
27385 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27387 return NDR_ERR_SUCCESS
;
27390 static enum ndr_err_code
ndr_pull_spoolss_SpoolerInit(struct ndr_pull
*ndr
, int flags
, struct spoolss_SpoolerInit
*r
)
27392 if (flags
& NDR_IN
) {
27394 if (flags
& NDR_OUT
) {
27395 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27397 return NDR_ERR_SUCCESS
;
27400 _PUBLIC_
void ndr_print_spoolss_SpoolerInit(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SpoolerInit
*r
)
27402 ndr_print_struct(ndr
, name
, "spoolss_SpoolerInit");
27404 if (flags
& NDR_SET_VALUES
) {
27405 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27407 if (flags
& NDR_IN
) {
27408 ndr_print_struct(ndr
, "in", "spoolss_SpoolerInit");
27412 if (flags
& NDR_OUT
) {
27413 ndr_print_struct(ndr
, "out", "spoolss_SpoolerInit");
27415 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27421 static enum ndr_err_code
ndr_push_spoolss_ResetPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
27423 if (flags
& NDR_IN
) {
27425 if (flags
& NDR_OUT
) {
27426 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27428 return NDR_ERR_SUCCESS
;
27431 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinterEx
*r
)
27433 if (flags
& NDR_IN
) {
27435 if (flags
& NDR_OUT
) {
27436 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27438 return NDR_ERR_SUCCESS
;
27441 _PUBLIC_
void ndr_print_spoolss_ResetPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
27443 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinterEx");
27445 if (flags
& NDR_SET_VALUES
) {
27446 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27448 if (flags
& NDR_IN
) {
27449 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinterEx");
27453 if (flags
& NDR_OUT
) {
27454 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinterEx");
27456 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27462 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
27464 if (flags
& NDR_IN
) {
27465 if (r
->in
.handle
== NULL
) {
27466 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27468 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27469 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
27470 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.options
));
27471 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.local_machine
));
27472 if (r
->in
.local_machine
) {
27473 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
27474 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27475 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
27476 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
));
27478 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
27479 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.notify_options
));
27480 if (r
->in
.notify_options
) {
27481 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
27484 if (flags
& NDR_OUT
) {
27485 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27487 return NDR_ERR_SUCCESS
;
27490 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
27492 uint32_t _ptr_local_machine
;
27493 uint32_t _ptr_notify_options
;
27494 TALLOC_CTX
*_mem_save_handle_0
;
27495 TALLOC_CTX
*_mem_save_local_machine_0
;
27496 TALLOC_CTX
*_mem_save_notify_options_0
;
27497 if (flags
& NDR_IN
) {
27498 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27499 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27501 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27502 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27503 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27504 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27505 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
27506 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.options
));
27507 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_local_machine
));
27508 if (_ptr_local_machine
) {
27509 NDR_PULL_ALLOC(ndr
, r
->in
.local_machine
);
27511 r
->in
.local_machine
= NULL
;
27513 if (r
->in
.local_machine
) {
27514 _mem_save_local_machine_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27515 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.local_machine
, 0);
27516 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.local_machine
));
27517 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.local_machine
));
27518 if (ndr_get_array_length(ndr
, &r
->in
.local_machine
) > ndr_get_array_size(ndr
, &r
->in
.local_machine
)) {
27519 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.local_machine
), ndr_get_array_length(ndr
, &r
->in
.local_machine
));
27521 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.local_machine
), sizeof(uint16_t)));
27522 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.local_machine
, ndr_get_array_length(ndr
, &r
->in
.local_machine
), sizeof(uint16_t), CH_UTF16
));
27523 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_local_machine_0
, 0);
27525 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
27526 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_options
));
27527 if (_ptr_notify_options
) {
27528 NDR_PULL_ALLOC(ndr
, r
->in
.notify_options
);
27530 r
->in
.notify_options
= NULL
;
27532 if (r
->in
.notify_options
) {
27533 _mem_save_notify_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27534 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.notify_options
, 0);
27535 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
27536 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_options_0
, 0);
27539 if (flags
& NDR_OUT
) {
27540 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27542 return NDR_ERR_SUCCESS
;
27545 _PUBLIC_
void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
27547 ndr_print_struct(ndr
, name
, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27549 if (flags
& NDR_SET_VALUES
) {
27550 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27552 if (flags
& NDR_IN
) {
27553 ndr_print_struct(ndr
, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27555 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27557 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27559 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
27560 ndr_print_uint32(ndr
, "options", r
->in
.options
);
27561 ndr_print_ptr(ndr
, "local_machine", r
->in
.local_machine
);
27563 if (r
->in
.local_machine
) {
27564 ndr_print_string(ndr
, "local_machine", r
->in
.local_machine
);
27567 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
27568 ndr_print_ptr(ndr
, "notify_options", r
->in
.notify_options
);
27570 if (r
->in
.notify_options
) {
27571 ndr_print_spoolss_NotifyOption(ndr
, "notify_options", r
->in
.notify_options
);
27576 if (flags
& NDR_OUT
) {
27577 ndr_print_struct(ndr
, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27579 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27585 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
27587 if (flags
& NDR_IN
) {
27588 if (r
->in
.handle
== NULL
) {
27589 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27591 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27592 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.color
));
27593 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
27594 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reply_type
));
27595 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
27596 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
27598 if (flags
& NDR_OUT
) {
27599 if (r
->out
.reply_result
== NULL
) {
27600 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27602 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, *r
->out
.reply_result
));
27603 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27605 return NDR_ERR_SUCCESS
;
27608 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinterEx
*r
)
27610 TALLOC_CTX
*_mem_save_handle_0
;
27611 TALLOC_CTX
*_mem_save_reply_result_0
;
27612 if (flags
& NDR_IN
) {
27613 ZERO_STRUCT(r
->out
);
27615 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27616 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27618 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27619 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27620 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27621 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27622 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.color
));
27623 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
27624 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reply_type
));
27625 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
27626 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
27627 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
27628 ZERO_STRUCTP(r
->out
.reply_result
);
27630 if (flags
& NDR_OUT
) {
27631 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27632 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
27634 _mem_save_reply_result_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27635 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.reply_result
, LIBNDR_FLAG_REF_ALLOC
);
27636 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, r
->out
.reply_result
));
27637 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_reply_result_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_RouterReplyPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
27645 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinterEx");
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_RouterReplyPrinterEx");
27653 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27655 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27657 ndr_print_uint32(ndr
, "color", r
->in
.color
);
27658 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
27659 ndr_print_uint32(ndr
, "reply_type", r
->in
.reply_type
);
27660 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
);
27661 ndr_print_spoolss_ReplyPrinterInfo(ndr
, "info", &r
->in
.info
);
27664 if (flags
& NDR_OUT
) {
27665 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinterEx");
27667 ndr_print_ptr(ndr
, "reply_result", r
->out
.reply_result
);
27669 ndr_print_spoolss_PrinterNotifyFlags(ndr
, "reply_result", *r
->out
.reply_result
);
27671 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27677 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
27679 if (flags
& NDR_IN
) {
27680 if (r
->in
.handle
== NULL
) {
27681 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27683 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27684 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.change_low
));
27685 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.options
));
27686 if (r
->in
.options
) {
27687 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
27690 if (flags
& NDR_OUT
) {
27691 if (r
->out
.info
== NULL
) {
27692 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27694 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
27695 if (*r
->out
.info
) {
27696 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
27698 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27700 return NDR_ERR_SUCCESS
;
27703 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
27705 uint32_t _ptr_options
;
27706 uint32_t _ptr_info
;
27707 TALLOC_CTX
*_mem_save_handle_0
;
27708 TALLOC_CTX
*_mem_save_options_0
;
27709 TALLOC_CTX
*_mem_save_info_0
;
27710 TALLOC_CTX
*_mem_save_info_1
;
27711 if (flags
& NDR_IN
) {
27712 ZERO_STRUCT(r
->out
);
27714 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27715 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27717 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27718 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27719 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27720 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27721 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_low
));
27722 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_options
));
27723 if (_ptr_options
) {
27724 NDR_PULL_ALLOC(ndr
, r
->in
.options
);
27726 r
->in
.options
= NULL
;
27728 if (r
->in
.options
) {
27729 _mem_save_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27730 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.options
, 0);
27731 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
27732 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_options_0
, 0);
27734 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
27735 ZERO_STRUCTP(r
->out
.info
);
27737 if (flags
& NDR_OUT
) {
27738 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27739 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
27741 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27742 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
27743 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
27745 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
27747 *r
->out
.info
= NULL
;
27749 if (*r
->out
.info
) {
27750 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
27751 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
27752 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
27753 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
27755 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
27756 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27758 return NDR_ERR_SUCCESS
;
27761 _PUBLIC_
void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
27763 ndr_print_struct(ndr
, name
, "spoolss_RouterRefreshPrinterChangeNotify");
27765 if (flags
& NDR_SET_VALUES
) {
27766 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27768 if (flags
& NDR_IN
) {
27769 ndr_print_struct(ndr
, "in", "spoolss_RouterRefreshPrinterChangeNotify");
27771 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27773 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27775 ndr_print_uint32(ndr
, "change_low", r
->in
.change_low
);
27776 ndr_print_ptr(ndr
, "options", r
->in
.options
);
27778 if (r
->in
.options
) {
27779 ndr_print_spoolss_NotifyOption(ndr
, "options", r
->in
.options
);
27784 if (flags
& NDR_OUT
) {
27785 ndr_print_struct(ndr
, "out", "spoolss_RouterRefreshPrinterChangeNotify");
27787 ndr_print_ptr(ndr
, "info", r
->out
.info
);
27789 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
27791 if (*r
->out
.info
) {
27792 ndr_print_spoolss_NotifyInfo(ndr
, "info", *r
->out
.info
);
27796 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27802 static enum ndr_err_code
ndr_push_spoolss_44(struct ndr_push
*ndr
, int flags
, const struct spoolss_44
*r
)
27804 if (flags
& NDR_IN
) {
27806 if (flags
& NDR_OUT
) {
27807 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27809 return NDR_ERR_SUCCESS
;
27812 static enum ndr_err_code
ndr_pull_spoolss_44(struct ndr_pull
*ndr
, int flags
, struct spoolss_44
*r
)
27814 if (flags
& NDR_IN
) {
27816 if (flags
& NDR_OUT
) {
27817 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27819 return NDR_ERR_SUCCESS
;
27822 _PUBLIC_
void ndr_print_spoolss_44(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_44
*r
)
27824 ndr_print_struct(ndr
, name
, "spoolss_44");
27826 if (flags
& NDR_SET_VALUES
) {
27827 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27829 if (flags
& NDR_IN
) {
27830 ndr_print_struct(ndr
, "in", "spoolss_44");
27834 if (flags
& NDR_OUT
) {
27835 ndr_print_struct(ndr
, "out", "spoolss_44");
27837 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27843 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
27845 if (flags
& NDR_IN
) {
27846 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
27847 if (r
->in
.printername
) {
27848 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
27849 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27850 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
27851 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27853 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
27854 if (r
->in
.datatype
) {
27855 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
27856 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27857 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
27858 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27860 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
27861 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
27862 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
27863 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
27864 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
27866 if (flags
& NDR_OUT
) {
27867 if (r
->out
.handle
== NULL
) {
27868 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27870 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27871 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27873 return NDR_ERR_SUCCESS
;
27876 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinterEx
*r
)
27878 uint32_t _ptr_printername
;
27879 uint32_t _ptr_datatype
;
27880 TALLOC_CTX
*_mem_save_printername_0
;
27881 TALLOC_CTX
*_mem_save_datatype_0
;
27882 TALLOC_CTX
*_mem_save_handle_0
;
27883 if (flags
& NDR_IN
) {
27884 ZERO_STRUCT(r
->out
);
27886 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
27887 if (_ptr_printername
) {
27888 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
27890 r
->in
.printername
= NULL
;
27892 if (r
->in
.printername
) {
27893 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27894 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
27895 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
27896 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
27897 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
27898 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.printername
), ndr_get_array_length(ndr
, &r
->in
.printername
));
27900 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
27901 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
27902 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
27904 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
27905 if (_ptr_datatype
) {
27906 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
27908 r
->in
.datatype
= NULL
;
27910 if (r
->in
.datatype
) {
27911 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27912 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
27913 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
27914 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
27915 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
27916 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.datatype
), ndr_get_array_length(ndr
, &r
->in
.datatype
));
27918 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
27919 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
27920 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
27922 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
27923 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
27924 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
27925 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
27926 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
27927 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27928 ZERO_STRUCTP(r
->out
.handle
);
27930 if (flags
& NDR_OUT
) {
27931 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27932 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
27934 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27935 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27936 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
27937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27938 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27940 return NDR_ERR_SUCCESS
;
27943 _PUBLIC_
void ndr_print_spoolss_OpenPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
27945 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinterEx");
27947 if (flags
& NDR_SET_VALUES
) {
27948 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27950 if (flags
& NDR_IN
) {
27951 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinterEx");
27953 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
27955 if (r
->in
.printername
) {
27956 ndr_print_string(ndr
, "printername", r
->in
.printername
);
27959 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
27961 if (r
->in
.datatype
) {
27962 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
27965 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
27966 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
27967 ndr_print_uint32(ndr
, "level", r
->in
.level
);
27968 ndr_print_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
);
27969 ndr_print_spoolss_UserLevel(ndr
, "userlevel", &r
->in
.userlevel
);
27972 if (flags
& NDR_OUT
) {
27973 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinterEx");
27975 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
27977 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
27979 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27985 static enum ndr_err_code
ndr_push_spoolss_AddPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterEx
*r
)
27987 if (flags
& NDR_IN
) {
27988 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
27989 if (r
->in
.server
) {
27990 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
27991 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27992 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
27993 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27995 if (r
->in
.info_ctr
== NULL
) {
27996 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27998 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
27999 if (r
->in
.devmode_ctr
== NULL
) {
28000 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28002 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
28003 if (r
->in
.secdesc_ctr
== NULL
) {
28004 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28006 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
28007 if (r
->in
.userlevel_ctr
== NULL
) {
28008 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28010 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
28012 if (flags
& NDR_OUT
) {
28013 if (r
->out
.handle
== NULL
) {
28014 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28016 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
28017 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28019 return NDR_ERR_SUCCESS
;
28022 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterEx
*r
)
28024 uint32_t _ptr_server
;
28025 TALLOC_CTX
*_mem_save_server_0
;
28026 TALLOC_CTX
*_mem_save_info_ctr_0
;
28027 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
28028 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
28029 TALLOC_CTX
*_mem_save_userlevel_ctr_0
;
28030 TALLOC_CTX
*_mem_save_handle_0
;
28031 if (flags
& NDR_IN
) {
28032 ZERO_STRUCT(r
->out
);
28034 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
28036 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
28038 r
->in
.server
= NULL
;
28040 if (r
->in
.server
) {
28041 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28042 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
28043 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
28044 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
28045 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
28046 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
28048 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
28049 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
28050 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
28052 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28053 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
28055 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28056 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
28057 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
28058 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
28059 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28060 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
28062 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28063 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
28064 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
28065 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
28066 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28067 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
28069 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28070 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
28071 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
28072 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
28073 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28074 NDR_PULL_ALLOC(ndr
, r
->in
.userlevel_ctr
);
28076 _mem_save_userlevel_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28077 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.userlevel_ctr
, LIBNDR_FLAG_REF_ALLOC
);
28078 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
28079 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_userlevel_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
28080 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
28081 ZERO_STRUCTP(r
->out
.handle
);
28083 if (flags
& NDR_OUT
) {
28084 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28085 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
28087 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28088 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28089 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
28090 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28091 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28093 return NDR_ERR_SUCCESS
;
28096 _PUBLIC_
void ndr_print_spoolss_AddPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterEx
*r
)
28098 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterEx");
28100 if (flags
& NDR_SET_VALUES
) {
28101 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28103 if (flags
& NDR_IN
) {
28104 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterEx");
28106 ndr_print_ptr(ndr
, "server", r
->in
.server
);
28108 if (r
->in
.server
) {
28109 ndr_print_string(ndr
, "server", r
->in
.server
);
28112 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
28114 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
28116 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
28118 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
28120 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
28122 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
28124 ndr_print_ptr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
28126 ndr_print_spoolss_UserLevelCtr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
28130 if (flags
& NDR_OUT
) {
28131 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterEx");
28133 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
28135 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
28137 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28143 static enum ndr_err_code
ndr_push_spoolss_47(struct ndr_push
*ndr
, int flags
, const struct spoolss_47
*r
)
28145 if (flags
& NDR_IN
) {
28147 if (flags
& NDR_OUT
) {
28148 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28150 return NDR_ERR_SUCCESS
;
28153 static enum ndr_err_code
ndr_pull_spoolss_47(struct ndr_pull
*ndr
, int flags
, struct spoolss_47
*r
)
28155 if (flags
& NDR_IN
) {
28157 if (flags
& NDR_OUT
) {
28158 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28160 return NDR_ERR_SUCCESS
;
28163 _PUBLIC_
void ndr_print_spoolss_47(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_47
*r
)
28165 ndr_print_struct(ndr
, name
, "spoolss_47");
28167 if (flags
& NDR_SET_VALUES
) {
28168 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28170 if (flags
& NDR_IN
) {
28171 ndr_print_struct(ndr
, "in", "spoolss_47");
28175 if (flags
& NDR_OUT
) {
28176 ndr_print_struct(ndr
, "out", "spoolss_47");
28178 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28184 static enum ndr_err_code
ndr_push_spoolss_EnumPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterData
*r
)
28186 if (flags
& NDR_IN
) {
28187 if (r
->in
.handle
== NULL
) {
28188 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28190 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28191 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
28192 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
));
28193 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
28195 if (flags
& NDR_OUT
) {
28196 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.value_offered
/ 2));
28197 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.value_name
, r
->in
.value_offered
/ 2, sizeof(uint16_t), CH_UTF16
));
28198 if (r
->out
.value_needed
== NULL
) {
28199 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.value_needed
));
28202 if (r
->out
.type
== NULL
) {
28203 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28205 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
28207 uint32_t _flags_save_uint8
= ndr
->flags
;
28208 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
28209 if (r
->out
.data
== NULL
) {
28210 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28212 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
28213 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_offered
));
28214 ndr
->flags
= _flags_save_uint8
;
28216 if (r
->out
.data_needed
== NULL
) {
28217 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28219 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_needed
));
28220 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28222 return NDR_ERR_SUCCESS
;
28225 static enum ndr_err_code
ndr_pull_spoolss_EnumPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterData
*r
)
28227 TALLOC_CTX
*_mem_save_handle_0
;
28228 TALLOC_CTX
*_mem_save_value_needed_0
;
28229 TALLOC_CTX
*_mem_save_type_0
;
28230 TALLOC_CTX
*_mem_save_data_needed_0
;
28231 if (flags
& NDR_IN
) {
28232 ZERO_STRUCT(r
->out
);
28234 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28235 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28237 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28238 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28239 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28240 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28241 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
28242 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.value_offered
));
28243 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_offered
));
28244 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
28245 ZERO_STRUCTP(r
->out
.value_needed
);
28246 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
28247 ZERO_STRUCTP(r
->out
.type
);
28248 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_offered
);
28249 memset(r
->out
.data
, 0, (r
->in
.data_offered
) * sizeof(*r
->out
.data
));
28250 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
28251 ZERO_STRUCTP(r
->out
.data_needed
);
28253 if (flags
& NDR_OUT
) {
28254 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value_name
));
28255 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->out
.value_name
, ndr_get_array_size(ndr
, &r
->out
.value_name
), sizeof(uint16_t), CH_UTF16
));
28256 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28257 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
28259 _mem_save_value_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28260 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value_needed
, LIBNDR_FLAG_REF_ALLOC
);
28261 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.value_needed
));
28262 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28263 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28264 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
28266 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28267 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
28268 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
28269 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
28271 uint32_t _flags_save_uint8
= ndr
->flags
;
28272 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
28273 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
28274 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28275 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
28277 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
28278 ndr
->flags
= _flags_save_uint8
;
28280 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28281 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
28283 _mem_save_data_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28284 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_needed
, LIBNDR_FLAG_REF_ALLOC
);
28285 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_needed
));
28286 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28287 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28288 if (r
->out
.value_name
) {
28289 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value_name
, r
->in
.value_offered
/ 2));
28292 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_offered
));
28295 return NDR_ERR_SUCCESS
;
28298 _PUBLIC_
void ndr_print_spoolss_EnumPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterData
*r
)
28300 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterData");
28302 if (flags
& NDR_SET_VALUES
) {
28303 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28305 if (flags
& NDR_IN
) {
28306 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterData");
28308 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28310 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28312 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
28313 ndr_print_uint32(ndr
, "value_offered", r
->in
.value_offered
);
28314 ndr_print_uint32(ndr
, "data_offered", r
->in
.data_offered
);
28317 if (flags
& NDR_OUT
) {
28318 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterData");
28320 ndr_print_string(ndr
, "value_name", r
->out
.value_name
);
28321 ndr_print_ptr(ndr
, "value_needed", r
->out
.value_needed
);
28323 ndr_print_uint32(ndr
, "value_needed", *r
->out
.value_needed
);
28325 ndr_print_ptr(ndr
, "type", r
->out
.type
);
28327 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
28329 ndr_print_ptr(ndr
, "data", r
->out
.data
);
28331 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_offered
);
28333 ndr_print_ptr(ndr
, "data_needed", r
->out
.data_needed
);
28335 ndr_print_uint32(ndr
, "data_needed", *r
->out
.data_needed
);
28337 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28343 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterData
*r
)
28345 if (flags
& NDR_IN
) {
28346 if (r
->in
.handle
== NULL
) {
28347 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28349 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28350 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28351 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28352 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28353 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
));
28355 if (flags
& NDR_OUT
) {
28356 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28358 return NDR_ERR_SUCCESS
;
28361 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterData
*r
)
28363 TALLOC_CTX
*_mem_save_handle_0
;
28364 if (flags
& NDR_IN
) {
28365 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28366 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28368 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28369 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28370 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28371 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28372 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
28373 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
28374 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
28375 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.value_name
), ndr_get_array_length(ndr
, &r
->in
.value_name
));
28377 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
28378 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t), CH_UTF16
));
28380 if (flags
& NDR_OUT
) {
28381 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28383 return NDR_ERR_SUCCESS
;
28386 _PUBLIC_
void ndr_print_spoolss_DeletePrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterData
*r
)
28388 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterData");
28390 if (flags
& NDR_SET_VALUES
) {
28391 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28393 if (flags
& NDR_IN
) {
28394 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterData");
28396 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28398 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28400 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
28403 if (flags
& NDR_OUT
) {
28404 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterData");
28406 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28412 static enum ndr_err_code
ndr_push_spoolss_4a(struct ndr_push
*ndr
, int flags
, const struct spoolss_4a
*r
)
28414 if (flags
& NDR_IN
) {
28416 if (flags
& NDR_OUT
) {
28417 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28419 return NDR_ERR_SUCCESS
;
28422 static enum ndr_err_code
ndr_pull_spoolss_4a(struct ndr_pull
*ndr
, int flags
, struct spoolss_4a
*r
)
28424 if (flags
& NDR_IN
) {
28426 if (flags
& NDR_OUT
) {
28427 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28429 return NDR_ERR_SUCCESS
;
28432 _PUBLIC_
void ndr_print_spoolss_4a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4a
*r
)
28434 ndr_print_struct(ndr
, name
, "spoolss_4a");
28436 if (flags
& NDR_SET_VALUES
) {
28437 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28439 if (flags
& NDR_IN
) {
28440 ndr_print_struct(ndr
, "in", "spoolss_4a");
28444 if (flags
& NDR_OUT
) {
28445 ndr_print_struct(ndr
, "out", "spoolss_4a");
28447 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28453 static enum ndr_err_code
ndr_push_spoolss_4b(struct ndr_push
*ndr
, int flags
, const struct spoolss_4b
*r
)
28455 if (flags
& NDR_IN
) {
28457 if (flags
& NDR_OUT
) {
28458 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28460 return NDR_ERR_SUCCESS
;
28463 static enum ndr_err_code
ndr_pull_spoolss_4b(struct ndr_pull
*ndr
, int flags
, struct spoolss_4b
*r
)
28465 if (flags
& NDR_IN
) {
28467 if (flags
& NDR_OUT
) {
28468 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28470 return NDR_ERR_SUCCESS
;
28473 _PUBLIC_
void ndr_print_spoolss_4b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4b
*r
)
28475 ndr_print_struct(ndr
, name
, "spoolss_4b");
28477 if (flags
& NDR_SET_VALUES
) {
28478 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28480 if (flags
& NDR_IN
) {
28481 ndr_print_struct(ndr
, "in", "spoolss_4b");
28485 if (flags
& NDR_OUT
) {
28486 ndr_print_struct(ndr
, "out", "spoolss_4b");
28488 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28494 static enum ndr_err_code
ndr_push_spoolss_4c(struct ndr_push
*ndr
, int flags
, const struct spoolss_4c
*r
)
28496 if (flags
& NDR_IN
) {
28498 if (flags
& NDR_OUT
) {
28499 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28501 return NDR_ERR_SUCCESS
;
28504 static enum ndr_err_code
ndr_pull_spoolss_4c(struct ndr_pull
*ndr
, int flags
, struct spoolss_4c
*r
)
28506 if (flags
& NDR_IN
) {
28508 if (flags
& NDR_OUT
) {
28509 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28511 return NDR_ERR_SUCCESS
;
28514 _PUBLIC_
void ndr_print_spoolss_4c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4c
*r
)
28516 ndr_print_struct(ndr
, name
, "spoolss_4c");
28518 if (flags
& NDR_SET_VALUES
) {
28519 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28521 if (flags
& NDR_IN
) {
28522 ndr_print_struct(ndr
, "in", "spoolss_4c");
28526 if (flags
& NDR_OUT
) {
28527 ndr_print_struct(ndr
, "out", "spoolss_4c");
28529 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28535 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_SetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct _spoolss_SetPrinterDataEx
*r
)
28537 if (flags
& NDR_IN
) {
28538 if (r
->in
.handle
== NULL
) {
28539 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28541 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28542 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28543 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28544 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28545 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
));
28546 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28547 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28548 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28549 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
));
28550 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
28551 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
28552 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
._offered
));
28554 if (flags
& NDR_OUT
) {
28555 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28557 return NDR_ERR_SUCCESS
;
28560 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_SetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct __spoolss_SetPrinterDataEx
*r
)
28562 if (flags
& NDR_IN
) {
28563 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
28565 if (flags
& NDR_OUT
) {
28566 if (r
->out
.data
== NULL
) {
28567 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28569 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
28570 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
28572 return NDR_ERR_SUCCESS
;
28575 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterDataEx
*r
)
28577 TALLOC_CTX
*_mem_save_handle_0
;
28578 if (flags
& NDR_IN
) {
28579 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28580 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28582 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28583 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28584 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28585 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28586 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
28587 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
28588 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
28589 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.key_name
), ndr_get_array_length(ndr
, &r
->in
.key_name
));
28591 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
28592 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t), CH_UTF16
));
28593 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
28594 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
28595 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
28596 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.value_name
), ndr_get_array_length(ndr
, &r
->in
.value_name
));
28598 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
28599 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t), CH_UTF16
));
28600 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
28602 struct ndr_pull
*_ndr_data
;
28603 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 4, -1));
28604 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, &r
->in
.data
, r
->in
.type
));
28605 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
28606 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 4, -1));
28608 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._offered
));
28610 if (flags
& NDR_OUT
) {
28611 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28613 return NDR_ERR_SUCCESS
;
28616 _PUBLIC_
void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
28618 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterDataEx");
28620 if (flags
& NDR_SET_VALUES
) {
28621 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28623 if (flags
& NDR_IN
) {
28624 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterDataEx");
28626 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28628 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28630 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
28631 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
28632 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
28633 ndr_print_set_switch_value(ndr
, &r
->in
.data
, r
->in
.type
);
28634 ndr_print_spoolss_PrinterData(ndr
, "data", &r
->in
.data
);
28635 ndr_print_uint32(ndr
, "_offered", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_PrinterData(&r
->in
.data
, r
->in
.type
, ndr
->iconv_convenience
, flags
):r
->in
._offered
);
28638 if (flags
& NDR_OUT
) {
28639 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterDataEx");
28641 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28647 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_GetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct _spoolss_GetPrinterDataEx
*r
)
28649 if (flags
& NDR_IN
) {
28650 if (r
->in
.handle
== NULL
) {
28651 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28653 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28654 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28655 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28656 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28657 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
));
28658 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28659 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28660 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
28661 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
));
28662 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
28664 if (flags
& NDR_OUT
) {
28665 if (r
->out
.type
== NULL
) {
28666 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28668 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
28669 if (r
->out
.data
== NULL
) {
28670 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28672 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.data
));
28673 if (r
->out
.needed
== NULL
) {
28674 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28676 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
28677 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28679 return NDR_ERR_SUCCESS
;
28682 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_GetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct _spoolss_GetPrinterDataEx
*r
)
28684 TALLOC_CTX
*_mem_save_handle_0
;
28685 TALLOC_CTX
*_mem_save_type_0
;
28686 TALLOC_CTX
*_mem_save_data_0
;
28687 TALLOC_CTX
*_mem_save_needed_0
;
28688 if (flags
& NDR_IN
) {
28689 ZERO_STRUCT(r
->out
);
28691 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28692 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28694 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28695 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28696 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28697 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28698 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
28699 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
28700 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
28701 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.key_name
), ndr_get_array_length(ndr
, &r
->in
.key_name
));
28703 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
28704 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t), CH_UTF16
));
28705 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
28706 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
28707 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
28708 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.value_name
), ndr_get_array_length(ndr
, &r
->in
.value_name
));
28710 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
28711 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t), CH_UTF16
));
28712 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
28713 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
28714 ZERO_STRUCTP(r
->out
.type
);
28715 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
28716 ZERO_STRUCTP(r
->out
.data
);
28717 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28718 ZERO_STRUCTP(r
->out
.needed
);
28720 if (flags
& NDR_OUT
) {
28721 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28722 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
28724 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28725 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
28726 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
28727 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
28728 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28729 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
28731 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28732 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
28733 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.data
));
28734 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
28735 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28736 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28738 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28739 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
28740 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
28741 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28742 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28744 return NDR_ERR_SUCCESS
;
28747 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_GetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct __spoolss_GetPrinterDataEx
*r
)
28749 if (flags
& NDR_IN
) {
28750 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
28752 if (flags
& NDR_OUT
) {
28753 if (r
->out
.data
== NULL
) {
28754 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28756 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
28757 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
28759 return NDR_ERR_SUCCESS
;
28762 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_GetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct __spoolss_GetPrinterDataEx
*r
)
28764 TALLOC_CTX
*_mem_save_data_0
;
28765 if (flags
& NDR_IN
) {
28766 ZERO_STRUCT(r
->out
);
28768 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
28769 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
28770 ZERO_STRUCTP(r
->out
.data
);
28772 if (flags
& NDR_OUT
) {
28773 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28774 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
28776 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28777 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
28778 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
28779 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
28780 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
28782 return NDR_ERR_SUCCESS
;
28785 _PUBLIC_
void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
28787 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDataEx");
28789 if (flags
& NDR_SET_VALUES
) {
28790 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28792 if (flags
& NDR_IN
) {
28793 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDataEx");
28795 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28797 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28799 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
28800 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
28801 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
28804 if (flags
& NDR_OUT
) {
28805 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDataEx");
28807 ndr_print_ptr(ndr
, "type", r
->out
.type
);
28809 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
28811 ndr_print_ptr(ndr
, "data", r
->out
.data
);
28813 ndr_print_set_switch_value(ndr
, r
->out
.data
, *r
->out
.type
);
28814 ndr_print_spoolss_PrinterData(ndr
, "data", r
->out
.data
);
28816 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
28818 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
28820 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28826 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDataEx
*r
)
28828 if (flags
& NDR_IN
) {
28829 if (r
->in
.handle
== NULL
) {
28830 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28832 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28833 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28834 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28835 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28836 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
));
28837 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
28839 if (flags
& NDR_OUT
) {
28840 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
28841 if (r
->out
.needed
== NULL
) {
28842 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28844 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
28845 if (r
->out
.count
== NULL
) {
28846 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28848 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
28849 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28851 return NDR_ERR_SUCCESS
;
28854 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDataEx
*r
)
28856 TALLOC_CTX
*_mem_save_handle_0
;
28857 TALLOC_CTX
*_mem_save_needed_0
;
28858 TALLOC_CTX
*_mem_save_count_0
;
28859 if (flags
& NDR_IN
) {
28860 ZERO_STRUCT(r
->out
);
28862 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28863 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28865 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28866 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28867 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28868 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28869 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
28870 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
28871 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
28872 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.key_name
), ndr_get_array_length(ndr
, &r
->in
.key_name
));
28874 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
28875 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t), CH_UTF16
));
28876 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
28877 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28878 ZERO_STRUCTP(r
->out
.needed
);
28879 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
28880 ZERO_STRUCTP(r
->out
.count
);
28882 if (flags
& NDR_OUT
) {
28883 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->out
.info
));
28884 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28885 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28887 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28888 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
28889 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
28890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28891 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28892 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
28894 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28895 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
28896 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
28897 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
28898 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28900 return NDR_ERR_SUCCESS
;
28903 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDataEx
*r
)
28905 uint32_t cntr_info_0
;
28906 if (flags
& NDR_IN
) {
28907 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
28909 if (flags
& NDR_OUT
) {
28910 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
28911 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
28913 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
28914 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
28917 return NDR_ERR_SUCCESS
;
28920 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDataEx
*r
)
28922 uint32_t cntr_info_0
;
28923 TALLOC_CTX
*_mem_save_info_0
;
28924 if (flags
& NDR_IN
) {
28925 ZERO_STRUCT(r
->out
);
28927 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
28929 if (flags
& NDR_OUT
) {
28930 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
28931 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28932 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
28933 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
28934 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
28936 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
28937 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
28939 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
28941 return NDR_ERR_SUCCESS
;
28944 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDataEx
*r
)
28946 uint32_t cntr_info_2
;
28947 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDataEx");
28949 if (flags
& NDR_SET_VALUES
) {
28950 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28952 if (flags
& NDR_IN
) {
28953 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDataEx");
28955 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28957 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28959 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
28960 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
28963 if (flags
& NDR_OUT
) {
28964 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDataEx");
28966 ndr_print_ptr(ndr
, "count", r
->out
.count
);
28968 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
28970 ndr_print_ptr(ndr
, "info", r
->out
.info
);
28972 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
28974 if (*r
->out
.info
) {
28975 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
28977 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
28979 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
28980 ndr_print_spoolss_PrinterEnumValues(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
28988 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
28990 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
28992 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28998 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
29000 if (flags
& NDR_IN
) {
29001 if (r
->in
.handle
== NULL
) {
29002 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29004 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29005 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
29006 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29007 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
29008 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
));
29009 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
29011 if (flags
& NDR_OUT
) {
29012 if (r
->out
._ndr_size
== NULL
) {
29013 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29015 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._ndr_size
));
29016 if (r
->out
.key_buffer
== NULL
) {
29017 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29020 struct ndr_push
*_ndr_key_buffer
;
29021 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
29022 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer
, r
->out
.key_buffer
, *r
->out
._ndr_size
));
29023 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.key_buffer
));
29024 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
29026 if (r
->out
.needed
== NULL
) {
29027 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29029 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
29030 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29032 return NDR_ERR_SUCCESS
;
29035 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterKey
*r
)
29037 TALLOC_CTX
*_mem_save_handle_0
;
29038 TALLOC_CTX
*_mem_save__ndr_size_0
;
29039 TALLOC_CTX
*_mem_save_key_buffer_0
;
29040 TALLOC_CTX
*_mem_save_needed_0
;
29041 if (flags
& NDR_IN
) {
29042 ZERO_STRUCT(r
->out
);
29044 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29045 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
29047 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29048 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
29049 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29050 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
29051 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
29052 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
29053 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
29054 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.key_name
), ndr_get_array_length(ndr
, &r
->in
.key_name
));
29056 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
29057 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t), CH_UTF16
));
29058 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
29059 NDR_PULL_ALLOC(ndr
, r
->out
._ndr_size
);
29060 ZERO_STRUCTP(r
->out
._ndr_size
);
29061 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
29062 ZERO_STRUCTP(r
->out
.key_buffer
);
29063 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
29064 ZERO_STRUCTP(r
->out
.needed
);
29066 if (flags
& NDR_OUT
) {
29067 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29068 NDR_PULL_ALLOC(ndr
, r
->out
._ndr_size
);
29070 _mem_save__ndr_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29071 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._ndr_size
, LIBNDR_FLAG_REF_ALLOC
);
29072 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._ndr_size
));
29073 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__ndr_size_0
, LIBNDR_FLAG_REF_ALLOC
);
29074 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29075 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
29077 _mem_save_key_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29078 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.key_buffer
, LIBNDR_FLAG_REF_ALLOC
);
29080 struct ndr_pull
*_ndr_key_buffer
;
29081 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
29082 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer
, r
->out
.key_buffer
, *r
->out
._ndr_size
));
29083 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.key_buffer
));
29084 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
29086 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
29087 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29088 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
29090 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29091 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
29092 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
29093 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
29094 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29096 return NDR_ERR_SUCCESS
;
29099 _PUBLIC_
void ndr_print_spoolss_EnumPrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
29101 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterKey");
29103 if (flags
& NDR_SET_VALUES
) {
29104 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29106 if (flags
& NDR_IN
) {
29107 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterKey");
29109 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
29111 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
29113 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
29114 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
29117 if (flags
& NDR_OUT
) {
29118 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterKey");
29120 ndr_print_ptr(ndr
, "_ndr_size", r
->out
._ndr_size
);
29122 ndr_print_uint32(ndr
, "_ndr_size", *r
->out
._ndr_size
);
29124 ndr_print_ptr(ndr
, "key_buffer", r
->out
.key_buffer
);
29126 ndr_print_set_switch_value(ndr
, r
->out
.key_buffer
, *r
->out
._ndr_size
);
29127 ndr_print_spoolss_KeyNames(ndr
, "key_buffer", r
->out
.key_buffer
);
29129 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
29131 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
29133 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29139 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
29141 if (flags
& NDR_IN
) {
29142 if (r
->in
.handle
== NULL
) {
29143 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29145 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29146 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
29147 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29148 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
29149 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
));
29150 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
29151 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29152 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
29153 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
));
29155 if (flags
& NDR_OUT
) {
29156 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29158 return NDR_ERR_SUCCESS
;
29161 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDataEx
*r
)
29163 TALLOC_CTX
*_mem_save_handle_0
;
29164 if (flags
& NDR_IN
) {
29165 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29166 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
29168 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29169 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
29170 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29171 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
29172 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
29173 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
29174 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
29175 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.key_name
), ndr_get_array_length(ndr
, &r
->in
.key_name
));
29177 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
29178 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t), CH_UTF16
));
29179 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
29180 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
29181 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
29182 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.value_name
), ndr_get_array_length(ndr
, &r
->in
.value_name
));
29184 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
29185 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.value_name
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t), CH_UTF16
));
29187 if (flags
& NDR_OUT
) {
29188 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29190 return NDR_ERR_SUCCESS
;
29193 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
29195 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDataEx");
29197 if (flags
& NDR_SET_VALUES
) {
29198 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29200 if (flags
& NDR_IN
) {
29201 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDataEx");
29203 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
29205 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
29207 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
29208 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
29211 if (flags
& NDR_OUT
) {
29212 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDataEx");
29214 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29220 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
29222 if (flags
& NDR_IN
) {
29223 if (r
->in
.handle
== NULL
) {
29224 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29226 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29227 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
29228 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29229 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
29230 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
));
29232 if (flags
& NDR_OUT
) {
29233 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29235 return NDR_ERR_SUCCESS
;
29238 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterKey
*r
)
29240 TALLOC_CTX
*_mem_save_handle_0
;
29241 if (flags
& NDR_IN
) {
29242 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29243 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
29245 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29246 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
29247 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29248 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
29249 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
29250 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
29251 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
29252 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.key_name
), ndr_get_array_length(ndr
, &r
->in
.key_name
));
29254 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
29255 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.key_name
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t), CH_UTF16
));
29257 if (flags
& NDR_OUT
) {
29258 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29260 return NDR_ERR_SUCCESS
;
29263 _PUBLIC_
void ndr_print_spoolss_DeletePrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
29265 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterKey");
29267 if (flags
& NDR_SET_VALUES
) {
29268 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29270 if (flags
& NDR_IN
) {
29271 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterKey");
29273 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
29275 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
29277 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
29280 if (flags
& NDR_OUT
) {
29281 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterKey");
29283 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29289 static enum ndr_err_code
ndr_push_spoolss_53(struct ndr_push
*ndr
, int flags
, const struct spoolss_53
*r
)
29291 if (flags
& NDR_IN
) {
29293 if (flags
& NDR_OUT
) {
29294 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29296 return NDR_ERR_SUCCESS
;
29299 static enum ndr_err_code
ndr_pull_spoolss_53(struct ndr_pull
*ndr
, int flags
, struct spoolss_53
*r
)
29301 if (flags
& NDR_IN
) {
29303 if (flags
& NDR_OUT
) {
29304 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29306 return NDR_ERR_SUCCESS
;
29309 _PUBLIC_
void ndr_print_spoolss_53(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_53
*r
)
29311 ndr_print_struct(ndr
, name
, "spoolss_53");
29313 if (flags
& NDR_SET_VALUES
) {
29314 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29316 if (flags
& NDR_IN
) {
29317 ndr_print_struct(ndr
, "in", "spoolss_53");
29321 if (flags
& NDR_OUT
) {
29322 ndr_print_struct(ndr
, "out", "spoolss_53");
29324 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29330 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
29332 if (flags
& NDR_IN
) {
29333 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
29334 if (r
->in
.server
) {
29335 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
29336 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29337 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
29338 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29340 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
29341 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29342 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
29343 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29344 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
29345 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29346 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
29347 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29348 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, r
->in
.delete_flags
));
29349 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.version
));
29351 if (flags
& NDR_OUT
) {
29352 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29354 return NDR_ERR_SUCCESS
;
29357 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriverEx
*r
)
29359 uint32_t _ptr_server
;
29360 TALLOC_CTX
*_mem_save_server_0
;
29361 if (flags
& NDR_IN
) {
29362 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
29364 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
29366 r
->in
.server
= NULL
;
29368 if (r
->in
.server
) {
29369 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29370 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
29371 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
29372 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
29373 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
29374 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.server
), ndr_get_array_length(ndr
, &r
->in
.server
));
29376 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
29377 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
29378 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
29380 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
29381 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
29382 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
29383 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.architecture
), ndr_get_array_length(ndr
, &r
->in
.architecture
));
29385 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
29386 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
29387 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
29388 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
29389 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
29390 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.driver
), ndr_get_array_length(ndr
, &r
->in
.driver
));
29392 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
29393 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
29394 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, &r
->in
.delete_flags
));
29395 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.version
));
29397 if (flags
& NDR_OUT
) {
29398 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29400 return NDR_ERR_SUCCESS
;
29403 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
29405 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriverEx");
29407 if (flags
& NDR_SET_VALUES
) {
29408 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29410 if (flags
& NDR_IN
) {
29411 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriverEx");
29413 ndr_print_ptr(ndr
, "server", r
->in
.server
);
29415 if (r
->in
.server
) {
29416 ndr_print_string(ndr
, "server", r
->in
.server
);
29419 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
29420 ndr_print_string(ndr
, "driver", r
->in
.driver
);
29421 ndr_print_spoolss_DeleteDriverFlags(ndr
, "delete_flags", r
->in
.delete_flags
);
29422 ndr_print_uint32(ndr
, "version", r
->in
.version
);
29425 if (flags
& NDR_OUT
) {
29426 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriverEx");
29428 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29434 static enum ndr_err_code
ndr_push_spoolss_55(struct ndr_push
*ndr
, int flags
, const struct spoolss_55
*r
)
29436 if (flags
& NDR_IN
) {
29438 if (flags
& NDR_OUT
) {
29439 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29441 return NDR_ERR_SUCCESS
;
29444 static enum ndr_err_code
ndr_pull_spoolss_55(struct ndr_pull
*ndr
, int flags
, struct spoolss_55
*r
)
29446 if (flags
& NDR_IN
) {
29448 if (flags
& NDR_OUT
) {
29449 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29451 return NDR_ERR_SUCCESS
;
29454 _PUBLIC_
void ndr_print_spoolss_55(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_55
*r
)
29456 ndr_print_struct(ndr
, name
, "spoolss_55");
29458 if (flags
& NDR_SET_VALUES
) {
29459 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29461 if (flags
& NDR_IN
) {
29462 ndr_print_struct(ndr
, "in", "spoolss_55");
29466 if (flags
& NDR_OUT
) {
29467 ndr_print_struct(ndr
, "out", "spoolss_55");
29469 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29475 static enum ndr_err_code
ndr_push_spoolss_56(struct ndr_push
*ndr
, int flags
, const struct spoolss_56
*r
)
29477 if (flags
& NDR_IN
) {
29479 if (flags
& NDR_OUT
) {
29480 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29482 return NDR_ERR_SUCCESS
;
29485 static enum ndr_err_code
ndr_pull_spoolss_56(struct ndr_pull
*ndr
, int flags
, struct spoolss_56
*r
)
29487 if (flags
& NDR_IN
) {
29489 if (flags
& NDR_OUT
) {
29490 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29492 return NDR_ERR_SUCCESS
;
29495 _PUBLIC_
void ndr_print_spoolss_56(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_56
*r
)
29497 ndr_print_struct(ndr
, name
, "spoolss_56");
29499 if (flags
& NDR_SET_VALUES
) {
29500 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29502 if (flags
& NDR_IN
) {
29503 ndr_print_struct(ndr
, "in", "spoolss_56");
29507 if (flags
& NDR_OUT
) {
29508 ndr_print_struct(ndr
, "out", "spoolss_56");
29510 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29516 static enum ndr_err_code
ndr_push_spoolss_57(struct ndr_push
*ndr
, int flags
, const struct spoolss_57
*r
)
29518 if (flags
& NDR_IN
) {
29520 if (flags
& NDR_OUT
) {
29521 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29523 return NDR_ERR_SUCCESS
;
29526 static enum ndr_err_code
ndr_pull_spoolss_57(struct ndr_pull
*ndr
, int flags
, struct spoolss_57
*r
)
29528 if (flags
& NDR_IN
) {
29530 if (flags
& NDR_OUT
) {
29531 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29533 return NDR_ERR_SUCCESS
;
29536 _PUBLIC_
void ndr_print_spoolss_57(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_57
*r
)
29538 ndr_print_struct(ndr
, name
, "spoolss_57");
29540 if (flags
& NDR_SET_VALUES
) {
29541 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29543 if (flags
& NDR_IN
) {
29544 ndr_print_struct(ndr
, "in", "spoolss_57");
29548 if (flags
& NDR_OUT
) {
29549 ndr_print_struct(ndr
, "out", "spoolss_57");
29551 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29557 static enum ndr_err_code
ndr_push_spoolss_XcvData(struct ndr_push
*ndr
, int flags
, const struct spoolss_XcvData
*r
)
29559 if (flags
& NDR_IN
) {
29560 if (r
->in
.handle
== NULL
) {
29561 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29563 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29564 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
29565 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29566 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
29567 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
));
29568 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.in_data
));
29569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.in_data
.length
));
29570 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
29571 if (r
->in
.status_code
== NULL
) {
29572 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29574 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.status_code
));
29576 if (flags
& NDR_OUT
) {
29577 if (r
->out
.out_data
== NULL
) {
29578 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29580 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
29581 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, r
->in
.out_data_size
));
29582 if (r
->out
.needed
== NULL
) {
29583 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29585 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
29586 if (r
->out
.status_code
== NULL
) {
29587 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29589 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.status_code
));
29590 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29592 return NDR_ERR_SUCCESS
;
29595 static enum ndr_err_code
ndr_pull_spoolss_XcvData(struct ndr_pull
*ndr
, int flags
, struct spoolss_XcvData
*r
)
29597 TALLOC_CTX
*_mem_save_handle_0
;
29598 TALLOC_CTX
*_mem_save_needed_0
;
29599 TALLOC_CTX
*_mem_save_status_code_0
;
29600 if (flags
& NDR_IN
) {
29601 ZERO_STRUCT(r
->out
);
29603 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29604 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
29606 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29607 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
29608 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
29609 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
29610 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.function_name
));
29611 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.function_name
));
29612 if (ndr_get_array_length(ndr
, &r
->in
.function_name
) > ndr_get_array_size(ndr
, &r
->in
.function_name
)) {
29613 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.function_name
), ndr_get_array_length(ndr
, &r
->in
.function_name
));
29615 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.function_name
), sizeof(uint16_t)));
29616 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.function_name
, ndr_get_array_length(ndr
, &r
->in
.function_name
), sizeof(uint16_t), CH_UTF16
));
29617 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.in_data
));
29618 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._in_data_length
));
29619 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.out_data_size
));
29620 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29621 NDR_PULL_ALLOC(ndr
, r
->in
.status_code
);
29623 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29624 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
29625 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.status_code
));
29626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
29627 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, r
->in
.out_data_size
);
29628 memset(r
->out
.out_data
, 0, (r
->in
.out_data_size
) * sizeof(*r
->out
.out_data
));
29629 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
29630 ZERO_STRUCTP(r
->out
.needed
);
29631 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
29632 *r
->out
.status_code
= *r
->in
.status_code
;
29634 if (flags
& NDR_OUT
) {
29635 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.out_data
));
29636 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29637 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
));
29639 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
)));
29640 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29641 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
29643 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29644 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
29645 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
29646 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
29647 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29648 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
29650 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29651 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
29652 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.status_code
));
29653 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
29654 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29655 if (r
->out
.out_data
) {
29656 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.out_data
, r
->in
.out_data_size
));
29659 return NDR_ERR_SUCCESS
;
29662 _PUBLIC_
void ndr_print_spoolss_XcvData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_XcvData
*r
)
29664 ndr_print_struct(ndr
, name
, "spoolss_XcvData");
29666 if (flags
& NDR_SET_VALUES
) {
29667 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29669 if (flags
& NDR_IN
) {
29670 ndr_print_struct(ndr
, "in", "spoolss_XcvData");
29672 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
29674 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
29676 ndr_print_string(ndr
, "function_name", r
->in
.function_name
);
29677 ndr_print_DATA_BLOB(ndr
, "in_data", r
->in
.in_data
);
29678 ndr_print_uint32(ndr
, "_in_data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.in_data
.length
:r
->in
._in_data_length
);
29679 ndr_print_uint32(ndr
, "out_data_size", r
->in
.out_data_size
);
29680 ndr_print_ptr(ndr
, "status_code", r
->in
.status_code
);
29682 ndr_print_uint32(ndr
, "status_code", *r
->in
.status_code
);
29686 if (flags
& NDR_OUT
) {
29687 ndr_print_struct(ndr
, "out", "spoolss_XcvData");
29689 ndr_print_ptr(ndr
, "out_data", r
->out
.out_data
);
29691 ndr_print_array_uint8(ndr
, "out_data", r
->out
.out_data
, r
->in
.out_data_size
);
29693 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
29695 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
29697 ndr_print_ptr(ndr
, "status_code", r
->out
.status_code
);
29699 ndr_print_uint32(ndr
, "status_code", *r
->out
.status_code
);
29701 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29707 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
29709 if (flags
& NDR_IN
) {
29710 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
29711 if (r
->in
.servername
) {
29712 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
29713 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29714 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
29715 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29717 if (r
->in
.info_ctr
== NULL
) {
29718 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29720 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
29721 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
29723 if (flags
& NDR_OUT
) {
29724 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29726 return NDR_ERR_SUCCESS
;
29729 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriverEx
*r
)
29731 uint32_t _ptr_servername
;
29732 TALLOC_CTX
*_mem_save_servername_0
;
29733 TALLOC_CTX
*_mem_save_info_ctr_0
;
29734 if (flags
& NDR_IN
) {
29735 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
29736 if (_ptr_servername
) {
29737 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
29739 r
->in
.servername
= NULL
;
29741 if (r
->in
.servername
) {
29742 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29743 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
29744 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
29745 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
29746 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
29747 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.servername
), ndr_get_array_length(ndr
, &r
->in
.servername
));
29749 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
29750 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
29751 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
29753 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29754 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
29756 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29757 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
29758 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
29759 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
29760 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
29762 if (flags
& NDR_OUT
) {
29763 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29765 return NDR_ERR_SUCCESS
;
29768 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
29770 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriverEx");
29772 if (flags
& NDR_SET_VALUES
) {
29773 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29775 if (flags
& NDR_IN
) {
29776 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriverEx");
29778 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
29780 if (r
->in
.servername
) {
29781 ndr_print_string(ndr
, "servername", r
->in
.servername
);
29784 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
29786 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
29788 ndr_print_spoolss_AddPrinterDriverExFlags(ndr
, "flags", r
->in
.flags
);
29791 if (flags
& NDR_OUT
) {
29792 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriverEx");
29794 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29800 static enum ndr_err_code
ndr_push_spoolss_5a(struct ndr_push
*ndr
, int flags
, const struct spoolss_5a
*r
)
29802 if (flags
& NDR_IN
) {
29804 if (flags
& NDR_OUT
) {
29805 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29807 return NDR_ERR_SUCCESS
;
29810 static enum ndr_err_code
ndr_pull_spoolss_5a(struct ndr_pull
*ndr
, int flags
, struct spoolss_5a
*r
)
29812 if (flags
& NDR_IN
) {
29814 if (flags
& NDR_OUT
) {
29815 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29817 return NDR_ERR_SUCCESS
;
29820 _PUBLIC_
void ndr_print_spoolss_5a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5a
*r
)
29822 ndr_print_struct(ndr
, name
, "spoolss_5a");
29824 if (flags
& NDR_SET_VALUES
) {
29825 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29827 if (flags
& NDR_IN
) {
29828 ndr_print_struct(ndr
, "in", "spoolss_5a");
29832 if (flags
& NDR_OUT
) {
29833 ndr_print_struct(ndr
, "out", "spoolss_5a");
29835 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29841 static enum ndr_err_code
ndr_push_spoolss_5b(struct ndr_push
*ndr
, int flags
, const struct spoolss_5b
*r
)
29843 if (flags
& NDR_IN
) {
29845 if (flags
& NDR_OUT
) {
29846 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29848 return NDR_ERR_SUCCESS
;
29851 static enum ndr_err_code
ndr_pull_spoolss_5b(struct ndr_pull
*ndr
, int flags
, struct spoolss_5b
*r
)
29853 if (flags
& NDR_IN
) {
29855 if (flags
& NDR_OUT
) {
29856 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29858 return NDR_ERR_SUCCESS
;
29861 _PUBLIC_
void ndr_print_spoolss_5b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5b
*r
)
29863 ndr_print_struct(ndr
, name
, "spoolss_5b");
29865 if (flags
& NDR_SET_VALUES
) {
29866 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29868 if (flags
& NDR_IN
) {
29869 ndr_print_struct(ndr
, "in", "spoolss_5b");
29873 if (flags
& NDR_OUT
) {
29874 ndr_print_struct(ndr
, "out", "spoolss_5b");
29876 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29882 static enum ndr_err_code
ndr_push_spoolss_5c(struct ndr_push
*ndr
, int flags
, const struct spoolss_5c
*r
)
29884 if (flags
& NDR_IN
) {
29886 if (flags
& NDR_OUT
) {
29887 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29889 return NDR_ERR_SUCCESS
;
29892 static enum ndr_err_code
ndr_pull_spoolss_5c(struct ndr_pull
*ndr
, int flags
, struct spoolss_5c
*r
)
29894 if (flags
& NDR_IN
) {
29896 if (flags
& NDR_OUT
) {
29897 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29899 return NDR_ERR_SUCCESS
;
29902 _PUBLIC_
void ndr_print_spoolss_5c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5c
*r
)
29904 ndr_print_struct(ndr
, name
, "spoolss_5c");
29906 if (flags
& NDR_SET_VALUES
) {
29907 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29909 if (flags
& NDR_IN
) {
29910 ndr_print_struct(ndr
, "in", "spoolss_5c");
29914 if (flags
& NDR_OUT
) {
29915 ndr_print_struct(ndr
, "out", "spoolss_5c");
29917 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29923 static enum ndr_err_code
ndr_push_spoolss_5d(struct ndr_push
*ndr
, int flags
, const struct spoolss_5d
*r
)
29925 if (flags
& NDR_IN
) {
29927 if (flags
& NDR_OUT
) {
29928 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29930 return NDR_ERR_SUCCESS
;
29933 static enum ndr_err_code
ndr_pull_spoolss_5d(struct ndr_pull
*ndr
, int flags
, struct spoolss_5d
*r
)
29935 if (flags
& NDR_IN
) {
29937 if (flags
& NDR_OUT
) {
29938 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29940 return NDR_ERR_SUCCESS
;
29943 _PUBLIC_
void ndr_print_spoolss_5d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5d
*r
)
29945 ndr_print_struct(ndr
, name
, "spoolss_5d");
29947 if (flags
& NDR_SET_VALUES
) {
29948 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29950 if (flags
& NDR_IN
) {
29951 ndr_print_struct(ndr
, "in", "spoolss_5d");
29955 if (flags
& NDR_OUT
) {
29956 ndr_print_struct(ndr
, "out", "spoolss_5d");
29958 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29964 static enum ndr_err_code
ndr_push_spoolss_5e(struct ndr_push
*ndr
, int flags
, const struct spoolss_5e
*r
)
29966 if (flags
& NDR_IN
) {
29968 if (flags
& NDR_OUT
) {
29969 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29971 return NDR_ERR_SUCCESS
;
29974 static enum ndr_err_code
ndr_pull_spoolss_5e(struct ndr_pull
*ndr
, int flags
, struct spoolss_5e
*r
)
29976 if (flags
& NDR_IN
) {
29978 if (flags
& NDR_OUT
) {
29979 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29981 return NDR_ERR_SUCCESS
;
29984 _PUBLIC_
void ndr_print_spoolss_5e(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5e
*r
)
29986 ndr_print_struct(ndr
, name
, "spoolss_5e");
29988 if (flags
& NDR_SET_VALUES
) {
29989 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29991 if (flags
& NDR_IN
) {
29992 ndr_print_struct(ndr
, "in", "spoolss_5e");
29996 if (flags
& NDR_OUT
) {
29997 ndr_print_struct(ndr
, "out", "spoolss_5e");
29999 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30005 static enum ndr_err_code
ndr_push_spoolss_5f(struct ndr_push
*ndr
, int flags
, const struct spoolss_5f
*r
)
30007 if (flags
& NDR_IN
) {
30009 if (flags
& NDR_OUT
) {
30010 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30012 return NDR_ERR_SUCCESS
;
30015 static enum ndr_err_code
ndr_pull_spoolss_5f(struct ndr_pull
*ndr
, int flags
, struct spoolss_5f
*r
)
30017 if (flags
& NDR_IN
) {
30019 if (flags
& NDR_OUT
) {
30020 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30022 return NDR_ERR_SUCCESS
;
30025 _PUBLIC_
void ndr_print_spoolss_5f(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5f
*r
)
30027 ndr_print_struct(ndr
, name
, "spoolss_5f");
30029 if (flags
& NDR_SET_VALUES
) {
30030 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30032 if (flags
& NDR_IN
) {
30033 ndr_print_struct(ndr
, "in", "spoolss_5f");
30037 if (flags
& NDR_OUT
) {
30038 ndr_print_struct(ndr
, "out", "spoolss_5f");
30040 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30046 static enum ndr_err_code
ndr_push_spoolss_60(struct ndr_push
*ndr
, int flags
, const struct spoolss_60
*r
)
30048 if (flags
& NDR_IN
) {
30050 if (flags
& NDR_OUT
) {
30051 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30053 return NDR_ERR_SUCCESS
;
30056 static enum ndr_err_code
ndr_pull_spoolss_60(struct ndr_pull
*ndr
, int flags
, struct spoolss_60
*r
)
30058 if (flags
& NDR_IN
) {
30060 if (flags
& NDR_OUT
) {
30061 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30063 return NDR_ERR_SUCCESS
;
30066 _PUBLIC_
void ndr_print_spoolss_60(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_60
*r
)
30068 ndr_print_struct(ndr
, name
, "spoolss_60");
30070 if (flags
& NDR_SET_VALUES
) {
30071 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30073 if (flags
& NDR_IN
) {
30074 ndr_print_struct(ndr
, "in", "spoolss_60");
30078 if (flags
& NDR_OUT
) {
30079 ndr_print_struct(ndr
, "out", "spoolss_60");
30081 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30087 static enum ndr_err_code
ndr_push_spoolss_61(struct ndr_push
*ndr
, int flags
, const struct spoolss_61
*r
)
30089 if (flags
& NDR_IN
) {
30091 if (flags
& NDR_OUT
) {
30092 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30094 return NDR_ERR_SUCCESS
;
30097 static enum ndr_err_code
ndr_pull_spoolss_61(struct ndr_pull
*ndr
, int flags
, struct spoolss_61
*r
)
30099 if (flags
& NDR_IN
) {
30101 if (flags
& NDR_OUT
) {
30102 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30104 return NDR_ERR_SUCCESS
;
30107 _PUBLIC_
void ndr_print_spoolss_61(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_61
*r
)
30109 ndr_print_struct(ndr
, name
, "spoolss_61");
30111 if (flags
& NDR_SET_VALUES
) {
30112 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30114 if (flags
& NDR_IN
) {
30115 ndr_print_struct(ndr
, "in", "spoolss_61");
30119 if (flags
& NDR_OUT
) {
30120 ndr_print_struct(ndr
, "out", "spoolss_61");
30122 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30128 static enum ndr_err_code
ndr_push_spoolss_62(struct ndr_push
*ndr
, int flags
, const struct spoolss_62
*r
)
30130 if (flags
& NDR_IN
) {
30132 if (flags
& NDR_OUT
) {
30133 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30135 return NDR_ERR_SUCCESS
;
30138 static enum ndr_err_code
ndr_pull_spoolss_62(struct ndr_pull
*ndr
, int flags
, struct spoolss_62
*r
)
30140 if (flags
& NDR_IN
) {
30142 if (flags
& NDR_OUT
) {
30143 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30145 return NDR_ERR_SUCCESS
;
30148 _PUBLIC_
void ndr_print_spoolss_62(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_62
*r
)
30150 ndr_print_struct(ndr
, name
, "spoolss_62");
30152 if (flags
& NDR_SET_VALUES
) {
30153 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30155 if (flags
& NDR_IN
) {
30156 ndr_print_struct(ndr
, "in", "spoolss_62");
30160 if (flags
& NDR_OUT
) {
30161 ndr_print_struct(ndr
, "out", "spoolss_62");
30163 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30169 static enum ndr_err_code
ndr_push_spoolss_63(struct ndr_push
*ndr
, int flags
, const struct spoolss_63
*r
)
30171 if (flags
& NDR_IN
) {
30173 if (flags
& NDR_OUT
) {
30174 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30176 return NDR_ERR_SUCCESS
;
30179 static enum ndr_err_code
ndr_pull_spoolss_63(struct ndr_pull
*ndr
, int flags
, struct spoolss_63
*r
)
30181 if (flags
& NDR_IN
) {
30183 if (flags
& NDR_OUT
) {
30184 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30186 return NDR_ERR_SUCCESS
;
30189 _PUBLIC_
void ndr_print_spoolss_63(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_63
*r
)
30191 ndr_print_struct(ndr
, name
, "spoolss_63");
30193 if (flags
& NDR_SET_VALUES
) {
30194 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30196 if (flags
& NDR_IN
) {
30197 ndr_print_struct(ndr
, "in", "spoolss_63");
30201 if (flags
& NDR_OUT
) {
30202 ndr_print_struct(ndr
, "out", "spoolss_63");
30204 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30210 static enum ndr_err_code
ndr_push_spoolss_64(struct ndr_push
*ndr
, int flags
, const struct spoolss_64
*r
)
30212 if (flags
& NDR_IN
) {
30214 if (flags
& NDR_OUT
) {
30215 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30217 return NDR_ERR_SUCCESS
;
30220 static enum ndr_err_code
ndr_pull_spoolss_64(struct ndr_pull
*ndr
, int flags
, struct spoolss_64
*r
)
30222 if (flags
& NDR_IN
) {
30224 if (flags
& NDR_OUT
) {
30225 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30227 return NDR_ERR_SUCCESS
;
30230 _PUBLIC_
void ndr_print_spoolss_64(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_64
*r
)
30232 ndr_print_struct(ndr
, name
, "spoolss_64");
30234 if (flags
& NDR_SET_VALUES
) {
30235 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30237 if (flags
& NDR_IN
) {
30238 ndr_print_struct(ndr
, "in", "spoolss_64");
30242 if (flags
& NDR_OUT
) {
30243 ndr_print_struct(ndr
, "out", "spoolss_64");
30245 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30251 static enum ndr_err_code
ndr_push_spoolss_65(struct ndr_push
*ndr
, int flags
, const struct spoolss_65
*r
)
30253 if (flags
& NDR_IN
) {
30255 if (flags
& NDR_OUT
) {
30256 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30258 return NDR_ERR_SUCCESS
;
30261 static enum ndr_err_code
ndr_pull_spoolss_65(struct ndr_pull
*ndr
, int flags
, struct spoolss_65
*r
)
30263 if (flags
& NDR_IN
) {
30265 if (flags
& NDR_OUT
) {
30266 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30268 return NDR_ERR_SUCCESS
;
30271 _PUBLIC_
void ndr_print_spoolss_65(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_65
*r
)
30273 ndr_print_struct(ndr
, name
, "spoolss_65");
30275 if (flags
& NDR_SET_VALUES
) {
30276 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30278 if (flags
& NDR_IN
) {
30279 ndr_print_struct(ndr
, "in", "spoolss_65");
30283 if (flags
& NDR_OUT
) {
30284 ndr_print_struct(ndr
, "out", "spoolss_65");
30286 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30292 static enum ndr_err_code
ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetCorePrinterDrivers
*r
)
30294 uint32_t cntr_core_printer_drivers_1
;
30295 if (flags
& NDR_IN
) {
30296 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
30297 if (r
->in
.servername
) {
30298 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
30299 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30300 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
30301 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30303 if (r
->in
.architecture
== NULL
) {
30304 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30306 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
30307 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30308 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
30309 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30310 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.core_driver_size
));
30311 if (r
->in
.core_driver_dependencies
== NULL
) {
30312 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30314 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.core_driver_size
));
30315 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.core_driver_dependencies
, r
->in
.core_driver_size
, sizeof(uint16_t), CH_UTF16
));
30316 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.core_printer_driver_count
));
30318 if (flags
& NDR_OUT
) {
30319 if (r
->out
.core_printer_drivers
== NULL
) {
30320 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30322 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.core_printer_driver_count
));
30323 for (cntr_core_printer_drivers_1
= 0; cntr_core_printer_drivers_1
< r
->in
.core_printer_driver_count
; cntr_core_printer_drivers_1
++) {
30324 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr
, NDR_SCALARS
, &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]));
30326 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30328 return NDR_ERR_SUCCESS
;
30331 static enum ndr_err_code
ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetCorePrinterDrivers
*r
)
30333 uint32_t _ptr_servername
;
30334 uint32_t cntr_core_printer_drivers_1
;
30335 TALLOC_CTX
*_mem_save_servername_0
;
30336 TALLOC_CTX
*_mem_save_core_printer_drivers_1
;
30337 if (flags
& NDR_IN
) {
30338 ZERO_STRUCT(r
->out
);
30340 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
30341 if (_ptr_servername
) {
30342 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
30344 r
->in
.servername
= NULL
;
30346 if (r
->in
.servername
) {
30347 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30348 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
30349 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
30350 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
30351 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
30352 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.servername
), ndr_get_array_length(ndr
, &r
->in
.servername
));
30354 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
30355 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
30356 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
30358 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
30359 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
30360 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
30361 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.architecture
), ndr_get_array_length(ndr
, &r
->in
.architecture
));
30363 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
30364 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
30365 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.core_driver_size
));
30366 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.core_driver_dependencies
));
30367 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.core_driver_dependencies
, ndr_get_array_size(ndr
, &r
->in
.core_driver_dependencies
), sizeof(uint16_t), CH_UTF16
));
30368 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.core_printer_driver_count
));
30369 NDR_PULL_ALLOC_N(ndr
, r
->out
.core_printer_drivers
, r
->in
.core_printer_driver_count
);
30370 memset(r
->out
.core_printer_drivers
, 0, (r
->in
.core_printer_driver_count
) * sizeof(*r
->out
.core_printer_drivers
));
30371 if (r
->in
.core_driver_dependencies
) {
30372 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.core_driver_dependencies
, r
->in
.core_driver_size
));
30375 if (flags
& NDR_OUT
) {
30376 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.core_printer_drivers
));
30377 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
30378 NDR_PULL_ALLOC_N(ndr
, r
->out
.core_printer_drivers
, ndr_get_array_size(ndr
, &r
->out
.core_printer_drivers
));
30380 _mem_save_core_printer_drivers_1
= NDR_PULL_GET_MEM_CTX(ndr
);
30381 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.core_printer_drivers
, 0);
30382 for (cntr_core_printer_drivers_1
= 0; cntr_core_printer_drivers_1
< r
->in
.core_printer_driver_count
; cntr_core_printer_drivers_1
++) {
30383 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr
, NDR_SCALARS
, &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]));
30385 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_printer_drivers_1
, 0);
30386 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30387 if (r
->out
.core_printer_drivers
) {
30388 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.core_printer_drivers
, r
->in
.core_printer_driver_count
));
30391 return NDR_ERR_SUCCESS
;
30394 _PUBLIC_
void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetCorePrinterDrivers
*r
)
30396 uint32_t cntr_core_printer_drivers_1
;
30397 ndr_print_struct(ndr
, name
, "spoolss_GetCorePrinterDrivers");
30399 if (flags
& NDR_SET_VALUES
) {
30400 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30402 if (flags
& NDR_IN
) {
30403 ndr_print_struct(ndr
, "in", "spoolss_GetCorePrinterDrivers");
30405 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
30407 if (r
->in
.servername
) {
30408 ndr_print_string(ndr
, "servername", r
->in
.servername
);
30411 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
30413 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
30415 ndr_print_uint32(ndr
, "core_driver_size", r
->in
.core_driver_size
);
30416 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->in
.core_driver_dependencies
);
30418 ndr_print_string(ndr
, "core_driver_dependencies", r
->in
.core_driver_dependencies
);
30420 ndr_print_uint32(ndr
, "core_printer_driver_count", r
->in
.core_printer_driver_count
);
30423 if (flags
& NDR_OUT
) {
30424 ndr_print_struct(ndr
, "out", "spoolss_GetCorePrinterDrivers");
30426 ndr_print_ptr(ndr
, "core_printer_drivers", r
->out
.core_printer_drivers
);
30428 ndr
->print(ndr
, "%s: ARRAY(%d)", "core_printer_drivers", (int)r
->in
.core_printer_driver_count
);
30430 for (cntr_core_printer_drivers_1
=0;cntr_core_printer_drivers_1
<r
->in
.core_printer_driver_count
;cntr_core_printer_drivers_1
++) {
30432 if (asprintf(&idx_1
, "[%d]", cntr_core_printer_drivers_1
) != -1) {
30433 ndr_print_spoolss_CorePrinterDriver(ndr
, "core_printer_drivers", &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]);
30439 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30445 static enum ndr_err_code
ndr_push_spoolss_67(struct ndr_push
*ndr
, int flags
, const struct spoolss_67
*r
)
30447 if (flags
& NDR_IN
) {
30449 if (flags
& NDR_OUT
) {
30450 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30452 return NDR_ERR_SUCCESS
;
30455 static enum ndr_err_code
ndr_pull_spoolss_67(struct ndr_pull
*ndr
, int flags
, struct spoolss_67
*r
)
30457 if (flags
& NDR_IN
) {
30459 if (flags
& NDR_OUT
) {
30460 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30462 return NDR_ERR_SUCCESS
;
30465 _PUBLIC_
void ndr_print_spoolss_67(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_67
*r
)
30467 ndr_print_struct(ndr
, name
, "spoolss_67");
30469 if (flags
& NDR_SET_VALUES
) {
30470 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30472 if (flags
& NDR_IN
) {
30473 ndr_print_struct(ndr
, "in", "spoolss_67");
30477 if (flags
& NDR_OUT
) {
30478 ndr_print_struct(ndr
, "out", "spoolss_67");
30480 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30486 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverPackagePath
*r
)
30488 if (flags
& NDR_IN
) {
30489 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
30490 if (r
->in
.servername
) {
30491 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
30492 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30493 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
30494 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30496 if (r
->in
.architecture
== NULL
) {
30497 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30499 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
30500 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30501 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
30502 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30503 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.language
));
30504 if (r
->in
.language
) {
30505 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.language
, CH_UTF16
)));
30506 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30507 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.language
, CH_UTF16
)));
30508 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.language
, ndr_charset_length(r
->in
.language
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
30510 if (r
->in
.package_id
== NULL
) {
30511 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30513 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.package_id
, CH_UTF16
)));
30514 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
30515 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.package_id
, CH_UTF16
)));
30516 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
));
30517 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.driver_package_cab
));
30518 if (r
->in
.driver_package_cab
) {
30519 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
30520 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab
, r
->in
.driver_package_cab_size
, sizeof(uint16_t), CH_UTF16
));
30522 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
30524 if (flags
& NDR_OUT
) {
30525 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.driver_package_cab
));
30526 if (r
->out
.driver_package_cab
) {
30527 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
30528 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.driver_package_cab
, r
->in
.driver_package_cab_size
, sizeof(uint16_t), CH_UTF16
));
30530 if (r
->out
.required
== NULL
) {
30531 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
30533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.required
));
30534 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30536 return NDR_ERR_SUCCESS
;
30539 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverPackagePath
*r
)
30541 uint32_t _ptr_servername
;
30542 uint32_t _ptr_language
;
30543 uint32_t _ptr_driver_package_cab
;
30544 TALLOC_CTX
*_mem_save_servername_0
;
30545 TALLOC_CTX
*_mem_save_language_0
;
30546 TALLOC_CTX
*_mem_save_driver_package_cab_0
;
30547 TALLOC_CTX
*_mem_save_required_0
;
30548 if (flags
& NDR_IN
) {
30549 ZERO_STRUCT(r
->out
);
30551 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
30552 if (_ptr_servername
) {
30553 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
30555 r
->in
.servername
= NULL
;
30557 if (r
->in
.servername
) {
30558 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30559 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
30560 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
30561 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
30562 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
30563 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.servername
), ndr_get_array_length(ndr
, &r
->in
.servername
));
30565 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
30566 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
30567 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
30569 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
30570 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
30571 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
30572 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.architecture
), ndr_get_array_length(ndr
, &r
->in
.architecture
));
30574 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
30575 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
30576 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_language
));
30577 if (_ptr_language
) {
30578 NDR_PULL_ALLOC(ndr
, r
->in
.language
);
30580 r
->in
.language
= NULL
;
30582 if (r
->in
.language
) {
30583 _mem_save_language_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30584 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.language
, 0);
30585 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.language
));
30586 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.language
));
30587 if (ndr_get_array_length(ndr
, &r
->in
.language
) > ndr_get_array_size(ndr
, &r
->in
.language
)) {
30588 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.language
), ndr_get_array_length(ndr
, &r
->in
.language
));
30590 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.language
), sizeof(uint16_t)));
30591 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.language
, ndr_get_array_length(ndr
, &r
->in
.language
), sizeof(uint16_t), CH_UTF16
));
30592 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_language_0
, 0);
30594 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.package_id
));
30595 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.package_id
));
30596 if (ndr_get_array_length(ndr
, &r
->in
.package_id
) > ndr_get_array_size(ndr
, &r
->in
.package_id
)) {
30597 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.package_id
), ndr_get_array_length(ndr
, &r
->in
.package_id
));
30599 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.package_id
), sizeof(uint16_t)));
30600 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.package_id
, ndr_get_array_length(ndr
, &r
->in
.package_id
), sizeof(uint16_t), CH_UTF16
));
30601 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_package_cab
));
30602 if (_ptr_driver_package_cab
) {
30603 NDR_PULL_ALLOC(ndr
, r
->in
.driver_package_cab
);
30605 r
->in
.driver_package_cab
= NULL
;
30607 if (r
->in
.driver_package_cab
) {
30608 _mem_save_driver_package_cab_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30609 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.driver_package_cab
, 0);
30610 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver_package_cab
));
30611 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver_package_cab
, ndr_get_array_size(ndr
, &r
->in
.driver_package_cab
), sizeof(uint16_t), CH_UTF16
));
30612 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_package_cab_0
, 0);
30614 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.driver_package_cab_size
));
30615 NDR_PULL_ALLOC(ndr
, r
->out
.required
);
30616 ZERO_STRUCTP(r
->out
.required
);
30617 if (r
->in
.driver_package_cab
) {
30618 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.driver_package_cab
, r
->in
.driver_package_cab_size
));
30621 if (flags
& NDR_OUT
) {
30622 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_package_cab
));
30623 if (_ptr_driver_package_cab
) {
30624 NDR_PULL_ALLOC(ndr
, r
->out
.driver_package_cab
);
30626 r
->out
.driver_package_cab
= NULL
;
30628 if (r
->out
.driver_package_cab
) {
30629 _mem_save_driver_package_cab_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30630 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.driver_package_cab
, 0);
30631 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.driver_package_cab
));
30632 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->out
.driver_package_cab
, ndr_get_array_size(ndr
, &r
->out
.driver_package_cab
), sizeof(uint16_t), CH_UTF16
));
30633 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_package_cab_0
, 0);
30635 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
30636 NDR_PULL_ALLOC(ndr
, r
->out
.required
);
30638 _mem_save_required_0
= NDR_PULL_GET_MEM_CTX(ndr
);
30639 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.required
, LIBNDR_FLAG_REF_ALLOC
);
30640 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.required
));
30641 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_required_0
, LIBNDR_FLAG_REF_ALLOC
);
30642 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30643 if (r
->out
.driver_package_cab
) {
30644 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.driver_package_cab
, r
->in
.driver_package_cab_size
));
30647 return NDR_ERR_SUCCESS
;
30650 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverPackagePath
*r
)
30652 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverPackagePath");
30654 if (flags
& NDR_SET_VALUES
) {
30655 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30657 if (flags
& NDR_IN
) {
30658 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverPackagePath");
30660 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
30662 if (r
->in
.servername
) {
30663 ndr_print_string(ndr
, "servername", r
->in
.servername
);
30666 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
30668 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
30670 ndr_print_ptr(ndr
, "language", r
->in
.language
);
30672 if (r
->in
.language
) {
30673 ndr_print_string(ndr
, "language", r
->in
.language
);
30676 ndr_print_ptr(ndr
, "package_id", r
->in
.package_id
);
30678 ndr_print_string(ndr
, "package_id", r
->in
.package_id
);
30680 ndr_print_ptr(ndr
, "driver_package_cab", r
->in
.driver_package_cab
);
30682 if (r
->in
.driver_package_cab
) {
30683 ndr_print_string(ndr
, "driver_package_cab", r
->in
.driver_package_cab
);
30686 ndr_print_uint32(ndr
, "driver_package_cab_size", r
->in
.driver_package_cab_size
);
30689 if (flags
& NDR_OUT
) {
30690 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverPackagePath");
30692 ndr_print_ptr(ndr
, "driver_package_cab", r
->out
.driver_package_cab
);
30694 if (r
->out
.driver_package_cab
) {
30695 ndr_print_string(ndr
, "driver_package_cab", r
->out
.driver_package_cab
);
30698 ndr_print_ptr(ndr
, "required", r
->out
.required
);
30700 ndr_print_uint32(ndr
, "required", *r
->out
.required
);
30702 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30708 static enum ndr_err_code
ndr_push_spoolss_69(struct ndr_push
*ndr
, int flags
, const struct spoolss_69
*r
)
30710 if (flags
& NDR_IN
) {
30712 if (flags
& NDR_OUT
) {
30713 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30715 return NDR_ERR_SUCCESS
;
30718 static enum ndr_err_code
ndr_pull_spoolss_69(struct ndr_pull
*ndr
, int flags
, struct spoolss_69
*r
)
30720 if (flags
& NDR_IN
) {
30722 if (flags
& NDR_OUT
) {
30723 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30725 return NDR_ERR_SUCCESS
;
30728 _PUBLIC_
void ndr_print_spoolss_69(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_69
*r
)
30730 ndr_print_struct(ndr
, name
, "spoolss_69");
30732 if (flags
& NDR_SET_VALUES
) {
30733 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30735 if (flags
& NDR_IN
) {
30736 ndr_print_struct(ndr
, "in", "spoolss_69");
30740 if (flags
& NDR_OUT
) {
30741 ndr_print_struct(ndr
, "out", "spoolss_69");
30743 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30749 static enum ndr_err_code
ndr_push_spoolss_6a(struct ndr_push
*ndr
, int flags
, const struct spoolss_6a
*r
)
30751 if (flags
& NDR_IN
) {
30753 if (flags
& NDR_OUT
) {
30754 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30756 return NDR_ERR_SUCCESS
;
30759 static enum ndr_err_code
ndr_pull_spoolss_6a(struct ndr_pull
*ndr
, int flags
, struct spoolss_6a
*r
)
30761 if (flags
& NDR_IN
) {
30763 if (flags
& NDR_OUT
) {
30764 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30766 return NDR_ERR_SUCCESS
;
30769 _PUBLIC_
void ndr_print_spoolss_6a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6a
*r
)
30771 ndr_print_struct(ndr
, name
, "spoolss_6a");
30773 if (flags
& NDR_SET_VALUES
) {
30774 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30776 if (flags
& NDR_IN
) {
30777 ndr_print_struct(ndr
, "in", "spoolss_6a");
30781 if (flags
& NDR_OUT
) {
30782 ndr_print_struct(ndr
, "out", "spoolss_6a");
30784 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30790 static enum ndr_err_code
ndr_push_spoolss_6b(struct ndr_push
*ndr
, int flags
, const struct spoolss_6b
*r
)
30792 if (flags
& NDR_IN
) {
30794 if (flags
& NDR_OUT
) {
30795 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30797 return NDR_ERR_SUCCESS
;
30800 static enum ndr_err_code
ndr_pull_spoolss_6b(struct ndr_pull
*ndr
, int flags
, struct spoolss_6b
*r
)
30802 if (flags
& NDR_IN
) {
30804 if (flags
& NDR_OUT
) {
30805 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30807 return NDR_ERR_SUCCESS
;
30810 _PUBLIC_
void ndr_print_spoolss_6b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6b
*r
)
30812 ndr_print_struct(ndr
, name
, "spoolss_6b");
30814 if (flags
& NDR_SET_VALUES
) {
30815 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30817 if (flags
& NDR_IN
) {
30818 ndr_print_struct(ndr
, "in", "spoolss_6b");
30822 if (flags
& NDR_OUT
) {
30823 ndr_print_struct(ndr
, "out", "spoolss_6b");
30825 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30831 static enum ndr_err_code
ndr_push_spoolss_6c(struct ndr_push
*ndr
, int flags
, const struct spoolss_6c
*r
)
30833 if (flags
& NDR_IN
) {
30835 if (flags
& NDR_OUT
) {
30836 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30838 return NDR_ERR_SUCCESS
;
30841 static enum ndr_err_code
ndr_pull_spoolss_6c(struct ndr_pull
*ndr
, int flags
, struct spoolss_6c
*r
)
30843 if (flags
& NDR_IN
) {
30845 if (flags
& NDR_OUT
) {
30846 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30848 return NDR_ERR_SUCCESS
;
30851 _PUBLIC_
void ndr_print_spoolss_6c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6c
*r
)
30853 ndr_print_struct(ndr
, name
, "spoolss_6c");
30855 if (flags
& NDR_SET_VALUES
) {
30856 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30858 if (flags
& NDR_IN
) {
30859 ndr_print_struct(ndr
, "in", "spoolss_6c");
30863 if (flags
& NDR_OUT
) {
30864 ndr_print_struct(ndr
, "out", "spoolss_6c");
30866 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30872 static enum ndr_err_code
ndr_push_spoolss_6d(struct ndr_push
*ndr
, int flags
, const struct spoolss_6d
*r
)
30874 if (flags
& NDR_IN
) {
30876 if (flags
& NDR_OUT
) {
30877 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
30879 return NDR_ERR_SUCCESS
;
30882 static enum ndr_err_code
ndr_pull_spoolss_6d(struct ndr_pull
*ndr
, int flags
, struct spoolss_6d
*r
)
30884 if (flags
& NDR_IN
) {
30886 if (flags
& NDR_OUT
) {
30887 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
30889 return NDR_ERR_SUCCESS
;
30892 _PUBLIC_
void ndr_print_spoolss_6d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6d
*r
)
30894 ndr_print_struct(ndr
, name
, "spoolss_6d");
30896 if (flags
& NDR_SET_VALUES
) {
30897 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
30899 if (flags
& NDR_IN
) {
30900 ndr_print_struct(ndr
, "in", "spoolss_6d");
30904 if (flags
& NDR_OUT
) {
30905 ndr_print_struct(ndr
, "out", "spoolss_6d");
30907 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
30913 static const struct ndr_interface_call spoolss_calls
[] = {
30915 "spoolss_EnumPrinters",
30916 sizeof(struct spoolss_EnumPrinters
),
30917 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinters
,
30918 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinters
,
30919 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinters
,
30923 "spoolss_OpenPrinter",
30924 sizeof(struct spoolss_OpenPrinter
),
30925 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinter
,
30926 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinter
,
30927 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinter
,
30932 sizeof(struct spoolss_SetJob
),
30933 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetJob
,
30934 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetJob
,
30935 (ndr_print_function_t
) ndr_print_spoolss_SetJob
,
30940 sizeof(struct spoolss_GetJob
),
30941 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetJob
,
30942 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetJob
,
30943 (ndr_print_function_t
) ndr_print_spoolss_GetJob
,
30947 "spoolss_EnumJobs",
30948 sizeof(struct spoolss_EnumJobs
),
30949 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumJobs
,
30950 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumJobs
,
30951 (ndr_print_function_t
) ndr_print_spoolss_EnumJobs
,
30955 "spoolss_AddPrinter",
30956 sizeof(struct spoolss_AddPrinter
),
30957 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinter
,
30958 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinter
,
30959 (ndr_print_function_t
) ndr_print_spoolss_AddPrinter
,
30963 "spoolss_DeletePrinter",
30964 sizeof(struct spoolss_DeletePrinter
),
30965 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinter
,
30966 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinter
,
30967 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinter
,
30971 "spoolss_SetPrinter",
30972 sizeof(struct spoolss_SetPrinter
),
30973 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinter
,
30974 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinter
,
30975 (ndr_print_function_t
) ndr_print_spoolss_SetPrinter
,
30979 "spoolss_GetPrinter",
30980 sizeof(struct spoolss_GetPrinter
),
30981 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinter
,
30982 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinter
,
30983 (ndr_print_function_t
) ndr_print_spoolss_GetPrinter
,
30987 "spoolss_AddPrinterDriver",
30988 sizeof(struct spoolss_AddPrinterDriver
),
30989 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriver
,
30990 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriver
,
30991 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriver
,
30995 "spoolss_EnumPrinterDrivers",
30996 sizeof(struct spoolss_EnumPrinterDrivers
),
30997 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDrivers
,
30998 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDrivers
,
30999 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDrivers
,
31003 "spoolss_GetPrinterDriver",
31004 sizeof(struct spoolss_GetPrinterDriver
),
31005 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver
,
31006 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver
,
31007 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver
,
31011 "spoolss_GetPrinterDriverDirectory",
31012 sizeof(struct spoolss_GetPrinterDriverDirectory
),
31013 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverDirectory
,
31014 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverDirectory
,
31015 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverDirectory
,
31019 "spoolss_DeletePrinterDriver",
31020 sizeof(struct spoolss_DeletePrinterDriver
),
31021 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriver
,
31022 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriver
,
31023 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriver
,
31027 "spoolss_AddPrintProcessor",
31028 sizeof(struct spoolss_AddPrintProcessor
),
31029 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProcessor
,
31030 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProcessor
,
31031 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProcessor
,
31035 "spoolss_EnumPrintProcessors",
31036 sizeof(struct spoolss_EnumPrintProcessors
),
31037 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcessors
,
31038 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcessors
,
31039 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcessors
,
31043 "spoolss_GetPrintProcessorDirectory",
31044 sizeof(struct spoolss_GetPrintProcessorDirectory
),
31045 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrintProcessorDirectory
,
31046 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrintProcessorDirectory
,
31047 (ndr_print_function_t
) ndr_print_spoolss_GetPrintProcessorDirectory
,
31051 "spoolss_StartDocPrinter",
31052 sizeof(struct spoolss_StartDocPrinter
),
31053 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartDocPrinter
,
31054 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartDocPrinter
,
31055 (ndr_print_function_t
) ndr_print_spoolss_StartDocPrinter
,
31059 "spoolss_StartPagePrinter",
31060 sizeof(struct spoolss_StartPagePrinter
),
31061 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartPagePrinter
,
31062 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartPagePrinter
,
31063 (ndr_print_function_t
) ndr_print_spoolss_StartPagePrinter
,
31067 "spoolss_WritePrinter",
31068 sizeof(struct spoolss_WritePrinter
),
31069 (ndr_push_flags_fn_t
) ndr_push_spoolss_WritePrinter
,
31070 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WritePrinter
,
31071 (ndr_print_function_t
) ndr_print_spoolss_WritePrinter
,
31075 "spoolss_EndPagePrinter",
31076 sizeof(struct spoolss_EndPagePrinter
),
31077 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndPagePrinter
,
31078 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndPagePrinter
,
31079 (ndr_print_function_t
) ndr_print_spoolss_EndPagePrinter
,
31083 "spoolss_AbortPrinter",
31084 sizeof(struct spoolss_AbortPrinter
),
31085 (ndr_push_flags_fn_t
) ndr_push_spoolss_AbortPrinter
,
31086 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AbortPrinter
,
31087 (ndr_print_function_t
) ndr_print_spoolss_AbortPrinter
,
31091 "spoolss_ReadPrinter",
31092 sizeof(struct spoolss_ReadPrinter
),
31093 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReadPrinter
,
31094 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReadPrinter
,
31095 (ndr_print_function_t
) ndr_print_spoolss_ReadPrinter
,
31099 "spoolss_EndDocPrinter",
31100 sizeof(struct spoolss_EndDocPrinter
),
31101 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndDocPrinter
,
31102 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndDocPrinter
,
31103 (ndr_print_function_t
) ndr_print_spoolss_EndDocPrinter
,
31108 sizeof(struct spoolss_AddJob
),
31109 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddJob
,
31110 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddJob
,
31111 (ndr_print_function_t
) ndr_print_spoolss_AddJob
,
31115 "spoolss_ScheduleJob",
31116 sizeof(struct spoolss_ScheduleJob
),
31117 (ndr_push_flags_fn_t
) ndr_push_spoolss_ScheduleJob
,
31118 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ScheduleJob
,
31119 (ndr_print_function_t
) ndr_print_spoolss_ScheduleJob
,
31123 "spoolss_GetPrinterData",
31124 sizeof(struct spoolss_GetPrinterData
),
31125 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterData
,
31126 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterData
,
31127 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterData
,
31131 "spoolss_SetPrinterData",
31132 sizeof(struct spoolss_SetPrinterData
),
31133 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterData
,
31134 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterData
,
31135 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterData
,
31139 "spoolss_WaitForPrinterChange",
31140 sizeof(struct spoolss_WaitForPrinterChange
),
31141 (ndr_push_flags_fn_t
) ndr_push_spoolss_WaitForPrinterChange
,
31142 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WaitForPrinterChange
,
31143 (ndr_print_function_t
) ndr_print_spoolss_WaitForPrinterChange
,
31147 "spoolss_ClosePrinter",
31148 sizeof(struct spoolss_ClosePrinter
),
31149 (ndr_push_flags_fn_t
) ndr_push_spoolss_ClosePrinter
,
31150 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ClosePrinter
,
31151 (ndr_print_function_t
) ndr_print_spoolss_ClosePrinter
,
31156 sizeof(struct spoolss_AddForm
),
31157 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddForm
,
31158 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddForm
,
31159 (ndr_print_function_t
) ndr_print_spoolss_AddForm
,
31163 "spoolss_DeleteForm",
31164 sizeof(struct spoolss_DeleteForm
),
31165 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteForm
,
31166 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteForm
,
31167 (ndr_print_function_t
) ndr_print_spoolss_DeleteForm
,
31172 sizeof(struct spoolss_GetForm
),
31173 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetForm
,
31174 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetForm
,
31175 (ndr_print_function_t
) ndr_print_spoolss_GetForm
,
31180 sizeof(struct spoolss_SetForm
),
31181 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetForm
,
31182 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetForm
,
31183 (ndr_print_function_t
) ndr_print_spoolss_SetForm
,
31187 "spoolss_EnumForms",
31188 sizeof(struct spoolss_EnumForms
),
31189 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumForms
,
31190 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumForms
,
31191 (ndr_print_function_t
) ndr_print_spoolss_EnumForms
,
31195 "spoolss_EnumPorts",
31196 sizeof(struct spoolss_EnumPorts
),
31197 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPorts
,
31198 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPorts
,
31199 (ndr_print_function_t
) ndr_print_spoolss_EnumPorts
,
31203 "spoolss_EnumMonitors",
31204 sizeof(struct spoolss_EnumMonitors
),
31205 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumMonitors
,
31206 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumMonitors
,
31207 (ndr_print_function_t
) ndr_print_spoolss_EnumMonitors
,
31212 sizeof(struct spoolss_AddPort
),
31213 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPort
,
31214 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPort
,
31215 (ndr_print_function_t
) ndr_print_spoolss_AddPort
,
31219 "spoolss_ConfigurePort",
31220 sizeof(struct spoolss_ConfigurePort
),
31221 (ndr_push_flags_fn_t
) ndr_push_spoolss_ConfigurePort
,
31222 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ConfigurePort
,
31223 (ndr_print_function_t
) ndr_print_spoolss_ConfigurePort
,
31227 "spoolss_DeletePort",
31228 sizeof(struct spoolss_DeletePort
),
31229 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePort
,
31230 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePort
,
31231 (ndr_print_function_t
) ndr_print_spoolss_DeletePort
,
31235 "spoolss_CreatePrinterIC",
31236 sizeof(struct spoolss_CreatePrinterIC
),
31237 (ndr_push_flags_fn_t
) ndr_push_spoolss_CreatePrinterIC
,
31238 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_CreatePrinterIC
,
31239 (ndr_print_function_t
) ndr_print_spoolss_CreatePrinterIC
,
31243 "spoolss_PlayGDIScriptOnPrinterIC",
31244 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC
),
31245 (ndr_push_flags_fn_t
) ndr_push_spoolss_PlayGDIScriptOnPrinterIC
,
31246 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC
,
31247 (ndr_print_function_t
) ndr_print_spoolss_PlayGDIScriptOnPrinterIC
,
31251 "spoolss_DeletePrinterIC",
31252 sizeof(struct spoolss_DeletePrinterIC
),
31253 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterIC
,
31254 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterIC
,
31255 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterIC
,
31259 "spoolss_AddPrinterConnection",
31260 sizeof(struct spoolss_AddPrinterConnection
),
31261 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterConnection
,
31262 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterConnection
,
31263 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterConnection
,
31267 "spoolss_DeletePrinterConnection",
31268 sizeof(struct spoolss_DeletePrinterConnection
),
31269 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterConnection
,
31270 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterConnection
,
31271 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterConnection
,
31275 "spoolss_PrinterMessageBox",
31276 sizeof(struct spoolss_PrinterMessageBox
),
31277 (ndr_push_flags_fn_t
) ndr_push_spoolss_PrinterMessageBox
,
31278 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PrinterMessageBox
,
31279 (ndr_print_function_t
) ndr_print_spoolss_PrinterMessageBox
,
31283 "spoolss_AddMonitor",
31284 sizeof(struct spoolss_AddMonitor
),
31285 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddMonitor
,
31286 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddMonitor
,
31287 (ndr_print_function_t
) ndr_print_spoolss_AddMonitor
,
31291 "spoolss_DeleteMonitor",
31292 sizeof(struct spoolss_DeleteMonitor
),
31293 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteMonitor
,
31294 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteMonitor
,
31295 (ndr_print_function_t
) ndr_print_spoolss_DeleteMonitor
,
31299 "spoolss_DeletePrintProcessor",
31300 sizeof(struct spoolss_DeletePrintProcessor
),
31301 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProcessor
,
31302 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProcessor
,
31303 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProcessor
,
31307 "spoolss_AddPrintProvidor",
31308 sizeof(struct spoolss_AddPrintProvidor
),
31309 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProvidor
,
31310 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProvidor
,
31311 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProvidor
,
31315 "spoolss_DeletePrintProvidor",
31316 sizeof(struct spoolss_DeletePrintProvidor
),
31317 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProvidor
,
31318 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProvidor
,
31319 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProvidor
,
31323 "spoolss_EnumPrintProcDataTypes",
31324 sizeof(struct spoolss_EnumPrintProcDataTypes
),
31325 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcDataTypes
,
31326 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcDataTypes
,
31327 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcDataTypes
,
31331 "spoolss_ResetPrinter",
31332 sizeof(struct spoolss_ResetPrinter
),
31333 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinter
,
31334 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinter
,
31335 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinter
,
31339 "spoolss_GetPrinterDriver2",
31340 sizeof(struct spoolss_GetPrinterDriver2
),
31341 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver2
,
31342 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver2
,
31343 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver2
,
31347 "spoolss_FindFirstPrinterChangeNotification",
31348 sizeof(struct spoolss_FindFirstPrinterChangeNotification
),
31349 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindFirstPrinterChangeNotification
,
31350 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindFirstPrinterChangeNotification
,
31351 (ndr_print_function_t
) ndr_print_spoolss_FindFirstPrinterChangeNotification
,
31355 "spoolss_FindNextPrinterChangeNotification",
31356 sizeof(struct spoolss_FindNextPrinterChangeNotification
),
31357 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindNextPrinterChangeNotification
,
31358 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindNextPrinterChangeNotification
,
31359 (ndr_print_function_t
) ndr_print_spoolss_FindNextPrinterChangeNotification
,
31363 "spoolss_FindClosePrinterNotify",
31364 sizeof(struct spoolss_FindClosePrinterNotify
),
31365 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindClosePrinterNotify
,
31366 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindClosePrinterNotify
,
31367 (ndr_print_function_t
) ndr_print_spoolss_FindClosePrinterNotify
,
31371 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
31372 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld
),
31373 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
31374 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
31375 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
31379 "spoolss_ReplyOpenPrinter",
31380 sizeof(struct spoolss_ReplyOpenPrinter
),
31381 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyOpenPrinter
,
31382 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyOpenPrinter
,
31383 (ndr_print_function_t
) ndr_print_spoolss_ReplyOpenPrinter
,
31387 "spoolss_RouterReplyPrinter",
31388 sizeof(struct spoolss_RouterReplyPrinter
),
31389 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinter
,
31390 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinter
,
31391 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinter
,
31395 "spoolss_ReplyClosePrinter",
31396 sizeof(struct spoolss_ReplyClosePrinter
),
31397 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyClosePrinter
,
31398 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyClosePrinter
,
31399 (ndr_print_function_t
) ndr_print_spoolss_ReplyClosePrinter
,
31403 "spoolss_AddPortEx",
31404 sizeof(struct spoolss_AddPortEx
),
31405 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPortEx
,
31406 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPortEx
,
31407 (ndr_print_function_t
) ndr_print_spoolss_AddPortEx
,
31411 "spoolss_RouterFindFirstPrinterChangeNotification",
31412 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification
),
31413 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification
,
31414 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification
,
31415 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification
,
31419 "spoolss_SpoolerInit",
31420 sizeof(struct spoolss_SpoolerInit
),
31421 (ndr_push_flags_fn_t
) ndr_push_spoolss_SpoolerInit
,
31422 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SpoolerInit
,
31423 (ndr_print_function_t
) ndr_print_spoolss_SpoolerInit
,
31427 "spoolss_ResetPrinterEx",
31428 sizeof(struct spoolss_ResetPrinterEx
),
31429 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinterEx
,
31430 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinterEx
,
31431 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinterEx
,
31435 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
31436 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
),
31437 (ndr_push_flags_fn_t
) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
31438 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
31439 (ndr_print_function_t
) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
31443 "spoolss_RouterReplyPrinterEx",
31444 sizeof(struct spoolss_RouterReplyPrinterEx
),
31445 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinterEx
,
31446 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinterEx
,
31447 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinterEx
,
31451 "spoolss_RouterRefreshPrinterChangeNotify",
31452 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify
),
31453 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterRefreshPrinterChangeNotify
,
31454 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify
,
31455 (ndr_print_function_t
) ndr_print_spoolss_RouterRefreshPrinterChangeNotify
,
31460 sizeof(struct spoolss_44
),
31461 (ndr_push_flags_fn_t
) ndr_push_spoolss_44
,
31462 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_44
,
31463 (ndr_print_function_t
) ndr_print_spoolss_44
,
31467 "spoolss_OpenPrinterEx",
31468 sizeof(struct spoolss_OpenPrinterEx
),
31469 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinterEx
,
31470 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinterEx
,
31471 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinterEx
,
31475 "spoolss_AddPrinterEx",
31476 sizeof(struct spoolss_AddPrinterEx
),
31477 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterEx
,
31478 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterEx
,
31479 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterEx
,
31484 sizeof(struct spoolss_47
),
31485 (ndr_push_flags_fn_t
) ndr_push_spoolss_47
,
31486 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_47
,
31487 (ndr_print_function_t
) ndr_print_spoolss_47
,
31491 "spoolss_EnumPrinterData",
31492 sizeof(struct spoolss_EnumPrinterData
),
31493 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterData
,
31494 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterData
,
31495 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterData
,
31499 "spoolss_DeletePrinterData",
31500 sizeof(struct spoolss_DeletePrinterData
),
31501 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterData
,
31502 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterData
,
31503 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterData
,
31508 sizeof(struct spoolss_4a
),
31509 (ndr_push_flags_fn_t
) ndr_push_spoolss_4a
,
31510 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4a
,
31511 (ndr_print_function_t
) ndr_print_spoolss_4a
,
31516 sizeof(struct spoolss_4b
),
31517 (ndr_push_flags_fn_t
) ndr_push_spoolss_4b
,
31518 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4b
,
31519 (ndr_print_function_t
) ndr_print_spoolss_4b
,
31524 sizeof(struct spoolss_4c
),
31525 (ndr_push_flags_fn_t
) ndr_push_spoolss_4c
,
31526 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4c
,
31527 (ndr_print_function_t
) ndr_print_spoolss_4c
,
31531 "spoolss_SetPrinterDataEx",
31532 sizeof(struct spoolss_SetPrinterDataEx
),
31533 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterDataEx
,
31534 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterDataEx
,
31535 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterDataEx
,
31539 "spoolss_GetPrinterDataEx",
31540 sizeof(struct spoolss_GetPrinterDataEx
),
31541 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDataEx
,
31542 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDataEx
,
31543 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDataEx
,
31547 "spoolss_EnumPrinterDataEx",
31548 sizeof(struct spoolss_EnumPrinterDataEx
),
31549 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDataEx
,
31550 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDataEx
,
31551 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDataEx
,
31555 "spoolss_EnumPrinterKey",
31556 sizeof(struct spoolss_EnumPrinterKey
),
31557 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterKey
,
31558 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterKey
,
31559 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterKey
,
31563 "spoolss_DeletePrinterDataEx",
31564 sizeof(struct spoolss_DeletePrinterDataEx
),
31565 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDataEx
,
31566 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDataEx
,
31567 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDataEx
,
31571 "spoolss_DeletePrinterKey",
31572 sizeof(struct spoolss_DeletePrinterKey
),
31573 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterKey
,
31574 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterKey
,
31575 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterKey
,
31580 sizeof(struct spoolss_53
),
31581 (ndr_push_flags_fn_t
) ndr_push_spoolss_53
,
31582 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_53
,
31583 (ndr_print_function_t
) ndr_print_spoolss_53
,
31587 "spoolss_DeletePrinterDriverEx",
31588 sizeof(struct spoolss_DeletePrinterDriverEx
),
31589 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriverEx
,
31590 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriverEx
,
31591 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriverEx
,
31596 sizeof(struct spoolss_55
),
31597 (ndr_push_flags_fn_t
) ndr_push_spoolss_55
,
31598 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_55
,
31599 (ndr_print_function_t
) ndr_print_spoolss_55
,
31604 sizeof(struct spoolss_56
),
31605 (ndr_push_flags_fn_t
) ndr_push_spoolss_56
,
31606 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_56
,
31607 (ndr_print_function_t
) ndr_print_spoolss_56
,
31612 sizeof(struct spoolss_57
),
31613 (ndr_push_flags_fn_t
) ndr_push_spoolss_57
,
31614 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_57
,
31615 (ndr_print_function_t
) ndr_print_spoolss_57
,
31620 sizeof(struct spoolss_XcvData
),
31621 (ndr_push_flags_fn_t
) ndr_push_spoolss_XcvData
,
31622 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_XcvData
,
31623 (ndr_print_function_t
) ndr_print_spoolss_XcvData
,
31627 "spoolss_AddPrinterDriverEx",
31628 sizeof(struct spoolss_AddPrinterDriverEx
),
31629 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriverEx
,
31630 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriverEx
,
31631 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriverEx
,
31636 sizeof(struct spoolss_5a
),
31637 (ndr_push_flags_fn_t
) ndr_push_spoolss_5a
,
31638 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5a
,
31639 (ndr_print_function_t
) ndr_print_spoolss_5a
,
31644 sizeof(struct spoolss_5b
),
31645 (ndr_push_flags_fn_t
) ndr_push_spoolss_5b
,
31646 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5b
,
31647 (ndr_print_function_t
) ndr_print_spoolss_5b
,
31652 sizeof(struct spoolss_5c
),
31653 (ndr_push_flags_fn_t
) ndr_push_spoolss_5c
,
31654 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5c
,
31655 (ndr_print_function_t
) ndr_print_spoolss_5c
,
31660 sizeof(struct spoolss_5d
),
31661 (ndr_push_flags_fn_t
) ndr_push_spoolss_5d
,
31662 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5d
,
31663 (ndr_print_function_t
) ndr_print_spoolss_5d
,
31668 sizeof(struct spoolss_5e
),
31669 (ndr_push_flags_fn_t
) ndr_push_spoolss_5e
,
31670 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5e
,
31671 (ndr_print_function_t
) ndr_print_spoolss_5e
,
31676 sizeof(struct spoolss_5f
),
31677 (ndr_push_flags_fn_t
) ndr_push_spoolss_5f
,
31678 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5f
,
31679 (ndr_print_function_t
) ndr_print_spoolss_5f
,
31684 sizeof(struct spoolss_60
),
31685 (ndr_push_flags_fn_t
) ndr_push_spoolss_60
,
31686 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_60
,
31687 (ndr_print_function_t
) ndr_print_spoolss_60
,
31692 sizeof(struct spoolss_61
),
31693 (ndr_push_flags_fn_t
) ndr_push_spoolss_61
,
31694 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_61
,
31695 (ndr_print_function_t
) ndr_print_spoolss_61
,
31700 sizeof(struct spoolss_62
),
31701 (ndr_push_flags_fn_t
) ndr_push_spoolss_62
,
31702 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_62
,
31703 (ndr_print_function_t
) ndr_print_spoolss_62
,
31708 sizeof(struct spoolss_63
),
31709 (ndr_push_flags_fn_t
) ndr_push_spoolss_63
,
31710 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_63
,
31711 (ndr_print_function_t
) ndr_print_spoolss_63
,
31716 sizeof(struct spoolss_64
),
31717 (ndr_push_flags_fn_t
) ndr_push_spoolss_64
,
31718 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_64
,
31719 (ndr_print_function_t
) ndr_print_spoolss_64
,
31724 sizeof(struct spoolss_65
),
31725 (ndr_push_flags_fn_t
) ndr_push_spoolss_65
,
31726 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_65
,
31727 (ndr_print_function_t
) ndr_print_spoolss_65
,
31731 "spoolss_GetCorePrinterDrivers",
31732 sizeof(struct spoolss_GetCorePrinterDrivers
),
31733 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetCorePrinterDrivers
,
31734 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetCorePrinterDrivers
,
31735 (ndr_print_function_t
) ndr_print_spoolss_GetCorePrinterDrivers
,
31740 sizeof(struct spoolss_67
),
31741 (ndr_push_flags_fn_t
) ndr_push_spoolss_67
,
31742 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_67
,
31743 (ndr_print_function_t
) ndr_print_spoolss_67
,
31747 "spoolss_GetPrinterDriverPackagePath",
31748 sizeof(struct spoolss_GetPrinterDriverPackagePath
),
31749 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverPackagePath
,
31750 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverPackagePath
,
31751 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverPackagePath
,
31756 sizeof(struct spoolss_69
),
31757 (ndr_push_flags_fn_t
) ndr_push_spoolss_69
,
31758 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_69
,
31759 (ndr_print_function_t
) ndr_print_spoolss_69
,
31764 sizeof(struct spoolss_6a
),
31765 (ndr_push_flags_fn_t
) ndr_push_spoolss_6a
,
31766 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6a
,
31767 (ndr_print_function_t
) ndr_print_spoolss_6a
,
31772 sizeof(struct spoolss_6b
),
31773 (ndr_push_flags_fn_t
) ndr_push_spoolss_6b
,
31774 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6b
,
31775 (ndr_print_function_t
) ndr_print_spoolss_6b
,
31780 sizeof(struct spoolss_6c
),
31781 (ndr_push_flags_fn_t
) ndr_push_spoolss_6c
,
31782 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6c
,
31783 (ndr_print_function_t
) ndr_print_spoolss_6c
,
31788 sizeof(struct spoolss_6d
),
31789 (ndr_push_flags_fn_t
) ndr_push_spoolss_6d
,
31790 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6d
,
31791 (ndr_print_function_t
) ndr_print_spoolss_6d
,
31794 { NULL
, 0, NULL
, NULL
, NULL
, false }
31797 static const char * const spoolss_endpoint_strings
[] = {
31798 "ncacn_np:[\\pipe\\spoolss]",
31801 static const struct ndr_interface_string_array spoolss_endpoints
= {
31803 .names
= spoolss_endpoint_strings
31806 static const char * const spoolss_authservice_strings
[] = {
31810 static const struct ndr_interface_string_array spoolss_authservices
= {
31812 .names
= spoolss_authservice_strings
31816 const struct ndr_interface_table ndr_table_spoolss
= {
31819 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
31820 NDR_SPOOLSS_VERSION
31822 .helpstring
= NDR_SPOOLSS_HELPSTRING
,
31824 .calls
= spoolss_calls
,
31825 .endpoints
= &spoolss_endpoints
,
31826 .authservices
= &spoolss_authservices