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 static 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 static 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(ndr
, r
->printername
));
362 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
364 ndr
->flags
= _flags_save_string
;
367 uint32_t _flags_save_string
= ndr
->flags
;
368 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
370 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
371 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
373 ndr
->flags
= _flags_save_string
;
376 return NDR_ERR_SUCCESS
;
379 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo0
*r
)
381 uint32_t _ptr_printername
;
382 TALLOC_CTX
*_mem_save_printername_0
;
383 uint32_t _ptr_servername
;
384 TALLOC_CTX
*_mem_save_servername_0
;
385 if (ndr_flags
& NDR_SCALARS
) {
386 NDR_CHECK(ndr_pull_align(ndr
, 5));
388 uint32_t _flags_save_string
= ndr
->flags
;
389 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
390 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
391 if (_ptr_printername
) {
392 NDR_PULL_ALLOC(ndr
, r
->printername
);
393 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
395 r
->printername
= NULL
;
397 ndr
->flags
= _flags_save_string
;
400 uint32_t _flags_save_string
= ndr
->flags
;
401 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
402 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
403 if (_ptr_servername
) {
404 NDR_PULL_ALLOC(ndr
, r
->servername
);
405 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
407 r
->servername
= NULL
;
409 ndr
->flags
= _flags_save_string
;
411 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
412 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
413 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
414 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
415 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
416 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
417 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
418 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
419 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
420 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
421 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
422 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
423 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
424 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->job_error
));
425 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
426 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
427 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
428 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
429 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
430 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
431 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
432 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
433 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
434 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
435 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
436 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
437 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
438 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
440 if (ndr_flags
& NDR_BUFFERS
) {
442 uint32_t _flags_save_string
= ndr
->flags
;
443 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
444 if (r
->printername
) {
445 uint32_t _relative_save_offset
;
446 _relative_save_offset
= ndr
->offset
;
447 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
448 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
449 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
450 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
451 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
452 ndr
->offset
= _relative_save_offset
;
454 ndr
->flags
= _flags_save_string
;
457 uint32_t _flags_save_string
= ndr
->flags
;
458 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
460 uint32_t _relative_save_offset
;
461 _relative_save_offset
= ndr
->offset
;
462 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
463 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
464 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
465 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
466 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
467 ndr
->offset
= _relative_save_offset
;
469 ndr
->flags
= _flags_save_string
;
472 return NDR_ERR_SUCCESS
;
475 _PUBLIC_
void ndr_print_spoolss_PrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo0
*r
)
477 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo0");
479 ndr_print_ptr(ndr
, "printername", r
->printername
);
481 if (r
->printername
) {
482 ndr_print_string(ndr
, "printername", r
->printername
);
485 ndr_print_ptr(ndr
, "servername", r
->servername
);
488 ndr_print_string(ndr
, "servername", r
->servername
);
491 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
492 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
493 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
494 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
495 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
496 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
497 ndr_print_uint32(ndr
, "version", r
->version
);
498 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
499 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
500 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
501 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
502 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
503 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
504 ndr_print_spoolss_JobStatus(ndr
, "job_error", r
->job_error
);
505 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
506 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
507 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
508 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
509 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
510 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
511 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
512 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
513 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
514 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
515 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
516 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
517 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
521 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0
*r
, struct smb_iconv_convenience
*ic
, int flags
)
523 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo0
, ic
);
526 static enum ndr_err_code
ndr_push_spoolss_DeviceModeFields(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
528 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
529 return NDR_ERR_SUCCESS
;
532 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeFields(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
535 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
537 return NDR_ERR_SUCCESS
;
540 _PUBLIC_
void ndr_print_spoolss_DeviceModeFields(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
542 ndr_print_uint32(ndr
, name
, r
);
544 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION
, r
);
545 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE
, r
);
546 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH
, r
);
547 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH
, r
);
548 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE
, r
);
549 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION
, r
);
550 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP
, r
);
551 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES
, r
);
552 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE
, r
);
553 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY
, r
);
554 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR
, r
);
555 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX
, r
);
556 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION
, r
);
557 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION
, r
);
558 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE
, r
);
559 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME
, r
);
560 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS
, r
);
561 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL
, r
);
562 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH
, r
);
563 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT
, r
);
564 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS
, r
);
565 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY
, r
);
566 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD
, r
);
567 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT
, r
);
568 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE
, r
);
569 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE
, r
);
570 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH
, r
);
571 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT
, r
);
575 static enum ndr_err_code
ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeSpecVersion r
)
577 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
578 return NDR_ERR_SUCCESS
;
581 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeSpecVersion
*r
)
584 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
586 return NDR_ERR_SUCCESS
;
589 _PUBLIC_
void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeSpecVersion r
)
591 const char *val
= NULL
;
594 case DMSPEC_NT3
: val
= "DMSPEC_NT3"; break;
595 case DMSPEC_WIN95_98_ME
: val
= "DMSPEC_WIN95_98_ME"; break;
596 case DMSPEC_NT4_AND_ABOVE
: val
= "DMSPEC_NT4_AND_ABOVE"; break;
598 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
601 static enum ndr_err_code
ndr_push_spoolss_DeviceModeOrientation(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeOrientation r
)
603 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
604 return NDR_ERR_SUCCESS
;
607 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeOrientation
*r
)
610 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
612 return NDR_ERR_SUCCESS
;
615 _PUBLIC_
void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeOrientation r
)
617 const char *val
= NULL
;
620 case DMORIENT_PORTRAIT
: val
= "DMORIENT_PORTRAIT"; break;
621 case DMORIENT_LANDSCAPE
: val
= "DMORIENT_LANDSCAPE"; break;
623 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
626 static enum ndr_err_code
ndr_push_spoolss_DeviceModePaperSize(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModePaperSize r
)
628 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
629 return NDR_ERR_SUCCESS
;
632 static enum ndr_err_code
ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModePaperSize
*r
)
635 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
637 return NDR_ERR_SUCCESS
;
640 _PUBLIC_
void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModePaperSize r
)
642 const char *val
= NULL
;
645 case DMPAPER_LETTER
: val
= "DMPAPER_LETTER"; break;
646 case DMPAPER_LETTERSMALL
: val
= "DMPAPER_LETTERSMALL"; break;
647 case DMPAPER_TABLOID
: val
= "DMPAPER_TABLOID"; break;
648 case DMPAPER_LEDGER
: val
= "DMPAPER_LEDGER"; break;
649 case DMPAPER_LEGAL
: val
= "DMPAPER_LEGAL"; break;
650 case DMPAPER_STATEMENT
: val
= "DMPAPER_STATEMENT"; break;
651 case DMPAPER_EXECUTIVE
: val
= "DMPAPER_EXECUTIVE"; break;
652 case DMPAPER_A3
: val
= "DMPAPER_A3"; break;
653 case DMPAPER_A4
: val
= "DMPAPER_A4"; break;
654 case DMPAPER_A4SMALL
: val
= "DMPAPER_A4SMALL"; break;
655 case DMPAPER_A5
: val
= "DMPAPER_A5"; break;
656 case DMPAPER_B4
: val
= "DMPAPER_B4"; break;
657 case DMPAPER_B5
: val
= "DMPAPER_B5"; break;
658 case DMPAPER_FOLIO
: val
= "DMPAPER_FOLIO"; break;
659 case DMPAPER_QUARTO
: val
= "DMPAPER_QUARTO"; break;
660 case DMPAPER_10X14
: val
= "DMPAPER_10X14"; break;
661 case DMPAPER_11X17
: val
= "DMPAPER_11X17"; break;
662 case DMPAPER_NOTE
: val
= "DMPAPER_NOTE"; break;
663 case DMPAPER_ENV_9
: val
= "DMPAPER_ENV_9"; break;
664 case DMPAPER_ENV_10
: val
= "DMPAPER_ENV_10"; break;
665 case DMPAPER_ENV_11
: val
= "DMPAPER_ENV_11"; break;
666 case DMPAPER_ENV_12
: val
= "DMPAPER_ENV_12"; break;
667 case DMPAPER_ENV_14
: val
= "DMPAPER_ENV_14"; break;
668 case DMPAPER_CSHEET
: val
= "DMPAPER_CSHEET"; break;
669 case DMPAPER_DSHEET
: val
= "DMPAPER_DSHEET"; break;
670 case DMPAPER_ESHEET
: val
= "DMPAPER_ESHEET"; break;
671 case DMPAPER_ENV_DL
: val
= "DMPAPER_ENV_DL"; break;
672 case DMPAPER_ENV_C5
: val
= "DMPAPER_ENV_C5"; break;
673 case DMPAPER_ENV_C3
: val
= "DMPAPER_ENV_C3"; break;
674 case DMPAPER_ENV_C4
: val
= "DMPAPER_ENV_C4"; break;
675 case DMPAPER_ENV_C6
: val
= "DMPAPER_ENV_C6"; break;
676 case DMPAPER_ENV_C65
: val
= "DMPAPER_ENV_C65"; break;
677 case DMPAPER_ENV_B4
: val
= "DMPAPER_ENV_B4"; break;
678 case DMPAPER_ENV_B5
: val
= "DMPAPER_ENV_B5"; break;
679 case DMPAPER_ENV_B6
: val
= "DMPAPER_ENV_B6"; break;
680 case DMPAPER_ENV_ITALY
: val
= "DMPAPER_ENV_ITALY"; break;
681 case DMPAPER_ENV_MONARCH
: val
= "DMPAPER_ENV_MONARCH"; break;
682 case DMPAPER_ENV_PERSONAL
: val
= "DMPAPER_ENV_PERSONAL"; break;
683 case DMPAPER_FANFOLD_US
: val
= "DMPAPER_FANFOLD_US"; break;
684 case DMPAPER_FANFOLD_STD_GERMAN
: val
= "DMPAPER_FANFOLD_STD_GERMAN"; break;
685 case DMPAPER_FANFOLD_LGL_GERMAN
: val
= "DMPAPER_FANFOLD_LGL_GERMAN"; break;
686 case DMPAPER_DBL_JAPANESE_POSTCARD
: val
= "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
687 case DMPAPER_A6
: val
= "DMPAPER_A6"; break;
688 case DMPAPER_JENV_KAKU2
: val
= "DMPAPER_JENV_KAKU2"; break;
689 case DMPAPER_JENV_KAKU3
: val
= "DMPAPER_JENV_KAKU3"; break;
690 case DMPAPER_JENV_CHOU3
: val
= "DMPAPER_JENV_CHOU3"; break;
691 case DMPAPER_JENV_CHOU4
: val
= "DMPAPER_JENV_CHOU4"; break;
692 case DMPAPER_LETTER_ROTATED
: val
= "DMPAPER_LETTER_ROTATED"; break;
693 case DMPAPER_A3_ROTATED
: val
= "DMPAPER_A3_ROTATED"; break;
694 case DMPAPER_A4_ROTATED
: val
= "DMPAPER_A4_ROTATED"; break;
695 case DMPAPER_A5_ROTATED
: val
= "DMPAPER_A5_ROTATED"; break;
696 case DMPAPER_B4_JIS_ROTATED
: val
= "DMPAPER_B4_JIS_ROTATED"; break;
697 case DMPAPER_B5_JIS_ROTATED
: val
= "DMPAPER_B5_JIS_ROTATED"; break;
698 case DMPAPER_JAPANESE_POSTCARD_ROTATED
: val
= "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
699 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED
: val
= "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
700 case DMPAPER_A6_ROTATED
: val
= "DMPAPER_A6_ROTATED"; break;
701 case DMPAPER_JENV_KAKU2_ROTATED
: val
= "DMPAPER_JENV_KAKU2_ROTATED"; break;
702 case DMPAPER_JENV_KAKU3_ROTATED
: val
= "DMPAPER_JENV_KAKU3_ROTATED"; break;
703 case DMPAPER_JENV_CHOU3_ROTATED
: val
= "DMPAPER_JENV_CHOU3_ROTATED"; break;
704 case DMPAPER_JENV_CHOU4_ROTATED
: val
= "DMPAPER_JENV_CHOU4_ROTATED"; break;
705 case DMPAPER_B6_JIS
: val
= "DMPAPER_B6_JIS"; break;
706 case DMPAPER_B6_JIS_ROTATED
: val
= "DMPAPER_B6_JIS_ROTATED"; break;
707 case DMPAPER_12X11
: val
= "DMPAPER_12X11"; break;
708 case DMPAPER_JENV_YOU4
: val
= "DMPAPER_JENV_YOU4"; break;
709 case DMPAPER_JENV_YOU4_ROTATED
: val
= "DMPAPER_JENV_YOU4_ROTATED"; break;
710 case DMPAPER_P16K
: val
= "DMPAPER_P16K"; break;
711 case DMPAPER_P32K
: val
= "DMPAPER_P32K"; break;
712 case DMPAPER_P32KBIG
: val
= "DMPAPER_P32KBIG"; break;
713 case DMPAPER_PENV_1
: val
= "DMPAPER_PENV_1"; break;
714 case DMPAPER_PENV_2
: val
= "DMPAPER_PENV_2"; break;
715 case DMPAPER_PENV_3
: val
= "DMPAPER_PENV_3"; break;
716 case DMPAPER_PENV_4
: val
= "DMPAPER_PENV_4"; break;
717 case DMPAPER_PENV_5
: val
= "DMPAPER_PENV_5"; break;
718 case DMPAPER_PENV_6
: val
= "DMPAPER_PENV_6"; break;
719 case DMPAPER_PENV_7
: val
= "DMPAPER_PENV_7"; break;
720 case DMPAPER_PENV_8
: val
= "DMPAPER_PENV_8"; break;
721 case DMPAPER_PENV_9
: val
= "DMPAPER_PENV_9"; break;
722 case DMPAPER_PENV_10
: val
= "DMPAPER_PENV_10"; break;
723 case DMPAPER_P16K_ROTATED
: val
= "DMPAPER_P16K_ROTATED"; break;
724 case DMPAPER_P32K_ROTATED
: val
= "DMPAPER_P32K_ROTATED"; break;
725 case DMPAPER_P32KBIG_ROTATED
: val
= "DMPAPER_P32KBIG_ROTATED"; break;
726 case DMPAPER_PENV_1_ROTATED
: val
= "DMPAPER_PENV_1_ROTATED"; break;
727 case DMPAPER_PENV_2_ROTATED
: val
= "DMPAPER_PENV_2_ROTATED"; break;
728 case DMPAPER_PENV_3_ROTATED
: val
= "DMPAPER_PENV_3_ROTATED"; break;
729 case DMPAPER_PENV_4_ROTATED
: val
= "DMPAPER_PENV_4_ROTATED"; break;
730 case DMPAPER_PENV_5_ROTATED
: val
= "DMPAPER_PENV_5_ROTATED"; break;
731 case DMPAPER_PENV_6_ROTATED
: val
= "DMPAPER_PENV_6_ROTATED"; break;
732 case DMPAPER_PENV_7_ROTATED
: val
= "DMPAPER_PENV_7_ROTATED"; break;
733 case DMPAPER_PENV_8_ROTATED
: val
= "DMPAPER_PENV_8_ROTATED"; break;
734 case DMPAPER_PENV_9_ROTATED
: val
= "DMPAPER_PENV_9_ROTATED"; break;
735 case DMPAPER_PENV_10_ROTATED
: val
= "DMPAPER_PENV_10_ROTATED"; break;
737 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
740 static enum ndr_err_code
ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDefaultSource r
)
742 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
743 return NDR_ERR_SUCCESS
;
746 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDefaultSource
*r
)
749 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
751 return NDR_ERR_SUCCESS
;
754 _PUBLIC_
void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeDefaultSource r
)
756 const char *val
= NULL
;
759 case DMBIN_UPPER
: val
= "DMBIN_UPPER"; break;
760 case DMBIN_LOWER
: val
= "DMBIN_LOWER"; break;
761 case DMBIN_MIDDLE
: val
= "DMBIN_MIDDLE"; break;
762 case DMBIN_MANUAL
: val
= "DMBIN_MANUAL"; break;
763 case DMBIN_ENVELOPE
: val
= "DMBIN_ENVELOPE"; break;
764 case DMBIN_ENVMANUAL
: val
= "DMBIN_ENVMANUAL"; break;
765 case DMBIN_AUTO
: val
= "DMBIN_AUTO"; break;
766 case DMBIN_TRACTOR
: val
= "DMBIN_TRACTOR"; break;
767 case DMBIN_SMALLFMT
: val
= "DMBIN_SMALLFMT"; break;
768 case DMBIN_LARGEFMT
: val
= "DMBIN_LARGEFMT"; break;
769 case DMBIN_LARGECAPACITY
: val
= "DMBIN_LARGECAPACITY"; break;
770 case DMBIN_CASSETTE
: val
= "DMBIN_CASSETTE"; break;
771 case DMBIN_FORMSOURCE
: val
= "DMBIN_FORMSOURCE"; break;
773 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
776 static enum ndr_err_code
ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModePrintQuality r
)
778 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
779 return NDR_ERR_SUCCESS
;
782 static enum ndr_err_code
ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModePrintQuality
*r
)
785 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
787 return NDR_ERR_SUCCESS
;
790 _PUBLIC_
void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModePrintQuality r
)
792 const char *val
= NULL
;
795 case DMRES_HIGH
: val
= "DMRES_HIGH"; break;
796 case DMRES_MEDIUM
: val
= "DMRES_MEDIUM"; break;
797 case DMRES_LOW
: val
= "DMRES_LOW"; break;
798 case DMRES_DRAFT
: val
= "DMRES_DRAFT"; break;
800 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
803 static enum ndr_err_code
ndr_push_spoolss_DeviceModeColor(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeColor r
)
805 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
806 return NDR_ERR_SUCCESS
;
809 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeColor(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeColor
*r
)
812 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
814 return NDR_ERR_SUCCESS
;
817 _PUBLIC_
void ndr_print_spoolss_DeviceModeColor(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeColor r
)
819 const char *val
= NULL
;
822 case DMRES_MONOCHROME
: val
= "DMRES_MONOCHROME"; break;
823 case DMRES_COLOR
: val
= "DMRES_COLOR"; break;
825 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
828 static enum ndr_err_code
ndr_push_spoolss_DeviceModeDuplex(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDuplex r
)
830 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
831 return NDR_ERR_SUCCESS
;
834 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDuplex
*r
)
837 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
839 return NDR_ERR_SUCCESS
;
842 _PUBLIC_
void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeDuplex r
)
844 const char *val
= NULL
;
847 case DMDUP_SIMPLEX
: val
= "DMDUP_SIMPLEX"; break;
848 case DMDUP_VERTICAL
: val
= "DMDUP_VERTICAL"; break;
849 case DMDUP_HORIZONTAL
: val
= "DMDUP_HORIZONTAL"; break;
851 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
854 static enum ndr_err_code
ndr_push_spoolss_DeviceModeTTOption(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeTTOption r
)
856 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
857 return NDR_ERR_SUCCESS
;
860 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeTTOption
*r
)
863 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
865 return NDR_ERR_SUCCESS
;
868 _PUBLIC_
void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeTTOption r
)
870 const char *val
= NULL
;
873 case DMTT_BITMAP
: val
= "DMTT_BITMAP"; break;
874 case DMTT_DOWNLOAD
: val
= "DMTT_DOWNLOAD"; break;
875 case DMTT_SUBDEV
: val
= "DMTT_SUBDEV"; break;
876 case DMTT_DOWNLOAD_OUTLINE
: val
= "DMTT_DOWNLOAD_OUTLINE"; break;
878 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
881 static enum ndr_err_code
ndr_push_spoolss_DeviceModeCollate(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeCollate r
)
883 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
884 return NDR_ERR_SUCCESS
;
887 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeCollate
*r
)
890 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
892 return NDR_ERR_SUCCESS
;
895 _PUBLIC_
void ndr_print_spoolss_DeviceModeCollate(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeCollate r
)
897 const char *val
= NULL
;
900 case DMCOLLATE_FALSE
: val
= "DMCOLLATE_FALSE"; break;
901 case DMCOLLATE_TRUE
: val
= "DMCOLLATE_TRUE"; break;
903 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
906 static enum ndr_err_code
ndr_push_spoolss_DeviceModeNUp(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeNUp r
)
908 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
909 return NDR_ERR_SUCCESS
;
912 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeNUp
*r
)
915 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
917 return NDR_ERR_SUCCESS
;
920 _PUBLIC_
void ndr_print_spoolss_DeviceModeNUp(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeNUp r
)
922 const char *val
= NULL
;
925 case DMNUP_SYSTEM
: val
= "DMNUP_SYSTEM"; break;
926 case DMNUP_ONEUP
: val
= "DMNUP_ONEUP"; break;
928 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
931 static enum ndr_err_code
ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMMethod r
)
933 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
934 return NDR_ERR_SUCCESS
;
937 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMMethod
*r
)
940 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
942 return NDR_ERR_SUCCESS
;
945 _PUBLIC_
void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeICMMethod r
)
947 const char *val
= NULL
;
950 case DMICMMETHOD_NONE
: val
= "DMICMMETHOD_NONE"; break;
951 case DMICMMETHOD_SYSTEM
: val
= "DMICMMETHOD_SYSTEM"; break;
952 case DMICMMETHOD_DRIVER
: val
= "DMICMMETHOD_DRIVER"; break;
953 case DMICMMETHOD_DEVICE
: val
= "DMICMMETHOD_DEVICE"; break;
955 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
958 static enum ndr_err_code
ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMIntent r
)
960 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
961 return NDR_ERR_SUCCESS
;
964 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeICMIntent
*r
)
967 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
969 return NDR_ERR_SUCCESS
;
972 _PUBLIC_
void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeICMIntent r
)
974 const char *val
= NULL
;
977 case DMICM_SATURATE
: val
= "DMICM_SATURATE"; break;
978 case DMICM_CONTRAST
: val
= "DMICM_CONTRAST"; break;
979 case DMICM_COLORIMETRIC
: val
= "DMICM_COLORIMETRIC"; break;
980 case DMICM_ABS_COLORIMETRIC
: val
= "DMICM_ABS_COLORIMETRIC"; break;
982 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
985 static enum ndr_err_code
ndr_push_spoolss_DeviceModeMediaType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeMediaType r
)
987 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
988 return NDR_ERR_SUCCESS
;
991 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeMediaType
*r
)
994 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
996 return NDR_ERR_SUCCESS
;
999 _PUBLIC_
void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeMediaType r
)
1001 const char *val
= NULL
;
1004 case DMMEDIA_STANDARD
: val
= "DMMEDIA_STANDARD"; break;
1005 case DMMEDIA_TRANSPARENCY
: val
= "DMMEDIA_TRANSPARENCY"; break;
1006 case DMMEDIA_GLOSSY
: val
= "DMMEDIA_GLOSSY"; break;
1008 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1011 static enum ndr_err_code
ndr_push_spoolss_DeviceModeDitherType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDitherType r
)
1013 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
1014 return NDR_ERR_SUCCESS
;
1017 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DeviceModeDitherType
*r
)
1020 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
1022 return NDR_ERR_SUCCESS
;
1025 _PUBLIC_
void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DeviceModeDitherType r
)
1027 const char *val
= NULL
;
1030 case DMDITHER_NONE
: val
= "DMDITHER_NONE"; break;
1031 case DMDITHER_COARSE
: val
= "DMDITHER_COARSE"; break;
1032 case DMDITHER_FINE
: val
= "DMDITHER_FINE"; break;
1033 case DMDITHER_LINEART
: val
= "DMDITHER_LINEART"; break;
1034 case DMDITHER_ERRORDIFFUSION
: val
= "DMDITHER_ERRORDIFFUSION"; break;
1035 case DMDITHER_RESERVED6
: val
= "DMDITHER_RESERVED6"; break;
1036 case DMDITHER_RESERVED7
: val
= "DMDITHER_RESERVED7"; break;
1037 case DMDITHER_RESERVED8
: val
= "DMDITHER_RESERVED8"; break;
1038 case DMDITHER_RESERVED9
: val
= "DMDITHER_RESERVED9"; break;
1039 case DMDITHER_GRAYSCALE
: val
= "DMDITHER_GRAYSCALE"; break;
1041 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
1044 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeviceMode(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceMode
*r
)
1046 if (ndr_flags
& NDR_SCALARS
) {
1047 NDR_CHECK(ndr_push_align(ndr
, 4));
1048 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->devicename
, MAXDEVICENAME
, sizeof(uint16_t), CH_UTF16
));
1049 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr
, NDR_SCALARS
, r
->specversion
));
1050 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverversion
));
1051 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
1052 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverextra_data
.length
));
1053 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, r
->fields
));
1054 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr
, NDR_SCALARS
, r
->orientation
));
1055 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr
, NDR_SCALARS
, r
->papersize
));
1056 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperlength
));
1057 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperwidth
));
1058 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->scale
));
1059 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->copies
));
1060 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr
, NDR_SCALARS
, r
->defaultsource
));
1061 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr
, NDR_SCALARS
, r
->printquality
));
1062 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr
, NDR_SCALARS
, r
->color
));
1063 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr
, NDR_SCALARS
, r
->duplex
));
1064 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->yresolution
));
1065 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr
, NDR_SCALARS
, r
->ttoption
));
1066 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr
, NDR_SCALARS
, r
->collate
));
1067 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, MAXDEVICENAME
, sizeof(uint16_t), CH_UTF16
));
1068 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logpixels
));
1069 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bitsperpel
));
1070 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelswidth
));
1071 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelsheight
));
1072 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr
, NDR_SCALARS
, r
->displayflags
));
1073 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayfrequency
));
1074 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr
, NDR_SCALARS
, r
->icmmethod
));
1075 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr
, NDR_SCALARS
, r
->icmintent
));
1076 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr
, NDR_SCALARS
, r
->mediatype
));
1077 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr
, NDR_SCALARS
, r
->dithertype
));
1078 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved1
));
1079 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
1080 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningwidth
));
1081 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningheight
));
1083 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1084 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
1086 struct ndr_push
*_ndr_driverextra_data
;
1087 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
1088 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, r
->driverextra_data
));
1089 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
1091 ndr
->flags
= _flags_save_DATA_BLOB
;
1093 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
1095 if (ndr_flags
& NDR_BUFFERS
) {
1097 return NDR_ERR_SUCCESS
;
1100 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeviceMode(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceMode
*r
)
1102 if (ndr_flags
& NDR_SCALARS
) {
1103 NDR_CHECK(ndr_pull_align(ndr
, 4));
1104 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->devicename
, MAXDEVICENAME
, sizeof(uint16_t), CH_UTF16
));
1105 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr
, NDR_SCALARS
, &r
->specversion
));
1106 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->driverversion
));
1107 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
1108 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->__driverextra_length
));
1109 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, &r
->fields
));
1110 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr
, NDR_SCALARS
, &r
->orientation
));
1111 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr
, NDR_SCALARS
, &r
->papersize
));
1112 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperlength
));
1113 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperwidth
));
1114 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->scale
));
1115 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->copies
));
1116 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr
, NDR_SCALARS
, &r
->defaultsource
));
1117 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr
, NDR_SCALARS
, &r
->printquality
));
1118 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr
, NDR_SCALARS
, &r
->color
));
1119 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr
, NDR_SCALARS
, &r
->duplex
));
1120 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->yresolution
));
1121 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr
, NDR_SCALARS
, &r
->ttoption
));
1122 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr
, NDR_SCALARS
, &r
->collate
));
1123 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, MAXDEVICENAME
, sizeof(uint16_t), CH_UTF16
));
1124 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logpixels
));
1125 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bitsperpel
));
1126 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelswidth
));
1127 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelsheight
));
1128 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr
, NDR_SCALARS
, &r
->displayflags
));
1129 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayfrequency
));
1130 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr
, NDR_SCALARS
, &r
->icmmethod
));
1131 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr
, NDR_SCALARS
, &r
->icmintent
));
1132 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr
, NDR_SCALARS
, &r
->mediatype
));
1133 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr
, NDR_SCALARS
, &r
->dithertype
));
1134 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved1
));
1135 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
1136 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningwidth
));
1137 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningheight
));
1139 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
1140 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
1142 struct ndr_pull
*_ndr_driverextra_data
;
1143 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->__driverextra_length
));
1144 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, &r
->driverextra_data
));
1145 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->__driverextra_length
));
1147 ndr
->flags
= _flags_save_DATA_BLOB
;
1149 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
1151 if (ndr_flags
& NDR_BUFFERS
) {
1153 return NDR_ERR_SUCCESS
;
1156 _PUBLIC_
void ndr_print_spoolss_DeviceMode(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceMode
*r
)
1158 ndr_print_struct(ndr
, name
, "spoolss_DeviceMode");
1160 ndr_print_string(ndr
, "devicename", r
->devicename
);
1161 ndr_print_spoolss_DeviceModeSpecVersion(ndr
, "specversion", r
->specversion
);
1162 ndr_print_uint16(ndr
, "driverversion", r
->driverversion
);
1163 ndr_print_uint16(ndr
, "size", r
->size
);
1164 ndr_print_uint16(ndr
, "__driverextra_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->driverextra_data
.length
:r
->__driverextra_length
);
1165 ndr_print_spoolss_DeviceModeFields(ndr
, "fields", r
->fields
);
1166 ndr_print_spoolss_DeviceModeOrientation(ndr
, "orientation", r
->orientation
);
1167 ndr_print_spoolss_DeviceModePaperSize(ndr
, "papersize", r
->papersize
);
1168 ndr_print_uint16(ndr
, "paperlength", r
->paperlength
);
1169 ndr_print_uint16(ndr
, "paperwidth", r
->paperwidth
);
1170 ndr_print_uint16(ndr
, "scale", r
->scale
);
1171 ndr_print_uint16(ndr
, "copies", r
->copies
);
1172 ndr_print_spoolss_DeviceModeDefaultSource(ndr
, "defaultsource", r
->defaultsource
);
1173 ndr_print_spoolss_DeviceModePrintQuality(ndr
, "printquality", r
->printquality
);
1174 ndr_print_spoolss_DeviceModeColor(ndr
, "color", r
->color
);
1175 ndr_print_spoolss_DeviceModeDuplex(ndr
, "duplex", r
->duplex
);
1176 ndr_print_uint16(ndr
, "yresolution", r
->yresolution
);
1177 ndr_print_spoolss_DeviceModeTTOption(ndr
, "ttoption", r
->ttoption
);
1178 ndr_print_spoolss_DeviceModeCollate(ndr
, "collate", r
->collate
);
1179 ndr_print_string(ndr
, "formname", r
->formname
);
1180 ndr_print_uint16(ndr
, "logpixels", r
->logpixels
);
1181 ndr_print_uint32(ndr
, "bitsperpel", r
->bitsperpel
);
1182 ndr_print_uint32(ndr
, "pelswidth", r
->pelswidth
);
1183 ndr_print_uint32(ndr
, "pelsheight", r
->pelsheight
);
1184 ndr_print_spoolss_DeviceModeNUp(ndr
, "displayflags", r
->displayflags
);
1185 ndr_print_uint32(ndr
, "displayfrequency", r
->displayfrequency
);
1186 ndr_print_spoolss_DeviceModeICMMethod(ndr
, "icmmethod", r
->icmmethod
);
1187 ndr_print_spoolss_DeviceModeICMIntent(ndr
, "icmintent", r
->icmintent
);
1188 ndr_print_spoolss_DeviceModeMediaType(ndr
, "mediatype", r
->mediatype
);
1189 ndr_print_spoolss_DeviceModeDitherType(ndr
, "dithertype", r
->dithertype
);
1190 ndr_print_uint32(ndr
, "reserved1", r
->reserved1
);
1191 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
1192 ndr_print_uint32(ndr
, "panningwidth", r
->panningwidth
);
1193 ndr_print_uint32(ndr
, "panningheight", r
->panningheight
);
1194 ndr_print_DATA_BLOB(ndr
, "driverextra_data", r
->driverextra_data
);
1198 _PUBLIC_
size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1200 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DeviceMode
, ic
);
1203 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1206 return NDR_ERR_SUCCESS
;
1209 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1212 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1214 return NDR_ERR_SUCCESS
;
1217 _PUBLIC_
void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1219 ndr_print_uint32(ndr
, name
, r
);
1221 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT
, r
);
1222 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL
, r
);
1223 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS
, r
);
1224 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE
, r
);
1225 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME
, r
);
1226 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE
, r
);
1227 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED
, r
);
1228 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK
, r
);
1229 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND
, r
);
1230 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER
, r
);
1231 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1
, r
);
1232 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2
, r
);
1233 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3
, r
);
1234 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4
, r
);
1235 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5
, r
);
1236 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6
, r
);
1237 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7
, r
);
1238 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8
, r
);
1239 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE
, r
);
1243 static enum ndr_err_code
ndr_push_spoolss_PrinterAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
1245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
1246 return NDR_ERR_SUCCESS
;
1249 static enum ndr_err_code
ndr_pull_spoolss_PrinterAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
1252 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
1254 return NDR_ERR_SUCCESS
;
1257 _PUBLIC_
void ndr_print_spoolss_PrinterAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
1259 ndr_print_uint32(ndr
, name
, r
);
1261 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED
, r
);
1262 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT
, r
);
1263 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT
, r
);
1264 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED
, r
);
1265 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK
, r
);
1266 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN
, r
);
1267 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL
, r
);
1268 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ
, r
);
1269 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS
, r
);
1270 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST
, r
);
1271 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE
, r
);
1272 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI
, r
);
1273 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY
, r
);
1274 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED
, r
);
1275 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX
, r
);
1276 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS
, r
);
1280 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo1
*r
)
1282 if (ndr_flags
& NDR_SCALARS
) {
1283 NDR_CHECK(ndr_push_align(ndr
, 5));
1284 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->flags
));
1286 uint32_t _flags_save_string
= ndr
->flags
;
1287 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1288 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
1289 ndr
->flags
= _flags_save_string
;
1292 uint32_t _flags_save_string
= ndr
->flags
;
1293 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1294 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name
));
1295 ndr
->flags
= _flags_save_string
;
1298 uint32_t _flags_save_string
= ndr
->flags
;
1299 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1300 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
1301 ndr
->flags
= _flags_save_string
;
1303 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
1305 if (ndr_flags
& NDR_BUFFERS
) {
1307 uint32_t _flags_save_string
= ndr
->flags
;
1308 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1309 if (r
->description
) {
1310 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->description
));
1311 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
1313 ndr
->flags
= _flags_save_string
;
1316 uint32_t _flags_save_string
= ndr
->flags
;
1317 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1319 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->name
));
1320 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name
));
1322 ndr
->flags
= _flags_save_string
;
1325 uint32_t _flags_save_string
= ndr
->flags
;
1326 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1328 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->comment
));
1329 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
1331 ndr
->flags
= _flags_save_string
;
1334 return NDR_ERR_SUCCESS
;
1337 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo1
*r
)
1339 uint32_t _ptr_description
;
1340 TALLOC_CTX
*_mem_save_description_0
;
1342 TALLOC_CTX
*_mem_save_name_0
;
1343 uint32_t _ptr_comment
;
1344 TALLOC_CTX
*_mem_save_comment_0
;
1345 if (ndr_flags
& NDR_SCALARS
) {
1346 NDR_CHECK(ndr_pull_align(ndr
, 5));
1347 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->flags
));
1349 uint32_t _flags_save_string
= ndr
->flags
;
1350 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1351 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
1352 if (_ptr_description
) {
1353 NDR_PULL_ALLOC(ndr
, r
->description
);
1354 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
1356 r
->description
= NULL
;
1358 ndr
->flags
= _flags_save_string
;
1361 uint32_t _flags_save_string
= ndr
->flags
;
1362 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1363 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
1365 NDR_PULL_ALLOC(ndr
, r
->name
);
1366 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name
, _ptr_name
));
1370 ndr
->flags
= _flags_save_string
;
1373 uint32_t _flags_save_string
= ndr
->flags
;
1374 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1375 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
1377 NDR_PULL_ALLOC(ndr
, r
->comment
);
1378 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
1382 ndr
->flags
= _flags_save_string
;
1384 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
1386 if (ndr_flags
& NDR_BUFFERS
) {
1388 uint32_t _flags_save_string
= ndr
->flags
;
1389 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1390 if (r
->description
) {
1391 uint32_t _relative_save_offset
;
1392 _relative_save_offset
= ndr
->offset
;
1393 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
1394 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1395 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
1396 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
1397 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
1398 ndr
->offset
= _relative_save_offset
;
1400 ndr
->flags
= _flags_save_string
;
1403 uint32_t _flags_save_string
= ndr
->flags
;
1404 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1406 uint32_t _relative_save_offset
;
1407 _relative_save_offset
= ndr
->offset
;
1408 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name
));
1409 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1410 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
1411 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name
));
1412 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
1413 ndr
->offset
= _relative_save_offset
;
1415 ndr
->flags
= _flags_save_string
;
1418 uint32_t _flags_save_string
= ndr
->flags
;
1419 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1421 uint32_t _relative_save_offset
;
1422 _relative_save_offset
= ndr
->offset
;
1423 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
1424 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1425 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
1426 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
1427 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
1428 ndr
->offset
= _relative_save_offset
;
1430 ndr
->flags
= _flags_save_string
;
1433 return NDR_ERR_SUCCESS
;
1436 _PUBLIC_
void ndr_print_spoolss_PrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo1
*r
)
1438 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo1");
1440 ndr_print_spoolss_PrinterAttributes(ndr
, "flags", r
->flags
);
1441 ndr_print_ptr(ndr
, "description", r
->description
);
1443 if (r
->description
) {
1444 ndr_print_string(ndr
, "description", r
->description
);
1447 ndr_print_ptr(ndr
, "name", r
->name
);
1450 ndr_print_string(ndr
, "name", r
->name
);
1453 ndr_print_ptr(ndr
, "comment", r
->comment
);
1456 ndr_print_string(ndr
, "comment", r
->comment
);
1462 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1464 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo1
, ic
);
1467 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo2
*r
)
1469 if (ndr_flags
& NDR_SCALARS
) {
1470 NDR_CHECK(ndr_push_align(ndr
, 5));
1472 uint32_t _flags_save_string
= ndr
->flags
;
1473 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1474 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
1475 ndr
->flags
= _flags_save_string
;
1478 uint32_t _flags_save_string
= ndr
->flags
;
1479 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1480 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
1481 ndr
->flags
= _flags_save_string
;
1484 uint32_t _flags_save_string
= ndr
->flags
;
1485 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1486 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->sharename
));
1487 ndr
->flags
= _flags_save_string
;
1490 uint32_t _flags_save_string
= ndr
->flags
;
1491 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1492 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
1493 ndr
->flags
= _flags_save_string
;
1496 uint32_t _flags_save_string
= ndr
->flags
;
1497 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1498 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->drivername
));
1499 ndr
->flags
= _flags_save_string
;
1502 uint32_t _flags_save_string
= ndr
->flags
;
1503 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1504 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
1505 ndr
->flags
= _flags_save_string
;
1508 uint32_t _flags_save_string
= ndr
->flags
;
1509 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1510 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->location
));
1511 ndr
->flags
= _flags_save_string
;
1513 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
1515 uint32_t _flags_save_string
= ndr
->flags
;
1516 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1517 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->sepfile
));
1518 ndr
->flags
= _flags_save_string
;
1521 uint32_t _flags_save_string
= ndr
->flags
;
1522 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1523 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printprocessor
));
1524 ndr
->flags
= _flags_save_string
;
1527 uint32_t _flags_save_string
= ndr
->flags
;
1528 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1529 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->datatype
));
1530 ndr
->flags
= _flags_save_string
;
1533 uint32_t _flags_save_string
= ndr
->flags
;
1534 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1535 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
1536 ndr
->flags
= _flags_save_string
;
1538 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
1539 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1540 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
1541 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
1542 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
1543 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
1544 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
1545 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
1546 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
1547 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
1549 if (ndr_flags
& NDR_BUFFERS
) {
1551 uint32_t _flags_save_string
= ndr
->flags
;
1552 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1553 if (r
->servername
) {
1554 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
1555 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
1557 ndr
->flags
= _flags_save_string
;
1560 uint32_t _flags_save_string
= ndr
->flags
;
1561 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1562 if (r
->printername
) {
1563 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1564 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1566 ndr
->flags
= _flags_save_string
;
1569 uint32_t _flags_save_string
= ndr
->flags
;
1570 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1572 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->sharename
));
1573 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->sharename
));
1575 ndr
->flags
= _flags_save_string
;
1578 uint32_t _flags_save_string
= ndr
->flags
;
1579 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1581 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->portname
));
1582 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
1584 ndr
->flags
= _flags_save_string
;
1587 uint32_t _flags_save_string
= ndr
->flags
;
1588 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1589 if (r
->drivername
) {
1590 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->drivername
));
1591 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->drivername
));
1593 ndr
->flags
= _flags_save_string
;
1596 uint32_t _flags_save_string
= ndr
->flags
;
1597 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1599 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->comment
));
1600 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
1602 ndr
->flags
= _flags_save_string
;
1605 uint32_t _flags_save_string
= ndr
->flags
;
1606 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1608 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->location
));
1609 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->location
));
1611 ndr
->flags
= _flags_save_string
;
1614 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
1616 struct ndr_push
*_ndr_devmode
;
1617 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
1618 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
1619 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
1623 uint32_t _flags_save_string
= ndr
->flags
;
1624 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1626 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->sepfile
));
1627 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->sepfile
));
1629 ndr
->flags
= _flags_save_string
;
1632 uint32_t _flags_save_string
= ndr
->flags
;
1633 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1634 if (r
->printprocessor
) {
1635 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printprocessor
));
1636 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printprocessor
));
1638 ndr
->flags
= _flags_save_string
;
1641 uint32_t _flags_save_string
= ndr
->flags
;
1642 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1644 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->datatype
));
1645 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->datatype
));
1647 ndr
->flags
= _flags_save_string
;
1650 uint32_t _flags_save_string
= ndr
->flags
;
1651 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1652 if (r
->parameters
) {
1653 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
1654 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
1656 ndr
->flags
= _flags_save_string
;
1659 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
1661 struct ndr_push
*_ndr_secdesc
;
1662 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1663 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1664 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1668 return NDR_ERR_SUCCESS
;
1671 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo2
*r
)
1673 uint32_t _ptr_servername
;
1674 TALLOC_CTX
*_mem_save_servername_0
;
1675 uint32_t _ptr_printername
;
1676 TALLOC_CTX
*_mem_save_printername_0
;
1677 uint32_t _ptr_sharename
;
1678 TALLOC_CTX
*_mem_save_sharename_0
;
1679 uint32_t _ptr_portname
;
1680 TALLOC_CTX
*_mem_save_portname_0
;
1681 uint32_t _ptr_drivername
;
1682 TALLOC_CTX
*_mem_save_drivername_0
;
1683 uint32_t _ptr_comment
;
1684 TALLOC_CTX
*_mem_save_comment_0
;
1685 uint32_t _ptr_location
;
1686 TALLOC_CTX
*_mem_save_location_0
;
1687 uint32_t _ptr_devmode
;
1688 TALLOC_CTX
*_mem_save_devmode_0
;
1689 uint32_t _ptr_sepfile
;
1690 TALLOC_CTX
*_mem_save_sepfile_0
;
1691 uint32_t _ptr_printprocessor
;
1692 TALLOC_CTX
*_mem_save_printprocessor_0
;
1693 uint32_t _ptr_datatype
;
1694 TALLOC_CTX
*_mem_save_datatype_0
;
1695 uint32_t _ptr_parameters
;
1696 TALLOC_CTX
*_mem_save_parameters_0
;
1697 uint32_t _ptr_secdesc
;
1698 TALLOC_CTX
*_mem_save_secdesc_0
;
1699 if (ndr_flags
& NDR_SCALARS
) {
1700 NDR_CHECK(ndr_pull_align(ndr
, 5));
1702 uint32_t _flags_save_string
= ndr
->flags
;
1703 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1704 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1705 if (_ptr_servername
) {
1706 NDR_PULL_ALLOC(ndr
, r
->servername
);
1707 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1709 r
->servername
= NULL
;
1711 ndr
->flags
= _flags_save_string
;
1714 uint32_t _flags_save_string
= ndr
->flags
;
1715 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1716 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1717 if (_ptr_printername
) {
1718 NDR_PULL_ALLOC(ndr
, r
->printername
);
1719 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1721 r
->printername
= NULL
;
1723 ndr
->flags
= _flags_save_string
;
1726 uint32_t _flags_save_string
= ndr
->flags
;
1727 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1728 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
1729 if (_ptr_sharename
) {
1730 NDR_PULL_ALLOC(ndr
, r
->sharename
);
1731 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sharename
, _ptr_sharename
));
1733 r
->sharename
= NULL
;
1735 ndr
->flags
= _flags_save_string
;
1738 uint32_t _flags_save_string
= ndr
->flags
;
1739 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1740 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
1741 if (_ptr_portname
) {
1742 NDR_PULL_ALLOC(ndr
, r
->portname
);
1743 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1747 ndr
->flags
= _flags_save_string
;
1750 uint32_t _flags_save_string
= ndr
->flags
;
1751 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1752 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
1753 if (_ptr_drivername
) {
1754 NDR_PULL_ALLOC(ndr
, r
->drivername
);
1755 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->drivername
, _ptr_drivername
));
1757 r
->drivername
= NULL
;
1759 ndr
->flags
= _flags_save_string
;
1762 uint32_t _flags_save_string
= ndr
->flags
;
1763 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1764 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
1766 NDR_PULL_ALLOC(ndr
, r
->comment
);
1767 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
1771 ndr
->flags
= _flags_save_string
;
1774 uint32_t _flags_save_string
= ndr
->flags
;
1775 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1776 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
1777 if (_ptr_location
) {
1778 NDR_PULL_ALLOC(ndr
, r
->location
);
1779 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->location
, _ptr_location
));
1783 ndr
->flags
= _flags_save_string
;
1785 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
1787 NDR_PULL_ALLOC(ndr
, r
->devmode
);
1788 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
1793 uint32_t _flags_save_string
= ndr
->flags
;
1794 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1795 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
1797 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
1798 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sepfile
, _ptr_sepfile
));
1802 ndr
->flags
= _flags_save_string
;
1805 uint32_t _flags_save_string
= ndr
->flags
;
1806 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1807 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
1808 if (_ptr_printprocessor
) {
1809 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
1810 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printprocessor
, _ptr_printprocessor
));
1812 r
->printprocessor
= NULL
;
1814 ndr
->flags
= _flags_save_string
;
1817 uint32_t _flags_save_string
= ndr
->flags
;
1818 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1819 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
1820 if (_ptr_datatype
) {
1821 NDR_PULL_ALLOC(ndr
, r
->datatype
);
1822 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->datatype
, _ptr_datatype
));
1826 ndr
->flags
= _flags_save_string
;
1829 uint32_t _flags_save_string
= ndr
->flags
;
1830 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1831 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
1832 if (_ptr_parameters
) {
1833 NDR_PULL_ALLOC(ndr
, r
->parameters
);
1834 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
1836 r
->parameters
= NULL
;
1838 ndr
->flags
= _flags_save_string
;
1840 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1842 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1843 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1847 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1848 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
1849 if (r
->priority
> 99) {
1850 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
1852 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
1853 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
1854 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
1855 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
1856 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
1857 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
1858 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
1860 if (ndr_flags
& NDR_BUFFERS
) {
1862 uint32_t _flags_save_string
= ndr
->flags
;
1863 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1864 if (r
->servername
) {
1865 uint32_t _relative_save_offset
;
1866 _relative_save_offset
= ndr
->offset
;
1867 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
1868 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1869 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
1870 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
1871 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
1872 ndr
->offset
= _relative_save_offset
;
1874 ndr
->flags
= _flags_save_string
;
1877 uint32_t _flags_save_string
= ndr
->flags
;
1878 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1879 if (r
->printername
) {
1880 uint32_t _relative_save_offset
;
1881 _relative_save_offset
= ndr
->offset
;
1882 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1883 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1884 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1885 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1886 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1887 ndr
->offset
= _relative_save_offset
;
1889 ndr
->flags
= _flags_save_string
;
1892 uint32_t _flags_save_string
= ndr
->flags
;
1893 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1895 uint32_t _relative_save_offset
;
1896 _relative_save_offset
= ndr
->offset
;
1897 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sharename
));
1898 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1899 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
1900 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sharename
));
1901 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
1902 ndr
->offset
= _relative_save_offset
;
1904 ndr
->flags
= _flags_save_string
;
1907 uint32_t _flags_save_string
= ndr
->flags
;
1908 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1910 uint32_t _relative_save_offset
;
1911 _relative_save_offset
= ndr
->offset
;
1912 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
1913 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1914 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
1915 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
1916 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
1917 ndr
->offset
= _relative_save_offset
;
1919 ndr
->flags
= _flags_save_string
;
1922 uint32_t _flags_save_string
= ndr
->flags
;
1923 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1924 if (r
->drivername
) {
1925 uint32_t _relative_save_offset
;
1926 _relative_save_offset
= ndr
->offset
;
1927 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->drivername
));
1928 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1929 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
1930 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->drivername
));
1931 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
1932 ndr
->offset
= _relative_save_offset
;
1934 ndr
->flags
= _flags_save_string
;
1937 uint32_t _flags_save_string
= ndr
->flags
;
1938 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1940 uint32_t _relative_save_offset
;
1941 _relative_save_offset
= ndr
->offset
;
1942 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
1943 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1944 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
1945 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
1946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
1947 ndr
->offset
= _relative_save_offset
;
1949 ndr
->flags
= _flags_save_string
;
1952 uint32_t _flags_save_string
= ndr
->flags
;
1953 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1955 uint32_t _relative_save_offset
;
1956 _relative_save_offset
= ndr
->offset
;
1957 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->location
));
1958 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1959 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
1960 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->location
));
1961 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
1962 ndr
->offset
= _relative_save_offset
;
1964 ndr
->flags
= _flags_save_string
;
1967 uint32_t _relative_save_offset
;
1968 _relative_save_offset
= ndr
->offset
;
1969 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
1970 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1971 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
1973 struct ndr_pull
*_ndr_devmode
;
1974 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
1975 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
1976 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
1978 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
1979 ndr
->offset
= _relative_save_offset
;
1982 uint32_t _flags_save_string
= ndr
->flags
;
1983 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1985 uint32_t _relative_save_offset
;
1986 _relative_save_offset
= ndr
->offset
;
1987 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sepfile
));
1988 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1989 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
1990 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sepfile
));
1991 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
1992 ndr
->offset
= _relative_save_offset
;
1994 ndr
->flags
= _flags_save_string
;
1997 uint32_t _flags_save_string
= ndr
->flags
;
1998 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1999 if (r
->printprocessor
) {
2000 uint32_t _relative_save_offset
;
2001 _relative_save_offset
= ndr
->offset
;
2002 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printprocessor
));
2003 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2004 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
2005 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printprocessor
));
2006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
2007 ndr
->offset
= _relative_save_offset
;
2009 ndr
->flags
= _flags_save_string
;
2012 uint32_t _flags_save_string
= ndr
->flags
;
2013 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2015 uint32_t _relative_save_offset
;
2016 _relative_save_offset
= ndr
->offset
;
2017 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->datatype
));
2018 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2019 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
2020 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->datatype
));
2021 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
2022 ndr
->offset
= _relative_save_offset
;
2024 ndr
->flags
= _flags_save_string
;
2027 uint32_t _flags_save_string
= ndr
->flags
;
2028 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2029 if (r
->parameters
) {
2030 uint32_t _relative_save_offset
;
2031 _relative_save_offset
= ndr
->offset
;
2032 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
2033 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2034 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
2035 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
2036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
2037 ndr
->offset
= _relative_save_offset
;
2039 ndr
->flags
= _flags_save_string
;
2042 uint32_t _relative_save_offset
;
2043 _relative_save_offset
= ndr
->offset
;
2044 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
2045 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2046 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
2048 struct ndr_pull
*_ndr_secdesc
;
2049 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
2050 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
2051 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
2053 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
2054 ndr
->offset
= _relative_save_offset
;
2057 return NDR_ERR_SUCCESS
;
2060 _PUBLIC_
void ndr_print_spoolss_PrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo2
*r
)
2062 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo2");
2064 ndr_print_ptr(ndr
, "servername", r
->servername
);
2066 if (r
->servername
) {
2067 ndr_print_string(ndr
, "servername", r
->servername
);
2070 ndr_print_ptr(ndr
, "printername", r
->printername
);
2072 if (r
->printername
) {
2073 ndr_print_string(ndr
, "printername", r
->printername
);
2076 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
2079 ndr_print_string(ndr
, "sharename", r
->sharename
);
2082 ndr_print_ptr(ndr
, "portname", r
->portname
);
2085 ndr_print_string(ndr
, "portname", r
->portname
);
2088 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
2090 if (r
->drivername
) {
2091 ndr_print_string(ndr
, "drivername", r
->drivername
);
2094 ndr_print_ptr(ndr
, "comment", r
->comment
);
2097 ndr_print_string(ndr
, "comment", r
->comment
);
2100 ndr_print_ptr(ndr
, "location", r
->location
);
2103 ndr_print_string(ndr
, "location", r
->location
);
2106 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2109 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2112 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
2115 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
2118 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
2120 if (r
->printprocessor
) {
2121 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
2124 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
2127 ndr_print_string(ndr
, "datatype", r
->datatype
);
2130 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
2132 if (r
->parameters
) {
2133 ndr_print_string(ndr
, "parameters", r
->parameters
);
2136 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
2139 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
2142 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
2143 ndr_print_uint32(ndr
, "priority", r
->priority
);
2144 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
2145 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
2146 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
2147 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
2148 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
2149 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
2153 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2155 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo2
, ic
);
2158 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo3
*r
)
2160 if (ndr_flags
& NDR_SCALARS
) {
2161 NDR_CHECK(ndr_push_align(ndr
, 5));
2162 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
2163 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2165 if (ndr_flags
& NDR_BUFFERS
) {
2167 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
2169 struct ndr_push
*_ndr_secdesc
;
2170 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
2171 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
2172 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
2176 return NDR_ERR_SUCCESS
;
2179 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo3
*r
)
2181 uint32_t _ptr_secdesc
;
2182 TALLOC_CTX
*_mem_save_secdesc_0
;
2183 if (ndr_flags
& NDR_SCALARS
) {
2184 NDR_CHECK(ndr_pull_align(ndr
, 5));
2185 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
2187 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
2188 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
2192 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2194 if (ndr_flags
& NDR_BUFFERS
) {
2196 uint32_t _relative_save_offset
;
2197 _relative_save_offset
= ndr
->offset
;
2198 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
2199 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2200 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
2202 struct ndr_pull
*_ndr_secdesc
;
2203 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
2204 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
2205 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
2207 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
2208 ndr
->offset
= _relative_save_offset
;
2211 return NDR_ERR_SUCCESS
;
2214 _PUBLIC_
void ndr_print_spoolss_PrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo3
*r
)
2216 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo3");
2218 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
2221 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
2227 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2229 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo3
, ic
);
2232 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo4
*r
)
2234 if (ndr_flags
& NDR_SCALARS
) {
2235 NDR_CHECK(ndr_push_align(ndr
, 5));
2237 uint32_t _flags_save_string
= ndr
->flags
;
2238 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2239 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
2240 ndr
->flags
= _flags_save_string
;
2243 uint32_t _flags_save_string
= ndr
->flags
;
2244 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2245 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
2246 ndr
->flags
= _flags_save_string
;
2248 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
2249 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2251 if (ndr_flags
& NDR_BUFFERS
) {
2253 uint32_t _flags_save_string
= ndr
->flags
;
2254 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2255 if (r
->printername
) {
2256 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
2257 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
2259 ndr
->flags
= _flags_save_string
;
2262 uint32_t _flags_save_string
= ndr
->flags
;
2263 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2264 if (r
->servername
) {
2265 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
2266 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
2268 ndr
->flags
= _flags_save_string
;
2271 return NDR_ERR_SUCCESS
;
2274 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo4
*r
)
2276 uint32_t _ptr_printername
;
2277 TALLOC_CTX
*_mem_save_printername_0
;
2278 uint32_t _ptr_servername
;
2279 TALLOC_CTX
*_mem_save_servername_0
;
2280 if (ndr_flags
& NDR_SCALARS
) {
2281 NDR_CHECK(ndr_pull_align(ndr
, 5));
2283 uint32_t _flags_save_string
= ndr
->flags
;
2284 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2285 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
2286 if (_ptr_printername
) {
2287 NDR_PULL_ALLOC(ndr
, r
->printername
);
2288 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
2290 r
->printername
= NULL
;
2292 ndr
->flags
= _flags_save_string
;
2295 uint32_t _flags_save_string
= ndr
->flags
;
2296 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2297 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
2298 if (_ptr_servername
) {
2299 NDR_PULL_ALLOC(ndr
, r
->servername
);
2300 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
2302 r
->servername
= NULL
;
2304 ndr
->flags
= _flags_save_string
;
2306 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
2307 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2309 if (ndr_flags
& NDR_BUFFERS
) {
2311 uint32_t _flags_save_string
= ndr
->flags
;
2312 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2313 if (r
->printername
) {
2314 uint32_t _relative_save_offset
;
2315 _relative_save_offset
= ndr
->offset
;
2316 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
2317 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2318 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
2319 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
2320 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
2321 ndr
->offset
= _relative_save_offset
;
2323 ndr
->flags
= _flags_save_string
;
2326 uint32_t _flags_save_string
= ndr
->flags
;
2327 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2328 if (r
->servername
) {
2329 uint32_t _relative_save_offset
;
2330 _relative_save_offset
= ndr
->offset
;
2331 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
2332 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2333 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
2334 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
2335 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
2336 ndr
->offset
= _relative_save_offset
;
2338 ndr
->flags
= _flags_save_string
;
2341 return NDR_ERR_SUCCESS
;
2344 _PUBLIC_
void ndr_print_spoolss_PrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo4
*r
)
2346 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo4");
2348 ndr_print_ptr(ndr
, "printername", r
->printername
);
2350 if (r
->printername
) {
2351 ndr_print_string(ndr
, "printername", r
->printername
);
2354 ndr_print_ptr(ndr
, "servername", r
->servername
);
2356 if (r
->servername
) {
2357 ndr_print_string(ndr
, "servername", r
->servername
);
2360 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
2364 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2366 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo4
, ic
);
2369 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo5
*r
)
2371 if (ndr_flags
& NDR_SCALARS
) {
2372 NDR_CHECK(ndr_push_align(ndr
, 5));
2374 uint32_t _flags_save_string
= ndr
->flags
;
2375 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2376 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
2377 ndr
->flags
= _flags_save_string
;
2380 uint32_t _flags_save_string
= ndr
->flags
;
2381 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2382 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
2383 ndr
->flags
= _flags_save_string
;
2385 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
2386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
2387 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
2388 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2390 if (ndr_flags
& NDR_BUFFERS
) {
2392 uint32_t _flags_save_string
= ndr
->flags
;
2393 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2394 if (r
->printername
) {
2395 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
2396 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
2398 ndr
->flags
= _flags_save_string
;
2401 uint32_t _flags_save_string
= ndr
->flags
;
2402 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2404 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->portname
));
2405 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
2407 ndr
->flags
= _flags_save_string
;
2410 return NDR_ERR_SUCCESS
;
2413 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo5
*r
)
2415 uint32_t _ptr_printername
;
2416 TALLOC_CTX
*_mem_save_printername_0
;
2417 uint32_t _ptr_portname
;
2418 TALLOC_CTX
*_mem_save_portname_0
;
2419 if (ndr_flags
& NDR_SCALARS
) {
2420 NDR_CHECK(ndr_pull_align(ndr
, 5));
2422 uint32_t _flags_save_string
= ndr
->flags
;
2423 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2424 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
2425 if (_ptr_printername
) {
2426 NDR_PULL_ALLOC(ndr
, r
->printername
);
2427 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
2429 r
->printername
= NULL
;
2431 ndr
->flags
= _flags_save_string
;
2434 uint32_t _flags_save_string
= ndr
->flags
;
2435 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2436 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
2437 if (_ptr_portname
) {
2438 NDR_PULL_ALLOC(ndr
, r
->portname
);
2439 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
2443 ndr
->flags
= _flags_save_string
;
2445 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
2446 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
2447 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
2448 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2450 if (ndr_flags
& NDR_BUFFERS
) {
2452 uint32_t _flags_save_string
= ndr
->flags
;
2453 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2454 if (r
->printername
) {
2455 uint32_t _relative_save_offset
;
2456 _relative_save_offset
= ndr
->offset
;
2457 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
2458 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2459 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
2460 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
2461 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
2462 ndr
->offset
= _relative_save_offset
;
2464 ndr
->flags
= _flags_save_string
;
2467 uint32_t _flags_save_string
= ndr
->flags
;
2468 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2470 uint32_t _relative_save_offset
;
2471 _relative_save_offset
= ndr
->offset
;
2472 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
2473 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2474 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
2475 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
2476 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
2477 ndr
->offset
= _relative_save_offset
;
2479 ndr
->flags
= _flags_save_string
;
2482 return NDR_ERR_SUCCESS
;
2485 _PUBLIC_
void ndr_print_spoolss_PrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo5
*r
)
2487 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo5");
2489 ndr_print_ptr(ndr
, "printername", r
->printername
);
2491 if (r
->printername
) {
2492 ndr_print_string(ndr
, "printername", r
->printername
);
2495 ndr_print_ptr(ndr
, "portname", r
->portname
);
2498 ndr_print_string(ndr
, "portname", r
->portname
);
2501 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
2502 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
2503 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
2507 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2509 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo5
, ic
);
2512 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo6
*r
)
2514 if (ndr_flags
& NDR_SCALARS
) {
2515 NDR_CHECK(ndr_push_align(ndr
, 4));
2516 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
2517 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
2519 if (ndr_flags
& NDR_BUFFERS
) {
2521 return NDR_ERR_SUCCESS
;
2524 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo6
*r
)
2526 if (ndr_flags
& NDR_SCALARS
) {
2527 NDR_CHECK(ndr_pull_align(ndr
, 4));
2528 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
2529 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
2531 if (ndr_flags
& NDR_BUFFERS
) {
2533 return NDR_ERR_SUCCESS
;
2536 _PUBLIC_
void ndr_print_spoolss_PrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo6
*r
)
2538 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo6");
2540 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
2544 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2546 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo6
, ic
);
2549 static enum ndr_err_code
ndr_push_spoolss_DsPrintAction(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
2551 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
2552 return NDR_ERR_SUCCESS
;
2555 static enum ndr_err_code
ndr_pull_spoolss_DsPrintAction(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
2558 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
2560 return NDR_ERR_SUCCESS
;
2563 _PUBLIC_
void ndr_print_spoolss_DsPrintAction(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
2565 ndr_print_uint32(ndr
, name
, r
);
2567 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH
, r
);
2568 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE
, r
);
2569 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH
, r
);
2570 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH
, r
);
2571 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING
, r
);
2575 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo7
*r
)
2577 if (ndr_flags
& NDR_SCALARS
) {
2578 NDR_CHECK(ndr_push_align(ndr
, 5));
2580 uint32_t _flags_save_string
= ndr
->flags
;
2581 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2582 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->guid
));
2583 ndr
->flags
= _flags_save_string
;
2585 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
2586 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2588 if (ndr_flags
& NDR_BUFFERS
) {
2590 uint32_t _flags_save_string
= ndr
->flags
;
2591 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2593 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->guid
));
2594 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->guid
));
2596 ndr
->flags
= _flags_save_string
;
2599 return NDR_ERR_SUCCESS
;
2602 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo7
*r
)
2605 TALLOC_CTX
*_mem_save_guid_0
;
2606 if (ndr_flags
& NDR_SCALARS
) {
2607 NDR_CHECK(ndr_pull_align(ndr
, 5));
2609 uint32_t _flags_save_string
= ndr
->flags
;
2610 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2611 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
2613 NDR_PULL_ALLOC(ndr
, r
->guid
);
2614 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->guid
, _ptr_guid
));
2618 ndr
->flags
= _flags_save_string
;
2620 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
2621 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2623 if (ndr_flags
& NDR_BUFFERS
) {
2625 uint32_t _flags_save_string
= ndr
->flags
;
2626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2628 uint32_t _relative_save_offset
;
2629 _relative_save_offset
= ndr
->offset
;
2630 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->guid
));
2631 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2632 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
2633 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->guid
));
2634 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
2635 ndr
->offset
= _relative_save_offset
;
2637 ndr
->flags
= _flags_save_string
;
2640 return NDR_ERR_SUCCESS
;
2643 _PUBLIC_
void ndr_print_spoolss_PrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo7
*r
)
2645 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo7");
2647 ndr_print_ptr(ndr
, "guid", r
->guid
);
2650 ndr_print_string(ndr
, "guid", r
->guid
);
2653 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
2657 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2659 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo7
, ic
);
2662 static enum ndr_err_code
ndr_push_spoolss_DeviceModeInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceModeInfo
*r
)
2664 if (ndr_flags
& NDR_SCALARS
) {
2665 NDR_CHECK(ndr_push_align(ndr
, 5));
2666 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
2667 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
2669 if (ndr_flags
& NDR_BUFFERS
) {
2671 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
2673 struct ndr_push
*_ndr_devmode
;
2674 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2675 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2676 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2680 return NDR_ERR_SUCCESS
;
2683 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceModeInfo
*r
)
2685 uint32_t _ptr_devmode
;
2686 TALLOC_CTX
*_mem_save_devmode_0
;
2687 if (ndr_flags
& NDR_SCALARS
) {
2688 NDR_CHECK(ndr_pull_align(ndr
, 5));
2689 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2691 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2692 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
2696 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
2698 if (ndr_flags
& NDR_BUFFERS
) {
2700 uint32_t _relative_save_offset
;
2701 _relative_save_offset
= ndr
->offset
;
2702 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
2703 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2704 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2706 struct ndr_pull
*_ndr_devmode
;
2707 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2708 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2709 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2711 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2712 ndr
->offset
= _relative_save_offset
;
2715 return NDR_ERR_SUCCESS
;
2718 _PUBLIC_
void ndr_print_spoolss_DeviceModeInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceModeInfo
*r
)
2720 ndr_print_struct(ndr
, name
, "spoolss_DeviceModeInfo");
2722 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2725 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2731 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterInfo
*r
)
2733 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
2734 if (ndr_flags
& NDR_SCALARS
) {
2735 int level
= ndr_push_get_switch_value(ndr
, r
);
2736 NDR_CHECK(ndr_push_union_align(ndr
, 5));
2739 NDR_CHECK(ndr_push_align(ndr
, 5));
2740 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2741 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2745 NDR_CHECK(ndr_push_align(ndr
, 5));
2746 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2747 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2751 NDR_CHECK(ndr_push_align(ndr
, 5));
2752 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2753 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2757 NDR_CHECK(ndr_push_align(ndr
, 5));
2758 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2759 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2763 NDR_CHECK(ndr_push_align(ndr
, 5));
2764 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2765 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2769 NDR_CHECK(ndr_push_align(ndr
, 5));
2770 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2771 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2775 NDR_CHECK(ndr_push_align(ndr
, 4));
2776 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2777 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2781 NDR_CHECK(ndr_push_align(ndr
, 5));
2782 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2783 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2787 NDR_CHECK(ndr_push_align(ndr
, 5));
2788 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2789 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2793 NDR_CHECK(ndr_push_align(ndr
, 5));
2794 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2795 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2803 if (ndr_flags
& NDR_BUFFERS
) {
2804 int level
= ndr_push_get_switch_value(ndr
, r
);
2805 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
2808 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2812 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2816 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2820 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2824 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2828 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2835 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2839 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2843 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2851 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2852 return NDR_ERR_SUCCESS
;
2855 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterInfo
*r
)
2857 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
2859 level
= ndr_pull_get_switch_value(ndr
, r
);
2860 if (ndr_flags
& NDR_SCALARS
) {
2861 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
2864 NDR_CHECK(ndr_pull_align(ndr
, 5));
2865 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2866 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2870 NDR_CHECK(ndr_pull_align(ndr
, 5));
2871 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2872 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2876 NDR_CHECK(ndr_pull_align(ndr
, 5));
2877 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2878 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2882 NDR_CHECK(ndr_pull_align(ndr
, 5));
2883 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2884 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2888 NDR_CHECK(ndr_pull_align(ndr
, 5));
2889 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2890 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2894 NDR_CHECK(ndr_pull_align(ndr
, 5));
2895 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2896 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2900 NDR_CHECK(ndr_pull_align(ndr
, 4));
2901 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2902 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2906 NDR_CHECK(ndr_pull_align(ndr
, 5));
2907 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2908 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2912 NDR_CHECK(ndr_pull_align(ndr
, 5));
2913 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2914 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2918 NDR_CHECK(ndr_pull_align(ndr
, 5));
2919 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2920 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2928 if (ndr_flags
& NDR_BUFFERS
) {
2929 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
2932 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2936 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2940 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2944 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2948 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2952 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2959 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2963 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2967 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2975 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2976 return NDR_ERR_SUCCESS
;
2979 _PUBLIC_
void ndr_print_spoolss_PrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterInfo
*r
)
2982 level
= ndr_print_get_switch_value(ndr
, r
);
2983 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterInfo");
2986 ndr_print_spoolss_PrinterInfo0(ndr
, "info0", &r
->info0
);
2990 ndr_print_spoolss_PrinterInfo1(ndr
, "info1", &r
->info1
);
2994 ndr_print_spoolss_PrinterInfo2(ndr
, "info2", &r
->info2
);
2998 ndr_print_spoolss_PrinterInfo3(ndr
, "info3", &r
->info3
);
3002 ndr_print_spoolss_PrinterInfo4(ndr
, "info4", &r
->info4
);
3006 ndr_print_spoolss_PrinterInfo5(ndr
, "info5", &r
->info5
);
3010 ndr_print_spoolss_PrinterInfo6(ndr
, "info6", &r
->info6
);
3014 ndr_print_spoolss_PrinterInfo7(ndr
, "info7", &r
->info7
);
3018 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", &r
->info8
);
3022 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", &r
->info9
);
3031 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
3033 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo
, ic
);
3036 static enum ndr_err_code
ndr_push_spoolss_DevmodeContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DevmodeContainer
*r
)
3038 if (ndr_flags
& NDR_SCALARS
) {
3039 NDR_CHECK(ndr_push_align(ndr
, 5));
3040 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
3041 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
3042 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
3044 if (ndr_flags
& NDR_BUFFERS
) {
3047 struct ndr_push
*_ndr_devmode
;
3048 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
3049 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
3050 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
3054 return NDR_ERR_SUCCESS
;
3057 static enum ndr_err_code
ndr_pull_spoolss_DevmodeContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DevmodeContainer
*r
)
3059 uint32_t _ptr_devmode
;
3060 TALLOC_CTX
*_mem_save_devmode_0
;
3061 if (ndr_flags
& NDR_SCALARS
) {
3062 NDR_CHECK(ndr_pull_align(ndr
, 5));
3063 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
3064 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3066 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3070 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
3072 if (ndr_flags
& NDR_BUFFERS
) {
3074 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3075 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
3077 struct ndr_pull
*_ndr_devmode
;
3078 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 4, r
->_ndr_size
));
3079 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
3080 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 4, r
->_ndr_size
));
3082 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
3085 return NDR_ERR_SUCCESS
;
3088 _PUBLIC_
void ndr_print_spoolss_DevmodeContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DevmodeContainer
*r
)
3090 ndr_print_struct(ndr
, name
, "spoolss_DevmodeContainer");
3092 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
);
3093 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
3096 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
3102 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo1
*r
)
3104 if (ndr_flags
& NDR_SCALARS
) {
3105 NDR_CHECK(ndr_push_align(ndr
, 5));
3106 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3108 uint32_t _flags_save_string
= ndr
->flags
;
3109 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3110 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
3111 ndr
->flags
= _flags_save_string
;
3114 uint32_t _flags_save_string
= ndr
->flags
;
3115 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3116 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
3117 ndr
->flags
= _flags_save_string
;
3120 uint32_t _flags_save_string
= ndr
->flags
;
3121 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3122 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
3123 ndr
->flags
= _flags_save_string
;
3126 uint32_t _flags_save_string
= ndr
->flags
;
3127 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3128 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
3129 ndr
->flags
= _flags_save_string
;
3132 uint32_t _flags_save_string
= ndr
->flags
;
3133 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3134 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3135 ndr
->flags
= _flags_save_string
;
3138 uint32_t _flags_save_string
= ndr
->flags
;
3139 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3140 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3141 ndr
->flags
= _flags_save_string
;
3143 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3144 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3146 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3148 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3149 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
3151 if (ndr_flags
& NDR_BUFFERS
) {
3153 uint32_t _flags_save_string
= ndr
->flags
;
3154 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3155 if (r
->printer_name
) {
3156 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
3157 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
3159 ndr
->flags
= _flags_save_string
;
3162 uint32_t _flags_save_string
= ndr
->flags
;
3163 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3164 if (r
->server_name
) {
3165 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
3166 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3168 ndr
->flags
= _flags_save_string
;
3171 uint32_t _flags_save_string
= ndr
->flags
;
3172 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3174 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
3175 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3177 ndr
->flags
= _flags_save_string
;
3180 uint32_t _flags_save_string
= ndr
->flags
;
3181 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3182 if (r
->document_name
) {
3183 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
3184 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3186 ndr
->flags
= _flags_save_string
;
3189 uint32_t _flags_save_string
= ndr
->flags
;
3190 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3192 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
3193 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3195 ndr
->flags
= _flags_save_string
;
3198 uint32_t _flags_save_string
= ndr
->flags
;
3199 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3200 if (r
->text_status
) {
3201 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
3202 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3204 ndr
->flags
= _flags_save_string
;
3207 return NDR_ERR_SUCCESS
;
3210 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo1
*r
)
3212 uint32_t _ptr_printer_name
;
3213 TALLOC_CTX
*_mem_save_printer_name_0
;
3214 uint32_t _ptr_server_name
;
3215 TALLOC_CTX
*_mem_save_server_name_0
;
3216 uint32_t _ptr_user_name
;
3217 TALLOC_CTX
*_mem_save_user_name_0
;
3218 uint32_t _ptr_document_name
;
3219 TALLOC_CTX
*_mem_save_document_name_0
;
3220 uint32_t _ptr_data_type
;
3221 TALLOC_CTX
*_mem_save_data_type_0
;
3222 uint32_t _ptr_text_status
;
3223 TALLOC_CTX
*_mem_save_text_status_0
;
3224 if (ndr_flags
& NDR_SCALARS
) {
3225 NDR_CHECK(ndr_pull_align(ndr
, 5));
3226 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3228 uint32_t _flags_save_string
= ndr
->flags
;
3229 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3230 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3231 if (_ptr_printer_name
) {
3232 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3233 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3235 r
->printer_name
= NULL
;
3237 ndr
->flags
= _flags_save_string
;
3240 uint32_t _flags_save_string
= ndr
->flags
;
3241 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3242 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3243 if (_ptr_server_name
) {
3244 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3245 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3247 r
->server_name
= NULL
;
3249 ndr
->flags
= _flags_save_string
;
3252 uint32_t _flags_save_string
= ndr
->flags
;
3253 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3254 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3255 if (_ptr_user_name
) {
3256 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3257 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3259 r
->user_name
= NULL
;
3261 ndr
->flags
= _flags_save_string
;
3264 uint32_t _flags_save_string
= ndr
->flags
;
3265 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3266 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3267 if (_ptr_document_name
) {
3268 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3269 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3271 r
->document_name
= NULL
;
3273 ndr
->flags
= _flags_save_string
;
3276 uint32_t _flags_save_string
= ndr
->flags
;
3277 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3278 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3279 if (_ptr_data_type
) {
3280 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3281 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3283 r
->data_type
= NULL
;
3285 ndr
->flags
= _flags_save_string
;
3288 uint32_t _flags_save_string
= ndr
->flags
;
3289 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3290 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3291 if (_ptr_text_status
) {
3292 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3293 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3295 r
->text_status
= NULL
;
3297 ndr
->flags
= _flags_save_string
;
3299 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3300 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3301 if (r
->priority
> 99) {
3302 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
3304 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3305 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3306 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3307 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3308 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
3310 if (ndr_flags
& NDR_BUFFERS
) {
3312 uint32_t _flags_save_string
= ndr
->flags
;
3313 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3314 if (r
->printer_name
) {
3315 uint32_t _relative_save_offset
;
3316 _relative_save_offset
= ndr
->offset
;
3317 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3318 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3319 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3320 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3322 ndr
->offset
= _relative_save_offset
;
3324 ndr
->flags
= _flags_save_string
;
3327 uint32_t _flags_save_string
= ndr
->flags
;
3328 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3329 if (r
->server_name
) {
3330 uint32_t _relative_save_offset
;
3331 _relative_save_offset
= ndr
->offset
;
3332 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3333 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3334 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3335 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3336 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3337 ndr
->offset
= _relative_save_offset
;
3339 ndr
->flags
= _flags_save_string
;
3342 uint32_t _flags_save_string
= ndr
->flags
;
3343 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3345 uint32_t _relative_save_offset
;
3346 _relative_save_offset
= ndr
->offset
;
3347 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3348 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3349 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3350 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3351 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3352 ndr
->offset
= _relative_save_offset
;
3354 ndr
->flags
= _flags_save_string
;
3357 uint32_t _flags_save_string
= ndr
->flags
;
3358 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3359 if (r
->document_name
) {
3360 uint32_t _relative_save_offset
;
3361 _relative_save_offset
= ndr
->offset
;
3362 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3363 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3364 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3365 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3366 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3367 ndr
->offset
= _relative_save_offset
;
3369 ndr
->flags
= _flags_save_string
;
3372 uint32_t _flags_save_string
= ndr
->flags
;
3373 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3375 uint32_t _relative_save_offset
;
3376 _relative_save_offset
= ndr
->offset
;
3377 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
3378 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3379 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
3380 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
3381 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
3382 ndr
->offset
= _relative_save_offset
;
3384 ndr
->flags
= _flags_save_string
;
3387 uint32_t _flags_save_string
= ndr
->flags
;
3388 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3389 if (r
->text_status
) {
3390 uint32_t _relative_save_offset
;
3391 _relative_save_offset
= ndr
->offset
;
3392 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
3393 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3394 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
3395 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
3396 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
3397 ndr
->offset
= _relative_save_offset
;
3399 ndr
->flags
= _flags_save_string
;
3402 return NDR_ERR_SUCCESS
;
3405 _PUBLIC_
void ndr_print_spoolss_JobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo1
*r
)
3407 ndr_print_struct(ndr
, name
, "spoolss_JobInfo1");
3409 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3410 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
3412 if (r
->printer_name
) {
3413 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
3416 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
3418 if (r
->server_name
) {
3419 ndr_print_string(ndr
, "server_name", r
->server_name
);
3422 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
3425 ndr_print_string(ndr
, "user_name", r
->user_name
);
3428 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
3430 if (r
->document_name
) {
3431 ndr_print_string(ndr
, "document_name", r
->document_name
);
3434 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
3437 ndr_print_string(ndr
, "data_type", r
->data_type
);
3440 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
3442 if (r
->text_status
) {
3443 ndr_print_string(ndr
, "text_status", r
->text_status
);
3446 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
3447 ndr_print_uint32(ndr
, "priority", r
->priority
);
3448 ndr_print_uint32(ndr
, "position", r
->position
);
3449 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
3450 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
3451 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
3455 _PUBLIC_
size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
3457 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo1
, ic
);
3460 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo2
*r
)
3462 if (ndr_flags
& NDR_SCALARS
) {
3463 NDR_CHECK(ndr_push_align(ndr
, 5));
3464 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3466 uint32_t _flags_save_string
= ndr
->flags
;
3467 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3468 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
3469 ndr
->flags
= _flags_save_string
;
3472 uint32_t _flags_save_string
= ndr
->flags
;
3473 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3474 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
3475 ndr
->flags
= _flags_save_string
;
3478 uint32_t _flags_save_string
= ndr
->flags
;
3479 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3480 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
3481 ndr
->flags
= _flags_save_string
;
3484 uint32_t _flags_save_string
= ndr
->flags
;
3485 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3486 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
3487 ndr
->flags
= _flags_save_string
;
3490 uint32_t _flags_save_string
= ndr
->flags
;
3491 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3492 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
3493 ndr
->flags
= _flags_save_string
;
3496 uint32_t _flags_save_string
= ndr
->flags
;
3497 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3498 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
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_push_relative_ptr1(ndr
, r
->print_processor
));
3505 ndr
->flags
= _flags_save_string
;
3508 uint32_t _flags_save_string
= ndr
->flags
;
3509 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3510 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
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_push_relative_ptr1(ndr
, r
->driver_name
));
3517 ndr
->flags
= _flags_save_string
;
3519 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
3521 uint32_t _flags_save_string
= ndr
->flags
;
3522 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3523 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3524 ndr
->flags
= _flags_save_string
;
3526 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
3527 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3528 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3529 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3530 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
3531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
3532 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
3534 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3535 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
3536 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3537 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
3539 if (ndr_flags
& NDR_BUFFERS
) {
3541 uint32_t _flags_save_string
= ndr
->flags
;
3542 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3543 if (r
->printer_name
) {
3544 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
3545 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
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 if (r
->server_name
) {
3553 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
3554 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3556 ndr
->flags
= _flags_save_string
;
3559 uint32_t _flags_save_string
= ndr
->flags
;
3560 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3562 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
3563 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3565 ndr
->flags
= _flags_save_string
;
3568 uint32_t _flags_save_string
= ndr
->flags
;
3569 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3570 if (r
->document_name
) {
3571 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
3572 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3574 ndr
->flags
= _flags_save_string
;
3577 uint32_t _flags_save_string
= ndr
->flags
;
3578 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3579 if (r
->notify_name
) {
3580 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->notify_name
));
3581 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
3583 ndr
->flags
= _flags_save_string
;
3586 uint32_t _flags_save_string
= ndr
->flags
;
3587 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3589 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
3590 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3592 ndr
->flags
= _flags_save_string
;
3595 uint32_t _flags_save_string
= ndr
->flags
;
3596 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3597 if (r
->print_processor
) {
3598 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
3599 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
3601 ndr
->flags
= _flags_save_string
;
3604 uint32_t _flags_save_string
= ndr
->flags
;
3605 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3606 if (r
->parameters
) {
3607 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
3608 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3610 ndr
->flags
= _flags_save_string
;
3613 uint32_t _flags_save_string
= ndr
->flags
;
3614 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3615 if (r
->driver_name
) {
3616 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
3617 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3619 ndr
->flags
= _flags_save_string
;
3622 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
3623 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3626 uint32_t _flags_save_string
= ndr
->flags
;
3627 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3628 if (r
->text_status
) {
3629 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
3630 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3632 ndr
->flags
= _flags_save_string
;
3635 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
3636 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3639 return NDR_ERR_SUCCESS
;
3642 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo2
*r
)
3644 uint32_t _ptr_printer_name
;
3645 TALLOC_CTX
*_mem_save_printer_name_0
;
3646 uint32_t _ptr_server_name
;
3647 TALLOC_CTX
*_mem_save_server_name_0
;
3648 uint32_t _ptr_user_name
;
3649 TALLOC_CTX
*_mem_save_user_name_0
;
3650 uint32_t _ptr_document_name
;
3651 TALLOC_CTX
*_mem_save_document_name_0
;
3652 uint32_t _ptr_notify_name
;
3653 TALLOC_CTX
*_mem_save_notify_name_0
;
3654 uint32_t _ptr_data_type
;
3655 TALLOC_CTX
*_mem_save_data_type_0
;
3656 uint32_t _ptr_print_processor
;
3657 TALLOC_CTX
*_mem_save_print_processor_0
;
3658 uint32_t _ptr_parameters
;
3659 TALLOC_CTX
*_mem_save_parameters_0
;
3660 uint32_t _ptr_driver_name
;
3661 TALLOC_CTX
*_mem_save_driver_name_0
;
3662 uint32_t _ptr_devmode
;
3663 TALLOC_CTX
*_mem_save_devmode_0
;
3664 uint32_t _ptr_text_status
;
3665 TALLOC_CTX
*_mem_save_text_status_0
;
3666 uint32_t _ptr_secdesc
;
3667 TALLOC_CTX
*_mem_save_secdesc_0
;
3668 if (ndr_flags
& NDR_SCALARS
) {
3669 NDR_CHECK(ndr_pull_align(ndr
, 5));
3670 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3672 uint32_t _flags_save_string
= ndr
->flags
;
3673 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3674 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3675 if (_ptr_printer_name
) {
3676 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3677 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3679 r
->printer_name
= NULL
;
3681 ndr
->flags
= _flags_save_string
;
3684 uint32_t _flags_save_string
= ndr
->flags
;
3685 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3686 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3687 if (_ptr_server_name
) {
3688 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3689 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3691 r
->server_name
= NULL
;
3693 ndr
->flags
= _flags_save_string
;
3696 uint32_t _flags_save_string
= ndr
->flags
;
3697 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3698 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3699 if (_ptr_user_name
) {
3700 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3701 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3703 r
->user_name
= NULL
;
3705 ndr
->flags
= _flags_save_string
;
3708 uint32_t _flags_save_string
= ndr
->flags
;
3709 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3710 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3711 if (_ptr_document_name
) {
3712 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3713 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3715 r
->document_name
= NULL
;
3717 ndr
->flags
= _flags_save_string
;
3720 uint32_t _flags_save_string
= ndr
->flags
;
3721 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3722 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
3723 if (_ptr_notify_name
) {
3724 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
3725 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
3727 r
->notify_name
= NULL
;
3729 ndr
->flags
= _flags_save_string
;
3732 uint32_t _flags_save_string
= ndr
->flags
;
3733 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3734 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3735 if (_ptr_data_type
) {
3736 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3737 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3739 r
->data_type
= NULL
;
3741 ndr
->flags
= _flags_save_string
;
3744 uint32_t _flags_save_string
= ndr
->flags
;
3745 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3746 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
3747 if (_ptr_print_processor
) {
3748 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
3749 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
3751 r
->print_processor
= NULL
;
3753 ndr
->flags
= _flags_save_string
;
3756 uint32_t _flags_save_string
= ndr
->flags
;
3757 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3758 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
3759 if (_ptr_parameters
) {
3760 NDR_PULL_ALLOC(ndr
, r
->parameters
);
3761 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
3763 r
->parameters
= NULL
;
3765 ndr
->flags
= _flags_save_string
;
3768 uint32_t _flags_save_string
= ndr
->flags
;
3769 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3770 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
3771 if (_ptr_driver_name
) {
3772 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
3773 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
3775 r
->driver_name
= NULL
;
3777 ndr
->flags
= _flags_save_string
;
3779 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3781 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3782 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
3787 uint32_t _flags_save_string
= ndr
->flags
;
3788 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3789 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3790 if (_ptr_text_status
) {
3791 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3792 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3794 r
->text_status
= NULL
;
3796 ndr
->flags
= _flags_save_string
;
3798 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
3800 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
3801 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
3805 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3806 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3807 if (r
->priority
> 99) {
3808 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
3810 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3811 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
3812 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
3813 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3814 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
3815 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3816 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
3817 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3818 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
3820 if (ndr_flags
& NDR_BUFFERS
) {
3822 uint32_t _flags_save_string
= ndr
->flags
;
3823 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3824 if (r
->printer_name
) {
3825 uint32_t _relative_save_offset
;
3826 _relative_save_offset
= ndr
->offset
;
3827 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3828 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3829 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3830 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3831 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3832 ndr
->offset
= _relative_save_offset
;
3834 ndr
->flags
= _flags_save_string
;
3837 uint32_t _flags_save_string
= ndr
->flags
;
3838 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3839 if (r
->server_name
) {
3840 uint32_t _relative_save_offset
;
3841 _relative_save_offset
= ndr
->offset
;
3842 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3843 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3844 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3845 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3846 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3847 ndr
->offset
= _relative_save_offset
;
3849 ndr
->flags
= _flags_save_string
;
3852 uint32_t _flags_save_string
= ndr
->flags
;
3853 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3855 uint32_t _relative_save_offset
;
3856 _relative_save_offset
= ndr
->offset
;
3857 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3858 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3859 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3860 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3861 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3862 ndr
->offset
= _relative_save_offset
;
3864 ndr
->flags
= _flags_save_string
;
3867 uint32_t _flags_save_string
= ndr
->flags
;
3868 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3869 if (r
->document_name
) {
3870 uint32_t _relative_save_offset
;
3871 _relative_save_offset
= ndr
->offset
;
3872 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3873 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3874 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3875 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3876 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3877 ndr
->offset
= _relative_save_offset
;
3879 ndr
->flags
= _flags_save_string
;
3882 uint32_t _flags_save_string
= ndr
->flags
;
3883 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3884 if (r
->notify_name
) {
3885 uint32_t _relative_save_offset
;
3886 _relative_save_offset
= ndr
->offset
;
3887 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
3888 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3889 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
3890 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
3891 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
3892 ndr
->offset
= _relative_save_offset
;
3894 ndr
->flags
= _flags_save_string
;
3897 uint32_t _flags_save_string
= ndr
->flags
;
3898 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3900 uint32_t _relative_save_offset
;
3901 _relative_save_offset
= ndr
->offset
;
3902 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
3903 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3904 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
3905 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
3906 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
3907 ndr
->offset
= _relative_save_offset
;
3909 ndr
->flags
= _flags_save_string
;
3912 uint32_t _flags_save_string
= ndr
->flags
;
3913 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3914 if (r
->print_processor
) {
3915 uint32_t _relative_save_offset
;
3916 _relative_save_offset
= ndr
->offset
;
3917 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
3918 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3919 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
3920 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
3921 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
3922 ndr
->offset
= _relative_save_offset
;
3924 ndr
->flags
= _flags_save_string
;
3927 uint32_t _flags_save_string
= ndr
->flags
;
3928 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3929 if (r
->parameters
) {
3930 uint32_t _relative_save_offset
;
3931 _relative_save_offset
= ndr
->offset
;
3932 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
3933 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3934 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
3935 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
3936 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
3937 ndr
->offset
= _relative_save_offset
;
3939 ndr
->flags
= _flags_save_string
;
3942 uint32_t _flags_save_string
= ndr
->flags
;
3943 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3944 if (r
->driver_name
) {
3945 uint32_t _relative_save_offset
;
3946 _relative_save_offset
= ndr
->offset
;
3947 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
3948 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3949 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
3950 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
3951 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
3952 ndr
->offset
= _relative_save_offset
;
3954 ndr
->flags
= _flags_save_string
;
3957 uint32_t _relative_save_offset
;
3958 _relative_save_offset
= ndr
->offset
;
3959 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
3960 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3961 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
3962 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3963 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
3964 ndr
->offset
= _relative_save_offset
;
3967 uint32_t _flags_save_string
= ndr
->flags
;
3968 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3969 if (r
->text_status
) {
3970 uint32_t _relative_save_offset
;
3971 _relative_save_offset
= ndr
->offset
;
3972 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
3973 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3974 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
3975 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
3976 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
3977 ndr
->offset
= _relative_save_offset
;
3979 ndr
->flags
= _flags_save_string
;
3982 uint32_t _relative_save_offset
;
3983 _relative_save_offset
= ndr
->offset
;
3984 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
3985 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3986 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
3987 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3988 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
3989 ndr
->offset
= _relative_save_offset
;
3992 return NDR_ERR_SUCCESS
;
3995 _PUBLIC_
void ndr_print_spoolss_JobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo2
*r
)
3997 ndr_print_struct(ndr
, name
, "spoolss_JobInfo2");
3999 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4000 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4002 if (r
->printer_name
) {
4003 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4006 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4008 if (r
->server_name
) {
4009 ndr_print_string(ndr
, "server_name", r
->server_name
);
4012 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4015 ndr_print_string(ndr
, "user_name", r
->user_name
);
4018 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4020 if (r
->document_name
) {
4021 ndr_print_string(ndr
, "document_name", r
->document_name
);
4024 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
4026 if (r
->notify_name
) {
4027 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
4030 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4033 ndr_print_string(ndr
, "data_type", r
->data_type
);
4036 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
4038 if (r
->print_processor
) {
4039 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
4042 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
4044 if (r
->parameters
) {
4045 ndr_print_string(ndr
, "parameters", r
->parameters
);
4048 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
4050 if (r
->driver_name
) {
4051 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
4054 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
4057 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
4060 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4062 if (r
->text_status
) {
4063 ndr_print_string(ndr
, "text_status", r
->text_status
);
4066 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
4069 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
4072 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4073 ndr_print_uint32(ndr
, "priority", r
->priority
);
4074 ndr_print_uint32(ndr
, "position", r
->position
);
4075 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
4076 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
4077 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4078 ndr_print_uint32(ndr
, "size", r
->size
);
4079 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4080 ndr_print_uint32(ndr
, "time", r
->time
);
4081 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4085 _PUBLIC_
size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4087 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo2
, ic
);
4090 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo3
*r
)
4092 if (ndr_flags
& NDR_SCALARS
) {
4093 NDR_CHECK(ndr_push_align(ndr
, 4));
4094 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4095 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->next_job_id
));
4096 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
4097 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
4099 if (ndr_flags
& NDR_BUFFERS
) {
4101 return NDR_ERR_SUCCESS
;
4104 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo3
*r
)
4106 if (ndr_flags
& NDR_SCALARS
) {
4107 NDR_CHECK(ndr_pull_align(ndr
, 4));
4108 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4109 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->next_job_id
));
4110 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
4111 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
4113 if (ndr_flags
& NDR_BUFFERS
) {
4115 return NDR_ERR_SUCCESS
;
4118 _PUBLIC_
void ndr_print_spoolss_JobInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo3
*r
)
4120 ndr_print_struct(ndr
, name
, "spoolss_JobInfo3");
4122 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4123 ndr_print_uint32(ndr
, "next_job_id", r
->next_job_id
);
4124 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
4128 _PUBLIC_
size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4130 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo3
, ic
);
4133 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo4
*r
)
4135 if (ndr_flags
& NDR_SCALARS
) {
4136 NDR_CHECK(ndr_push_align(ndr
, 5));
4137 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4139 uint32_t _flags_save_string
= ndr
->flags
;
4140 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4141 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
4142 ndr
->flags
= _flags_save_string
;
4145 uint32_t _flags_save_string
= ndr
->flags
;
4146 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4147 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
4148 ndr
->flags
= _flags_save_string
;
4151 uint32_t _flags_save_string
= ndr
->flags
;
4152 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4153 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
4154 ndr
->flags
= _flags_save_string
;
4157 uint32_t _flags_save_string
= ndr
->flags
;
4158 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4159 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
4160 ndr
->flags
= _flags_save_string
;
4163 uint32_t _flags_save_string
= ndr
->flags
;
4164 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4165 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
4166 ndr
->flags
= _flags_save_string
;
4169 uint32_t _flags_save_string
= ndr
->flags
;
4170 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4171 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
4172 ndr
->flags
= _flags_save_string
;
4175 uint32_t _flags_save_string
= ndr
->flags
;
4176 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4177 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
4178 ndr
->flags
= _flags_save_string
;
4181 uint32_t _flags_save_string
= ndr
->flags
;
4182 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4183 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
4184 ndr
->flags
= _flags_save_string
;
4187 uint32_t _flags_save_string
= ndr
->flags
;
4188 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4189 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
4190 ndr
->flags
= _flags_save_string
;
4192 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
4194 uint32_t _flags_save_string
= ndr
->flags
;
4195 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4196 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
4197 ndr
->flags
= _flags_save_string
;
4199 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
4200 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4202 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4203 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
4204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
4205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4206 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
4207 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4208 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
4209 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4210 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
4211 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
4213 if (ndr_flags
& NDR_BUFFERS
) {
4215 uint32_t _flags_save_string
= ndr
->flags
;
4216 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4217 if (r
->printer_name
) {
4218 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
4219 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
4221 ndr
->flags
= _flags_save_string
;
4224 uint32_t _flags_save_string
= ndr
->flags
;
4225 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4226 if (r
->server_name
) {
4227 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
4228 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
4230 ndr
->flags
= _flags_save_string
;
4233 uint32_t _flags_save_string
= ndr
->flags
;
4234 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4236 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
4237 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
4239 ndr
->flags
= _flags_save_string
;
4242 uint32_t _flags_save_string
= ndr
->flags
;
4243 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4244 if (r
->document_name
) {
4245 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
4246 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
4248 ndr
->flags
= _flags_save_string
;
4251 uint32_t _flags_save_string
= ndr
->flags
;
4252 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4253 if (r
->notify_name
) {
4254 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->notify_name
));
4255 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
4257 ndr
->flags
= _flags_save_string
;
4260 uint32_t _flags_save_string
= ndr
->flags
;
4261 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4263 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
4264 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
4266 ndr
->flags
= _flags_save_string
;
4269 uint32_t _flags_save_string
= ndr
->flags
;
4270 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4271 if (r
->print_processor
) {
4272 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
4273 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
4275 ndr
->flags
= _flags_save_string
;
4278 uint32_t _flags_save_string
= ndr
->flags
;
4279 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4280 if (r
->parameters
) {
4281 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
4282 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
4284 ndr
->flags
= _flags_save_string
;
4287 uint32_t _flags_save_string
= ndr
->flags
;
4288 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4289 if (r
->driver_name
) {
4290 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
4291 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
4293 ndr
->flags
= _flags_save_string
;
4296 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
4297 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
4300 uint32_t _flags_save_string
= ndr
->flags
;
4301 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4302 if (r
->text_status
) {
4303 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
4304 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
4306 ndr
->flags
= _flags_save_string
;
4309 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
4310 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4313 return NDR_ERR_SUCCESS
;
4316 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo4
*r
)
4318 uint32_t _ptr_printer_name
;
4319 TALLOC_CTX
*_mem_save_printer_name_0
;
4320 uint32_t _ptr_server_name
;
4321 TALLOC_CTX
*_mem_save_server_name_0
;
4322 uint32_t _ptr_user_name
;
4323 TALLOC_CTX
*_mem_save_user_name_0
;
4324 uint32_t _ptr_document_name
;
4325 TALLOC_CTX
*_mem_save_document_name_0
;
4326 uint32_t _ptr_notify_name
;
4327 TALLOC_CTX
*_mem_save_notify_name_0
;
4328 uint32_t _ptr_data_type
;
4329 TALLOC_CTX
*_mem_save_data_type_0
;
4330 uint32_t _ptr_print_processor
;
4331 TALLOC_CTX
*_mem_save_print_processor_0
;
4332 uint32_t _ptr_parameters
;
4333 TALLOC_CTX
*_mem_save_parameters_0
;
4334 uint32_t _ptr_driver_name
;
4335 TALLOC_CTX
*_mem_save_driver_name_0
;
4336 uint32_t _ptr_devmode
;
4337 TALLOC_CTX
*_mem_save_devmode_0
;
4338 uint32_t _ptr_text_status
;
4339 TALLOC_CTX
*_mem_save_text_status_0
;
4340 uint32_t _ptr_secdesc
;
4341 TALLOC_CTX
*_mem_save_secdesc_0
;
4342 if (ndr_flags
& NDR_SCALARS
) {
4343 NDR_CHECK(ndr_pull_align(ndr
, 5));
4344 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4346 uint32_t _flags_save_string
= ndr
->flags
;
4347 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4348 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
4349 if (_ptr_printer_name
) {
4350 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
4351 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
4353 r
->printer_name
= NULL
;
4355 ndr
->flags
= _flags_save_string
;
4358 uint32_t _flags_save_string
= ndr
->flags
;
4359 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4360 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4361 if (_ptr_server_name
) {
4362 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4363 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
4365 r
->server_name
= NULL
;
4367 ndr
->flags
= _flags_save_string
;
4370 uint32_t _flags_save_string
= ndr
->flags
;
4371 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4372 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4373 if (_ptr_user_name
) {
4374 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4375 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
4377 r
->user_name
= NULL
;
4379 ndr
->flags
= _flags_save_string
;
4382 uint32_t _flags_save_string
= ndr
->flags
;
4383 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4384 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4385 if (_ptr_document_name
) {
4386 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4387 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
4389 r
->document_name
= NULL
;
4391 ndr
->flags
= _flags_save_string
;
4394 uint32_t _flags_save_string
= ndr
->flags
;
4395 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4396 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
4397 if (_ptr_notify_name
) {
4398 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
4399 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
4401 r
->notify_name
= NULL
;
4403 ndr
->flags
= _flags_save_string
;
4406 uint32_t _flags_save_string
= ndr
->flags
;
4407 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4408 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4409 if (_ptr_data_type
) {
4410 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4411 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
4413 r
->data_type
= NULL
;
4415 ndr
->flags
= _flags_save_string
;
4418 uint32_t _flags_save_string
= ndr
->flags
;
4419 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4420 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
4421 if (_ptr_print_processor
) {
4422 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
4423 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
4425 r
->print_processor
= NULL
;
4427 ndr
->flags
= _flags_save_string
;
4430 uint32_t _flags_save_string
= ndr
->flags
;
4431 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4432 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
4433 if (_ptr_parameters
) {
4434 NDR_PULL_ALLOC(ndr
, r
->parameters
);
4435 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
4437 r
->parameters
= NULL
;
4439 ndr
->flags
= _flags_save_string
;
4442 uint32_t _flags_save_string
= ndr
->flags
;
4443 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4444 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
4445 if (_ptr_driver_name
) {
4446 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
4447 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
4449 r
->driver_name
= NULL
;
4451 ndr
->flags
= _flags_save_string
;
4453 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
4455 NDR_PULL_ALLOC(ndr
, r
->devmode
);
4456 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
4461 uint32_t _flags_save_string
= ndr
->flags
;
4462 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4463 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4464 if (_ptr_text_status
) {
4465 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4466 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
4468 r
->text_status
= NULL
;
4470 ndr
->flags
= _flags_save_string
;
4472 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
4474 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
4475 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
4479 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4480 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4481 if (r
->priority
> 99) {
4482 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4484 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4485 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
4486 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
4487 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4488 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
4489 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4490 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
4491 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4492 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
4493 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
4495 if (ndr_flags
& NDR_BUFFERS
) {
4497 uint32_t _flags_save_string
= ndr
->flags
;
4498 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4499 if (r
->printer_name
) {
4500 uint32_t _relative_save_offset
;
4501 _relative_save_offset
= ndr
->offset
;
4502 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
4503 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4504 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4505 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
4506 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4507 ndr
->offset
= _relative_save_offset
;
4509 ndr
->flags
= _flags_save_string
;
4512 uint32_t _flags_save_string
= ndr
->flags
;
4513 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4514 if (r
->server_name
) {
4515 uint32_t _relative_save_offset
;
4516 _relative_save_offset
= ndr
->offset
;
4517 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
4518 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4519 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4520 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
4521 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4522 ndr
->offset
= _relative_save_offset
;
4524 ndr
->flags
= _flags_save_string
;
4527 uint32_t _flags_save_string
= ndr
->flags
;
4528 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4530 uint32_t _relative_save_offset
;
4531 _relative_save_offset
= ndr
->offset
;
4532 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
4533 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4534 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4535 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
4536 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4537 ndr
->offset
= _relative_save_offset
;
4539 ndr
->flags
= _flags_save_string
;
4542 uint32_t _flags_save_string
= ndr
->flags
;
4543 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4544 if (r
->document_name
) {
4545 uint32_t _relative_save_offset
;
4546 _relative_save_offset
= ndr
->offset
;
4547 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
4548 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4549 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4550 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
4551 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4552 ndr
->offset
= _relative_save_offset
;
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 if (r
->notify_name
) {
4560 uint32_t _relative_save_offset
;
4561 _relative_save_offset
= ndr
->offset
;
4562 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
4563 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4564 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
4565 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
4566 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
4567 ndr
->offset
= _relative_save_offset
;
4569 ndr
->flags
= _flags_save_string
;
4572 uint32_t _flags_save_string
= ndr
->flags
;
4573 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4575 uint32_t _relative_save_offset
;
4576 _relative_save_offset
= ndr
->offset
;
4577 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
4578 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4579 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4580 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
4581 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4582 ndr
->offset
= _relative_save_offset
;
4584 ndr
->flags
= _flags_save_string
;
4587 uint32_t _flags_save_string
= ndr
->flags
;
4588 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4589 if (r
->print_processor
) {
4590 uint32_t _relative_save_offset
;
4591 _relative_save_offset
= ndr
->offset
;
4592 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
4593 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4594 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
4595 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
4596 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
4597 ndr
->offset
= _relative_save_offset
;
4599 ndr
->flags
= _flags_save_string
;
4602 uint32_t _flags_save_string
= ndr
->flags
;
4603 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4604 if (r
->parameters
) {
4605 uint32_t _relative_save_offset
;
4606 _relative_save_offset
= ndr
->offset
;
4607 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
4608 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4609 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
4610 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
4611 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
4612 ndr
->offset
= _relative_save_offset
;
4614 ndr
->flags
= _flags_save_string
;
4617 uint32_t _flags_save_string
= ndr
->flags
;
4618 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4619 if (r
->driver_name
) {
4620 uint32_t _relative_save_offset
;
4621 _relative_save_offset
= ndr
->offset
;
4622 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
4623 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4624 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
4625 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
4626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
4627 ndr
->offset
= _relative_save_offset
;
4629 ndr
->flags
= _flags_save_string
;
4632 uint32_t _relative_save_offset
;
4633 _relative_save_offset
= ndr
->offset
;
4634 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
4635 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4636 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
4637 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
4638 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
4639 ndr
->offset
= _relative_save_offset
;
4642 uint32_t _flags_save_string
= ndr
->flags
;
4643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4644 if (r
->text_status
) {
4645 uint32_t _relative_save_offset
;
4646 _relative_save_offset
= ndr
->offset
;
4647 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
4648 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4649 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4650 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
4651 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4652 ndr
->offset
= _relative_save_offset
;
4654 ndr
->flags
= _flags_save_string
;
4657 uint32_t _relative_save_offset
;
4658 _relative_save_offset
= ndr
->offset
;
4659 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
4660 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4661 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
4662 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4663 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
4664 ndr
->offset
= _relative_save_offset
;
4667 return NDR_ERR_SUCCESS
;
4670 _PUBLIC_
void ndr_print_spoolss_JobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo4
*r
)
4672 ndr_print_struct(ndr
, name
, "spoolss_JobInfo4");
4674 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4675 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4677 if (r
->printer_name
) {
4678 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4681 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4683 if (r
->server_name
) {
4684 ndr_print_string(ndr
, "server_name", r
->server_name
);
4687 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4690 ndr_print_string(ndr
, "user_name", r
->user_name
);
4693 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4695 if (r
->document_name
) {
4696 ndr_print_string(ndr
, "document_name", r
->document_name
);
4699 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
4701 if (r
->notify_name
) {
4702 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
4705 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4708 ndr_print_string(ndr
, "data_type", r
->data_type
);
4711 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
4713 if (r
->print_processor
) {
4714 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
4717 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
4719 if (r
->parameters
) {
4720 ndr_print_string(ndr
, "parameters", r
->parameters
);
4723 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
4725 if (r
->driver_name
) {
4726 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
4729 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
4732 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
4735 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4737 if (r
->text_status
) {
4738 ndr_print_string(ndr
, "text_status", r
->text_status
);
4741 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
4744 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
4747 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4748 ndr_print_uint32(ndr
, "priority", r
->priority
);
4749 ndr_print_uint32(ndr
, "position", r
->position
);
4750 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
4751 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
4752 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4753 ndr_print_uint32(ndr
, "size", r
->size
);
4754 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4755 ndr_print_uint32(ndr
, "time", r
->time
);
4756 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4757 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
4761 _PUBLIC_
size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4763 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo4
, ic
);
4766 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_JobInfo
*r
)
4768 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
4769 if (ndr_flags
& NDR_SCALARS
) {
4770 int level
= ndr_push_get_switch_value(ndr
, r
);
4771 NDR_CHECK(ndr_push_union_align(ndr
, 5));
4774 NDR_CHECK(ndr_push_align(ndr
, 5));
4775 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4776 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4780 NDR_CHECK(ndr_push_align(ndr
, 5));
4781 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4782 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4786 NDR_CHECK(ndr_push_align(ndr
, 4));
4787 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4788 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4792 NDR_CHECK(ndr_push_align(ndr
, 5));
4793 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4794 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4802 if (ndr_flags
& NDR_BUFFERS
) {
4803 int level
= ndr_push_get_switch_value(ndr
, r
);
4804 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
4807 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4811 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4818 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4826 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4827 return NDR_ERR_SUCCESS
;
4830 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_JobInfo
*r
)
4832 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
4834 level
= ndr_pull_get_switch_value(ndr
, r
);
4835 if (ndr_flags
& NDR_SCALARS
) {
4836 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
4839 NDR_CHECK(ndr_pull_align(ndr
, 5));
4840 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4841 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4845 NDR_CHECK(ndr_pull_align(ndr
, 5));
4846 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4847 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4851 NDR_CHECK(ndr_pull_align(ndr
, 4));
4852 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4853 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4857 NDR_CHECK(ndr_pull_align(ndr
, 5));
4858 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4859 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4867 if (ndr_flags
& NDR_BUFFERS
) {
4868 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
4871 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4875 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4882 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4890 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4891 return NDR_ERR_SUCCESS
;
4894 _PUBLIC_
void ndr_print_spoolss_JobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_JobInfo
*r
)
4897 level
= ndr_print_get_switch_value(ndr
, r
);
4898 ndr_print_union(ndr
, name
, level
, "spoolss_JobInfo");
4901 ndr_print_spoolss_JobInfo1(ndr
, "info1", &r
->info1
);
4905 ndr_print_spoolss_JobInfo2(ndr
, "info2", &r
->info2
);
4909 ndr_print_spoolss_JobInfo3(ndr
, "info3", &r
->info3
);
4913 ndr_print_spoolss_JobInfo4(ndr
, "info4", &r
->info4
);
4922 _PUBLIC_
size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
4924 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo
, ic
);
4927 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo1
*r
)
4929 if (ndr_flags
& NDR_SCALARS
) {
4930 NDR_CHECK(ndr_push_align(ndr
, 5));
4931 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4932 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
4933 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
4934 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
4935 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
4936 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
4937 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
4938 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4939 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4940 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4941 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4942 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4943 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4944 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
4946 if (ndr_flags
& NDR_BUFFERS
) {
4947 if (r
->printer_name
) {
4948 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4949 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4950 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4951 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4953 if (r
->server_name
) {
4954 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4955 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4956 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4957 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4960 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4961 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4962 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4963 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4965 if (r
->document_name
) {
4966 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4967 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4968 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4969 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4972 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4973 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4974 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4975 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4977 if (r
->text_status
) {
4978 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4979 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
4980 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4981 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4984 return NDR_ERR_SUCCESS
;
4987 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo1
*r
)
4989 uint32_t _ptr_printer_name
;
4990 TALLOC_CTX
*_mem_save_printer_name_0
;
4991 uint32_t _ptr_server_name
;
4992 TALLOC_CTX
*_mem_save_server_name_0
;
4993 uint32_t _ptr_user_name
;
4994 TALLOC_CTX
*_mem_save_user_name_0
;
4995 uint32_t _ptr_document_name
;
4996 TALLOC_CTX
*_mem_save_document_name_0
;
4997 uint32_t _ptr_data_type
;
4998 TALLOC_CTX
*_mem_save_data_type_0
;
4999 uint32_t _ptr_text_status
;
5000 TALLOC_CTX
*_mem_save_text_status_0
;
5001 if (ndr_flags
& NDR_SCALARS
) {
5002 NDR_CHECK(ndr_pull_align(ndr
, 5));
5003 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5004 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5005 if (_ptr_printer_name
) {
5006 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5008 r
->printer_name
= NULL
;
5010 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5011 if (_ptr_server_name
) {
5012 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5014 r
->server_name
= NULL
;
5016 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5017 if (_ptr_user_name
) {
5018 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5020 r
->user_name
= NULL
;
5022 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5023 if (_ptr_document_name
) {
5024 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5026 r
->document_name
= NULL
;
5028 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5029 if (_ptr_data_type
) {
5030 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5032 r
->data_type
= NULL
;
5034 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5035 if (_ptr_text_status
) {
5036 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5038 r
->text_status
= NULL
;
5040 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5041 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5042 if (r
->priority
> 99) {
5043 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5045 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5046 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5047 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5048 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5049 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
5051 if (ndr_flags
& NDR_BUFFERS
) {
5052 if (r
->printer_name
) {
5053 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5054 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5055 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5056 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5057 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
5058 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
));
5060 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
5061 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
5062 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5064 if (r
->server_name
) {
5065 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5066 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5067 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5068 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5069 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
5070 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
));
5072 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
5073 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
5074 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5077 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5078 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5079 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5080 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5081 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
5082 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
));
5084 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
5085 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
5086 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5088 if (r
->document_name
) {
5089 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5090 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5091 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5092 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5093 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
5094 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
));
5096 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
5097 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
5098 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5101 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5102 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5103 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5104 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5105 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
5106 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
));
5108 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
5109 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
5110 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5112 if (r
->text_status
) {
5113 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5114 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5115 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5116 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
5117 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
5118 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
));
5120 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
5121 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
5122 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5125 return NDR_ERR_SUCCESS
;
5128 _PUBLIC_
void ndr_print_spoolss_SetJobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo1
*r
)
5130 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo1");
5132 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5133 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5135 if (r
->printer_name
) {
5136 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5139 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5141 if (r
->server_name
) {
5142 ndr_print_string(ndr
, "server_name", r
->server_name
);
5145 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5148 ndr_print_string(ndr
, "user_name", r
->user_name
);
5151 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5153 if (r
->document_name
) {
5154 ndr_print_string(ndr
, "document_name", r
->document_name
);
5157 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5160 ndr_print_string(ndr
, "data_type", r
->data_type
);
5163 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5165 if (r
->text_status
) {
5166 ndr_print_string(ndr
, "text_status", r
->text_status
);
5169 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5170 ndr_print_uint32(ndr
, "priority", r
->priority
);
5171 ndr_print_uint32(ndr
, "position", r
->position
);
5172 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5173 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5174 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5178 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo2
*r
)
5180 if (ndr_flags
& NDR_SCALARS
) {
5181 NDR_CHECK(ndr_push_align(ndr
, 5));
5182 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
5183 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
5184 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
5185 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
5186 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
5187 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
5188 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
5189 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
5190 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
5191 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
5192 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
5193 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
5194 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
5195 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
5196 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
5197 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
5198 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
5199 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
5200 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
5202 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5203 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
5204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
5205 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
5207 if (ndr_flags
& NDR_BUFFERS
) {
5208 if (r
->printer_name
) {
5209 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5210 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5211 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5212 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5214 if (r
->server_name
) {
5215 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5216 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5217 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5218 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5221 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5222 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5223 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5224 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5226 if (r
->document_name
) {
5227 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5228 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5229 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5230 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5232 if (r
->notify_name
) {
5233 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5234 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5235 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5236 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5239 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5240 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5241 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5242 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5244 if (r
->print_processor
) {
5245 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5246 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5247 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5248 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5250 if (r
->parameters
) {
5251 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5252 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5253 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5254 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5256 if (r
->driver_name
) {
5257 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5258 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5259 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5260 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5262 if (r
->text_status
) {
5263 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5264 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5265 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5266 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5269 return NDR_ERR_SUCCESS
;
5272 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo2
*r
)
5274 uint32_t _ptr_printer_name
;
5275 TALLOC_CTX
*_mem_save_printer_name_0
;
5276 uint32_t _ptr_server_name
;
5277 TALLOC_CTX
*_mem_save_server_name_0
;
5278 uint32_t _ptr_user_name
;
5279 TALLOC_CTX
*_mem_save_user_name_0
;
5280 uint32_t _ptr_document_name
;
5281 TALLOC_CTX
*_mem_save_document_name_0
;
5282 uint32_t _ptr_notify_name
;
5283 TALLOC_CTX
*_mem_save_notify_name_0
;
5284 uint32_t _ptr_data_type
;
5285 TALLOC_CTX
*_mem_save_data_type_0
;
5286 uint32_t _ptr_print_processor
;
5287 TALLOC_CTX
*_mem_save_print_processor_0
;
5288 uint32_t _ptr_parameters
;
5289 TALLOC_CTX
*_mem_save_parameters_0
;
5290 uint32_t _ptr_driver_name
;
5291 TALLOC_CTX
*_mem_save_driver_name_0
;
5292 uint32_t _ptr_text_status
;
5293 TALLOC_CTX
*_mem_save_text_status_0
;
5294 if (ndr_flags
& NDR_SCALARS
) {
5295 NDR_CHECK(ndr_pull_align(ndr
, 5));
5296 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5297 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5298 if (_ptr_printer_name
) {
5299 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5301 r
->printer_name
= NULL
;
5303 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5304 if (_ptr_server_name
) {
5305 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5307 r
->server_name
= NULL
;
5309 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5310 if (_ptr_user_name
) {
5311 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5313 r
->user_name
= NULL
;
5315 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5316 if (_ptr_document_name
) {
5317 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5319 r
->document_name
= NULL
;
5321 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
5322 if (_ptr_notify_name
) {
5323 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
5325 r
->notify_name
= NULL
;
5327 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5328 if (_ptr_data_type
) {
5329 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5331 r
->data_type
= NULL
;
5333 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
5334 if (_ptr_print_processor
) {
5335 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
5337 r
->print_processor
= NULL
;
5339 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
5340 if (_ptr_parameters
) {
5341 NDR_PULL_ALLOC(ndr
, r
->parameters
);
5343 r
->parameters
= NULL
;
5345 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
5346 if (_ptr_driver_name
) {
5347 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
5349 r
->driver_name
= NULL
;
5351 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
5352 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5353 if (_ptr_text_status
) {
5354 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5356 r
->text_status
= NULL
;
5358 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
5359 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5360 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5361 if (r
->priority
> 99) {
5362 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5364 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5365 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
5366 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
5367 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5368 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
5369 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5370 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
5371 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5372 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
5374 if (ndr_flags
& NDR_BUFFERS
) {
5375 if (r
->printer_name
) {
5376 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5377 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5378 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5379 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5380 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
5381 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
));
5383 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
5384 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
5385 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5387 if (r
->server_name
) {
5388 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5389 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5390 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5391 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5392 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
5393 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
));
5395 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
5396 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
5397 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5400 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5401 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5402 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5403 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5404 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
5405 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->user_name
), ndr_get_array_length(ndr
, &r
->user_name
));
5407 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
5408 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
5409 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5411 if (r
->document_name
) {
5412 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5413 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5414 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5415 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5416 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
5417 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->document_name
), ndr_get_array_length(ndr
, &r
->document_name
));
5419 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
5420 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
5421 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5423 if (r
->notify_name
) {
5424 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5425 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
5426 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
5427 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
5428 if (ndr_get_array_length(ndr
, &r
->notify_name
) > ndr_get_array_size(ndr
, &r
->notify_name
)) {
5429 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
));
5431 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t)));
5432 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t), CH_UTF16
));
5433 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
5436 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5437 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5438 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5439 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5440 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
5441 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
));
5443 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
5444 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
5445 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5447 if (r
->print_processor
) {
5448 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5449 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
5450 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
5451 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
5452 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
5453 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
));
5455 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
5456 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
5457 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
5459 if (r
->parameters
) {
5460 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5461 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
5462 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
5463 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
5464 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
5465 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
));
5467 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
5468 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
5469 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
5471 if (r
->driver_name
) {
5472 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5473 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
5474 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
5475 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
5476 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
5477 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
));
5479 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
5480 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
5481 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
5483 if (r
->text_status
) {
5484 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5485 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5486 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5487 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
5488 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
5489 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
));
5491 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
5492 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
5493 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5496 return NDR_ERR_SUCCESS
;
5499 _PUBLIC_
void ndr_print_spoolss_SetJobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo2
*r
)
5501 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo2");
5503 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5504 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5506 if (r
->printer_name
) {
5507 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5510 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5512 if (r
->server_name
) {
5513 ndr_print_string(ndr
, "server_name", r
->server_name
);
5516 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5519 ndr_print_string(ndr
, "user_name", r
->user_name
);
5522 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5524 if (r
->document_name
) {
5525 ndr_print_string(ndr
, "document_name", r
->document_name
);
5528 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
5530 if (r
->notify_name
) {
5531 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
5534 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5537 ndr_print_string(ndr
, "data_type", r
->data_type
);
5540 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
5542 if (r
->print_processor
) {
5543 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
5546 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
5548 if (r
->parameters
) {
5549 ndr_print_string(ndr
, "parameters", r
->parameters
);
5552 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
5554 if (r
->driver_name
) {
5555 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
5558 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
5559 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5561 if (r
->text_status
) {
5562 ndr_print_string(ndr
, "text_status", r
->text_status
);
5565 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
5566 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5567 ndr_print_uint32(ndr
, "priority", r
->priority
);
5568 ndr_print_uint32(ndr
, "position", r
->position
);
5569 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
5570 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
5571 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5572 ndr_print_uint32(ndr
, "size", r
->size
);
5573 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5574 ndr_print_uint32(ndr
, "time", r
->time
);
5575 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5579 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo4
*r
)
5581 if (ndr_flags
& NDR_SCALARS
) {
5582 NDR_CHECK(ndr_push_align(ndr
, 5));
5583 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
5584 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
5585 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
5586 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
5587 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
5588 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
5589 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
5590 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
5591 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
5592 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
5593 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
5594 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
5595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
5596 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
5597 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
5598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
5599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
5600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
5601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
5603 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5604 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
5605 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
5606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
5607 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
5609 if (ndr_flags
& NDR_BUFFERS
) {
5610 if (r
->printer_name
) {
5611 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5612 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5613 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5614 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5616 if (r
->server_name
) {
5617 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5618 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5619 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5620 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5623 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5624 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5625 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5626 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5628 if (r
->document_name
) {
5629 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5630 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5631 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5632 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5634 if (r
->notify_name
) {
5635 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5636 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5637 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5638 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5641 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5642 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5643 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5644 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5646 if (r
->print_processor
) {
5647 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5648 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5649 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5650 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5652 if (r
->parameters
) {
5653 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5654 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5655 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5656 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5658 if (r
->driver_name
) {
5659 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5660 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5661 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5662 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5664 if (r
->text_status
) {
5665 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5666 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
5667 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5668 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5671 return NDR_ERR_SUCCESS
;
5674 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo4
*r
)
5676 uint32_t _ptr_printer_name
;
5677 TALLOC_CTX
*_mem_save_printer_name_0
;
5678 uint32_t _ptr_server_name
;
5679 TALLOC_CTX
*_mem_save_server_name_0
;
5680 uint32_t _ptr_user_name
;
5681 TALLOC_CTX
*_mem_save_user_name_0
;
5682 uint32_t _ptr_document_name
;
5683 TALLOC_CTX
*_mem_save_document_name_0
;
5684 uint32_t _ptr_notify_name
;
5685 TALLOC_CTX
*_mem_save_notify_name_0
;
5686 uint32_t _ptr_data_type
;
5687 TALLOC_CTX
*_mem_save_data_type_0
;
5688 uint32_t _ptr_print_processor
;
5689 TALLOC_CTX
*_mem_save_print_processor_0
;
5690 uint32_t _ptr_parameters
;
5691 TALLOC_CTX
*_mem_save_parameters_0
;
5692 uint32_t _ptr_driver_name
;
5693 TALLOC_CTX
*_mem_save_driver_name_0
;
5694 uint32_t _ptr_text_status
;
5695 TALLOC_CTX
*_mem_save_text_status_0
;
5696 if (ndr_flags
& NDR_SCALARS
) {
5697 NDR_CHECK(ndr_pull_align(ndr
, 5));
5698 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5699 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5700 if (_ptr_printer_name
) {
5701 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5703 r
->printer_name
= NULL
;
5705 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5706 if (_ptr_server_name
) {
5707 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5709 r
->server_name
= NULL
;
5711 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5712 if (_ptr_user_name
) {
5713 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5715 r
->user_name
= NULL
;
5717 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5718 if (_ptr_document_name
) {
5719 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5721 r
->document_name
= NULL
;
5723 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
5724 if (_ptr_notify_name
) {
5725 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
5727 r
->notify_name
= NULL
;
5729 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5730 if (_ptr_data_type
) {
5731 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5733 r
->data_type
= NULL
;
5735 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
5736 if (_ptr_print_processor
) {
5737 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
5739 r
->print_processor
= NULL
;
5741 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
5742 if (_ptr_parameters
) {
5743 NDR_PULL_ALLOC(ndr
, r
->parameters
);
5745 r
->parameters
= NULL
;
5747 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
5748 if (_ptr_driver_name
) {
5749 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
5751 r
->driver_name
= NULL
;
5753 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
5754 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5755 if (_ptr_text_status
) {
5756 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5758 r
->text_status
= NULL
;
5760 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
5761 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5762 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5763 if (r
->priority
> 99) {
5764 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5766 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5767 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
5768 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
5769 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5770 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
5771 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5772 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
5773 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5774 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
5775 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
5777 if (ndr_flags
& NDR_BUFFERS
) {
5778 if (r
->printer_name
) {
5779 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5780 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5781 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5782 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5783 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
5784 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
));
5786 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
5787 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
5788 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5790 if (r
->server_name
) {
5791 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5792 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5793 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5794 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5795 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
5796 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
));
5798 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
5799 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
5800 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5803 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5804 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5805 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5806 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5807 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
5808 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
));
5810 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
5811 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
5812 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5814 if (r
->document_name
) {
5815 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5816 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5817 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5818 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5819 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
5820 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
));
5822 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
5823 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
5824 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5826 if (r
->notify_name
) {
5827 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5828 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
5829 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
5830 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
5831 if (ndr_get_array_length(ndr
, &r
->notify_name
) > ndr_get_array_size(ndr
, &r
->notify_name
)) {
5832 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
));
5834 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t)));
5835 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t), CH_UTF16
));
5836 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
5839 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5840 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5841 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5842 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5843 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
5844 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
));
5846 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
5847 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
5848 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5850 if (r
->print_processor
) {
5851 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5852 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
5853 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
5854 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
5855 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
5856 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
));
5858 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
5859 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
5860 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
5862 if (r
->parameters
) {
5863 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5864 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
5865 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
5866 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
5867 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
5868 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
));
5870 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
5871 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
5872 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
5874 if (r
->driver_name
) {
5875 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5876 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
5877 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
5878 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
5879 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
5880 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
));
5882 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
5883 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
5884 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
5886 if (r
->text_status
) {
5887 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5888 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5889 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5890 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
5891 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
5892 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
));
5894 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
5895 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
5896 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5899 return NDR_ERR_SUCCESS
;
5902 _PUBLIC_
void ndr_print_spoolss_SetJobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo4
*r
)
5904 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo4");
5906 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5907 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5909 if (r
->printer_name
) {
5910 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5913 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5915 if (r
->server_name
) {
5916 ndr_print_string(ndr
, "server_name", r
->server_name
);
5919 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5922 ndr_print_string(ndr
, "user_name", r
->user_name
);
5925 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5927 if (r
->document_name
) {
5928 ndr_print_string(ndr
, "document_name", r
->document_name
);
5931 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
5933 if (r
->notify_name
) {
5934 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
5937 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5940 ndr_print_string(ndr
, "data_type", r
->data_type
);
5943 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
5945 if (r
->print_processor
) {
5946 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
5949 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
5951 if (r
->parameters
) {
5952 ndr_print_string(ndr
, "parameters", r
->parameters
);
5955 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
5957 if (r
->driver_name
) {
5958 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
5961 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
5962 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5964 if (r
->text_status
) {
5965 ndr_print_string(ndr
, "text_status", r
->text_status
);
5968 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
5969 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5970 ndr_print_uint32(ndr
, "priority", r
->priority
);
5971 ndr_print_uint32(ndr
, "position", r
->position
);
5972 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
5973 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
5974 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5975 ndr_print_uint32(ndr
, "size", r
->size
);
5976 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5977 ndr_print_uint32(ndr
, "time", r
->time
);
5978 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5979 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
5983 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_SetJobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetJobInfo
*r
)
5985 if (ndr_flags
& NDR_SCALARS
) {
5986 int level
= ndr_push_get_switch_value(ndr
, r
);
5987 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5988 NDR_CHECK(ndr_push_union_align(ndr
, 5));
5991 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
5995 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
5999 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
6003 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
6011 if (ndr_flags
& NDR_BUFFERS
) {
6012 int level
= ndr_push_get_switch_value(ndr
, r
);
6016 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
6022 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6028 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
6034 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6043 return NDR_ERR_SUCCESS
;
6046 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_SetJobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetJobInfo
*r
)
6050 TALLOC_CTX
*_mem_save_info1_0
;
6051 TALLOC_CTX
*_mem_save_info2_0
;
6052 TALLOC_CTX
*_mem_save_info3_0
;
6053 TALLOC_CTX
*_mem_save_info4_0
;
6054 level
= ndr_pull_get_switch_value(ndr
, r
);
6055 if (ndr_flags
& NDR_SCALARS
) {
6056 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
6057 if (_level
!= level
) {
6058 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
6060 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
6063 uint32_t _ptr_info1
;
6064 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
6066 NDR_PULL_ALLOC(ndr
, r
->info1
);
6073 uint32_t _ptr_info2
;
6074 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
6076 NDR_PULL_ALLOC(ndr
, r
->info2
);
6083 uint32_t _ptr_info3
;
6084 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
6086 NDR_PULL_ALLOC(ndr
, r
->info3
);
6093 uint32_t _ptr_info4
;
6094 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
6096 NDR_PULL_ALLOC(ndr
, r
->info4
);
6107 if (ndr_flags
& NDR_BUFFERS
) {
6111 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6112 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
6113 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
6114 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
6120 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6121 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
6122 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6123 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
6129 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6130 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
6131 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
6132 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
6138 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6139 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
6140 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6141 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
6150 return NDR_ERR_SUCCESS
;
6153 _PUBLIC_
void ndr_print_spoolss_SetJobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetJobInfo
*r
)
6156 level
= ndr_print_get_switch_value(ndr
, r
);
6157 ndr_print_union(ndr
, name
, level
, "spoolss_SetJobInfo");
6160 ndr_print_ptr(ndr
, "info1", r
->info1
);
6163 ndr_print_spoolss_SetJobInfo1(ndr
, "info1", r
->info1
);
6169 ndr_print_ptr(ndr
, "info2", r
->info2
);
6172 ndr_print_spoolss_SetJobInfo2(ndr
, "info2", r
->info2
);
6178 ndr_print_ptr(ndr
, "info3", r
->info3
);
6181 ndr_print_spoolss_JobInfo3(ndr
, "info3", r
->info3
);
6187 ndr_print_ptr(ndr
, "info4", r
->info4
);
6190 ndr_print_spoolss_SetJobInfo4(ndr
, "info4", r
->info4
);
6201 static enum ndr_err_code
ndr_push_spoolss_JobInfoContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfoContainer
*r
)
6203 if (ndr_flags
& NDR_SCALARS
) {
6204 NDR_CHECK(ndr_push_align(ndr
, 5));
6205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
6206 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
6207 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
6208 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6210 if (ndr_flags
& NDR_BUFFERS
) {
6211 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
6213 return NDR_ERR_SUCCESS
;
6216 static enum ndr_err_code
ndr_pull_spoolss_JobInfoContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfoContainer
*r
)
6218 if (ndr_flags
& NDR_SCALARS
) {
6219 NDR_CHECK(ndr_pull_align(ndr
, 5));
6220 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
6221 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
6222 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
6223 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6225 if (ndr_flags
& NDR_BUFFERS
) {
6226 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
6228 return NDR_ERR_SUCCESS
;
6231 _PUBLIC_
void ndr_print_spoolss_JobInfoContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfoContainer
*r
)
6233 ndr_print_struct(ndr
, name
, "spoolss_JobInfoContainer");
6235 ndr_print_uint32(ndr
, "level", r
->level
);
6236 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
6237 ndr_print_spoolss_SetJobInfo(ndr
, "info", &r
->info
);
6241 static enum ndr_err_code
ndr_push_spoolss_JobControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobControl r
)
6243 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
6244 return NDR_ERR_SUCCESS
;
6247 static enum ndr_err_code
ndr_pull_spoolss_JobControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobControl
*r
)
6250 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
6252 return NDR_ERR_SUCCESS
;
6255 _PUBLIC_
void ndr_print_spoolss_JobControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobControl r
)
6257 const char *val
= NULL
;
6260 case SPOOLSS_JOB_CONTROL_PAUSE
: val
= "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6261 case SPOOLSS_JOB_CONTROL_RESUME
: val
= "SPOOLSS_JOB_CONTROL_RESUME"; break;
6262 case SPOOLSS_JOB_CONTROL_CANCEL
: val
= "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6263 case SPOOLSS_JOB_CONTROL_RESTART
: val
= "SPOOLSS_JOB_CONTROL_RESTART"; break;
6264 case SPOOLSS_JOB_CONTROL_DELETE
: val
= "SPOOLSS_JOB_CONTROL_DELETE"; break;
6265 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER
: val
= "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6266 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED
: val
= "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6267 case SPOOLSS_JOB_CONTROL_RETAIN
: val
= "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6268 case SPOOLSS_JOB_CONTROL_RELEASE
: val
= "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6270 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6273 static enum ndr_err_code
ndr_push_spoolss_PrinterControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrinterControl r
)
6275 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
6276 return NDR_ERR_SUCCESS
;
6279 static enum ndr_err_code
ndr_pull_spoolss_PrinterControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrinterControl
*r
)
6282 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
6284 return NDR_ERR_SUCCESS
;
6287 _PUBLIC_
void ndr_print_spoolss_PrinterControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrinterControl r
)
6289 const char *val
= NULL
;
6292 case SPOOLSS_PRINTER_CONTROL_UNPAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6293 case SPOOLSS_PRINTER_CONTROL_PAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6294 case SPOOLSS_PRINTER_CONTROL_RESUME
: val
= "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6295 case SPOOLSS_PRINTER_CONTROL_PURGE
: val
= "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6296 case SPOOLSS_PRINTER_CONTROL_SET_STATUS
: val
= "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6298 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
6301 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo0
*r
)
6303 if (ndr_flags
& NDR_SCALARS
) {
6304 NDR_CHECK(ndr_push_align(ndr
, 5));
6305 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6306 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6307 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
6308 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
6309 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
6310 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
6311 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
6312 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
6313 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
6314 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
6315 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
6316 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
6317 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
6318 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
6319 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
6320 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_error
));
6321 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
6322 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
6323 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
6324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
6325 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
6326 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->status
));
6327 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
6328 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
6329 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
6330 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
6331 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
6332 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
6333 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
6334 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6336 if (ndr_flags
& NDR_BUFFERS
) {
6337 if (r
->servername
) {
6338 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6339 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6340 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6341 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6343 if (r
->printername
) {
6344 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6345 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6346 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6347 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6350 return NDR_ERR_SUCCESS
;
6353 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo0
*r
)
6355 uint32_t _ptr_servername
;
6356 TALLOC_CTX
*_mem_save_servername_0
;
6357 uint32_t _ptr_printername
;
6358 TALLOC_CTX
*_mem_save_printername_0
;
6359 if (ndr_flags
& NDR_SCALARS
) {
6360 NDR_CHECK(ndr_pull_align(ndr
, 5));
6361 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6362 if (_ptr_servername
) {
6363 NDR_PULL_ALLOC(ndr
, r
->servername
);
6365 r
->servername
= NULL
;
6367 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6368 if (_ptr_printername
) {
6369 NDR_PULL_ALLOC(ndr
, r
->printername
);
6371 r
->printername
= NULL
;
6373 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
6374 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
6375 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
6376 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
6377 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
6378 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
6379 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
6380 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
6381 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
6382 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
6383 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
6384 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
6385 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
6386 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_error
));
6387 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
6388 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
6389 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
6390 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
6391 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
6392 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->status
));
6393 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
6394 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
6395 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
6396 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
6397 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
6398 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
6399 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
6400 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6402 if (ndr_flags
& NDR_BUFFERS
) {
6403 if (r
->servername
) {
6404 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6405 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6406 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6407 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6408 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
6409 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
));
6411 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
6412 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
6413 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6415 if (r
->printername
) {
6416 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6417 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6418 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6419 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6420 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6421 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
));
6423 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6424 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6425 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6428 return NDR_ERR_SUCCESS
;
6431 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo0
*r
)
6433 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo0");
6435 ndr_print_ptr(ndr
, "servername", r
->servername
);
6437 if (r
->servername
) {
6438 ndr_print_string(ndr
, "servername", r
->servername
);
6441 ndr_print_ptr(ndr
, "printername", r
->printername
);
6443 if (r
->printername
) {
6444 ndr_print_string(ndr
, "printername", r
->printername
);
6447 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
6448 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
6449 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
6450 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
6451 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
6452 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
6453 ndr_print_uint32(ndr
, "version", r
->version
);
6454 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
6455 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
6456 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
6457 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
6458 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
6459 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
6460 ndr_print_uint32(ndr
, "job_error", r
->job_error
);
6461 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
6462 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
6463 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
6464 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
6465 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
6466 ndr_print_uint32(ndr
, "status", r
->status
);
6467 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
6468 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
6469 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
6470 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
6471 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
6472 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
6473 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
6477 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo1
*r
)
6479 if (ndr_flags
& NDR_SCALARS
) {
6480 NDR_CHECK(ndr_push_align(ndr
, 5));
6481 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->flags
));
6482 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->description
));
6483 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
6484 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
6485 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6487 if (ndr_flags
& NDR_BUFFERS
) {
6488 if (r
->description
) {
6489 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
6490 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6491 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
6492 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->description
, ndr_charset_length(r
->description
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6495 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
6496 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6497 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
6498 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6501 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6502 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6503 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6504 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6507 return NDR_ERR_SUCCESS
;
6510 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo1
*r
)
6512 uint32_t _ptr_description
;
6513 TALLOC_CTX
*_mem_save_description_0
;
6515 TALLOC_CTX
*_mem_save_name_0
;
6516 uint32_t _ptr_comment
;
6517 TALLOC_CTX
*_mem_save_comment_0
;
6518 if (ndr_flags
& NDR_SCALARS
) {
6519 NDR_CHECK(ndr_pull_align(ndr
, 5));
6520 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->flags
));
6521 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
6522 if (_ptr_description
) {
6523 NDR_PULL_ALLOC(ndr
, r
->description
);
6525 r
->description
= NULL
;
6527 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
6529 NDR_PULL_ALLOC(ndr
, r
->name
);
6533 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
6535 NDR_PULL_ALLOC(ndr
, r
->comment
);
6539 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6541 if (ndr_flags
& NDR_BUFFERS
) {
6542 if (r
->description
) {
6543 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6544 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
6545 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->description
));
6546 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->description
));
6547 if (ndr_get_array_length(ndr
, &r
->description
) > ndr_get_array_size(ndr
, &r
->description
)) {
6548 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
));
6550 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t)));
6551 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->description
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t), CH_UTF16
));
6552 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
6555 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6556 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
6557 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
6558 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
6559 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
6560 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
));
6562 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
6563 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
6564 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
6567 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6568 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
6569 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
6570 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
6571 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
6572 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
));
6574 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
6575 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
6576 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
6579 return NDR_ERR_SUCCESS
;
6582 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo1
*r
)
6584 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo1");
6586 ndr_print_spoolss_PrinterAttributes(ndr
, "flags", r
->flags
);
6587 ndr_print_ptr(ndr
, "description", r
->description
);
6589 if (r
->description
) {
6590 ndr_print_string(ndr
, "description", r
->description
);
6593 ndr_print_ptr(ndr
, "name", r
->name
);
6596 ndr_print_string(ndr
, "name", r
->name
);
6599 ndr_print_ptr(ndr
, "comment", r
->comment
);
6602 ndr_print_string(ndr
, "comment", r
->comment
);
6608 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo2
*r
)
6610 if (ndr_flags
& NDR_SCALARS
) {
6611 NDR_CHECK(ndr_push_align(ndr
, 5));
6612 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6613 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6614 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sharename
));
6615 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
6616 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->drivername
));
6617 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
6618 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->location
));
6619 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
6620 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sepfile
));
6621 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printprocessor
));
6622 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
6623 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
6624 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->secdesc
));
6625 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6626 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
6627 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
6628 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
6629 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
6630 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
6631 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
6632 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
6633 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
6635 if (ndr_flags
& NDR_BUFFERS
) {
6636 if (r
->servername
) {
6637 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6638 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6639 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6640 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6642 if (r
->printername
) {
6643 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6644 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6645 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6646 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6649 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
6650 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6651 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
6652 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sharename
, ndr_charset_length(r
->sharename
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6655 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6656 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6657 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6658 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6660 if (r
->drivername
) {
6661 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
6662 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6663 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
6664 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->drivername
, ndr_charset_length(r
->drivername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6667 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6668 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6669 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6670 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6673 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
6674 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6675 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
6676 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->location
, ndr_charset_length(r
->location
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6680 struct ndr_push
*_ndr_devmode
;
6681 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
6682 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
6683 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
6687 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6688 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6689 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6690 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sepfile
, ndr_charset_length(r
->sepfile
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6692 if (r
->printprocessor
) {
6693 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6694 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6695 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6696 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printprocessor
, ndr_charset_length(r
->printprocessor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6699 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6700 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6701 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6702 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6704 if (r
->parameters
) {
6705 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6706 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
6707 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6708 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6712 struct ndr_push
*_ndr_secdesc
;
6713 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
6714 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
6715 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
6719 return NDR_ERR_SUCCESS
;
6722 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo2
*r
)
6724 uint32_t _ptr_servername
;
6725 TALLOC_CTX
*_mem_save_servername_0
;
6726 uint32_t _ptr_printername
;
6727 TALLOC_CTX
*_mem_save_printername_0
;
6728 uint32_t _ptr_sharename
;
6729 TALLOC_CTX
*_mem_save_sharename_0
;
6730 uint32_t _ptr_portname
;
6731 TALLOC_CTX
*_mem_save_portname_0
;
6732 uint32_t _ptr_drivername
;
6733 TALLOC_CTX
*_mem_save_drivername_0
;
6734 uint32_t _ptr_comment
;
6735 TALLOC_CTX
*_mem_save_comment_0
;
6736 uint32_t _ptr_location
;
6737 TALLOC_CTX
*_mem_save_location_0
;
6738 uint32_t _ptr_devmode
;
6739 TALLOC_CTX
*_mem_save_devmode_0
;
6740 uint32_t _ptr_sepfile
;
6741 TALLOC_CTX
*_mem_save_sepfile_0
;
6742 uint32_t _ptr_printprocessor
;
6743 TALLOC_CTX
*_mem_save_printprocessor_0
;
6744 uint32_t _ptr_datatype
;
6745 TALLOC_CTX
*_mem_save_datatype_0
;
6746 uint32_t _ptr_parameters
;
6747 TALLOC_CTX
*_mem_save_parameters_0
;
6748 uint32_t _ptr_secdesc
;
6749 TALLOC_CTX
*_mem_save_secdesc_0
;
6750 if (ndr_flags
& NDR_SCALARS
) {
6751 NDR_CHECK(ndr_pull_align(ndr
, 5));
6752 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6753 if (_ptr_servername
) {
6754 NDR_PULL_ALLOC(ndr
, r
->servername
);
6756 r
->servername
= NULL
;
6758 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6759 if (_ptr_printername
) {
6760 NDR_PULL_ALLOC(ndr
, r
->printername
);
6762 r
->printername
= NULL
;
6764 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
6765 if (_ptr_sharename
) {
6766 NDR_PULL_ALLOC(ndr
, r
->sharename
);
6768 r
->sharename
= NULL
;
6770 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
6771 if (_ptr_portname
) {
6772 NDR_PULL_ALLOC(ndr
, r
->portname
);
6776 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
6777 if (_ptr_drivername
) {
6778 NDR_PULL_ALLOC(ndr
, r
->drivername
);
6780 r
->drivername
= NULL
;
6782 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
6784 NDR_PULL_ALLOC(ndr
, r
->comment
);
6788 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
6789 if (_ptr_location
) {
6790 NDR_PULL_ALLOC(ndr
, r
->location
);
6794 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
6796 NDR_PULL_ALLOC(ndr
, r
->devmode
);
6800 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
6802 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
6806 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
6807 if (_ptr_printprocessor
) {
6808 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
6810 r
->printprocessor
= NULL
;
6812 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
6813 if (_ptr_datatype
) {
6814 NDR_PULL_ALLOC(ndr
, r
->datatype
);
6818 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
6819 if (_ptr_parameters
) {
6820 NDR_PULL_ALLOC(ndr
, r
->parameters
);
6822 r
->parameters
= NULL
;
6824 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
6826 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
6830 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6831 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
6832 if (r
->priority
> 99) {
6833 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
6835 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
6836 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
6837 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
6838 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
6839 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
6840 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
6841 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
6843 if (ndr_flags
& NDR_BUFFERS
) {
6844 if (r
->servername
) {
6845 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6846 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6847 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6848 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6849 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
6850 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
));
6852 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
6853 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
6854 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6856 if (r
->printername
) {
6857 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6858 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6859 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6860 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6861 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6862 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
));
6864 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6865 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6866 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6869 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6870 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
6871 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sharename
));
6872 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sharename
));
6873 if (ndr_get_array_length(ndr
, &r
->sharename
) > ndr_get_array_size(ndr
, &r
->sharename
)) {
6874 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
));
6876 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t)));
6877 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sharename
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t), CH_UTF16
));
6878 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
6881 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6882 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
6883 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
6884 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
6885 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
6886 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
));
6888 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
6889 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
6890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
6892 if (r
->drivername
) {
6893 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6894 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
6895 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->drivername
));
6896 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->drivername
));
6897 if (ndr_get_array_length(ndr
, &r
->drivername
) > ndr_get_array_size(ndr
, &r
->drivername
)) {
6898 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
));
6900 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t)));
6901 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->drivername
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t), CH_UTF16
));
6902 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
6905 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6906 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
6907 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
6908 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
6909 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
6910 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
));
6912 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
6913 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
6914 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
6917 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6918 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
6919 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->location
));
6920 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->location
));
6921 if (ndr_get_array_length(ndr
, &r
->location
) > ndr_get_array_size(ndr
, &r
->location
)) {
6922 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
));
6924 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t)));
6925 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->location
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t), CH_UTF16
));
6926 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
6929 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6930 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
6932 struct ndr_pull
*_ndr_devmode
;
6933 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
6934 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
6935 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
6937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
6940 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6941 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
6942 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sepfile
));
6943 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sepfile
));
6944 if (ndr_get_array_length(ndr
, &r
->sepfile
) > ndr_get_array_size(ndr
, &r
->sepfile
)) {
6945 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
));
6947 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t)));
6948 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sepfile
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t), CH_UTF16
));
6949 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
6951 if (r
->printprocessor
) {
6952 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6953 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
6954 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printprocessor
));
6955 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printprocessor
));
6956 if (ndr_get_array_length(ndr
, &r
->printprocessor
) > ndr_get_array_size(ndr
, &r
->printprocessor
)) {
6957 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
));
6959 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t)));
6960 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printprocessor
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t), CH_UTF16
));
6961 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
6964 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6965 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
6966 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
6967 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
6968 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
6969 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
));
6971 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
6972 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
6973 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
6975 if (r
->parameters
) {
6976 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6977 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
6978 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
6979 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
6980 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
6981 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
));
6983 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
6984 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
6985 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
6988 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6989 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
6991 struct ndr_pull
*_ndr_secdesc
;
6992 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
6993 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
6994 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
6996 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
6999 return NDR_ERR_SUCCESS
;
7002 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo2
*r
)
7004 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo2");
7006 ndr_print_ptr(ndr
, "servername", r
->servername
);
7008 if (r
->servername
) {
7009 ndr_print_string(ndr
, "servername", r
->servername
);
7012 ndr_print_ptr(ndr
, "printername", r
->printername
);
7014 if (r
->printername
) {
7015 ndr_print_string(ndr
, "printername", r
->printername
);
7018 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
7021 ndr_print_string(ndr
, "sharename", r
->sharename
);
7024 ndr_print_ptr(ndr
, "portname", r
->portname
);
7027 ndr_print_string(ndr
, "portname", r
->portname
);
7030 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
7032 if (r
->drivername
) {
7033 ndr_print_string(ndr
, "drivername", r
->drivername
);
7036 ndr_print_ptr(ndr
, "comment", r
->comment
);
7039 ndr_print_string(ndr
, "comment", r
->comment
);
7042 ndr_print_ptr(ndr
, "location", r
->location
);
7045 ndr_print_string(ndr
, "location", r
->location
);
7048 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
7051 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
7054 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
7057 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
7060 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
7062 if (r
->printprocessor
) {
7063 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
7066 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
7069 ndr_print_string(ndr
, "datatype", r
->datatype
);
7072 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
7074 if (r
->parameters
) {
7075 ndr_print_string(ndr
, "parameters", r
->parameters
);
7078 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
7081 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
7084 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7085 ndr_print_uint32(ndr
, "priority", r
->priority
);
7086 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
7087 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
7088 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
7089 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
7090 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
7091 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
7095 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo3
*r
)
7097 if (ndr_flags
& NDR_SCALARS
) {
7098 NDR_CHECK(ndr_push_align(ndr
, 4));
7099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sec_desc_ptr
));
7100 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7102 if (ndr_flags
& NDR_BUFFERS
) {
7104 return NDR_ERR_SUCCESS
;
7107 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo3
*r
)
7109 if (ndr_flags
& NDR_SCALARS
) {
7110 NDR_CHECK(ndr_pull_align(ndr
, 4));
7111 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sec_desc_ptr
));
7112 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7114 if (ndr_flags
& NDR_BUFFERS
) {
7116 return NDR_ERR_SUCCESS
;
7119 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo3
*r
)
7121 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo3");
7123 ndr_print_uint32(ndr
, "sec_desc_ptr", r
->sec_desc_ptr
);
7127 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo4
*r
)
7129 if (ndr_flags
& NDR_SCALARS
) {
7130 NDR_CHECK(ndr_push_align(ndr
, 5));
7131 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
7132 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
7133 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
7134 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7136 if (ndr_flags
& NDR_BUFFERS
) {
7137 if (r
->printername
) {
7138 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7139 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7140 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7141 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7143 if (r
->servername
) {
7144 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
7145 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7146 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
7147 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7150 return NDR_ERR_SUCCESS
;
7153 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo4
*r
)
7155 uint32_t _ptr_printername
;
7156 TALLOC_CTX
*_mem_save_printername_0
;
7157 uint32_t _ptr_servername
;
7158 TALLOC_CTX
*_mem_save_servername_0
;
7159 if (ndr_flags
& NDR_SCALARS
) {
7160 NDR_CHECK(ndr_pull_align(ndr
, 5));
7161 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
7162 if (_ptr_printername
) {
7163 NDR_PULL_ALLOC(ndr
, r
->printername
);
7165 r
->printername
= NULL
;
7167 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
7168 if (_ptr_servername
) {
7169 NDR_PULL_ALLOC(ndr
, r
->servername
);
7171 r
->servername
= NULL
;
7173 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
7174 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7176 if (ndr_flags
& NDR_BUFFERS
) {
7177 if (r
->printername
) {
7178 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7179 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
7180 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
7181 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
7182 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
7183 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
));
7185 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
7186 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
7187 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
7189 if (r
->servername
) {
7190 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7191 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
7192 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
7193 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
7194 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
7195 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
));
7197 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
7198 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
7199 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
7202 return NDR_ERR_SUCCESS
;
7205 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo4
*r
)
7207 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo4");
7209 ndr_print_ptr(ndr
, "printername", r
->printername
);
7211 if (r
->printername
) {
7212 ndr_print_string(ndr
, "printername", r
->printername
);
7215 ndr_print_ptr(ndr
, "servername", r
->servername
);
7217 if (r
->servername
) {
7218 ndr_print_string(ndr
, "servername", r
->servername
);
7221 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7225 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo5
*r
)
7227 if (ndr_flags
& NDR_SCALARS
) {
7228 NDR_CHECK(ndr_push_align(ndr
, 5));
7229 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
7230 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
7231 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
7232 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
7233 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
7234 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7236 if (ndr_flags
& NDR_BUFFERS
) {
7237 if (r
->printername
) {
7238 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7239 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7240 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
7241 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7244 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
7245 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7246 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
7247 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7250 return NDR_ERR_SUCCESS
;
7253 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo5
*r
)
7255 uint32_t _ptr_printername
;
7256 TALLOC_CTX
*_mem_save_printername_0
;
7257 uint32_t _ptr_portname
;
7258 TALLOC_CTX
*_mem_save_portname_0
;
7259 if (ndr_flags
& NDR_SCALARS
) {
7260 NDR_CHECK(ndr_pull_align(ndr
, 5));
7261 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
7262 if (_ptr_printername
) {
7263 NDR_PULL_ALLOC(ndr
, r
->printername
);
7265 r
->printername
= NULL
;
7267 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
7268 if (_ptr_portname
) {
7269 NDR_PULL_ALLOC(ndr
, r
->portname
);
7273 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
7274 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
7275 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
7276 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7278 if (ndr_flags
& NDR_BUFFERS
) {
7279 if (r
->printername
) {
7280 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7281 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
7282 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
7283 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
7284 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
7285 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
));
7287 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
7288 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
7289 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
7292 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7293 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
7294 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
7295 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
7296 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
7297 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
));
7299 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
7300 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
7301 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
7304 return NDR_ERR_SUCCESS
;
7307 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo5
*r
)
7309 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo5");
7311 ndr_print_ptr(ndr
, "printername", r
->printername
);
7313 if (r
->printername
) {
7314 ndr_print_string(ndr
, "printername", r
->printername
);
7317 ndr_print_ptr(ndr
, "portname", r
->portname
);
7320 ndr_print_string(ndr
, "portname", r
->portname
);
7323 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
7324 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
7325 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
7329 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo6
*r
)
7331 if (ndr_flags
& NDR_SCALARS
) {
7332 NDR_CHECK(ndr_push_align(ndr
, 4));
7333 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
7334 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7336 if (ndr_flags
& NDR_BUFFERS
) {
7338 return NDR_ERR_SUCCESS
;
7341 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo6
*r
)
7343 if (ndr_flags
& NDR_SCALARS
) {
7344 NDR_CHECK(ndr_pull_align(ndr
, 4));
7345 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
7346 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7348 if (ndr_flags
& NDR_BUFFERS
) {
7350 return NDR_ERR_SUCCESS
;
7353 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo6
*r
)
7355 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo6");
7357 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
7361 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo7
*r
)
7363 if (ndr_flags
& NDR_SCALARS
) {
7364 NDR_CHECK(ndr_push_align(ndr
, 5));
7365 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->guid
));
7366 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
7367 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7369 if (ndr_flags
& NDR_BUFFERS
) {
7371 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
7372 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7373 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
7374 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->guid
, ndr_charset_length(r
->guid
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7377 return NDR_ERR_SUCCESS
;
7380 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo7
*r
)
7383 TALLOC_CTX
*_mem_save_guid_0
;
7384 if (ndr_flags
& NDR_SCALARS
) {
7385 NDR_CHECK(ndr_pull_align(ndr
, 5));
7386 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
7388 NDR_PULL_ALLOC(ndr
, r
->guid
);
7392 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
7393 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7395 if (ndr_flags
& NDR_BUFFERS
) {
7397 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7398 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
7399 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->guid
));
7400 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->guid
));
7401 if (ndr_get_array_length(ndr
, &r
->guid
) > ndr_get_array_size(ndr
, &r
->guid
)) {
7402 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
));
7404 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t)));
7405 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->guid
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t), CH_UTF16
));
7406 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
7409 return NDR_ERR_SUCCESS
;
7412 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo7
*r
)
7414 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo7");
7416 ndr_print_ptr(ndr
, "guid", r
->guid
);
7419 ndr_print_string(ndr
, "guid", r
->guid
);
7422 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
7426 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetPrinterInfo
*r
)
7428 if (ndr_flags
& NDR_SCALARS
) {
7429 int level
= ndr_push_get_switch_value(ndr
, r
);
7430 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
7431 NDR_CHECK(ndr_push_union_align(ndr
, 5));
7434 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
7438 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
7442 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
7446 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
7450 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
7454 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info5
));
7458 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
7462 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info7
));
7466 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
7470 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info9
));
7478 if (ndr_flags
& NDR_BUFFERS
) {
7479 int level
= ndr_push_get_switch_value(ndr
, r
);
7483 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
7489 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7495 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
7501 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
7507 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
7513 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
7519 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
7525 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
7531 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
7537 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info9
));
7546 return NDR_ERR_SUCCESS
;
7549 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetPrinterInfo
*r
)
7553 TALLOC_CTX
*_mem_save_info0_0
;
7554 TALLOC_CTX
*_mem_save_info1_0
;
7555 TALLOC_CTX
*_mem_save_info2_0
;
7556 TALLOC_CTX
*_mem_save_info3_0
;
7557 TALLOC_CTX
*_mem_save_info4_0
;
7558 TALLOC_CTX
*_mem_save_info5_0
;
7559 TALLOC_CTX
*_mem_save_info6_0
;
7560 TALLOC_CTX
*_mem_save_info7_0
;
7561 TALLOC_CTX
*_mem_save_info8_0
;
7562 TALLOC_CTX
*_mem_save_info9_0
;
7563 level
= ndr_pull_get_switch_value(ndr
, r
);
7564 if (ndr_flags
& NDR_SCALARS
) {
7565 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7566 if (_level
!= level
) {
7567 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
7569 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
7572 uint32_t _ptr_info0
;
7573 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
7575 NDR_PULL_ALLOC(ndr
, r
->info0
);
7582 uint32_t _ptr_info1
;
7583 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
7585 NDR_PULL_ALLOC(ndr
, r
->info1
);
7592 uint32_t _ptr_info2
;
7593 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
7595 NDR_PULL_ALLOC(ndr
, r
->info2
);
7602 uint32_t _ptr_info3
;
7603 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
7605 NDR_PULL_ALLOC(ndr
, r
->info3
);
7612 uint32_t _ptr_info4
;
7613 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
7615 NDR_PULL_ALLOC(ndr
, r
->info4
);
7622 uint32_t _ptr_info5
;
7623 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info5
));
7625 NDR_PULL_ALLOC(ndr
, r
->info5
);
7632 uint32_t _ptr_info6
;
7633 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
7635 NDR_PULL_ALLOC(ndr
, r
->info6
);
7642 uint32_t _ptr_info7
;
7643 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info7
));
7645 NDR_PULL_ALLOC(ndr
, r
->info7
);
7652 uint32_t _ptr_info8
;
7653 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
7655 NDR_PULL_ALLOC(ndr
, r
->info8
);
7662 uint32_t _ptr_info9
;
7663 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info9
));
7665 NDR_PULL_ALLOC(ndr
, r
->info9
);
7676 if (ndr_flags
& NDR_BUFFERS
) {
7680 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7681 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
7682 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
7683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
7689 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7690 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
7691 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7692 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
7698 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7699 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
7700 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
7701 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
7707 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7708 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
7709 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
7710 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
7716 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7717 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
7718 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
7719 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
7725 _mem_save_info5_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7726 NDR_PULL_SET_MEM_CTX(ndr
, r
->info5
, 0);
7727 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
7728 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info5_0
, 0);
7734 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7735 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
7736 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
7737 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
7743 _mem_save_info7_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7744 NDR_PULL_SET_MEM_CTX(ndr
, r
->info7
, 0);
7745 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
7746 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info7_0
, 0);
7752 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7753 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
7754 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
7755 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
7761 _mem_save_info9_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7762 NDR_PULL_SET_MEM_CTX(ndr
, r
->info9
, 0);
7763 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info9
));
7764 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info9_0
, 0);
7773 return NDR_ERR_SUCCESS
;
7776 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetPrinterInfo
*r
)
7779 level
= ndr_print_get_switch_value(ndr
, r
);
7780 ndr_print_union(ndr
, name
, level
, "spoolss_SetPrinterInfo");
7783 ndr_print_ptr(ndr
, "info0", r
->info0
);
7786 ndr_print_spoolss_SetPrinterInfo0(ndr
, "info0", r
->info0
);
7792 ndr_print_ptr(ndr
, "info1", r
->info1
);
7795 ndr_print_spoolss_SetPrinterInfo1(ndr
, "info1", r
->info1
);
7801 ndr_print_ptr(ndr
, "info2", r
->info2
);
7804 ndr_print_spoolss_SetPrinterInfo2(ndr
, "info2", r
->info2
);
7810 ndr_print_ptr(ndr
, "info3", r
->info3
);
7813 ndr_print_spoolss_SetPrinterInfo3(ndr
, "info3", r
->info3
);
7819 ndr_print_ptr(ndr
, "info4", r
->info4
);
7822 ndr_print_spoolss_SetPrinterInfo4(ndr
, "info4", r
->info4
);
7828 ndr_print_ptr(ndr
, "info5", r
->info5
);
7831 ndr_print_spoolss_SetPrinterInfo5(ndr
, "info5", r
->info5
);
7837 ndr_print_ptr(ndr
, "info6", r
->info6
);
7840 ndr_print_spoolss_SetPrinterInfo6(ndr
, "info6", r
->info6
);
7846 ndr_print_ptr(ndr
, "info7", r
->info7
);
7849 ndr_print_spoolss_SetPrinterInfo7(ndr
, "info7", r
->info7
);
7855 ndr_print_ptr(ndr
, "info8", r
->info8
);
7858 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", r
->info8
);
7864 ndr_print_ptr(ndr
, "info9", r
->info9
);
7867 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", r
->info9
);
7878 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfoCtr
*r
)
7880 if (ndr_flags
& NDR_SCALARS
) {
7881 NDR_CHECK(ndr_push_align(ndr
, 5));
7882 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
7883 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
7884 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
7885 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7887 if (ndr_flags
& NDR_BUFFERS
) {
7888 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
7890 return NDR_ERR_SUCCESS
;
7893 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfoCtr
*r
)
7895 if (ndr_flags
& NDR_SCALARS
) {
7896 NDR_CHECK(ndr_pull_align(ndr
, 5));
7897 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
7898 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
7899 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
7900 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7902 if (ndr_flags
& NDR_BUFFERS
) {
7903 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
7905 return NDR_ERR_SUCCESS
;
7908 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfoCtr
*r
)
7910 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfoCtr");
7912 ndr_print_uint32(ndr
, "level", r
->level
);
7913 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
7914 ndr_print_spoolss_SetPrinterInfo(ndr
, "info", &r
->info
);
7918 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_StringArray(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_StringArray
*r
)
7920 if (ndr_flags
& NDR_SCALARS
) {
7921 NDR_CHECK(ndr_push_align(ndr
, 4));
7922 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, (ndr_size_spoolss_StringArray(r
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2));
7924 uint32_t _flags_save_string_array
= ndr
->flags
;
7925 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7926 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string
));
7927 ndr
->flags
= _flags_save_string_array
;
7929 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
7931 if (ndr_flags
& NDR_BUFFERS
) {
7933 return NDR_ERR_SUCCESS
;
7936 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_StringArray(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_StringArray
*r
)
7938 if (ndr_flags
& NDR_SCALARS
) {
7939 NDR_CHECK(ndr_pull_align(ndr
, 4));
7940 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
7942 uint32_t _flags_save_string_array
= ndr
->flags
;
7943 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7944 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string
));
7945 ndr
->flags
= _flags_save_string_array
;
7947 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
7949 if (ndr_flags
& NDR_BUFFERS
) {
7951 return NDR_ERR_SUCCESS
;
7954 _PUBLIC_
void ndr_print_spoolss_StringArray(struct ndr_print
*ndr
, const char *name
, const struct spoolss_StringArray
*r
)
7956 ndr_print_struct(ndr
, name
, "spoolss_StringArray");
7958 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
);
7959 ndr_print_string_array(ndr
, "string", r
->string
);
7963 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo1
*r
)
7965 if (ndr_flags
& NDR_SCALARS
) {
7966 NDR_CHECK(ndr_push_align(ndr
, 5));
7967 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7968 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
7970 if (ndr_flags
& NDR_BUFFERS
) {
7971 if (r
->driver_name
) {
7972 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7973 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
7974 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7975 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7978 return NDR_ERR_SUCCESS
;
7981 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo1
*r
)
7983 uint32_t _ptr_driver_name
;
7984 TALLOC_CTX
*_mem_save_driver_name_0
;
7985 if (ndr_flags
& NDR_SCALARS
) {
7986 NDR_CHECK(ndr_pull_align(ndr
, 5));
7987 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7988 if (_ptr_driver_name
) {
7989 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7991 r
->driver_name
= NULL
;
7993 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
7995 if (ndr_flags
& NDR_BUFFERS
) {
7996 if (r
->driver_name
) {
7997 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7998 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7999 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8000 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8001 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8002 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
));
8004 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8005 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8009 return NDR_ERR_SUCCESS
;
8012 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo1
*r
)
8014 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo1");
8016 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8018 if (r
->driver_name
) {
8019 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8025 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverOSVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion r
)
8027 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
8028 return NDR_ERR_SUCCESS
;
8031 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverOSVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion
*r
)
8034 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
8036 return NDR_ERR_SUCCESS
;
8039 _PUBLIC_
void ndr_print_spoolss_DriverOSVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverOSVersion r
)
8041 const char *val
= NULL
;
8044 case SPOOLSS_DRIVER_VERSION_9X
: val
= "SPOOLSS_DRIVER_VERSION_9X"; break;
8045 case SPOOLSS_DRIVER_VERSION_NT35
: val
= "SPOOLSS_DRIVER_VERSION_NT35"; break;
8046 case SPOOLSS_DRIVER_VERSION_NT4
: val
= "SPOOLSS_DRIVER_VERSION_NT4"; break;
8047 case SPOOLSS_DRIVER_VERSION_200X
: val
= "SPOOLSS_DRIVER_VERSION_200X"; break;
8049 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
8052 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo2
*r
)
8054 if (ndr_flags
& NDR_SCALARS
) {
8055 NDR_CHECK(ndr_push_align(ndr
, 5));
8056 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8057 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8058 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8059 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8060 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8061 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8062 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8064 if (ndr_flags
& NDR_BUFFERS
) {
8065 if (r
->driver_name
) {
8066 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8067 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8068 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8069 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8071 if (r
->architecture
) {
8072 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8073 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8074 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8075 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8077 if (r
->driver_path
) {
8078 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8079 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8080 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8081 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8084 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8085 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8086 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8087 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8089 if (r
->config_file
) {
8090 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8091 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8092 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8093 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8096 return NDR_ERR_SUCCESS
;
8099 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo2
*r
)
8101 uint32_t _ptr_driver_name
;
8102 TALLOC_CTX
*_mem_save_driver_name_0
;
8103 uint32_t _ptr_architecture
;
8104 TALLOC_CTX
*_mem_save_architecture_0
;
8105 uint32_t _ptr_driver_path
;
8106 TALLOC_CTX
*_mem_save_driver_path_0
;
8107 uint32_t _ptr_data_file
;
8108 TALLOC_CTX
*_mem_save_data_file_0
;
8109 uint32_t _ptr_config_file
;
8110 TALLOC_CTX
*_mem_save_config_file_0
;
8111 if (ndr_flags
& NDR_SCALARS
) {
8112 NDR_CHECK(ndr_pull_align(ndr
, 5));
8113 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8114 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8115 if (_ptr_driver_name
) {
8116 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8118 r
->driver_name
= NULL
;
8120 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8121 if (_ptr_architecture
) {
8122 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8124 r
->architecture
= NULL
;
8126 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8127 if (_ptr_driver_path
) {
8128 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8130 r
->driver_path
= NULL
;
8132 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8133 if (_ptr_data_file
) {
8134 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8136 r
->data_file
= NULL
;
8138 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8139 if (_ptr_config_file
) {
8140 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8142 r
->config_file
= NULL
;
8144 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8146 if (ndr_flags
& NDR_BUFFERS
) {
8147 if (r
->driver_name
) {
8148 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8149 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8150 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8151 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8152 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8153 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
8155 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8156 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8157 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8159 if (r
->architecture
) {
8160 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8161 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8162 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8163 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8164 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8165 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->architecture
), ndr_get_array_length(ndr
, &r
->architecture
));
8167 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8168 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8169 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8171 if (r
->driver_path
) {
8172 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8173 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8174 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8175 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8176 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8177 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_path
), ndr_get_array_length(ndr
, &r
->driver_path
));
8179 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8180 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8181 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8184 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8185 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8186 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8187 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8188 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8189 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->data_file
), ndr_get_array_length(ndr
, &r
->data_file
));
8191 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8192 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8193 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8195 if (r
->config_file
) {
8196 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8197 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8198 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8199 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8200 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8201 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
));
8203 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8204 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8205 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8208 return NDR_ERR_SUCCESS
;
8211 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo2
*r
)
8213 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo2");
8215 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8216 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8218 if (r
->driver_name
) {
8219 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8222 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8224 if (r
->architecture
) {
8225 ndr_print_string(ndr
, "architecture", r
->architecture
);
8228 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8230 if (r
->driver_path
) {
8231 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8234 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8237 ndr_print_string(ndr
, "data_file", r
->data_file
);
8240 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8242 if (r
->config_file
) {
8243 ndr_print_string(ndr
, "config_file", r
->config_file
);
8249 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo3
*r
)
8251 if (ndr_flags
& NDR_SCALARS
) {
8252 NDR_CHECK(ndr_push_align(ndr
, 5));
8253 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8254 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8255 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8256 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8257 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8258 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8259 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8260 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8261 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8262 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8263 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8264 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8266 if (ndr_flags
& NDR_BUFFERS
) {
8267 if (r
->driver_name
) {
8268 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8269 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8270 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8271 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8273 if (r
->architecture
) {
8274 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8275 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8276 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8277 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8279 if (r
->driver_path
) {
8280 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8281 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8282 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8283 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8286 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8287 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8288 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8289 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8291 if (r
->config_file
) {
8292 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8293 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8294 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8295 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8298 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8299 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8300 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8301 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8303 if (r
->monitor_name
) {
8304 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8305 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8306 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8307 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8309 if (r
->default_datatype
) {
8310 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8311 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8312 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8313 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8315 if (r
->dependent_files
) {
8316 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8319 return NDR_ERR_SUCCESS
;
8322 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo3
*r
)
8324 uint32_t _ptr_driver_name
;
8325 TALLOC_CTX
*_mem_save_driver_name_0
;
8326 uint32_t _ptr_architecture
;
8327 TALLOC_CTX
*_mem_save_architecture_0
;
8328 uint32_t _ptr_driver_path
;
8329 TALLOC_CTX
*_mem_save_driver_path_0
;
8330 uint32_t _ptr_data_file
;
8331 TALLOC_CTX
*_mem_save_data_file_0
;
8332 uint32_t _ptr_config_file
;
8333 TALLOC_CTX
*_mem_save_config_file_0
;
8334 uint32_t _ptr_help_file
;
8335 TALLOC_CTX
*_mem_save_help_file_0
;
8336 uint32_t _ptr_monitor_name
;
8337 TALLOC_CTX
*_mem_save_monitor_name_0
;
8338 uint32_t _ptr_default_datatype
;
8339 TALLOC_CTX
*_mem_save_default_datatype_0
;
8340 uint32_t _ptr_dependent_files
;
8341 TALLOC_CTX
*_mem_save_dependent_files_0
;
8342 if (ndr_flags
& NDR_SCALARS
) {
8343 NDR_CHECK(ndr_pull_align(ndr
, 5));
8344 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8345 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8346 if (_ptr_driver_name
) {
8347 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8349 r
->driver_name
= NULL
;
8351 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8352 if (_ptr_architecture
) {
8353 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8355 r
->architecture
= NULL
;
8357 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8358 if (_ptr_driver_path
) {
8359 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8361 r
->driver_path
= NULL
;
8363 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8364 if (_ptr_data_file
) {
8365 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8367 r
->data_file
= NULL
;
8369 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8370 if (_ptr_config_file
) {
8371 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8373 r
->config_file
= NULL
;
8375 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8376 if (_ptr_help_file
) {
8377 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8379 r
->help_file
= NULL
;
8381 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8382 if (_ptr_monitor_name
) {
8383 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8385 r
->monitor_name
= NULL
;
8387 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8388 if (_ptr_default_datatype
) {
8389 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8391 r
->default_datatype
= NULL
;
8393 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8394 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8395 if (_ptr_dependent_files
) {
8396 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8398 r
->dependent_files
= NULL
;
8400 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8402 if (ndr_flags
& NDR_BUFFERS
) {
8403 if (r
->driver_name
) {
8404 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8405 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8406 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8407 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8408 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8409 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
));
8411 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8412 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8413 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8415 if (r
->architecture
) {
8416 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8417 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8418 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8419 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8420 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8421 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
));
8423 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8424 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8425 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8427 if (r
->driver_path
) {
8428 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8429 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8430 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8431 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8432 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8433 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
));
8435 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8436 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8437 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8440 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8441 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8442 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8443 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8444 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8445 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
));
8447 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8448 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8449 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8451 if (r
->config_file
) {
8452 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8453 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8454 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8455 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8456 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8457 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
));
8459 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8460 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8461 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8464 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8465 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8466 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8467 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8468 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
8469 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
));
8471 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
8472 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
8473 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8475 if (r
->monitor_name
) {
8476 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8477 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8478 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8479 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8480 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
8481 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
));
8483 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
8484 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
8485 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8487 if (r
->default_datatype
) {
8488 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8489 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8490 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8491 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8492 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
8493 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
));
8495 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
8496 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
8497 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8499 if (r
->dependent_files
) {
8500 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8501 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8502 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8503 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8506 return NDR_ERR_SUCCESS
;
8509 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo3
*r
)
8511 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo3");
8513 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8514 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8516 if (r
->driver_name
) {
8517 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8520 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8522 if (r
->architecture
) {
8523 ndr_print_string(ndr
, "architecture", r
->architecture
);
8526 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8528 if (r
->driver_path
) {
8529 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8532 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8535 ndr_print_string(ndr
, "data_file", r
->data_file
);
8538 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8540 if (r
->config_file
) {
8541 ndr_print_string(ndr
, "config_file", r
->config_file
);
8544 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8547 ndr_print_string(ndr
, "help_file", r
->help_file
);
8550 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8552 if (r
->monitor_name
) {
8553 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8556 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8558 if (r
->default_datatype
) {
8559 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8562 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
);
8563 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8565 if (r
->dependent_files
) {
8566 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8572 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo4
*r
)
8574 if (ndr_flags
& NDR_SCALARS
) {
8575 NDR_CHECK(ndr_push_align(ndr
, 5));
8576 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8577 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8578 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8579 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8580 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8581 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8582 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8583 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8584 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8585 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8586 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8587 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8588 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8589 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
8591 if (ndr_flags
& NDR_BUFFERS
) {
8592 if (r
->driver_name
) {
8593 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8594 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8595 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8596 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8598 if (r
->architecture
) {
8599 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8600 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8601 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8602 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8604 if (r
->driver_path
) {
8605 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8606 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8607 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8608 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8611 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8612 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8613 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8614 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8616 if (r
->config_file
) {
8617 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8618 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8619 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8620 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8623 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8624 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8625 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8626 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8628 if (r
->monitor_name
) {
8629 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8630 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8631 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8632 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8634 if (r
->default_datatype
) {
8635 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8636 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8637 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8638 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8640 if (r
->dependent_files
) {
8641 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8643 if (r
->previous_names
) {
8644 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8647 return NDR_ERR_SUCCESS
;
8650 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo4
*r
)
8652 uint32_t _ptr_driver_name
;
8653 TALLOC_CTX
*_mem_save_driver_name_0
;
8654 uint32_t _ptr_architecture
;
8655 TALLOC_CTX
*_mem_save_architecture_0
;
8656 uint32_t _ptr_driver_path
;
8657 TALLOC_CTX
*_mem_save_driver_path_0
;
8658 uint32_t _ptr_data_file
;
8659 TALLOC_CTX
*_mem_save_data_file_0
;
8660 uint32_t _ptr_config_file
;
8661 TALLOC_CTX
*_mem_save_config_file_0
;
8662 uint32_t _ptr_help_file
;
8663 TALLOC_CTX
*_mem_save_help_file_0
;
8664 uint32_t _ptr_monitor_name
;
8665 TALLOC_CTX
*_mem_save_monitor_name_0
;
8666 uint32_t _ptr_default_datatype
;
8667 TALLOC_CTX
*_mem_save_default_datatype_0
;
8668 uint32_t _ptr_dependent_files
;
8669 TALLOC_CTX
*_mem_save_dependent_files_0
;
8670 uint32_t _ptr_previous_names
;
8671 TALLOC_CTX
*_mem_save_previous_names_0
;
8672 if (ndr_flags
& NDR_SCALARS
) {
8673 NDR_CHECK(ndr_pull_align(ndr
, 5));
8674 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8675 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8676 if (_ptr_driver_name
) {
8677 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8679 r
->driver_name
= NULL
;
8681 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8682 if (_ptr_architecture
) {
8683 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8685 r
->architecture
= NULL
;
8687 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8688 if (_ptr_driver_path
) {
8689 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8691 r
->driver_path
= NULL
;
8693 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8694 if (_ptr_data_file
) {
8695 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8697 r
->data_file
= NULL
;
8699 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8700 if (_ptr_config_file
) {
8701 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8703 r
->config_file
= NULL
;
8705 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8706 if (_ptr_help_file
) {
8707 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8709 r
->help_file
= NULL
;
8711 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8712 if (_ptr_monitor_name
) {
8713 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8715 r
->monitor_name
= NULL
;
8717 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8718 if (_ptr_default_datatype
) {
8719 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8721 r
->default_datatype
= NULL
;
8723 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8724 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8725 if (_ptr_dependent_files
) {
8726 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8728 r
->dependent_files
= NULL
;
8730 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
8731 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
8732 if (_ptr_previous_names
) {
8733 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
8735 r
->previous_names
= NULL
;
8737 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
8739 if (ndr_flags
& NDR_BUFFERS
) {
8740 if (r
->driver_name
) {
8741 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8742 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8743 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8744 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8745 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8746 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
));
8748 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8749 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8750 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8752 if (r
->architecture
) {
8753 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8754 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8755 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8756 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8757 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8758 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
));
8760 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8761 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8762 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8764 if (r
->driver_path
) {
8765 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8766 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8767 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8768 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8769 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8770 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
));
8772 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8773 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8774 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8777 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8778 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8779 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8780 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8781 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8782 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
));
8784 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8785 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8786 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8788 if (r
->config_file
) {
8789 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8790 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8791 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8792 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8793 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8794 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
));
8796 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8797 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8798 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8801 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8802 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8803 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8804 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8805 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
8806 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
));
8808 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
8809 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
8810 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8812 if (r
->monitor_name
) {
8813 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8814 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8815 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8816 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8817 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
8818 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
));
8820 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
8821 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
8822 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8824 if (r
->default_datatype
) {
8825 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8826 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8827 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8828 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8829 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
8830 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
));
8832 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
8833 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
8834 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8836 if (r
->dependent_files
) {
8837 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8838 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8839 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8840 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8842 if (r
->previous_names
) {
8843 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8844 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
8845 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8846 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
8849 return NDR_ERR_SUCCESS
;
8852 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo4
*r
)
8854 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo4");
8856 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8857 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8859 if (r
->driver_name
) {
8860 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8863 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8865 if (r
->architecture
) {
8866 ndr_print_string(ndr
, "architecture", r
->architecture
);
8869 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8871 if (r
->driver_path
) {
8872 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8875 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8878 ndr_print_string(ndr
, "data_file", r
->data_file
);
8881 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8883 if (r
->config_file
) {
8884 ndr_print_string(ndr
, "config_file", r
->config_file
);
8887 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8890 ndr_print_string(ndr
, "help_file", r
->help_file
);
8893 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8895 if (r
->monitor_name
) {
8896 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8899 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8901 if (r
->default_datatype
) {
8902 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8905 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
);
8906 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8908 if (r
->dependent_files
) {
8909 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8912 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
);
8913 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
8915 if (r
->previous_names
) {
8916 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
8922 static enum ndr_err_code
ndr_push_spoolss_DriverAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
8924 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8925 return NDR_ERR_SUCCESS
;
8928 static enum ndr_err_code
ndr_pull_spoolss_DriverAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
8931 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8933 return NDR_ERR_SUCCESS
;
8936 _PUBLIC_
void ndr_print_spoolss_DriverAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
8938 ndr_print_uint32(ndr
, name
, r
);
8940 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE
, r
);
8944 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo6
*r
)
8946 if (ndr_flags
& NDR_SCALARS
) {
8947 NDR_CHECK(ndr_push_align(ndr
, 8));
8948 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8949 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8950 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8951 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8952 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8953 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8954 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8955 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8956 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8957 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8958 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8959 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8960 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8961 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
8962 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
8963 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
8964 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
8965 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
8966 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
8967 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
8969 if (ndr_flags
& NDR_BUFFERS
) {
8970 if (r
->driver_name
) {
8971 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8972 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8973 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8974 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8976 if (r
->architecture
) {
8977 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8978 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8979 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8980 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8982 if (r
->driver_path
) {
8983 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8984 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8985 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8986 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8989 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8990 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8991 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8992 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8994 if (r
->config_file
) {
8995 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8996 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
8997 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8998 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9001 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9002 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9003 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9004 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9006 if (r
->monitor_name
) {
9007 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9008 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9009 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9010 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9012 if (r
->default_datatype
) {
9013 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9014 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9015 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9016 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9018 if (r
->dependent_files
) {
9019 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9021 if (r
->previous_names
) {
9022 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9024 if (r
->manufacturer_name
) {
9025 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9026 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9027 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9028 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9030 if (r
->manufacturer_url
) {
9031 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9032 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9033 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9034 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9036 if (r
->hardware_id
) {
9037 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9038 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9039 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9040 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9043 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9044 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9045 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9046 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9049 return NDR_ERR_SUCCESS
;
9052 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo6
*r
)
9054 uint32_t _ptr_driver_name
;
9055 TALLOC_CTX
*_mem_save_driver_name_0
;
9056 uint32_t _ptr_architecture
;
9057 TALLOC_CTX
*_mem_save_architecture_0
;
9058 uint32_t _ptr_driver_path
;
9059 TALLOC_CTX
*_mem_save_driver_path_0
;
9060 uint32_t _ptr_data_file
;
9061 TALLOC_CTX
*_mem_save_data_file_0
;
9062 uint32_t _ptr_config_file
;
9063 TALLOC_CTX
*_mem_save_config_file_0
;
9064 uint32_t _ptr_help_file
;
9065 TALLOC_CTX
*_mem_save_help_file_0
;
9066 uint32_t _ptr_monitor_name
;
9067 TALLOC_CTX
*_mem_save_monitor_name_0
;
9068 uint32_t _ptr_default_datatype
;
9069 TALLOC_CTX
*_mem_save_default_datatype_0
;
9070 uint32_t _ptr_dependent_files
;
9071 TALLOC_CTX
*_mem_save_dependent_files_0
;
9072 uint32_t _ptr_previous_names
;
9073 TALLOC_CTX
*_mem_save_previous_names_0
;
9074 uint32_t _ptr_manufacturer_name
;
9075 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
9076 uint32_t _ptr_manufacturer_url
;
9077 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
9078 uint32_t _ptr_hardware_id
;
9079 TALLOC_CTX
*_mem_save_hardware_id_0
;
9080 uint32_t _ptr_provider
;
9081 TALLOC_CTX
*_mem_save_provider_0
;
9082 if (ndr_flags
& NDR_SCALARS
) {
9083 NDR_CHECK(ndr_pull_align(ndr
, 8));
9084 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9085 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9086 if (_ptr_driver_name
) {
9087 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9089 r
->driver_name
= NULL
;
9091 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9092 if (_ptr_architecture
) {
9093 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9095 r
->architecture
= NULL
;
9097 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9098 if (_ptr_driver_path
) {
9099 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9101 r
->driver_path
= NULL
;
9103 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9104 if (_ptr_data_file
) {
9105 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9107 r
->data_file
= NULL
;
9109 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9110 if (_ptr_config_file
) {
9111 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9113 r
->config_file
= NULL
;
9115 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9116 if (_ptr_help_file
) {
9117 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9119 r
->help_file
= NULL
;
9121 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9122 if (_ptr_monitor_name
) {
9123 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9125 r
->monitor_name
= NULL
;
9127 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9128 if (_ptr_default_datatype
) {
9129 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9131 r
->default_datatype
= NULL
;
9133 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9134 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9135 if (_ptr_dependent_files
) {
9136 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9138 r
->dependent_files
= NULL
;
9140 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9141 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9142 if (_ptr_previous_names
) {
9143 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9145 r
->previous_names
= NULL
;
9147 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
9148 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
9149 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
9150 if (_ptr_manufacturer_name
) {
9151 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
9153 r
->manufacturer_name
= NULL
;
9155 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
9156 if (_ptr_manufacturer_url
) {
9157 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
9159 r
->manufacturer_url
= NULL
;
9161 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
9162 if (_ptr_hardware_id
) {
9163 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
9165 r
->hardware_id
= NULL
;
9167 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
9168 if (_ptr_provider
) {
9169 NDR_PULL_ALLOC(ndr
, r
->provider
);
9173 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
9175 if (ndr_flags
& NDR_BUFFERS
) {
9176 if (r
->driver_name
) {
9177 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9178 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9179 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9180 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9181 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
9182 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
));
9184 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
9185 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
9186 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9188 if (r
->architecture
) {
9189 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9190 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9191 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9192 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9193 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
9194 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
));
9196 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
9197 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
9198 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9200 if (r
->driver_path
) {
9201 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9202 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9203 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9204 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9205 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
9206 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
));
9208 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
9209 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
9210 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9213 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9214 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9215 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9216 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9217 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
9218 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
));
9220 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
9221 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
9222 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9224 if (r
->config_file
) {
9225 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9226 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9227 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9228 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9229 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
9230 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
));
9232 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
9233 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
9234 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9237 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9238 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9239 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9240 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9241 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
9242 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
));
9244 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
9245 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
9246 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9248 if (r
->monitor_name
) {
9249 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9250 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9251 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9252 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9253 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
9254 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
));
9256 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
9257 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
9258 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9260 if (r
->default_datatype
) {
9261 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9262 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9263 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9264 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9265 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
9266 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
));
9268 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
9269 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
9270 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9272 if (r
->dependent_files
) {
9273 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9274 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9275 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9276 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9278 if (r
->previous_names
) {
9279 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9280 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9281 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9282 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9284 if (r
->manufacturer_name
) {
9285 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9286 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
9287 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
9288 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
9289 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
9290 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
));
9292 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
9293 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
9294 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
9296 if (r
->manufacturer_url
) {
9297 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9298 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
9299 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
9300 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
9301 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
9302 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
));
9304 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
9305 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
9306 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
9308 if (r
->hardware_id
) {
9309 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9310 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
9311 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
9312 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
9313 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
9314 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
));
9316 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
9317 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
9318 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
9321 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9322 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
9323 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
9324 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
9325 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
9326 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
));
9328 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
9329 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
9330 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
9333 return NDR_ERR_SUCCESS
;
9336 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo6
*r
)
9338 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo6");
9340 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9341 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9343 if (r
->driver_name
) {
9344 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9347 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9349 if (r
->architecture
) {
9350 ndr_print_string(ndr
, "architecture", r
->architecture
);
9353 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9355 if (r
->driver_path
) {
9356 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9359 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9362 ndr_print_string(ndr
, "data_file", r
->data_file
);
9365 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9367 if (r
->config_file
) {
9368 ndr_print_string(ndr
, "config_file", r
->config_file
);
9371 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9374 ndr_print_string(ndr
, "help_file", r
->help_file
);
9377 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9379 if (r
->monitor_name
) {
9380 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9383 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9385 if (r
->default_datatype
) {
9386 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9389 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
);
9390 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9392 if (r
->dependent_files
) {
9393 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9396 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
);
9397 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
9399 if (r
->previous_names
) {
9400 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
9403 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
9404 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
9405 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
9407 if (r
->manufacturer_name
) {
9408 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
9411 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
9413 if (r
->manufacturer_url
) {
9414 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
9417 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
9419 if (r
->hardware_id
) {
9420 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
9423 ndr_print_ptr(ndr
, "provider", r
->provider
);
9426 ndr_print_string(ndr
, "provider", r
->provider
);
9432 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo8
*r
)
9434 if (ndr_flags
& NDR_SCALARS
) {
9435 NDR_CHECK(ndr_push_align(ndr
, 8));
9436 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9437 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
9438 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
9439 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
9440 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
9441 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
9442 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
9443 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
9444 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
9445 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9446 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
9447 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9448 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
9449 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
9450 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
9451 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
9452 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
9453 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
9454 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
9455 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
9456 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->vendor_setup
));
9457 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->color_profiles
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9458 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->color_profiles
));
9459 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->inf_path
));
9460 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
9461 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->core_driver_dependencies
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
9462 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->core_driver_dependencies
));
9463 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
9464 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
9465 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
9467 if (ndr_flags
& NDR_BUFFERS
) {
9468 if (r
->driver_name
) {
9469 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9470 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9471 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
9472 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9474 if (r
->architecture
) {
9475 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9476 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9477 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
9478 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9480 if (r
->driver_path
) {
9481 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9482 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9483 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
9484 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9487 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9488 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9489 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
9490 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9492 if (r
->config_file
) {
9493 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9494 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9495 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
9496 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9499 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9500 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9501 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
9502 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9504 if (r
->monitor_name
) {
9505 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9506 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9507 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
9508 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9510 if (r
->default_datatype
) {
9511 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9512 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9513 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
9514 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9516 if (r
->dependent_files
) {
9517 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9519 if (r
->previous_names
) {
9520 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9522 if (r
->manufacturer_name
) {
9523 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9524 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9525 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
9526 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9528 if (r
->manufacturer_url
) {
9529 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9530 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9531 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
9532 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9534 if (r
->hardware_id
) {
9535 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9536 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9537 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
9538 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9541 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9542 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9543 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
9544 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9546 if (r
->print_processor
) {
9547 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
9548 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9549 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
9550 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9552 if (r
->vendor_setup
) {
9553 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
9554 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9555 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
9556 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->vendor_setup
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9558 if (r
->color_profiles
) {
9559 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
9562 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
9563 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
9564 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
9565 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->inf_path
, ndr_charset_length(r
->inf_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9567 if (r
->core_driver_dependencies
) {
9568 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
9571 return NDR_ERR_SUCCESS
;
9574 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo8
*r
)
9576 uint32_t _ptr_driver_name
;
9577 TALLOC_CTX
*_mem_save_driver_name_0
;
9578 uint32_t _ptr_architecture
;
9579 TALLOC_CTX
*_mem_save_architecture_0
;
9580 uint32_t _ptr_driver_path
;
9581 TALLOC_CTX
*_mem_save_driver_path_0
;
9582 uint32_t _ptr_data_file
;
9583 TALLOC_CTX
*_mem_save_data_file_0
;
9584 uint32_t _ptr_config_file
;
9585 TALLOC_CTX
*_mem_save_config_file_0
;
9586 uint32_t _ptr_help_file
;
9587 TALLOC_CTX
*_mem_save_help_file_0
;
9588 uint32_t _ptr_monitor_name
;
9589 TALLOC_CTX
*_mem_save_monitor_name_0
;
9590 uint32_t _ptr_default_datatype
;
9591 TALLOC_CTX
*_mem_save_default_datatype_0
;
9592 uint32_t _ptr_dependent_files
;
9593 TALLOC_CTX
*_mem_save_dependent_files_0
;
9594 uint32_t _ptr_previous_names
;
9595 TALLOC_CTX
*_mem_save_previous_names_0
;
9596 uint32_t _ptr_manufacturer_name
;
9597 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
9598 uint32_t _ptr_manufacturer_url
;
9599 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
9600 uint32_t _ptr_hardware_id
;
9601 TALLOC_CTX
*_mem_save_hardware_id_0
;
9602 uint32_t _ptr_provider
;
9603 TALLOC_CTX
*_mem_save_provider_0
;
9604 uint32_t _ptr_print_processor
;
9605 TALLOC_CTX
*_mem_save_print_processor_0
;
9606 uint32_t _ptr_vendor_setup
;
9607 TALLOC_CTX
*_mem_save_vendor_setup_0
;
9608 uint32_t _ptr_color_profiles
;
9609 TALLOC_CTX
*_mem_save_color_profiles_0
;
9610 uint32_t _ptr_inf_path
;
9611 TALLOC_CTX
*_mem_save_inf_path_0
;
9612 uint32_t _ptr_core_driver_dependencies
;
9613 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
9614 if (ndr_flags
& NDR_SCALARS
) {
9615 NDR_CHECK(ndr_pull_align(ndr
, 8));
9616 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9617 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9618 if (_ptr_driver_name
) {
9619 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9621 r
->driver_name
= NULL
;
9623 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9624 if (_ptr_architecture
) {
9625 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9627 r
->architecture
= NULL
;
9629 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9630 if (_ptr_driver_path
) {
9631 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9633 r
->driver_path
= NULL
;
9635 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9636 if (_ptr_data_file
) {
9637 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9639 r
->data_file
= NULL
;
9641 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9642 if (_ptr_config_file
) {
9643 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9645 r
->config_file
= NULL
;
9647 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9648 if (_ptr_help_file
) {
9649 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9651 r
->help_file
= NULL
;
9653 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9654 if (_ptr_monitor_name
) {
9655 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9657 r
->monitor_name
= NULL
;
9659 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9660 if (_ptr_default_datatype
) {
9661 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9663 r
->default_datatype
= NULL
;
9665 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9666 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9667 if (_ptr_dependent_files
) {
9668 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9670 r
->dependent_files
= NULL
;
9672 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9673 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9674 if (_ptr_previous_names
) {
9675 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9677 r
->previous_names
= NULL
;
9679 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
9680 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
9681 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
9682 if (_ptr_manufacturer_name
) {
9683 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
9685 r
->manufacturer_name
= NULL
;
9687 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
9688 if (_ptr_manufacturer_url
) {
9689 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
9691 r
->manufacturer_url
= NULL
;
9693 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
9694 if (_ptr_hardware_id
) {
9695 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
9697 r
->hardware_id
= NULL
;
9699 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
9700 if (_ptr_provider
) {
9701 NDR_PULL_ALLOC(ndr
, r
->provider
);
9705 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
9706 if (_ptr_print_processor
) {
9707 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
9709 r
->print_processor
= NULL
;
9711 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
9712 if (_ptr_vendor_setup
) {
9713 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
9715 r
->vendor_setup
= NULL
;
9717 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_color_profiles
));
9718 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
9719 if (_ptr_color_profiles
) {
9720 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
9722 r
->color_profiles
= NULL
;
9724 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
9725 if (_ptr_inf_path
) {
9726 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
9730 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
9731 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_core_driver_dependencies
));
9732 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
9733 if (_ptr_core_driver_dependencies
) {
9734 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
9736 r
->core_driver_dependencies
= NULL
;
9738 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
9739 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
9740 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
9742 if (ndr_flags
& NDR_BUFFERS
) {
9743 if (r
->driver_name
) {
9744 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9745 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9746 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9747 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9748 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
9749 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
));
9751 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
9752 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
9753 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9755 if (r
->architecture
) {
9756 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9757 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9758 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9759 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9760 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
9761 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
));
9763 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
9764 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
9765 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9767 if (r
->driver_path
) {
9768 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9769 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9770 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9771 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9772 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
9773 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
));
9775 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
9776 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
9777 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9780 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9781 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9782 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9783 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9784 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
9785 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
));
9787 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
9788 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
9789 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9791 if (r
->config_file
) {
9792 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9793 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9794 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9795 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9796 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
9797 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
));
9799 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
9800 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
9801 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9804 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9805 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9806 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9807 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9808 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
9809 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
));
9811 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
9812 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
9813 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9815 if (r
->monitor_name
) {
9816 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9817 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9818 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9819 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9820 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
9821 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
));
9823 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
9824 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
9825 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9827 if (r
->default_datatype
) {
9828 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9829 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9830 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9831 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9832 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
9833 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
));
9835 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
9836 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
9837 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9839 if (r
->dependent_files
) {
9840 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9841 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9842 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9843 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9845 if (r
->previous_names
) {
9846 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9847 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9848 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9849 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9851 if (r
->manufacturer_name
) {
9852 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9853 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
9854 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
9855 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
9856 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
9857 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
));
9859 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
9860 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
9861 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
9863 if (r
->manufacturer_url
) {
9864 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9865 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
9866 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
9867 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
9868 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
9869 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
));
9871 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
9872 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
9873 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
9875 if (r
->hardware_id
) {
9876 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9877 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
9878 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
9879 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
9880 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
9881 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
));
9883 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
9884 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
9885 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
9888 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9889 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
9890 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
9891 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
9892 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
9893 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
));
9895 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
9896 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
9897 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
9899 if (r
->print_processor
) {
9900 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9901 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
9902 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
9903 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
9904 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
9905 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
));
9907 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
9908 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
9909 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
9911 if (r
->vendor_setup
) {
9912 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9913 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
9914 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->vendor_setup
));
9915 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->vendor_setup
));
9916 if (ndr_get_array_length(ndr
, &r
->vendor_setup
) > ndr_get_array_size(ndr
, &r
->vendor_setup
)) {
9917 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
));
9919 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t)));
9920 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->vendor_setup
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t), CH_UTF16
));
9921 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
9923 if (r
->color_profiles
) {
9924 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9925 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
9926 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
9927 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
9930 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9931 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
9932 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->inf_path
));
9933 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->inf_path
));
9934 if (ndr_get_array_length(ndr
, &r
->inf_path
) > ndr_get_array_size(ndr
, &r
->inf_path
)) {
9935 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
));
9937 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t)));
9938 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->inf_path
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t), CH_UTF16
));
9939 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
9941 if (r
->core_driver_dependencies
) {
9942 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9943 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
9944 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
9945 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
9948 return NDR_ERR_SUCCESS
;
9951 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo8
*r
)
9953 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo8");
9955 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9956 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9958 if (r
->driver_name
) {
9959 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9962 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9964 if (r
->architecture
) {
9965 ndr_print_string(ndr
, "architecture", r
->architecture
);
9968 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9970 if (r
->driver_path
) {
9971 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9974 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9977 ndr_print_string(ndr
, "data_file", r
->data_file
);
9980 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9982 if (r
->config_file
) {
9983 ndr_print_string(ndr
, "config_file", r
->config_file
);
9986 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9989 ndr_print_string(ndr
, "help_file", r
->help_file
);
9992 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9994 if (r
->monitor_name
) {
9995 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9998 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
10000 if (r
->default_datatype
) {
10001 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
10004 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
);
10005 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
10007 if (r
->dependent_files
) {
10008 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
10011 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
);
10012 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
10014 if (r
->previous_names
) {
10015 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
10018 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
10019 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
10020 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
10022 if (r
->manufacturer_name
) {
10023 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
10026 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
10028 if (r
->manufacturer_url
) {
10029 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
10032 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
10034 if (r
->hardware_id
) {
10035 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
10038 ndr_print_ptr(ndr
, "provider", r
->provider
);
10041 ndr_print_string(ndr
, "provider", r
->provider
);
10044 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
10046 if (r
->print_processor
) {
10047 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
10050 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
10052 if (r
->vendor_setup
) {
10053 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
10056 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
);
10057 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
10059 if (r
->color_profiles
) {
10060 ndr_print_spoolss_StringArray(ndr
, "color_profiles", r
->color_profiles
);
10063 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
10066 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
10069 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
10070 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
);
10071 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
10073 if (r
->core_driver_dependencies
) {
10074 ndr_print_spoolss_StringArray(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
10077 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
10078 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
10082 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddDriverInfo
*r
)
10084 if (ndr_flags
& NDR_SCALARS
) {
10085 int level
= ndr_push_get_switch_value(ndr
, r
);
10086 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
10087 NDR_CHECK(ndr_push_union_align(ndr
, 5));
10090 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
10094 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
10098 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
10102 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
10106 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
10110 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
10114 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10117 if (ndr_flags
& NDR_BUFFERS
) {
10118 int level
= ndr_push_get_switch_value(ndr
, r
);
10122 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
10128 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
10134 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
10140 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
10146 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
10152 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
10157 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10160 return NDR_ERR_SUCCESS
;
10163 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddDriverInfo
*r
)
10167 TALLOC_CTX
*_mem_save_info1_0
;
10168 TALLOC_CTX
*_mem_save_info2_0
;
10169 TALLOC_CTX
*_mem_save_info3_0
;
10170 TALLOC_CTX
*_mem_save_info4_0
;
10171 TALLOC_CTX
*_mem_save_info6_0
;
10172 TALLOC_CTX
*_mem_save_info8_0
;
10173 level
= ndr_pull_get_switch_value(ndr
, r
);
10174 if (ndr_flags
& NDR_SCALARS
) {
10175 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
10176 if (_level
!= level
) {
10177 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
10179 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
10182 uint32_t _ptr_info1
;
10183 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
10185 NDR_PULL_ALLOC(ndr
, r
->info1
);
10192 uint32_t _ptr_info2
;
10193 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
10195 NDR_PULL_ALLOC(ndr
, r
->info2
);
10202 uint32_t _ptr_info3
;
10203 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
10205 NDR_PULL_ALLOC(ndr
, r
->info3
);
10212 uint32_t _ptr_info4
;
10213 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
10215 NDR_PULL_ALLOC(ndr
, r
->info4
);
10222 uint32_t _ptr_info6
;
10223 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
10225 NDR_PULL_ALLOC(ndr
, r
->info6
);
10232 uint32_t _ptr_info8
;
10233 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
10235 NDR_PULL_ALLOC(ndr
, r
->info8
);
10242 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10245 if (ndr_flags
& NDR_BUFFERS
) {
10249 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10250 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
10251 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
10252 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
10258 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10259 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
10260 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
10261 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
10267 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10268 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
10269 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
10270 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
10276 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10277 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
10278 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
10279 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
10285 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10286 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
10287 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
10288 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
10294 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10295 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
10296 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
10297 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
10302 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
10305 return NDR_ERR_SUCCESS
;
10308 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddDriverInfo
*r
)
10311 level
= ndr_print_get_switch_value(ndr
, r
);
10312 ndr_print_union(ndr
, name
, level
, "spoolss_AddDriverInfo");
10315 ndr_print_ptr(ndr
, "info1", r
->info1
);
10318 ndr_print_spoolss_AddDriverInfo1(ndr
, "info1", r
->info1
);
10324 ndr_print_ptr(ndr
, "info2", r
->info2
);
10327 ndr_print_spoolss_AddDriverInfo2(ndr
, "info2", r
->info2
);
10333 ndr_print_ptr(ndr
, "info3", r
->info3
);
10336 ndr_print_spoolss_AddDriverInfo3(ndr
, "info3", r
->info3
);
10342 ndr_print_ptr(ndr
, "info4", r
->info4
);
10345 ndr_print_spoolss_AddDriverInfo4(ndr
, "info4", r
->info4
);
10351 ndr_print_ptr(ndr
, "info6", r
->info6
);
10354 ndr_print_spoolss_AddDriverInfo6(ndr
, "info6", r
->info6
);
10360 ndr_print_ptr(ndr
, "info8", r
->info8
);
10363 ndr_print_spoolss_AddDriverInfo8(ndr
, "info8", r
->info8
);
10369 ndr_print_bad_level(ndr
, name
, level
);
10373 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfoCtr
*r
)
10375 if (ndr_flags
& NDR_SCALARS
) {
10376 NDR_CHECK(ndr_push_align(ndr
, 5));
10377 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
10378 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
10379 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
10380 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10382 if (ndr_flags
& NDR_BUFFERS
) {
10383 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
10385 return NDR_ERR_SUCCESS
;
10388 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfoCtr
*r
)
10390 if (ndr_flags
& NDR_SCALARS
) {
10391 NDR_CHECK(ndr_pull_align(ndr
, 5));
10392 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
10393 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
10394 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
10395 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
10397 if (ndr_flags
& NDR_BUFFERS
) {
10398 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
10400 return NDR_ERR_SUCCESS
;
10403 _PUBLIC_
void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfoCtr
*r
)
10405 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfoCtr");
10407 ndr_print_uint32(ndr
, "level", r
->level
);
10408 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
10409 ndr_print_spoolss_AddDriverInfo(ndr
, "info", &r
->info
);
10413 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo1
*r
)
10415 if (ndr_flags
& NDR_SCALARS
) {
10416 NDR_CHECK(ndr_push_align(ndr
, 5));
10418 uint32_t _flags_save_string
= ndr
->flags
;
10419 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10420 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10421 ndr
->flags
= _flags_save_string
;
10423 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10425 if (ndr_flags
& NDR_BUFFERS
) {
10427 uint32_t _flags_save_string
= ndr
->flags
;
10428 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10429 if (r
->driver_name
) {
10430 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10431 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10433 ndr
->flags
= _flags_save_string
;
10436 return NDR_ERR_SUCCESS
;
10439 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo1
*r
)
10441 uint32_t _ptr_driver_name
;
10442 TALLOC_CTX
*_mem_save_driver_name_0
;
10443 if (ndr_flags
& NDR_SCALARS
) {
10444 NDR_CHECK(ndr_pull_align(ndr
, 5));
10446 uint32_t _flags_save_string
= ndr
->flags
;
10447 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10448 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10449 if (_ptr_driver_name
) {
10450 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10451 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10453 r
->driver_name
= NULL
;
10455 ndr
->flags
= _flags_save_string
;
10457 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
10459 if (ndr_flags
& NDR_BUFFERS
) {
10461 uint32_t _flags_save_string
= ndr
->flags
;
10462 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10463 if (r
->driver_name
) {
10464 uint32_t _relative_save_offset
;
10465 _relative_save_offset
= ndr
->offset
;
10466 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10467 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10468 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10469 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10470 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10471 ndr
->offset
= _relative_save_offset
;
10473 ndr
->flags
= _flags_save_string
;
10476 return NDR_ERR_SUCCESS
;
10479 _PUBLIC_
void ndr_print_spoolss_DriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo1
*r
)
10481 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo1");
10483 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10485 if (r
->driver_name
) {
10486 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10492 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10494 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo1
, ic
);
10497 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo2
*r
)
10499 if (ndr_flags
& NDR_SCALARS
) {
10500 NDR_CHECK(ndr_push_align(ndr
, 5));
10501 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10503 uint32_t _flags_save_string
= ndr
->flags
;
10504 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10505 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10506 ndr
->flags
= _flags_save_string
;
10509 uint32_t _flags_save_string
= ndr
->flags
;
10510 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10511 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10512 ndr
->flags
= _flags_save_string
;
10515 uint32_t _flags_save_string
= ndr
->flags
;
10516 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10517 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10518 ndr
->flags
= _flags_save_string
;
10521 uint32_t _flags_save_string
= ndr
->flags
;
10522 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10523 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10524 ndr
->flags
= _flags_save_string
;
10527 uint32_t _flags_save_string
= ndr
->flags
;
10528 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10529 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10530 ndr
->flags
= _flags_save_string
;
10532 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10534 if (ndr_flags
& NDR_BUFFERS
) {
10536 uint32_t _flags_save_string
= ndr
->flags
;
10537 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10538 if (r
->driver_name
) {
10539 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10540 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10542 ndr
->flags
= _flags_save_string
;
10545 uint32_t _flags_save_string
= ndr
->flags
;
10546 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10547 if (r
->architecture
) {
10548 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
10549 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10551 ndr
->flags
= _flags_save_string
;
10554 uint32_t _flags_save_string
= ndr
->flags
;
10555 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10556 if (r
->driver_path
) {
10557 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
10558 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10560 ndr
->flags
= _flags_save_string
;
10563 uint32_t _flags_save_string
= ndr
->flags
;
10564 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10565 if (r
->data_file
) {
10566 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
10567 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10569 ndr
->flags
= _flags_save_string
;
10572 uint32_t _flags_save_string
= ndr
->flags
;
10573 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10574 if (r
->config_file
) {
10575 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
10576 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10578 ndr
->flags
= _flags_save_string
;
10581 return NDR_ERR_SUCCESS
;
10584 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo2
*r
)
10586 uint32_t _ptr_driver_name
;
10587 TALLOC_CTX
*_mem_save_driver_name_0
;
10588 uint32_t _ptr_architecture
;
10589 TALLOC_CTX
*_mem_save_architecture_0
;
10590 uint32_t _ptr_driver_path
;
10591 TALLOC_CTX
*_mem_save_driver_path_0
;
10592 uint32_t _ptr_data_file
;
10593 TALLOC_CTX
*_mem_save_data_file_0
;
10594 uint32_t _ptr_config_file
;
10595 TALLOC_CTX
*_mem_save_config_file_0
;
10596 if (ndr_flags
& NDR_SCALARS
) {
10597 NDR_CHECK(ndr_pull_align(ndr
, 5));
10598 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10600 uint32_t _flags_save_string
= ndr
->flags
;
10601 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10602 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10603 if (_ptr_driver_name
) {
10604 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10605 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10607 r
->driver_name
= NULL
;
10609 ndr
->flags
= _flags_save_string
;
10612 uint32_t _flags_save_string
= ndr
->flags
;
10613 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10614 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10615 if (_ptr_architecture
) {
10616 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10617 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10619 r
->architecture
= NULL
;
10621 ndr
->flags
= _flags_save_string
;
10624 uint32_t _flags_save_string
= ndr
->flags
;
10625 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10626 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10627 if (_ptr_driver_path
) {
10628 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10629 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10631 r
->driver_path
= NULL
;
10633 ndr
->flags
= _flags_save_string
;
10636 uint32_t _flags_save_string
= ndr
->flags
;
10637 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10638 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10639 if (_ptr_data_file
) {
10640 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10641 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10643 r
->data_file
= NULL
;
10645 ndr
->flags
= _flags_save_string
;
10648 uint32_t _flags_save_string
= ndr
->flags
;
10649 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10650 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10651 if (_ptr_config_file
) {
10652 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10653 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10655 r
->config_file
= NULL
;
10657 ndr
->flags
= _flags_save_string
;
10659 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
10661 if (ndr_flags
& NDR_BUFFERS
) {
10663 uint32_t _flags_save_string
= ndr
->flags
;
10664 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10665 if (r
->driver_name
) {
10666 uint32_t _relative_save_offset
;
10667 _relative_save_offset
= ndr
->offset
;
10668 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10669 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10670 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10671 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10672 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10673 ndr
->offset
= _relative_save_offset
;
10675 ndr
->flags
= _flags_save_string
;
10678 uint32_t _flags_save_string
= ndr
->flags
;
10679 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10680 if (r
->architecture
) {
10681 uint32_t _relative_save_offset
;
10682 _relative_save_offset
= ndr
->offset
;
10683 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
10684 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10685 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10686 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
10687 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10688 ndr
->offset
= _relative_save_offset
;
10690 ndr
->flags
= _flags_save_string
;
10693 uint32_t _flags_save_string
= ndr
->flags
;
10694 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10695 if (r
->driver_path
) {
10696 uint32_t _relative_save_offset
;
10697 _relative_save_offset
= ndr
->offset
;
10698 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
10699 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10700 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10701 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
10702 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10703 ndr
->offset
= _relative_save_offset
;
10705 ndr
->flags
= _flags_save_string
;
10708 uint32_t _flags_save_string
= ndr
->flags
;
10709 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10710 if (r
->data_file
) {
10711 uint32_t _relative_save_offset
;
10712 _relative_save_offset
= ndr
->offset
;
10713 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
10714 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10715 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10716 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
10717 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10718 ndr
->offset
= _relative_save_offset
;
10720 ndr
->flags
= _flags_save_string
;
10723 uint32_t _flags_save_string
= ndr
->flags
;
10724 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10725 if (r
->config_file
) {
10726 uint32_t _relative_save_offset
;
10727 _relative_save_offset
= ndr
->offset
;
10728 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
10729 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10730 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10731 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
10732 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10733 ndr
->offset
= _relative_save_offset
;
10735 ndr
->flags
= _flags_save_string
;
10738 return NDR_ERR_SUCCESS
;
10741 _PUBLIC_
void ndr_print_spoolss_DriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo2
*r
)
10743 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo2");
10745 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10746 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10748 if (r
->driver_name
) {
10749 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10752 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10754 if (r
->architecture
) {
10755 ndr_print_string(ndr
, "architecture", r
->architecture
);
10758 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10760 if (r
->driver_path
) {
10761 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10764 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10766 if (r
->data_file
) {
10767 ndr_print_string(ndr
, "data_file", r
->data_file
);
10770 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10772 if (r
->config_file
) {
10773 ndr_print_string(ndr
, "config_file", r
->config_file
);
10779 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10781 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo2
, ic
);
10784 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo3
*r
)
10786 if (ndr_flags
& NDR_SCALARS
) {
10787 NDR_CHECK(ndr_push_align(ndr
, 5));
10788 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10790 uint32_t _flags_save_string
= ndr
->flags
;
10791 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10792 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10793 ndr
->flags
= _flags_save_string
;
10796 uint32_t _flags_save_string
= ndr
->flags
;
10797 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10798 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10799 ndr
->flags
= _flags_save_string
;
10802 uint32_t _flags_save_string
= ndr
->flags
;
10803 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10804 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10805 ndr
->flags
= _flags_save_string
;
10808 uint32_t _flags_save_string
= ndr
->flags
;
10809 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10810 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10811 ndr
->flags
= _flags_save_string
;
10814 uint32_t _flags_save_string
= ndr
->flags
;
10815 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10816 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10817 ndr
->flags
= _flags_save_string
;
10820 uint32_t _flags_save_string
= ndr
->flags
;
10821 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10822 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
10823 ndr
->flags
= _flags_save_string
;
10826 uint32_t _flags_save_string_array
= ndr
->flags
;
10827 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10828 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
10829 ndr
->flags
= _flags_save_string_array
;
10832 uint32_t _flags_save_string
= ndr
->flags
;
10833 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10834 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
10835 ndr
->flags
= _flags_save_string
;
10838 uint32_t _flags_save_string
= ndr
->flags
;
10839 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10840 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
10841 ndr
->flags
= _flags_save_string
;
10843 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
10845 if (ndr_flags
& NDR_BUFFERS
) {
10847 uint32_t _flags_save_string
= ndr
->flags
;
10848 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10849 if (r
->driver_name
) {
10850 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10851 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10853 ndr
->flags
= _flags_save_string
;
10856 uint32_t _flags_save_string
= ndr
->flags
;
10857 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10858 if (r
->architecture
) {
10859 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
10860 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10862 ndr
->flags
= _flags_save_string
;
10865 uint32_t _flags_save_string
= ndr
->flags
;
10866 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10867 if (r
->driver_path
) {
10868 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
10869 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10871 ndr
->flags
= _flags_save_string
;
10874 uint32_t _flags_save_string
= ndr
->flags
;
10875 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10876 if (r
->data_file
) {
10877 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
10878 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10880 ndr
->flags
= _flags_save_string
;
10883 uint32_t _flags_save_string
= ndr
->flags
;
10884 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10885 if (r
->config_file
) {
10886 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
10887 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10889 ndr
->flags
= _flags_save_string
;
10892 uint32_t _flags_save_string
= ndr
->flags
;
10893 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10894 if (r
->help_file
) {
10895 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
10896 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
10898 ndr
->flags
= _flags_save_string
;
10901 uint32_t _flags_save_string_array
= ndr
->flags
;
10902 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10903 if (r
->dependent_files
) {
10904 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
10905 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
10907 ndr
->flags
= _flags_save_string_array
;
10910 uint32_t _flags_save_string
= ndr
->flags
;
10911 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10912 if (r
->monitor_name
) {
10913 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
10914 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
10916 ndr
->flags
= _flags_save_string
;
10919 uint32_t _flags_save_string
= ndr
->flags
;
10920 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10921 if (r
->default_datatype
) {
10922 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
10923 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
10925 ndr
->flags
= _flags_save_string
;
10928 return NDR_ERR_SUCCESS
;
10931 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo3
*r
)
10933 uint32_t _ptr_driver_name
;
10934 TALLOC_CTX
*_mem_save_driver_name_0
;
10935 uint32_t _ptr_architecture
;
10936 TALLOC_CTX
*_mem_save_architecture_0
;
10937 uint32_t _ptr_driver_path
;
10938 TALLOC_CTX
*_mem_save_driver_path_0
;
10939 uint32_t _ptr_data_file
;
10940 TALLOC_CTX
*_mem_save_data_file_0
;
10941 uint32_t _ptr_config_file
;
10942 TALLOC_CTX
*_mem_save_config_file_0
;
10943 uint32_t _ptr_help_file
;
10944 TALLOC_CTX
*_mem_save_help_file_0
;
10945 uint32_t _ptr_dependent_files
;
10946 TALLOC_CTX
*_mem_save_dependent_files_0
;
10947 uint32_t _ptr_monitor_name
;
10948 TALLOC_CTX
*_mem_save_monitor_name_0
;
10949 uint32_t _ptr_default_datatype
;
10950 TALLOC_CTX
*_mem_save_default_datatype_0
;
10951 if (ndr_flags
& NDR_SCALARS
) {
10952 NDR_CHECK(ndr_pull_align(ndr
, 5));
10953 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10955 uint32_t _flags_save_string
= ndr
->flags
;
10956 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10957 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10958 if (_ptr_driver_name
) {
10959 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10960 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10962 r
->driver_name
= NULL
;
10964 ndr
->flags
= _flags_save_string
;
10967 uint32_t _flags_save_string
= ndr
->flags
;
10968 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10969 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10970 if (_ptr_architecture
) {
10971 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10972 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10974 r
->architecture
= NULL
;
10976 ndr
->flags
= _flags_save_string
;
10979 uint32_t _flags_save_string
= ndr
->flags
;
10980 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10981 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10982 if (_ptr_driver_path
) {
10983 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10984 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10986 r
->driver_path
= NULL
;
10988 ndr
->flags
= _flags_save_string
;
10991 uint32_t _flags_save_string
= ndr
->flags
;
10992 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10993 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10994 if (_ptr_data_file
) {
10995 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10996 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10998 r
->data_file
= NULL
;
11000 ndr
->flags
= _flags_save_string
;
11003 uint32_t _flags_save_string
= ndr
->flags
;
11004 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11005 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11006 if (_ptr_config_file
) {
11007 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11008 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11010 r
->config_file
= NULL
;
11012 ndr
->flags
= _flags_save_string
;
11015 uint32_t _flags_save_string
= ndr
->flags
;
11016 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11017 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
11018 if (_ptr_help_file
) {
11019 NDR_PULL_ALLOC(ndr
, r
->help_file
);
11020 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
11022 r
->help_file
= NULL
;
11024 ndr
->flags
= _flags_save_string
;
11027 uint32_t _flags_save_string_array
= ndr
->flags
;
11028 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11029 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
11030 if (_ptr_dependent_files
) {
11031 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
11032 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
11034 r
->dependent_files
= NULL
;
11036 ndr
->flags
= _flags_save_string_array
;
11039 uint32_t _flags_save_string
= ndr
->flags
;
11040 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11041 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
11042 if (_ptr_monitor_name
) {
11043 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
11044 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
11046 r
->monitor_name
= NULL
;
11048 ndr
->flags
= _flags_save_string
;
11051 uint32_t _flags_save_string
= ndr
->flags
;
11052 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11053 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
11054 if (_ptr_default_datatype
) {
11055 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
11056 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
11058 r
->default_datatype
= NULL
;
11060 ndr
->flags
= _flags_save_string
;
11062 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
11064 if (ndr_flags
& NDR_BUFFERS
) {
11066 uint32_t _flags_save_string
= ndr
->flags
;
11067 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11068 if (r
->driver_name
) {
11069 uint32_t _relative_save_offset
;
11070 _relative_save_offset
= ndr
->offset
;
11071 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11072 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11073 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11074 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11075 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11076 ndr
->offset
= _relative_save_offset
;
11078 ndr
->flags
= _flags_save_string
;
11081 uint32_t _flags_save_string
= ndr
->flags
;
11082 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11083 if (r
->architecture
) {
11084 uint32_t _relative_save_offset
;
11085 _relative_save_offset
= ndr
->offset
;
11086 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11087 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11088 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11089 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11090 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11091 ndr
->offset
= _relative_save_offset
;
11093 ndr
->flags
= _flags_save_string
;
11096 uint32_t _flags_save_string
= ndr
->flags
;
11097 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11098 if (r
->driver_path
) {
11099 uint32_t _relative_save_offset
;
11100 _relative_save_offset
= ndr
->offset
;
11101 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11102 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11103 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11104 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11105 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11106 ndr
->offset
= _relative_save_offset
;
11108 ndr
->flags
= _flags_save_string
;
11111 uint32_t _flags_save_string
= ndr
->flags
;
11112 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11113 if (r
->data_file
) {
11114 uint32_t _relative_save_offset
;
11115 _relative_save_offset
= ndr
->offset
;
11116 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11117 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11118 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11119 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11120 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11121 ndr
->offset
= _relative_save_offset
;
11123 ndr
->flags
= _flags_save_string
;
11126 uint32_t _flags_save_string
= ndr
->flags
;
11127 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11128 if (r
->config_file
) {
11129 uint32_t _relative_save_offset
;
11130 _relative_save_offset
= ndr
->offset
;
11131 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11132 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11133 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11134 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11135 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11136 ndr
->offset
= _relative_save_offset
;
11138 ndr
->flags
= _flags_save_string
;
11141 uint32_t _flags_save_string
= ndr
->flags
;
11142 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11143 if (r
->help_file
) {
11144 uint32_t _relative_save_offset
;
11145 _relative_save_offset
= ndr
->offset
;
11146 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11147 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11148 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11149 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11150 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11151 ndr
->offset
= _relative_save_offset
;
11153 ndr
->flags
= _flags_save_string
;
11156 uint32_t _flags_save_string_array
= ndr
->flags
;
11157 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11158 if (r
->dependent_files
) {
11159 uint32_t _relative_save_offset
;
11160 _relative_save_offset
= ndr
->offset
;
11161 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11162 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11163 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11164 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11165 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11166 ndr
->offset
= _relative_save_offset
;
11168 ndr
->flags
= _flags_save_string_array
;
11171 uint32_t _flags_save_string
= ndr
->flags
;
11172 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11173 if (r
->monitor_name
) {
11174 uint32_t _relative_save_offset
;
11175 _relative_save_offset
= ndr
->offset
;
11176 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11177 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11178 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11179 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11180 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11181 ndr
->offset
= _relative_save_offset
;
11183 ndr
->flags
= _flags_save_string
;
11186 uint32_t _flags_save_string
= ndr
->flags
;
11187 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11188 if (r
->default_datatype
) {
11189 uint32_t _relative_save_offset
;
11190 _relative_save_offset
= ndr
->offset
;
11191 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
11192 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11193 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
11194 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
11195 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
11196 ndr
->offset
= _relative_save_offset
;
11198 ndr
->flags
= _flags_save_string
;
11201 return NDR_ERR_SUCCESS
;
11204 _PUBLIC_
void ndr_print_spoolss_DriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo3
*r
)
11206 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo3");
11208 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11209 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11211 if (r
->driver_name
) {
11212 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11215 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11217 if (r
->architecture
) {
11218 ndr_print_string(ndr
, "architecture", r
->architecture
);
11221 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11223 if (r
->driver_path
) {
11224 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11227 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11229 if (r
->data_file
) {
11230 ndr_print_string(ndr
, "data_file", r
->data_file
);
11233 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11235 if (r
->config_file
) {
11236 ndr_print_string(ndr
, "config_file", r
->config_file
);
11239 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
11241 if (r
->help_file
) {
11242 ndr_print_string(ndr
, "help_file", r
->help_file
);
11245 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
11247 if (r
->dependent_files
) {
11248 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
11251 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
11253 if (r
->monitor_name
) {
11254 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
11257 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
11259 if (r
->default_datatype
) {
11260 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
11266 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11268 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo3
, ic
);
11271 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo4
*r
)
11273 if (ndr_flags
& NDR_SCALARS
) {
11274 NDR_CHECK(ndr_push_align(ndr
, 5));
11275 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11277 uint32_t _flags_save_string
= ndr
->flags
;
11278 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11279 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11280 ndr
->flags
= _flags_save_string
;
11283 uint32_t _flags_save_string
= ndr
->flags
;
11284 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11285 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11286 ndr
->flags
= _flags_save_string
;
11289 uint32_t _flags_save_string
= ndr
->flags
;
11290 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11291 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11292 ndr
->flags
= _flags_save_string
;
11295 uint32_t _flags_save_string
= ndr
->flags
;
11296 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11297 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11298 ndr
->flags
= _flags_save_string
;
11301 uint32_t _flags_save_string
= ndr
->flags
;
11302 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11303 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11304 ndr
->flags
= _flags_save_string
;
11307 uint32_t _flags_save_string
= ndr
->flags
;
11308 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11309 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
11310 ndr
->flags
= _flags_save_string
;
11313 uint32_t _flags_save_string_array
= ndr
->flags
;
11314 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11315 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
11316 ndr
->flags
= _flags_save_string_array
;
11319 uint32_t _flags_save_string
= ndr
->flags
;
11320 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11321 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
11322 ndr
->flags
= _flags_save_string
;
11325 uint32_t _flags_save_string
= ndr
->flags
;
11326 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11327 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
11328 ndr
->flags
= _flags_save_string
;
11331 uint32_t _flags_save_string_array
= ndr
->flags
;
11332 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11333 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
11334 ndr
->flags
= _flags_save_string_array
;
11336 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
11338 if (ndr_flags
& NDR_BUFFERS
) {
11340 uint32_t _flags_save_string
= ndr
->flags
;
11341 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11342 if (r
->driver_name
) {
11343 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
11344 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11346 ndr
->flags
= _flags_save_string
;
11349 uint32_t _flags_save_string
= ndr
->flags
;
11350 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11351 if (r
->architecture
) {
11352 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
11353 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
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 if (r
->driver_path
) {
11361 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
11362 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11364 ndr
->flags
= _flags_save_string
;
11367 uint32_t _flags_save_string
= ndr
->flags
;
11368 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11369 if (r
->data_file
) {
11370 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
11371 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
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 if (r
->config_file
) {
11379 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
11380 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11382 ndr
->flags
= _flags_save_string
;
11385 uint32_t _flags_save_string
= ndr
->flags
;
11386 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11387 if (r
->help_file
) {
11388 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
11389 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
11391 ndr
->flags
= _flags_save_string
;
11394 uint32_t _flags_save_string_array
= ndr
->flags
;
11395 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11396 if (r
->dependent_files
) {
11397 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
11398 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
11400 ndr
->flags
= _flags_save_string_array
;
11403 uint32_t _flags_save_string
= ndr
->flags
;
11404 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11405 if (r
->monitor_name
) {
11406 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
11407 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
11409 ndr
->flags
= _flags_save_string
;
11412 uint32_t _flags_save_string
= ndr
->flags
;
11413 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11414 if (r
->default_datatype
) {
11415 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
11416 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
11418 ndr
->flags
= _flags_save_string
;
11421 uint32_t _flags_save_string_array
= ndr
->flags
;
11422 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11423 if (r
->previous_names
) {
11424 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
11425 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
11427 ndr
->flags
= _flags_save_string_array
;
11430 return NDR_ERR_SUCCESS
;
11433 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo4
*r
)
11435 uint32_t _ptr_driver_name
;
11436 TALLOC_CTX
*_mem_save_driver_name_0
;
11437 uint32_t _ptr_architecture
;
11438 TALLOC_CTX
*_mem_save_architecture_0
;
11439 uint32_t _ptr_driver_path
;
11440 TALLOC_CTX
*_mem_save_driver_path_0
;
11441 uint32_t _ptr_data_file
;
11442 TALLOC_CTX
*_mem_save_data_file_0
;
11443 uint32_t _ptr_config_file
;
11444 TALLOC_CTX
*_mem_save_config_file_0
;
11445 uint32_t _ptr_help_file
;
11446 TALLOC_CTX
*_mem_save_help_file_0
;
11447 uint32_t _ptr_dependent_files
;
11448 TALLOC_CTX
*_mem_save_dependent_files_0
;
11449 uint32_t _ptr_monitor_name
;
11450 TALLOC_CTX
*_mem_save_monitor_name_0
;
11451 uint32_t _ptr_default_datatype
;
11452 TALLOC_CTX
*_mem_save_default_datatype_0
;
11453 uint32_t _ptr_previous_names
;
11454 TALLOC_CTX
*_mem_save_previous_names_0
;
11455 if (ndr_flags
& NDR_SCALARS
) {
11456 NDR_CHECK(ndr_pull_align(ndr
, 5));
11457 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11459 uint32_t _flags_save_string
= ndr
->flags
;
11460 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11461 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11462 if (_ptr_driver_name
) {
11463 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11464 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11466 r
->driver_name
= NULL
;
11468 ndr
->flags
= _flags_save_string
;
11471 uint32_t _flags_save_string
= ndr
->flags
;
11472 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11473 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11474 if (_ptr_architecture
) {
11475 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11476 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11478 r
->architecture
= NULL
;
11480 ndr
->flags
= _flags_save_string
;
11483 uint32_t _flags_save_string
= ndr
->flags
;
11484 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11485 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11486 if (_ptr_driver_path
) {
11487 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11488 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11490 r
->driver_path
= NULL
;
11492 ndr
->flags
= _flags_save_string
;
11495 uint32_t _flags_save_string
= ndr
->flags
;
11496 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11497 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11498 if (_ptr_data_file
) {
11499 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11500 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11502 r
->data_file
= NULL
;
11504 ndr
->flags
= _flags_save_string
;
11507 uint32_t _flags_save_string
= ndr
->flags
;
11508 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11509 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11510 if (_ptr_config_file
) {
11511 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11512 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11514 r
->config_file
= NULL
;
11516 ndr
->flags
= _flags_save_string
;
11519 uint32_t _flags_save_string
= ndr
->flags
;
11520 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11521 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
11522 if (_ptr_help_file
) {
11523 NDR_PULL_ALLOC(ndr
, r
->help_file
);
11524 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
11526 r
->help_file
= NULL
;
11528 ndr
->flags
= _flags_save_string
;
11531 uint32_t _flags_save_string_array
= ndr
->flags
;
11532 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11533 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
11534 if (_ptr_dependent_files
) {
11535 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
11536 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
11538 r
->dependent_files
= NULL
;
11540 ndr
->flags
= _flags_save_string_array
;
11543 uint32_t _flags_save_string
= ndr
->flags
;
11544 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11545 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
11546 if (_ptr_monitor_name
) {
11547 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
11548 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
11550 r
->monitor_name
= NULL
;
11552 ndr
->flags
= _flags_save_string
;
11555 uint32_t _flags_save_string
= ndr
->flags
;
11556 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11557 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
11558 if (_ptr_default_datatype
) {
11559 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
11560 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
11562 r
->default_datatype
= NULL
;
11564 ndr
->flags
= _flags_save_string
;
11567 uint32_t _flags_save_string_array
= ndr
->flags
;
11568 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11569 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
11570 if (_ptr_previous_names
) {
11571 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
11572 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
11574 r
->previous_names
= NULL
;
11576 ndr
->flags
= _flags_save_string_array
;
11578 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
11580 if (ndr_flags
& NDR_BUFFERS
) {
11582 uint32_t _flags_save_string
= ndr
->flags
;
11583 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11584 if (r
->driver_name
) {
11585 uint32_t _relative_save_offset
;
11586 _relative_save_offset
= ndr
->offset
;
11587 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11588 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11589 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11590 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11591 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11592 ndr
->offset
= _relative_save_offset
;
11594 ndr
->flags
= _flags_save_string
;
11597 uint32_t _flags_save_string
= ndr
->flags
;
11598 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11599 if (r
->architecture
) {
11600 uint32_t _relative_save_offset
;
11601 _relative_save_offset
= ndr
->offset
;
11602 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11603 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11604 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11605 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11606 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11607 ndr
->offset
= _relative_save_offset
;
11609 ndr
->flags
= _flags_save_string
;
11612 uint32_t _flags_save_string
= ndr
->flags
;
11613 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11614 if (r
->driver_path
) {
11615 uint32_t _relative_save_offset
;
11616 _relative_save_offset
= ndr
->offset
;
11617 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11618 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11619 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11620 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11621 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11622 ndr
->offset
= _relative_save_offset
;
11624 ndr
->flags
= _flags_save_string
;
11627 uint32_t _flags_save_string
= ndr
->flags
;
11628 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11629 if (r
->data_file
) {
11630 uint32_t _relative_save_offset
;
11631 _relative_save_offset
= ndr
->offset
;
11632 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11633 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11634 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11635 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11636 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11637 ndr
->offset
= _relative_save_offset
;
11639 ndr
->flags
= _flags_save_string
;
11642 uint32_t _flags_save_string
= ndr
->flags
;
11643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11644 if (r
->config_file
) {
11645 uint32_t _relative_save_offset
;
11646 _relative_save_offset
= ndr
->offset
;
11647 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11648 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11649 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11650 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11651 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11652 ndr
->offset
= _relative_save_offset
;
11654 ndr
->flags
= _flags_save_string
;
11657 uint32_t _flags_save_string
= ndr
->flags
;
11658 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11659 if (r
->help_file
) {
11660 uint32_t _relative_save_offset
;
11661 _relative_save_offset
= ndr
->offset
;
11662 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11663 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11664 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11665 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11666 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11667 ndr
->offset
= _relative_save_offset
;
11669 ndr
->flags
= _flags_save_string
;
11672 uint32_t _flags_save_string_array
= ndr
->flags
;
11673 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11674 if (r
->dependent_files
) {
11675 uint32_t _relative_save_offset
;
11676 _relative_save_offset
= ndr
->offset
;
11677 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11678 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11679 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11680 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11681 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11682 ndr
->offset
= _relative_save_offset
;
11684 ndr
->flags
= _flags_save_string_array
;
11687 uint32_t _flags_save_string
= ndr
->flags
;
11688 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11689 if (r
->monitor_name
) {
11690 uint32_t _relative_save_offset
;
11691 _relative_save_offset
= ndr
->offset
;
11692 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11693 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11694 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11695 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11696 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11697 ndr
->offset
= _relative_save_offset
;
11699 ndr
->flags
= _flags_save_string
;
11702 uint32_t _flags_save_string
= ndr
->flags
;
11703 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11704 if (r
->default_datatype
) {
11705 uint32_t _relative_save_offset
;
11706 _relative_save_offset
= ndr
->offset
;
11707 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
11708 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11709 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
11710 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
11711 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
11712 ndr
->offset
= _relative_save_offset
;
11714 ndr
->flags
= _flags_save_string
;
11717 uint32_t _flags_save_string_array
= ndr
->flags
;
11718 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11719 if (r
->previous_names
) {
11720 uint32_t _relative_save_offset
;
11721 _relative_save_offset
= ndr
->offset
;
11722 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
11723 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11724 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
11725 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
11726 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
11727 ndr
->offset
= _relative_save_offset
;
11729 ndr
->flags
= _flags_save_string_array
;
11732 return NDR_ERR_SUCCESS
;
11735 _PUBLIC_
void ndr_print_spoolss_DriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo4
*r
)
11737 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo4");
11739 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11740 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11742 if (r
->driver_name
) {
11743 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11746 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11748 if (r
->architecture
) {
11749 ndr_print_string(ndr
, "architecture", r
->architecture
);
11752 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11754 if (r
->driver_path
) {
11755 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11758 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11760 if (r
->data_file
) {
11761 ndr_print_string(ndr
, "data_file", r
->data_file
);
11764 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11766 if (r
->config_file
) {
11767 ndr_print_string(ndr
, "config_file", r
->config_file
);
11770 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
11772 if (r
->help_file
) {
11773 ndr_print_string(ndr
, "help_file", r
->help_file
);
11776 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
11778 if (r
->dependent_files
) {
11779 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
11782 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
11784 if (r
->monitor_name
) {
11785 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
11788 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
11790 if (r
->default_datatype
) {
11791 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
11794 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
11796 if (r
->previous_names
) {
11797 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
11803 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11805 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo4
, ic
);
11808 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo5
*r
)
11810 if (ndr_flags
& NDR_SCALARS
) {
11811 NDR_CHECK(ndr_push_align(ndr
, 5));
11812 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11814 uint32_t _flags_save_string
= ndr
->flags
;
11815 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11816 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11817 ndr
->flags
= _flags_save_string
;
11820 uint32_t _flags_save_string
= ndr
->flags
;
11821 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11822 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11823 ndr
->flags
= _flags_save_string
;
11826 uint32_t _flags_save_string
= ndr
->flags
;
11827 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11828 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11829 ndr
->flags
= _flags_save_string
;
11832 uint32_t _flags_save_string
= ndr
->flags
;
11833 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11834 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11835 ndr
->flags
= _flags_save_string
;
11838 uint32_t _flags_save_string
= ndr
->flags
;
11839 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11840 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11841 ndr
->flags
= _flags_save_string
;
11843 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr
, NDR_SCALARS
, r
->driver_attributes
));
11844 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->config_version
));
11845 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->driver_version
));
11846 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
11848 if (ndr_flags
& NDR_BUFFERS
) {
11850 uint32_t _flags_save_string
= ndr
->flags
;
11851 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11852 if (r
->driver_name
) {
11853 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
11854 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11856 ndr
->flags
= _flags_save_string
;
11859 uint32_t _flags_save_string
= ndr
->flags
;
11860 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11861 if (r
->architecture
) {
11862 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
11863 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11865 ndr
->flags
= _flags_save_string
;
11868 uint32_t _flags_save_string
= ndr
->flags
;
11869 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11870 if (r
->driver_path
) {
11871 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
11872 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11874 ndr
->flags
= _flags_save_string
;
11877 uint32_t _flags_save_string
= ndr
->flags
;
11878 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11879 if (r
->data_file
) {
11880 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
11881 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11883 ndr
->flags
= _flags_save_string
;
11886 uint32_t _flags_save_string
= ndr
->flags
;
11887 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11888 if (r
->config_file
) {
11889 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
11890 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11892 ndr
->flags
= _flags_save_string
;
11895 return NDR_ERR_SUCCESS
;
11898 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo5
*r
)
11900 uint32_t _ptr_driver_name
;
11901 TALLOC_CTX
*_mem_save_driver_name_0
;
11902 uint32_t _ptr_architecture
;
11903 TALLOC_CTX
*_mem_save_architecture_0
;
11904 uint32_t _ptr_driver_path
;
11905 TALLOC_CTX
*_mem_save_driver_path_0
;
11906 uint32_t _ptr_data_file
;
11907 TALLOC_CTX
*_mem_save_data_file_0
;
11908 uint32_t _ptr_config_file
;
11909 TALLOC_CTX
*_mem_save_config_file_0
;
11910 if (ndr_flags
& NDR_SCALARS
) {
11911 NDR_CHECK(ndr_pull_align(ndr
, 5));
11912 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11914 uint32_t _flags_save_string
= ndr
->flags
;
11915 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11916 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11917 if (_ptr_driver_name
) {
11918 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11919 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11921 r
->driver_name
= NULL
;
11923 ndr
->flags
= _flags_save_string
;
11926 uint32_t _flags_save_string
= ndr
->flags
;
11927 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11928 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11929 if (_ptr_architecture
) {
11930 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11931 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11933 r
->architecture
= NULL
;
11935 ndr
->flags
= _flags_save_string
;
11938 uint32_t _flags_save_string
= ndr
->flags
;
11939 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11940 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11941 if (_ptr_driver_path
) {
11942 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11943 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11945 r
->driver_path
= NULL
;
11947 ndr
->flags
= _flags_save_string
;
11950 uint32_t _flags_save_string
= ndr
->flags
;
11951 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11952 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11953 if (_ptr_data_file
) {
11954 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11955 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11957 r
->data_file
= NULL
;
11959 ndr
->flags
= _flags_save_string
;
11962 uint32_t _flags_save_string
= ndr
->flags
;
11963 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11964 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11965 if (_ptr_config_file
) {
11966 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11967 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11969 r
->config_file
= NULL
;
11971 ndr
->flags
= _flags_save_string
;
11973 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr
, NDR_SCALARS
, &r
->driver_attributes
));
11974 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->config_version
));
11975 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->driver_version
));
11976 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
11978 if (ndr_flags
& NDR_BUFFERS
) {
11980 uint32_t _flags_save_string
= ndr
->flags
;
11981 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11982 if (r
->driver_name
) {
11983 uint32_t _relative_save_offset
;
11984 _relative_save_offset
= ndr
->offset
;
11985 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11986 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11987 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11988 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11989 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11990 ndr
->offset
= _relative_save_offset
;
11992 ndr
->flags
= _flags_save_string
;
11995 uint32_t _flags_save_string
= ndr
->flags
;
11996 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11997 if (r
->architecture
) {
11998 uint32_t _relative_save_offset
;
11999 _relative_save_offset
= ndr
->offset
;
12000 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12001 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12002 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12003 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12004 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12005 ndr
->offset
= _relative_save_offset
;
12007 ndr
->flags
= _flags_save_string
;
12010 uint32_t _flags_save_string
= ndr
->flags
;
12011 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12012 if (r
->driver_path
) {
12013 uint32_t _relative_save_offset
;
12014 _relative_save_offset
= ndr
->offset
;
12015 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12016 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12017 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12018 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12019 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12020 ndr
->offset
= _relative_save_offset
;
12022 ndr
->flags
= _flags_save_string
;
12025 uint32_t _flags_save_string
= ndr
->flags
;
12026 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12027 if (r
->data_file
) {
12028 uint32_t _relative_save_offset
;
12029 _relative_save_offset
= ndr
->offset
;
12030 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12031 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12032 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12033 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12034 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12035 ndr
->offset
= _relative_save_offset
;
12037 ndr
->flags
= _flags_save_string
;
12040 uint32_t _flags_save_string
= ndr
->flags
;
12041 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12042 if (r
->config_file
) {
12043 uint32_t _relative_save_offset
;
12044 _relative_save_offset
= ndr
->offset
;
12045 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12046 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12047 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12048 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12050 ndr
->offset
= _relative_save_offset
;
12052 ndr
->flags
= _flags_save_string
;
12055 return NDR_ERR_SUCCESS
;
12058 _PUBLIC_
void ndr_print_spoolss_DriverInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo5
*r
)
12060 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo5");
12062 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12063 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12065 if (r
->driver_name
) {
12066 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12069 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12071 if (r
->architecture
) {
12072 ndr_print_string(ndr
, "architecture", r
->architecture
);
12075 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12077 if (r
->driver_path
) {
12078 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12081 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12083 if (r
->data_file
) {
12084 ndr_print_string(ndr
, "data_file", r
->data_file
);
12087 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12089 if (r
->config_file
) {
12090 ndr_print_string(ndr
, "config_file", r
->config_file
);
12093 ndr_print_spoolss_DriverAttributes(ndr
, "driver_attributes", r
->driver_attributes
);
12094 ndr_print_uint32(ndr
, "config_version", r
->config_version
);
12095 ndr_print_uint32(ndr
, "driver_version", r
->driver_version
);
12099 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12101 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo5
, ic
);
12104 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo6
*r
)
12106 if (ndr_flags
& NDR_SCALARS
) {
12107 NDR_CHECK(ndr_push_align(ndr
, 8));
12108 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12110 uint32_t _flags_save_string
= ndr
->flags
;
12111 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12112 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12113 ndr
->flags
= _flags_save_string
;
12116 uint32_t _flags_save_string
= ndr
->flags
;
12117 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12118 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
12119 ndr
->flags
= _flags_save_string
;
12122 uint32_t _flags_save_string
= ndr
->flags
;
12123 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12124 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
12125 ndr
->flags
= _flags_save_string
;
12128 uint32_t _flags_save_string
= ndr
->flags
;
12129 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12130 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
12131 ndr
->flags
= _flags_save_string
;
12134 uint32_t _flags_save_string
= ndr
->flags
;
12135 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12136 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
12137 ndr
->flags
= _flags_save_string
;
12140 uint32_t _flags_save_string
= ndr
->flags
;
12141 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12142 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
12143 ndr
->flags
= _flags_save_string
;
12146 uint32_t _flags_save_string_array
= ndr
->flags
;
12147 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12148 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
12149 ndr
->flags
= _flags_save_string_array
;
12152 uint32_t _flags_save_string
= ndr
->flags
;
12153 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12154 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
12155 ndr
->flags
= _flags_save_string
;
12158 uint32_t _flags_save_string
= ndr
->flags
;
12159 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12160 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
12161 ndr
->flags
= _flags_save_string
;
12164 uint32_t _flags_save_string_array
= ndr
->flags
;
12165 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12166 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
12167 ndr
->flags
= _flags_save_string_array
;
12169 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
12170 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
12172 uint32_t _flags_save_string
= ndr
->flags
;
12173 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12174 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
12175 ndr
->flags
= _flags_save_string
;
12178 uint32_t _flags_save_string
= ndr
->flags
;
12179 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12180 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
12187 ndr
->flags
= _flags_save_string
;
12190 uint32_t _flags_save_string
= ndr
->flags
;
12191 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12192 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
12193 ndr
->flags
= _flags_save_string
;
12195 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
12197 if (ndr_flags
& NDR_BUFFERS
) {
12199 uint32_t _flags_save_string
= ndr
->flags
;
12200 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12201 if (r
->driver_name
) {
12202 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
12203 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12205 ndr
->flags
= _flags_save_string
;
12208 uint32_t _flags_save_string
= ndr
->flags
;
12209 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12210 if (r
->architecture
) {
12211 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
12212 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12214 ndr
->flags
= _flags_save_string
;
12217 uint32_t _flags_save_string
= ndr
->flags
;
12218 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12219 if (r
->driver_path
) {
12220 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
12221 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
12223 ndr
->flags
= _flags_save_string
;
12226 uint32_t _flags_save_string
= ndr
->flags
;
12227 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12228 if (r
->data_file
) {
12229 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
12230 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
12232 ndr
->flags
= _flags_save_string
;
12235 uint32_t _flags_save_string
= ndr
->flags
;
12236 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12237 if (r
->config_file
) {
12238 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
12239 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
12241 ndr
->flags
= _flags_save_string
;
12244 uint32_t _flags_save_string
= ndr
->flags
;
12245 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12246 if (r
->help_file
) {
12247 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
12248 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
12250 ndr
->flags
= _flags_save_string
;
12253 uint32_t _flags_save_string_array
= ndr
->flags
;
12254 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12255 if (r
->dependent_files
) {
12256 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
12257 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
12259 ndr
->flags
= _flags_save_string_array
;
12262 uint32_t _flags_save_string
= ndr
->flags
;
12263 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12264 if (r
->monitor_name
) {
12265 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
12266 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
12268 ndr
->flags
= _flags_save_string
;
12271 uint32_t _flags_save_string
= ndr
->flags
;
12272 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12273 if (r
->default_datatype
) {
12274 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
12275 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
12277 ndr
->flags
= _flags_save_string
;
12280 uint32_t _flags_save_string_array
= ndr
->flags
;
12281 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12282 if (r
->previous_names
) {
12283 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
12284 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
12286 ndr
->flags
= _flags_save_string_array
;
12289 uint32_t _flags_save_string
= ndr
->flags
;
12290 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12291 if (r
->manufacturer_name
) {
12292 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_name
));
12293 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
12295 ndr
->flags
= _flags_save_string
;
12298 uint32_t _flags_save_string
= ndr
->flags
;
12299 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12300 if (r
->manufacturer_url
) {
12301 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_url
));
12302 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
12304 ndr
->flags
= _flags_save_string
;
12307 uint32_t _flags_save_string
= ndr
->flags
;
12308 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12309 if (r
->hardware_id
) {
12310 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->hardware_id
));
12311 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
12313 ndr
->flags
= _flags_save_string
;
12316 uint32_t _flags_save_string
= ndr
->flags
;
12317 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12319 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->provider
));
12320 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
12322 ndr
->flags
= _flags_save_string
;
12325 return NDR_ERR_SUCCESS
;
12328 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo6
*r
)
12330 uint32_t _ptr_driver_name
;
12331 TALLOC_CTX
*_mem_save_driver_name_0
;
12332 uint32_t _ptr_architecture
;
12333 TALLOC_CTX
*_mem_save_architecture_0
;
12334 uint32_t _ptr_driver_path
;
12335 TALLOC_CTX
*_mem_save_driver_path_0
;
12336 uint32_t _ptr_data_file
;
12337 TALLOC_CTX
*_mem_save_data_file_0
;
12338 uint32_t _ptr_config_file
;
12339 TALLOC_CTX
*_mem_save_config_file_0
;
12340 uint32_t _ptr_help_file
;
12341 TALLOC_CTX
*_mem_save_help_file_0
;
12342 uint32_t _ptr_dependent_files
;
12343 TALLOC_CTX
*_mem_save_dependent_files_0
;
12344 uint32_t _ptr_monitor_name
;
12345 TALLOC_CTX
*_mem_save_monitor_name_0
;
12346 uint32_t _ptr_default_datatype
;
12347 TALLOC_CTX
*_mem_save_default_datatype_0
;
12348 uint32_t _ptr_previous_names
;
12349 TALLOC_CTX
*_mem_save_previous_names_0
;
12350 uint32_t _ptr_manufacturer_name
;
12351 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
12352 uint32_t _ptr_manufacturer_url
;
12353 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
12354 uint32_t _ptr_hardware_id
;
12355 TALLOC_CTX
*_mem_save_hardware_id_0
;
12356 uint32_t _ptr_provider
;
12357 TALLOC_CTX
*_mem_save_provider_0
;
12358 if (ndr_flags
& NDR_SCALARS
) {
12359 NDR_CHECK(ndr_pull_align(ndr
, 8));
12360 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
12362 uint32_t _flags_save_string
= ndr
->flags
;
12363 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12364 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
12365 if (_ptr_driver_name
) {
12366 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
12367 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
12369 r
->driver_name
= NULL
;
12371 ndr
->flags
= _flags_save_string
;
12374 uint32_t _flags_save_string
= ndr
->flags
;
12375 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12376 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
12377 if (_ptr_architecture
) {
12378 NDR_PULL_ALLOC(ndr
, r
->architecture
);
12379 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
12381 r
->architecture
= NULL
;
12383 ndr
->flags
= _flags_save_string
;
12386 uint32_t _flags_save_string
= ndr
->flags
;
12387 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12388 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
12389 if (_ptr_driver_path
) {
12390 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
12391 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
12393 r
->driver_path
= NULL
;
12395 ndr
->flags
= _flags_save_string
;
12398 uint32_t _flags_save_string
= ndr
->flags
;
12399 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12400 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
12401 if (_ptr_data_file
) {
12402 NDR_PULL_ALLOC(ndr
, r
->data_file
);
12403 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
12405 r
->data_file
= NULL
;
12407 ndr
->flags
= _flags_save_string
;
12410 uint32_t _flags_save_string
= ndr
->flags
;
12411 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12412 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
12413 if (_ptr_config_file
) {
12414 NDR_PULL_ALLOC(ndr
, r
->config_file
);
12415 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
12417 r
->config_file
= NULL
;
12419 ndr
->flags
= _flags_save_string
;
12422 uint32_t _flags_save_string
= ndr
->flags
;
12423 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12424 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
12425 if (_ptr_help_file
) {
12426 NDR_PULL_ALLOC(ndr
, r
->help_file
);
12427 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
12429 r
->help_file
= NULL
;
12431 ndr
->flags
= _flags_save_string
;
12434 uint32_t _flags_save_string_array
= ndr
->flags
;
12435 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12436 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
12437 if (_ptr_dependent_files
) {
12438 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
12439 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
12441 r
->dependent_files
= NULL
;
12443 ndr
->flags
= _flags_save_string_array
;
12446 uint32_t _flags_save_string
= ndr
->flags
;
12447 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12448 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
12449 if (_ptr_monitor_name
) {
12450 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
12451 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
12453 r
->monitor_name
= NULL
;
12455 ndr
->flags
= _flags_save_string
;
12458 uint32_t _flags_save_string
= ndr
->flags
;
12459 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12460 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
12461 if (_ptr_default_datatype
) {
12462 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
12463 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
12465 r
->default_datatype
= NULL
;
12467 ndr
->flags
= _flags_save_string
;
12470 uint32_t _flags_save_string_array
= ndr
->flags
;
12471 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12472 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
12473 if (_ptr_previous_names
) {
12474 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
12475 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
12477 r
->previous_names
= NULL
;
12479 ndr
->flags
= _flags_save_string_array
;
12481 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
12482 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
12484 uint32_t _flags_save_string
= ndr
->flags
;
12485 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12486 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
12487 if (_ptr_manufacturer_name
) {
12488 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
12489 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
12491 r
->manufacturer_name
= NULL
;
12493 ndr
->flags
= _flags_save_string
;
12496 uint32_t _flags_save_string
= ndr
->flags
;
12497 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12498 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
12499 if (_ptr_manufacturer_url
) {
12500 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
12501 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
12503 r
->manufacturer_url
= NULL
;
12505 ndr
->flags
= _flags_save_string
;
12508 uint32_t _flags_save_string
= ndr
->flags
;
12509 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12510 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
12511 if (_ptr_hardware_id
) {
12512 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
12513 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
12515 r
->hardware_id
= NULL
;
12517 ndr
->flags
= _flags_save_string
;
12520 uint32_t _flags_save_string
= ndr
->flags
;
12521 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12522 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
12523 if (_ptr_provider
) {
12524 NDR_PULL_ALLOC(ndr
, r
->provider
);
12525 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
12527 r
->provider
= NULL
;
12529 ndr
->flags
= _flags_save_string
;
12531 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
12533 if (ndr_flags
& NDR_BUFFERS
) {
12535 uint32_t _flags_save_string
= ndr
->flags
;
12536 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12537 if (r
->driver_name
) {
12538 uint32_t _relative_save_offset
;
12539 _relative_save_offset
= ndr
->offset
;
12540 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
12541 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12542 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
12543 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
12544 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
12545 ndr
->offset
= _relative_save_offset
;
12547 ndr
->flags
= _flags_save_string
;
12550 uint32_t _flags_save_string
= ndr
->flags
;
12551 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12552 if (r
->architecture
) {
12553 uint32_t _relative_save_offset
;
12554 _relative_save_offset
= ndr
->offset
;
12555 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12556 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12557 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12558 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12559 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12560 ndr
->offset
= _relative_save_offset
;
12562 ndr
->flags
= _flags_save_string
;
12565 uint32_t _flags_save_string
= ndr
->flags
;
12566 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12567 if (r
->driver_path
) {
12568 uint32_t _relative_save_offset
;
12569 _relative_save_offset
= ndr
->offset
;
12570 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12571 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12572 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12573 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12574 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12575 ndr
->offset
= _relative_save_offset
;
12577 ndr
->flags
= _flags_save_string
;
12580 uint32_t _flags_save_string
= ndr
->flags
;
12581 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12582 if (r
->data_file
) {
12583 uint32_t _relative_save_offset
;
12584 _relative_save_offset
= ndr
->offset
;
12585 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12586 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12587 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12588 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12589 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12590 ndr
->offset
= _relative_save_offset
;
12592 ndr
->flags
= _flags_save_string
;
12595 uint32_t _flags_save_string
= ndr
->flags
;
12596 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12597 if (r
->config_file
) {
12598 uint32_t _relative_save_offset
;
12599 _relative_save_offset
= ndr
->offset
;
12600 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12601 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12602 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12603 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12604 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12605 ndr
->offset
= _relative_save_offset
;
12607 ndr
->flags
= _flags_save_string
;
12610 uint32_t _flags_save_string
= ndr
->flags
;
12611 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12612 if (r
->help_file
) {
12613 uint32_t _relative_save_offset
;
12614 _relative_save_offset
= ndr
->offset
;
12615 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
12616 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12617 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
12618 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
12619 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
12620 ndr
->offset
= _relative_save_offset
;
12622 ndr
->flags
= _flags_save_string
;
12625 uint32_t _flags_save_string_array
= ndr
->flags
;
12626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12627 if (r
->dependent_files
) {
12628 uint32_t _relative_save_offset
;
12629 _relative_save_offset
= ndr
->offset
;
12630 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
12631 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12632 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
12633 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
12634 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
12635 ndr
->offset
= _relative_save_offset
;
12637 ndr
->flags
= _flags_save_string_array
;
12640 uint32_t _flags_save_string
= ndr
->flags
;
12641 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12642 if (r
->monitor_name
) {
12643 uint32_t _relative_save_offset
;
12644 _relative_save_offset
= ndr
->offset
;
12645 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
12646 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12647 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
12648 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
12649 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
12650 ndr
->offset
= _relative_save_offset
;
12652 ndr
->flags
= _flags_save_string
;
12655 uint32_t _flags_save_string
= ndr
->flags
;
12656 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12657 if (r
->default_datatype
) {
12658 uint32_t _relative_save_offset
;
12659 _relative_save_offset
= ndr
->offset
;
12660 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
12661 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12662 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
12663 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
12664 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
12665 ndr
->offset
= _relative_save_offset
;
12667 ndr
->flags
= _flags_save_string
;
12670 uint32_t _flags_save_string_array
= ndr
->flags
;
12671 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12672 if (r
->previous_names
) {
12673 uint32_t _relative_save_offset
;
12674 _relative_save_offset
= ndr
->offset
;
12675 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
12676 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12677 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
12678 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
12679 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
12680 ndr
->offset
= _relative_save_offset
;
12682 ndr
->flags
= _flags_save_string_array
;
12685 uint32_t _flags_save_string
= ndr
->flags
;
12686 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12687 if (r
->manufacturer_name
) {
12688 uint32_t _relative_save_offset
;
12689 _relative_save_offset
= ndr
->offset
;
12690 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
12691 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12692 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
12693 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
12694 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
12695 ndr
->offset
= _relative_save_offset
;
12697 ndr
->flags
= _flags_save_string
;
12700 uint32_t _flags_save_string
= ndr
->flags
;
12701 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12702 if (r
->manufacturer_url
) {
12703 uint32_t _relative_save_offset
;
12704 _relative_save_offset
= ndr
->offset
;
12705 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
12706 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12707 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
12708 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
12709 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
12710 ndr
->offset
= _relative_save_offset
;
12712 ndr
->flags
= _flags_save_string
;
12715 uint32_t _flags_save_string
= ndr
->flags
;
12716 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12717 if (r
->hardware_id
) {
12718 uint32_t _relative_save_offset
;
12719 _relative_save_offset
= ndr
->offset
;
12720 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
12721 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12722 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
12723 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
12724 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
12725 ndr
->offset
= _relative_save_offset
;
12727 ndr
->flags
= _flags_save_string
;
12730 uint32_t _flags_save_string
= ndr
->flags
;
12731 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12733 uint32_t _relative_save_offset
;
12734 _relative_save_offset
= ndr
->offset
;
12735 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
12736 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12737 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
12738 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
12739 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
12740 ndr
->offset
= _relative_save_offset
;
12742 ndr
->flags
= _flags_save_string
;
12745 return NDR_ERR_SUCCESS
;
12748 _PUBLIC_
void ndr_print_spoolss_DriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo6
*r
)
12750 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo6");
12752 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12753 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12755 if (r
->driver_name
) {
12756 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12759 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12761 if (r
->architecture
) {
12762 ndr_print_string(ndr
, "architecture", r
->architecture
);
12765 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12767 if (r
->driver_path
) {
12768 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12771 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12773 if (r
->data_file
) {
12774 ndr_print_string(ndr
, "data_file", r
->data_file
);
12777 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12779 if (r
->config_file
) {
12780 ndr_print_string(ndr
, "config_file", r
->config_file
);
12783 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
12785 if (r
->help_file
) {
12786 ndr_print_string(ndr
, "help_file", r
->help_file
);
12789 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
12791 if (r
->dependent_files
) {
12792 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
12795 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
12797 if (r
->monitor_name
) {
12798 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
12801 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
12803 if (r
->default_datatype
) {
12804 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
12807 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
12809 if (r
->previous_names
) {
12810 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
12813 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
12814 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
12815 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
12817 if (r
->manufacturer_name
) {
12818 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
12821 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
12823 if (r
->manufacturer_url
) {
12824 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
12827 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
12829 if (r
->hardware_id
) {
12830 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
12833 ndr_print_ptr(ndr
, "provider", r
->provider
);
12836 ndr_print_string(ndr
, "provider", r
->provider
);
12842 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12844 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo6
, ic
);
12847 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo8
*r
)
12849 if (ndr_flags
& NDR_SCALARS
) {
12850 NDR_CHECK(ndr_push_align(ndr
, 8));
12851 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12853 uint32_t _flags_save_string
= ndr
->flags
;
12854 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12855 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12856 ndr
->flags
= _flags_save_string
;
12859 uint32_t _flags_save_string
= ndr
->flags
;
12860 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12861 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
12862 ndr
->flags
= _flags_save_string
;
12865 uint32_t _flags_save_string
= ndr
->flags
;
12866 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12867 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
12868 ndr
->flags
= _flags_save_string
;
12871 uint32_t _flags_save_string
= ndr
->flags
;
12872 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12873 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
12874 ndr
->flags
= _flags_save_string
;
12877 uint32_t _flags_save_string
= ndr
->flags
;
12878 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12879 NDR_CHECK(ndr_push_relative_ptr1(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 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
12886 ndr
->flags
= _flags_save_string
;
12889 uint32_t _flags_save_string_array
= ndr
->flags
;
12890 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12891 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
12892 ndr
->flags
= _flags_save_string_array
;
12895 uint32_t _flags_save_string
= ndr
->flags
;
12896 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12897 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
12898 ndr
->flags
= _flags_save_string
;
12901 uint32_t _flags_save_string
= ndr
->flags
;
12902 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12903 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
12904 ndr
->flags
= _flags_save_string
;
12907 uint32_t _flags_save_string_array
= ndr
->flags
;
12908 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12909 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
12910 ndr
->flags
= _flags_save_string_array
;
12912 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
12913 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
12915 uint32_t _flags_save_string
= ndr
->flags
;
12916 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12917 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
12918 ndr
->flags
= _flags_save_string
;
12921 uint32_t _flags_save_string
= ndr
->flags
;
12922 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12923 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
12924 ndr
->flags
= _flags_save_string
;
12927 uint32_t _flags_save_string
= ndr
->flags
;
12928 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12929 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
12930 ndr
->flags
= _flags_save_string
;
12933 uint32_t _flags_save_string
= ndr
->flags
;
12934 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12935 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
12936 ndr
->flags
= _flags_save_string
;
12939 uint32_t _flags_save_string
= ndr
->flags
;
12940 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12941 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
12942 ndr
->flags
= _flags_save_string
;
12945 uint32_t _flags_save_string
= ndr
->flags
;
12946 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12947 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->vendor_setup
));
12948 ndr
->flags
= _flags_save_string
;
12951 uint32_t _flags_save_string_array
= ndr
->flags
;
12952 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12953 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->color_profiles
));
12954 ndr
->flags
= _flags_save_string_array
;
12957 uint32_t _flags_save_string
= ndr
->flags
;
12958 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12959 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->inf_path
));
12960 ndr
->flags
= _flags_save_string
;
12962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
12964 uint32_t _flags_save_string_array
= ndr
->flags
;
12965 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12966 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->core_driver_dependencies
));
12967 ndr
->flags
= _flags_save_string_array
;
12969 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
12970 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
12971 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
12973 if (ndr_flags
& NDR_BUFFERS
) {
12975 uint32_t _flags_save_string
= ndr
->flags
;
12976 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12977 if (r
->driver_name
) {
12978 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
12979 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12981 ndr
->flags
= _flags_save_string
;
12984 uint32_t _flags_save_string
= ndr
->flags
;
12985 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12986 if (r
->architecture
) {
12987 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
12988 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12990 ndr
->flags
= _flags_save_string
;
12993 uint32_t _flags_save_string
= ndr
->flags
;
12994 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12995 if (r
->driver_path
) {
12996 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
12997 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
12999 ndr
->flags
= _flags_save_string
;
13002 uint32_t _flags_save_string
= ndr
->flags
;
13003 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13004 if (r
->data_file
) {
13005 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
13006 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
13008 ndr
->flags
= _flags_save_string
;
13011 uint32_t _flags_save_string
= ndr
->flags
;
13012 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13013 if (r
->config_file
) {
13014 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
13015 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
13017 ndr
->flags
= _flags_save_string
;
13020 uint32_t _flags_save_string
= ndr
->flags
;
13021 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13022 if (r
->help_file
) {
13023 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
13024 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
13026 ndr
->flags
= _flags_save_string
;
13029 uint32_t _flags_save_string_array
= ndr
->flags
;
13030 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13031 if (r
->dependent_files
) {
13032 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
13033 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
13035 ndr
->flags
= _flags_save_string_array
;
13038 uint32_t _flags_save_string
= ndr
->flags
;
13039 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13040 if (r
->monitor_name
) {
13041 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
13042 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
13044 ndr
->flags
= _flags_save_string
;
13047 uint32_t _flags_save_string
= ndr
->flags
;
13048 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13049 if (r
->default_datatype
) {
13050 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
13051 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
13053 ndr
->flags
= _flags_save_string
;
13056 uint32_t _flags_save_string_array
= ndr
->flags
;
13057 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13058 if (r
->previous_names
) {
13059 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
13060 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
13062 ndr
->flags
= _flags_save_string_array
;
13065 uint32_t _flags_save_string
= ndr
->flags
;
13066 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13067 if (r
->manufacturer_name
) {
13068 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_name
));
13069 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
13071 ndr
->flags
= _flags_save_string
;
13074 uint32_t _flags_save_string
= ndr
->flags
;
13075 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13076 if (r
->manufacturer_url
) {
13077 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_url
));
13078 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
13080 ndr
->flags
= _flags_save_string
;
13083 uint32_t _flags_save_string
= ndr
->flags
;
13084 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13085 if (r
->hardware_id
) {
13086 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->hardware_id
));
13087 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
13089 ndr
->flags
= _flags_save_string
;
13092 uint32_t _flags_save_string
= ndr
->flags
;
13093 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13095 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->provider
));
13096 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
13098 ndr
->flags
= _flags_save_string
;
13101 uint32_t _flags_save_string
= ndr
->flags
;
13102 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13103 if (r
->print_processor
) {
13104 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
13105 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
13107 ndr
->flags
= _flags_save_string
;
13110 uint32_t _flags_save_string
= ndr
->flags
;
13111 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13112 if (r
->vendor_setup
) {
13113 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->vendor_setup
));
13114 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->vendor_setup
));
13116 ndr
->flags
= _flags_save_string
;
13119 uint32_t _flags_save_string_array
= ndr
->flags
;
13120 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13121 if (r
->color_profiles
) {
13122 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->color_profiles
));
13123 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->color_profiles
));
13125 ndr
->flags
= _flags_save_string_array
;
13128 uint32_t _flags_save_string
= ndr
->flags
;
13129 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13131 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->inf_path
));
13132 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->inf_path
));
13134 ndr
->flags
= _flags_save_string
;
13137 uint32_t _flags_save_string_array
= ndr
->flags
;
13138 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13139 if (r
->core_driver_dependencies
) {
13140 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->core_driver_dependencies
));
13141 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
13143 ndr
->flags
= _flags_save_string_array
;
13146 return NDR_ERR_SUCCESS
;
13149 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo8
*r
)
13151 uint32_t _ptr_driver_name
;
13152 TALLOC_CTX
*_mem_save_driver_name_0
;
13153 uint32_t _ptr_architecture
;
13154 TALLOC_CTX
*_mem_save_architecture_0
;
13155 uint32_t _ptr_driver_path
;
13156 TALLOC_CTX
*_mem_save_driver_path_0
;
13157 uint32_t _ptr_data_file
;
13158 TALLOC_CTX
*_mem_save_data_file_0
;
13159 uint32_t _ptr_config_file
;
13160 TALLOC_CTX
*_mem_save_config_file_0
;
13161 uint32_t _ptr_help_file
;
13162 TALLOC_CTX
*_mem_save_help_file_0
;
13163 uint32_t _ptr_dependent_files
;
13164 TALLOC_CTX
*_mem_save_dependent_files_0
;
13165 uint32_t _ptr_monitor_name
;
13166 TALLOC_CTX
*_mem_save_monitor_name_0
;
13167 uint32_t _ptr_default_datatype
;
13168 TALLOC_CTX
*_mem_save_default_datatype_0
;
13169 uint32_t _ptr_previous_names
;
13170 TALLOC_CTX
*_mem_save_previous_names_0
;
13171 uint32_t _ptr_manufacturer_name
;
13172 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
13173 uint32_t _ptr_manufacturer_url
;
13174 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
13175 uint32_t _ptr_hardware_id
;
13176 TALLOC_CTX
*_mem_save_hardware_id_0
;
13177 uint32_t _ptr_provider
;
13178 TALLOC_CTX
*_mem_save_provider_0
;
13179 uint32_t _ptr_print_processor
;
13180 TALLOC_CTX
*_mem_save_print_processor_0
;
13181 uint32_t _ptr_vendor_setup
;
13182 TALLOC_CTX
*_mem_save_vendor_setup_0
;
13183 uint32_t _ptr_color_profiles
;
13184 TALLOC_CTX
*_mem_save_color_profiles_0
;
13185 uint32_t _ptr_inf_path
;
13186 TALLOC_CTX
*_mem_save_inf_path_0
;
13187 uint32_t _ptr_core_driver_dependencies
;
13188 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
13189 if (ndr_flags
& NDR_SCALARS
) {
13190 NDR_CHECK(ndr_pull_align(ndr
, 8));
13191 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
13193 uint32_t _flags_save_string
= ndr
->flags
;
13194 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13195 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
13196 if (_ptr_driver_name
) {
13197 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
13198 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
13200 r
->driver_name
= NULL
;
13202 ndr
->flags
= _flags_save_string
;
13205 uint32_t _flags_save_string
= ndr
->flags
;
13206 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13207 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
13208 if (_ptr_architecture
) {
13209 NDR_PULL_ALLOC(ndr
, r
->architecture
);
13210 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
13212 r
->architecture
= NULL
;
13214 ndr
->flags
= _flags_save_string
;
13217 uint32_t _flags_save_string
= ndr
->flags
;
13218 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13219 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
13220 if (_ptr_driver_path
) {
13221 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
13222 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
13224 r
->driver_path
= NULL
;
13226 ndr
->flags
= _flags_save_string
;
13229 uint32_t _flags_save_string
= ndr
->flags
;
13230 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13231 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
13232 if (_ptr_data_file
) {
13233 NDR_PULL_ALLOC(ndr
, r
->data_file
);
13234 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
13236 r
->data_file
= NULL
;
13238 ndr
->flags
= _flags_save_string
;
13241 uint32_t _flags_save_string
= ndr
->flags
;
13242 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13243 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
13244 if (_ptr_config_file
) {
13245 NDR_PULL_ALLOC(ndr
, r
->config_file
);
13246 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
13248 r
->config_file
= NULL
;
13250 ndr
->flags
= _flags_save_string
;
13253 uint32_t _flags_save_string
= ndr
->flags
;
13254 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13255 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
13256 if (_ptr_help_file
) {
13257 NDR_PULL_ALLOC(ndr
, r
->help_file
);
13258 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
13260 r
->help_file
= NULL
;
13262 ndr
->flags
= _flags_save_string
;
13265 uint32_t _flags_save_string_array
= ndr
->flags
;
13266 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13267 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
13268 if (_ptr_dependent_files
) {
13269 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
13270 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
13272 r
->dependent_files
= NULL
;
13274 ndr
->flags
= _flags_save_string_array
;
13277 uint32_t _flags_save_string
= ndr
->flags
;
13278 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13279 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
13280 if (_ptr_monitor_name
) {
13281 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
13282 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
13284 r
->monitor_name
= NULL
;
13286 ndr
->flags
= _flags_save_string
;
13289 uint32_t _flags_save_string
= ndr
->flags
;
13290 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13291 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
13292 if (_ptr_default_datatype
) {
13293 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
13294 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
13296 r
->default_datatype
= NULL
;
13298 ndr
->flags
= _flags_save_string
;
13301 uint32_t _flags_save_string_array
= ndr
->flags
;
13302 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13303 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
13304 if (_ptr_previous_names
) {
13305 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
13306 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
13308 r
->previous_names
= NULL
;
13310 ndr
->flags
= _flags_save_string_array
;
13312 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
13313 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
13315 uint32_t _flags_save_string
= ndr
->flags
;
13316 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13317 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
13318 if (_ptr_manufacturer_name
) {
13319 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
13320 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
13322 r
->manufacturer_name
= NULL
;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
13330 if (_ptr_manufacturer_url
) {
13331 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
13332 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
13334 r
->manufacturer_url
= NULL
;
13336 ndr
->flags
= _flags_save_string
;
13339 uint32_t _flags_save_string
= ndr
->flags
;
13340 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13341 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
13342 if (_ptr_hardware_id
) {
13343 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
13344 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
13346 r
->hardware_id
= NULL
;
13348 ndr
->flags
= _flags_save_string
;
13351 uint32_t _flags_save_string
= ndr
->flags
;
13352 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13353 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
13354 if (_ptr_provider
) {
13355 NDR_PULL_ALLOC(ndr
, r
->provider
);
13356 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
13358 r
->provider
= NULL
;
13360 ndr
->flags
= _flags_save_string
;
13363 uint32_t _flags_save_string
= ndr
->flags
;
13364 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13365 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
13366 if (_ptr_print_processor
) {
13367 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
13368 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
13370 r
->print_processor
= NULL
;
13372 ndr
->flags
= _flags_save_string
;
13375 uint32_t _flags_save_string
= ndr
->flags
;
13376 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13377 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
13378 if (_ptr_vendor_setup
) {
13379 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
13380 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->vendor_setup
, _ptr_vendor_setup
));
13382 r
->vendor_setup
= NULL
;
13384 ndr
->flags
= _flags_save_string
;
13387 uint32_t _flags_save_string_array
= ndr
->flags
;
13388 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13389 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
13390 if (_ptr_color_profiles
) {
13391 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
13392 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->color_profiles
, _ptr_color_profiles
));
13394 r
->color_profiles
= NULL
;
13396 ndr
->flags
= _flags_save_string_array
;
13399 uint32_t _flags_save_string
= ndr
->flags
;
13400 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13401 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
13402 if (_ptr_inf_path
) {
13403 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
13404 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->inf_path
, _ptr_inf_path
));
13406 r
->inf_path
= NULL
;
13408 ndr
->flags
= _flags_save_string
;
13410 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
13412 uint32_t _flags_save_string_array
= ndr
->flags
;
13413 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13414 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
13415 if (_ptr_core_driver_dependencies
) {
13416 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
13417 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->core_driver_dependencies
, _ptr_core_driver_dependencies
));
13419 r
->core_driver_dependencies
= NULL
;
13421 ndr
->flags
= _flags_save_string_array
;
13423 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
13424 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
13425 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
13427 if (ndr_flags
& NDR_BUFFERS
) {
13429 uint32_t _flags_save_string
= ndr
->flags
;
13430 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13431 if (r
->driver_name
) {
13432 uint32_t _relative_save_offset
;
13433 _relative_save_offset
= ndr
->offset
;
13434 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
13435 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13436 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
13437 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
13438 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
13439 ndr
->offset
= _relative_save_offset
;
13441 ndr
->flags
= _flags_save_string
;
13444 uint32_t _flags_save_string
= ndr
->flags
;
13445 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13446 if (r
->architecture
) {
13447 uint32_t _relative_save_offset
;
13448 _relative_save_offset
= ndr
->offset
;
13449 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
13450 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13451 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
13452 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
13453 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
13454 ndr
->offset
= _relative_save_offset
;
13456 ndr
->flags
= _flags_save_string
;
13459 uint32_t _flags_save_string
= ndr
->flags
;
13460 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13461 if (r
->driver_path
) {
13462 uint32_t _relative_save_offset
;
13463 _relative_save_offset
= ndr
->offset
;
13464 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
13465 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13466 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
13467 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
13468 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
13469 ndr
->offset
= _relative_save_offset
;
13471 ndr
->flags
= _flags_save_string
;
13474 uint32_t _flags_save_string
= ndr
->flags
;
13475 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13476 if (r
->data_file
) {
13477 uint32_t _relative_save_offset
;
13478 _relative_save_offset
= ndr
->offset
;
13479 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
13480 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13481 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
13482 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
13483 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
13484 ndr
->offset
= _relative_save_offset
;
13486 ndr
->flags
= _flags_save_string
;
13489 uint32_t _flags_save_string
= ndr
->flags
;
13490 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13491 if (r
->config_file
) {
13492 uint32_t _relative_save_offset
;
13493 _relative_save_offset
= ndr
->offset
;
13494 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
13495 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13496 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
13497 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
13498 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
13499 ndr
->offset
= _relative_save_offset
;
13501 ndr
->flags
= _flags_save_string
;
13504 uint32_t _flags_save_string
= ndr
->flags
;
13505 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13506 if (r
->help_file
) {
13507 uint32_t _relative_save_offset
;
13508 _relative_save_offset
= ndr
->offset
;
13509 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
13510 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13511 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
13512 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
13513 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
13514 ndr
->offset
= _relative_save_offset
;
13516 ndr
->flags
= _flags_save_string
;
13519 uint32_t _flags_save_string_array
= ndr
->flags
;
13520 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13521 if (r
->dependent_files
) {
13522 uint32_t _relative_save_offset
;
13523 _relative_save_offset
= ndr
->offset
;
13524 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
13525 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13526 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
13527 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
13528 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
13529 ndr
->offset
= _relative_save_offset
;
13531 ndr
->flags
= _flags_save_string_array
;
13534 uint32_t _flags_save_string
= ndr
->flags
;
13535 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13536 if (r
->monitor_name
) {
13537 uint32_t _relative_save_offset
;
13538 _relative_save_offset
= ndr
->offset
;
13539 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
13540 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13541 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
13542 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
13543 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
13544 ndr
->offset
= _relative_save_offset
;
13546 ndr
->flags
= _flags_save_string
;
13549 uint32_t _flags_save_string
= ndr
->flags
;
13550 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13551 if (r
->default_datatype
) {
13552 uint32_t _relative_save_offset
;
13553 _relative_save_offset
= ndr
->offset
;
13554 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
13555 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13556 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
13557 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
13558 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
13559 ndr
->offset
= _relative_save_offset
;
13561 ndr
->flags
= _flags_save_string
;
13564 uint32_t _flags_save_string_array
= ndr
->flags
;
13565 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13566 if (r
->previous_names
) {
13567 uint32_t _relative_save_offset
;
13568 _relative_save_offset
= ndr
->offset
;
13569 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
13570 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13571 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
13572 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
13573 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
13574 ndr
->offset
= _relative_save_offset
;
13576 ndr
->flags
= _flags_save_string_array
;
13579 uint32_t _flags_save_string
= ndr
->flags
;
13580 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13581 if (r
->manufacturer_name
) {
13582 uint32_t _relative_save_offset
;
13583 _relative_save_offset
= ndr
->offset
;
13584 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
13585 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13586 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
13587 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
13588 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
13589 ndr
->offset
= _relative_save_offset
;
13591 ndr
->flags
= _flags_save_string
;
13594 uint32_t _flags_save_string
= ndr
->flags
;
13595 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13596 if (r
->manufacturer_url
) {
13597 uint32_t _relative_save_offset
;
13598 _relative_save_offset
= ndr
->offset
;
13599 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
13600 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13601 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
13602 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
13603 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
13604 ndr
->offset
= _relative_save_offset
;
13606 ndr
->flags
= _flags_save_string
;
13609 uint32_t _flags_save_string
= ndr
->flags
;
13610 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13611 if (r
->hardware_id
) {
13612 uint32_t _relative_save_offset
;
13613 _relative_save_offset
= ndr
->offset
;
13614 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
13615 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13616 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
13617 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
13618 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
13619 ndr
->offset
= _relative_save_offset
;
13621 ndr
->flags
= _flags_save_string
;
13624 uint32_t _flags_save_string
= ndr
->flags
;
13625 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13627 uint32_t _relative_save_offset
;
13628 _relative_save_offset
= ndr
->offset
;
13629 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
13630 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13631 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
13632 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
13633 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
13634 ndr
->offset
= _relative_save_offset
;
13636 ndr
->flags
= _flags_save_string
;
13639 uint32_t _flags_save_string
= ndr
->flags
;
13640 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13641 if (r
->print_processor
) {
13642 uint32_t _relative_save_offset
;
13643 _relative_save_offset
= ndr
->offset
;
13644 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
13645 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13646 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
13647 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
13648 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
13649 ndr
->offset
= _relative_save_offset
;
13651 ndr
->flags
= _flags_save_string
;
13654 uint32_t _flags_save_string
= ndr
->flags
;
13655 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13656 if (r
->vendor_setup
) {
13657 uint32_t _relative_save_offset
;
13658 _relative_save_offset
= ndr
->offset
;
13659 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->vendor_setup
));
13660 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13661 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
13662 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->vendor_setup
));
13663 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
13664 ndr
->offset
= _relative_save_offset
;
13666 ndr
->flags
= _flags_save_string
;
13669 uint32_t _flags_save_string_array
= ndr
->flags
;
13670 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13671 if (r
->color_profiles
) {
13672 uint32_t _relative_save_offset
;
13673 _relative_save_offset
= ndr
->offset
;
13674 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->color_profiles
));
13675 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13676 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
13677 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->color_profiles
));
13678 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
13679 ndr
->offset
= _relative_save_offset
;
13681 ndr
->flags
= _flags_save_string_array
;
13684 uint32_t _flags_save_string
= ndr
->flags
;
13685 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13687 uint32_t _relative_save_offset
;
13688 _relative_save_offset
= ndr
->offset
;
13689 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->inf_path
));
13690 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13691 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
13692 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->inf_path
));
13693 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
13694 ndr
->offset
= _relative_save_offset
;
13696 ndr
->flags
= _flags_save_string
;
13699 uint32_t _flags_save_string_array
= ndr
->flags
;
13700 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13701 if (r
->core_driver_dependencies
) {
13702 uint32_t _relative_save_offset
;
13703 _relative_save_offset
= ndr
->offset
;
13704 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->core_driver_dependencies
));
13705 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13706 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
13707 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->core_driver_dependencies
));
13708 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
13709 ndr
->offset
= _relative_save_offset
;
13711 ndr
->flags
= _flags_save_string_array
;
13714 return NDR_ERR_SUCCESS
;
13717 _PUBLIC_
void ndr_print_spoolss_DriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo8
*r
)
13719 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo8");
13721 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13722 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13724 if (r
->driver_name
) {
13725 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13728 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13730 if (r
->architecture
) {
13731 ndr_print_string(ndr
, "architecture", r
->architecture
);
13734 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
13736 if (r
->driver_path
) {
13737 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
13740 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
13742 if (r
->data_file
) {
13743 ndr_print_string(ndr
, "data_file", r
->data_file
);
13746 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
13748 if (r
->config_file
) {
13749 ndr_print_string(ndr
, "config_file", r
->config_file
);
13752 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
13754 if (r
->help_file
) {
13755 ndr_print_string(ndr
, "help_file", r
->help_file
);
13758 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
13760 if (r
->dependent_files
) {
13761 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
13764 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13766 if (r
->monitor_name
) {
13767 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
13770 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
13772 if (r
->default_datatype
) {
13773 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
13776 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
13778 if (r
->previous_names
) {
13779 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
13782 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
13783 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
13784 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
13786 if (r
->manufacturer_name
) {
13787 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
13790 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
13792 if (r
->manufacturer_url
) {
13793 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
13796 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
13798 if (r
->hardware_id
) {
13799 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
13802 ndr_print_ptr(ndr
, "provider", r
->provider
);
13805 ndr_print_string(ndr
, "provider", r
->provider
);
13808 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
13810 if (r
->print_processor
) {
13811 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
13814 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
13816 if (r
->vendor_setup
) {
13817 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
13820 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
13822 if (r
->color_profiles
) {
13823 ndr_print_string_array(ndr
, "color_profiles", r
->color_profiles
);
13826 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
13829 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
13832 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
13833 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
13835 if (r
->core_driver_dependencies
) {
13836 ndr_print_string_array(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
13839 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
13840 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
13844 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13846 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo8
, ic
);
13849 static enum ndr_err_code
ndr_push_spoolss_DriverFileType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverFileType r
)
13851 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
13852 return NDR_ERR_SUCCESS
;
13855 static enum ndr_err_code
ndr_pull_spoolss_DriverFileType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverFileType
*r
)
13858 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
13860 return NDR_ERR_SUCCESS
;
13863 _PUBLIC_
void ndr_print_spoolss_DriverFileType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverFileType r
)
13865 const char *val
= NULL
;
13868 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING
: val
= "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13869 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION
: val
= "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13870 case SPOOLSS_DRIVER_FILE_TYPE_DATA
: val
= "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13871 case SPOOLSS_DRIVER_FILE_TYPE_HELP
: val
= "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13872 case SPOOLSS_DRIVER_FILE_TYPE_OTHER
: val
= "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13874 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
13877 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverFileInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverFileInfo
*r
)
13879 if (ndr_flags
& NDR_SCALARS
) {
13880 NDR_CHECK(ndr_push_align(ndr
, 5));
13882 uint32_t _flags_save_string
= ndr
->flags
;
13883 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13884 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->file_name
));
13885 ndr
->flags
= _flags_save_string
;
13887 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr
, NDR_SCALARS
, r
->file_type
));
13888 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->file_version
));
13889 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
13891 if (ndr_flags
& NDR_BUFFERS
) {
13893 uint32_t _flags_save_string
= ndr
->flags
;
13894 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13895 if (r
->file_name
) {
13896 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->file_name
));
13897 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->file_name
));
13899 ndr
->flags
= _flags_save_string
;
13902 return NDR_ERR_SUCCESS
;
13905 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverFileInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverFileInfo
*r
)
13907 uint32_t _ptr_file_name
;
13908 TALLOC_CTX
*_mem_save_file_name_0
;
13909 if (ndr_flags
& NDR_SCALARS
) {
13910 NDR_CHECK(ndr_pull_align(ndr
, 5));
13912 uint32_t _flags_save_string
= ndr
->flags
;
13913 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13914 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_file_name
));
13915 if (_ptr_file_name
) {
13916 NDR_PULL_ALLOC(ndr
, r
->file_name
);
13917 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->file_name
, _ptr_file_name
));
13919 r
->file_name
= NULL
;
13921 ndr
->flags
= _flags_save_string
;
13923 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr
, NDR_SCALARS
, &r
->file_type
));
13924 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->file_version
));
13925 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
13927 if (ndr_flags
& NDR_BUFFERS
) {
13929 uint32_t _flags_save_string
= ndr
->flags
;
13930 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13931 if (r
->file_name
) {
13932 uint32_t _relative_save_offset
;
13933 _relative_save_offset
= ndr
->offset
;
13934 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->file_name
));
13935 _mem_save_file_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13936 NDR_PULL_SET_MEM_CTX(ndr
, r
->file_name
, 0);
13937 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->file_name
));
13938 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_file_name_0
, 0);
13939 ndr
->offset
= _relative_save_offset
;
13941 ndr
->flags
= _flags_save_string
;
13944 return NDR_ERR_SUCCESS
;
13947 _PUBLIC_
void ndr_print_spoolss_DriverFileInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverFileInfo
*r
)
13949 ndr_print_struct(ndr
, name
, "spoolss_DriverFileInfo");
13951 ndr_print_ptr(ndr
, "file_name", r
->file_name
);
13953 if (r
->file_name
) {
13954 ndr_print_string(ndr
, "file_name", r
->file_name
);
13957 ndr_print_spoolss_DriverFileType(ndr
, "file_type", r
->file_type
);
13958 ndr_print_uint32(ndr
, "file_version", r
->file_version
);
13962 _PUBLIC_
void ndr_print_spoolss_DriverInfo101(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo101
*r
)
13964 uint32_t cntr_file_info_1
;
13965 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo101");
13967 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13968 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13970 if (r
->driver_name
) {
13971 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13974 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13976 if (r
->architecture
) {
13977 ndr_print_string(ndr
, "architecture", r
->architecture
);
13980 ndr_print_ptr(ndr
, "file_info", r
->file_info
);
13982 if (r
->file_info
) {
13983 ndr
->print(ndr
, "%s: ARRAY(%d)", "file_info", (int)r
->file_count
);
13985 for (cntr_file_info_1
=0;cntr_file_info_1
<r
->file_count
;cntr_file_info_1
++) {
13987 if (asprintf(&idx_1
, "[%d]", cntr_file_info_1
) != -1) {
13988 ndr_print_spoolss_DriverFileInfo(ndr
, "file_info", &r
->file_info
[cntr_file_info_1
]);
13995 ndr_print_uint32(ndr
, "file_count", r
->file_count
);
13996 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13998 if (r
->monitor_name
) {
13999 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
14002 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
14004 if (r
->default_datatype
) {
14005 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
14008 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
14010 if (r
->previous_names
) {
14011 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
14014 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
14015 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
14016 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
14018 if (r
->manufacturer_name
) {
14019 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
14022 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
14024 if (r
->manufacturer_url
) {
14025 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
14028 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
14030 if (r
->hardware_id
) {
14031 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
14034 ndr_print_ptr(ndr
, "provider", r
->provider
);
14037 ndr_print_string(ndr
, "provider", r
->provider
);
14043 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14045 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo101
, ic
);
14048 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverInfo
*r
)
14050 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14051 if (ndr_flags
& NDR_SCALARS
) {
14052 int level
= ndr_push_get_switch_value(ndr
, r
);
14053 NDR_CHECK(ndr_push_union_align(ndr
, 8));
14056 NDR_CHECK(ndr_push_align(ndr
, 5));
14057 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14058 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14062 NDR_CHECK(ndr_push_align(ndr
, 5));
14063 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14064 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
14068 NDR_CHECK(ndr_push_align(ndr
, 5));
14069 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14070 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
14074 NDR_CHECK(ndr_push_align(ndr
, 5));
14075 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14076 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
14080 NDR_CHECK(ndr_push_align(ndr
, 5));
14081 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14082 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
14086 NDR_CHECK(ndr_push_align(ndr
, 8));
14087 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14088 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
14092 NDR_CHECK(ndr_push_align(ndr
, 8));
14093 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14094 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
14098 NDR_CHECK(ndr_push_align(ndr
, 8));
14099 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14100 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
14108 if (ndr_flags
& NDR_BUFFERS
) {
14109 int level
= ndr_push_get_switch_value(ndr
, r
);
14110 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14113 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14117 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
14121 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
14125 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
14129 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
14133 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
14137 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
14141 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
14149 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14150 return NDR_ERR_SUCCESS
;
14153 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverInfo
*r
)
14155 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14157 level
= ndr_pull_get_switch_value(ndr
, r
);
14158 if (ndr_flags
& NDR_SCALARS
) {
14159 NDR_CHECK(ndr_pull_union_align(ndr
, 8));
14162 NDR_CHECK(ndr_pull_align(ndr
, 5));
14163 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14164 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14168 NDR_CHECK(ndr_pull_align(ndr
, 5));
14169 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14170 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
14174 NDR_CHECK(ndr_pull_align(ndr
, 5));
14175 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14176 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
14180 NDR_CHECK(ndr_pull_align(ndr
, 5));
14181 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14182 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
14186 NDR_CHECK(ndr_pull_align(ndr
, 5));
14187 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14188 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
14192 NDR_CHECK(ndr_pull_align(ndr
, 8));
14193 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14194 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
14198 NDR_CHECK(ndr_pull_align(ndr
, 8));
14199 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14200 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
14204 NDR_CHECK(ndr_pull_align(ndr
, 8));
14205 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14206 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
14214 if (ndr_flags
& NDR_BUFFERS
) {
14215 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14218 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14222 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
14226 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
14230 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
14234 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
14238 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
14242 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
14246 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
14254 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14255 return NDR_ERR_SUCCESS
;
14258 _PUBLIC_
void ndr_print_spoolss_DriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverInfo
*r
)
14261 level
= ndr_print_get_switch_value(ndr
, r
);
14262 ndr_print_union(ndr
, name
, level
, "spoolss_DriverInfo");
14265 ndr_print_spoolss_DriverInfo1(ndr
, "info1", &r
->info1
);
14269 ndr_print_spoolss_DriverInfo2(ndr
, "info2", &r
->info2
);
14273 ndr_print_spoolss_DriverInfo3(ndr
, "info3", &r
->info3
);
14277 ndr_print_spoolss_DriverInfo4(ndr
, "info4", &r
->info4
);
14281 ndr_print_spoolss_DriverInfo5(ndr
, "info5", &r
->info5
);
14285 ndr_print_spoolss_DriverInfo6(ndr
, "info6", &r
->info6
);
14289 ndr_print_spoolss_DriverInfo8(ndr
, "info8", &r
->info8
);
14293 ndr_print_spoolss_DriverInfo101(ndr
, "info101", &r
->info101
);
14302 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14304 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo
, ic
);
14307 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverDirectoryInfo1
*r
)
14309 if (ndr_flags
& NDR_SCALARS
) {
14310 NDR_CHECK(ndr_push_align(ndr
, 4));
14312 uint32_t _flags_save_string
= ndr
->flags
;
14313 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14314 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
14315 ndr
->flags
= _flags_save_string
;
14317 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
14319 if (ndr_flags
& NDR_BUFFERS
) {
14321 return NDR_ERR_SUCCESS
;
14324 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverDirectoryInfo1
*r
)
14326 if (ndr_flags
& NDR_SCALARS
) {
14327 NDR_CHECK(ndr_pull_align(ndr
, 4));
14329 uint32_t _flags_save_string
= ndr
->flags
;
14330 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14331 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
14332 ndr
->flags
= _flags_save_string
;
14334 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
14336 if (ndr_flags
& NDR_BUFFERS
) {
14338 return NDR_ERR_SUCCESS
;
14341 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverDirectoryInfo1
*r
)
14343 ndr_print_struct(ndr
, name
, "spoolss_DriverDirectoryInfo1");
14345 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
14349 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14351 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo1
, ic
);
14354 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverDirectoryInfo
*r
)
14356 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14357 if (ndr_flags
& NDR_SCALARS
) {
14358 int level
= ndr_push_get_switch_value(ndr
, r
);
14359 NDR_CHECK(ndr_push_union_align(ndr
, 4));
14362 NDR_CHECK(ndr_push_align(ndr
, 4));
14363 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14364 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14368 NDR_CHECK(ndr_push_align(ndr
, 4));
14369 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14370 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14375 if (ndr_flags
& NDR_BUFFERS
) {
14376 int level
= ndr_push_get_switch_value(ndr
, r
);
14377 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14387 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14388 return NDR_ERR_SUCCESS
;
14391 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverDirectoryInfo
*r
)
14393 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14395 level
= ndr_pull_get_switch_value(ndr
, r
);
14396 if (ndr_flags
& NDR_SCALARS
) {
14397 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
14400 NDR_CHECK(ndr_pull_align(ndr
, 4));
14401 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14402 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14406 NDR_CHECK(ndr_pull_align(ndr
, 4));
14407 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14408 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14413 if (ndr_flags
& NDR_BUFFERS
) {
14414 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14424 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14425 return NDR_ERR_SUCCESS
;
14428 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverDirectoryInfo
*r
)
14431 level
= ndr_print_get_switch_value(ndr
, r
);
14432 ndr_print_union(ndr
, name
, level
, "spoolss_DriverDirectoryInfo");
14435 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
14439 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
14445 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14447 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo
, ic
);
14450 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorInfo1
*r
)
14452 if (ndr_flags
& NDR_SCALARS
) {
14453 NDR_CHECK(ndr_push_align(ndr
, 5));
14455 uint32_t _flags_save_string
= ndr
->flags
;
14456 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14457 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor_name
));
14458 ndr
->flags
= _flags_save_string
;
14460 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
14462 if (ndr_flags
& NDR_BUFFERS
) {
14464 uint32_t _flags_save_string
= ndr
->flags
;
14465 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14466 if (r
->print_processor_name
) {
14467 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor_name
));
14468 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor_name
));
14470 ndr
->flags
= _flags_save_string
;
14473 return NDR_ERR_SUCCESS
;
14476 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorInfo1
*r
)
14478 uint32_t _ptr_print_processor_name
;
14479 TALLOC_CTX
*_mem_save_print_processor_name_0
;
14480 if (ndr_flags
& NDR_SCALARS
) {
14481 NDR_CHECK(ndr_pull_align(ndr
, 5));
14483 uint32_t _flags_save_string
= ndr
->flags
;
14484 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14485 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
14486 if (_ptr_print_processor_name
) {
14487 NDR_PULL_ALLOC(ndr
, r
->print_processor_name
);
14488 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor_name
, _ptr_print_processor_name
));
14490 r
->print_processor_name
= NULL
;
14492 ndr
->flags
= _flags_save_string
;
14494 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
14496 if (ndr_flags
& NDR_BUFFERS
) {
14498 uint32_t _flags_save_string
= ndr
->flags
;
14499 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14500 if (r
->print_processor_name
) {
14501 uint32_t _relative_save_offset
;
14502 _relative_save_offset
= ndr
->offset
;
14503 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor_name
));
14504 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14505 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor_name
, 0);
14506 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor_name
));
14507 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
14508 ndr
->offset
= _relative_save_offset
;
14510 ndr
->flags
= _flags_save_string
;
14513 return NDR_ERR_SUCCESS
;
14516 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorInfo1
*r
)
14518 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorInfo1");
14520 ndr_print_ptr(ndr
, "print_processor_name", r
->print_processor_name
);
14522 if (r
->print_processor_name
) {
14523 ndr_print_string(ndr
, "print_processor_name", r
->print_processor_name
);
14529 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14531 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorInfo1
, ic
);
14534 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorInfo
*r
)
14536 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14537 if (ndr_flags
& NDR_SCALARS
) {
14538 int level
= ndr_push_get_switch_value(ndr
, r
);
14539 NDR_CHECK(ndr_push_union_align(ndr
, 5));
14542 NDR_CHECK(ndr_push_align(ndr
, 5));
14543 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14544 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14552 if (ndr_flags
& NDR_BUFFERS
) {
14553 int level
= ndr_push_get_switch_value(ndr
, r
);
14554 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14557 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14565 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14566 return NDR_ERR_SUCCESS
;
14569 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorInfo
*r
)
14571 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14573 level
= ndr_pull_get_switch_value(ndr
, r
);
14574 if (ndr_flags
& NDR_SCALARS
) {
14575 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
14578 NDR_CHECK(ndr_pull_align(ndr
, 5));
14579 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14580 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14588 if (ndr_flags
& NDR_BUFFERS
) {
14589 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14592 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14600 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14601 return NDR_ERR_SUCCESS
;
14604 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorInfo
*r
)
14607 level
= ndr_print_get_switch_value(ndr
, r
);
14608 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorInfo");
14611 ndr_print_spoolss_PrintProcessorInfo1(ndr
, "info1", &r
->info1
);
14620 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14622 if (ndr_flags
& NDR_SCALARS
) {
14623 NDR_CHECK(ndr_push_align(ndr
, 4));
14625 uint32_t _flags_save_string
= ndr
->flags
;
14626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14627 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
14628 ndr
->flags
= _flags_save_string
;
14630 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
14632 if (ndr_flags
& NDR_BUFFERS
) {
14634 return NDR_ERR_SUCCESS
;
14637 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14639 if (ndr_flags
& NDR_SCALARS
) {
14640 NDR_CHECK(ndr_pull_align(ndr
, 4));
14642 uint32_t _flags_save_string
= ndr
->flags
;
14643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14644 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
14645 ndr
->flags
= _flags_save_string
;
14647 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
14649 if (ndr_flags
& NDR_BUFFERS
) {
14651 return NDR_ERR_SUCCESS
;
14654 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14656 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorDirectoryInfo1");
14658 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
14662 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14664 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo1
, ic
);
14667 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
14669 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14670 if (ndr_flags
& NDR_SCALARS
) {
14671 int level
= ndr_push_get_switch_value(ndr
, r
);
14672 NDR_CHECK(ndr_push_union_align(ndr
, 4));
14675 NDR_CHECK(ndr_push_align(ndr
, 4));
14676 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14677 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14681 NDR_CHECK(ndr_push_align(ndr
, 4));
14682 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14683 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14688 if (ndr_flags
& NDR_BUFFERS
) {
14689 int level
= ndr_push_get_switch_value(ndr
, r
);
14690 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14700 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14701 return NDR_ERR_SUCCESS
;
14704 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorDirectoryInfo
*r
)
14706 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14708 level
= ndr_pull_get_switch_value(ndr
, r
);
14709 if (ndr_flags
& NDR_SCALARS
) {
14710 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
14713 NDR_CHECK(ndr_pull_align(ndr
, 4));
14714 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14715 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14719 NDR_CHECK(ndr_pull_align(ndr
, 4));
14720 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14721 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14726 if (ndr_flags
& NDR_BUFFERS
) {
14727 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14737 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14738 return NDR_ERR_SUCCESS
;
14741 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
14744 level
= ndr_print_get_switch_value(ndr
, r
);
14745 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorDirectoryInfo");
14748 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
14752 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
14758 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14760 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo
, ic
);
14763 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DocumentInfo1
*r
)
14765 if (ndr_flags
& NDR_SCALARS
) {
14766 NDR_CHECK(ndr_push_align(ndr
, 5));
14767 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
14768 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->output_file
));
14769 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
14770 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
14772 if (ndr_flags
& NDR_BUFFERS
) {
14773 if (r
->document_name
) {
14774 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
14775 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14776 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
14777 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14779 if (r
->output_file
) {
14780 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
14781 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14782 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
14783 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->output_file
, ndr_charset_length(r
->output_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14786 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
14787 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
14788 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
14789 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14792 return NDR_ERR_SUCCESS
;
14795 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DocumentInfo1
*r
)
14797 uint32_t _ptr_document_name
;
14798 TALLOC_CTX
*_mem_save_document_name_0
;
14799 uint32_t _ptr_output_file
;
14800 TALLOC_CTX
*_mem_save_output_file_0
;
14801 uint32_t _ptr_datatype
;
14802 TALLOC_CTX
*_mem_save_datatype_0
;
14803 if (ndr_flags
& NDR_SCALARS
) {
14804 NDR_CHECK(ndr_pull_align(ndr
, 5));
14805 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
14806 if (_ptr_document_name
) {
14807 NDR_PULL_ALLOC(ndr
, r
->document_name
);
14809 r
->document_name
= NULL
;
14811 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_output_file
));
14812 if (_ptr_output_file
) {
14813 NDR_PULL_ALLOC(ndr
, r
->output_file
);
14815 r
->output_file
= NULL
;
14817 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
14818 if (_ptr_datatype
) {
14819 NDR_PULL_ALLOC(ndr
, r
->datatype
);
14821 r
->datatype
= NULL
;
14823 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
14825 if (ndr_flags
& NDR_BUFFERS
) {
14826 if (r
->document_name
) {
14827 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14828 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
14829 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
14830 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
14831 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
14832 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
));
14834 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
14835 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
14836 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
14838 if (r
->output_file
) {
14839 _mem_save_output_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14840 NDR_PULL_SET_MEM_CTX(ndr
, r
->output_file
, 0);
14841 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->output_file
));
14842 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->output_file
));
14843 if (ndr_get_array_length(ndr
, &r
->output_file
) > ndr_get_array_size(ndr
, &r
->output_file
)) {
14844 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
));
14846 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t)));
14847 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->output_file
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t), CH_UTF16
));
14848 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_output_file_0
, 0);
14851 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14852 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
14853 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
14854 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
14855 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
14856 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
));
14858 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
14859 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
14860 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
14863 return NDR_ERR_SUCCESS
;
14866 _PUBLIC_
void ndr_print_spoolss_DocumentInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DocumentInfo1
*r
)
14868 ndr_print_struct(ndr
, name
, "spoolss_DocumentInfo1");
14870 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
14872 if (r
->document_name
) {
14873 ndr_print_string(ndr
, "document_name", r
->document_name
);
14876 ndr_print_ptr(ndr
, "output_file", r
->output_file
);
14878 if (r
->output_file
) {
14879 ndr_print_string(ndr
, "output_file", r
->output_file
);
14882 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
14885 ndr_print_string(ndr
, "datatype", r
->datatype
);
14891 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DocumentInfo
*r
)
14893 if (ndr_flags
& NDR_SCALARS
) {
14894 int level
= ndr_push_get_switch_value(ndr
, r
);
14895 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
14896 NDR_CHECK(ndr_push_union_align(ndr
, 5));
14899 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
14913 if (ndr_flags
& NDR_BUFFERS
) {
14914 int level
= ndr_push_get_switch_value(ndr
, r
);
14918 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
14933 return NDR_ERR_SUCCESS
;
14936 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DocumentInfo
*r
)
14940 TALLOC_CTX
*_mem_save_info1_0
;
14941 level
= ndr_pull_get_switch_value(ndr
, r
);
14942 if (ndr_flags
& NDR_SCALARS
) {
14943 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
14944 if (_level
!= level
) {
14945 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
14947 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
14950 uint32_t _ptr_info1
;
14951 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
14953 NDR_PULL_ALLOC(ndr
, r
->info1
);
14970 if (ndr_flags
& NDR_BUFFERS
) {
14974 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14975 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
14976 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
14977 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
14992 return NDR_ERR_SUCCESS
;
14995 _PUBLIC_
void ndr_print_spoolss_DocumentInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DocumentInfo
*r
)
14998 level
= ndr_print_get_switch_value(ndr
, r
);
14999 ndr_print_union(ndr
, name
, level
, "spoolss_DocumentInfo");
15002 ndr_print_ptr(ndr
, "info1", r
->info1
);
15005 ndr_print_spoolss_DocumentInfo1(ndr
, "info1", r
->info1
);
15022 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersion(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersion
*r
)
15024 if (ndr_flags
& NDR_SCALARS
) {
15025 NDR_CHECK(ndr_push_align(ndr
, 4));
15026 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersion(r
, ndr
->iconv_convenience
, ndr
->flags
)));
15027 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
15028 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
15029 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
15030 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
15032 uint32_t _flags_save_string
= ndr
->flags
;
15033 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15035 struct ndr_push
*_ndr_extra_string
;
15036 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15037 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
15038 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15040 ndr
->flags
= _flags_save_string
;
15042 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15044 if (ndr_flags
& NDR_BUFFERS
) {
15046 return NDR_ERR_SUCCESS
;
15049 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersion(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersion
*r
)
15051 if (ndr_flags
& NDR_SCALARS
) {
15052 NDR_CHECK(ndr_pull_align(ndr
, 4));
15053 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
15054 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
15055 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
15056 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
15057 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->platform_id
));
15059 uint32_t _flags_save_string
= ndr
->flags
;
15060 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15062 struct ndr_pull
*_ndr_extra_string
;
15063 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15064 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
15065 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15067 ndr
->flags
= _flags_save_string
;
15069 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15071 if (ndr_flags
& NDR_BUFFERS
) {
15073 return NDR_ERR_SUCCESS
;
15076 _PUBLIC_
void ndr_print_spoolss_OSVersion(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersion
*r
)
15078 ndr_print_struct(ndr
, name
, "spoolss_OSVersion");
15080 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
);
15081 ndr_print_uint32(ndr
, "major", r
->major
);
15082 ndr_print_uint32(ndr
, "minor", r
->minor
);
15083 ndr_print_uint32(ndr
, "build", r
->build
);
15084 ndr_print_uint32(ndr
, "platform_id", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->platform_id
);
15085 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
15089 _PUBLIC_
size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15091 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersion
, ic
);
15094 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersionEx(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersionEx
*r
)
15096 if (ndr_flags
& NDR_SCALARS
) {
15097 NDR_CHECK(ndr_push_align(ndr
, 4));
15098 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersionEx(r
, ndr
->iconv_convenience
, ndr
->flags
)));
15099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
15100 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
15101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
15102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
15104 uint32_t _flags_save_string
= ndr
->flags
;
15105 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15107 struct ndr_push
*_ndr_extra_string
;
15108 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15109 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
15110 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15112 ndr
->flags
= _flags_save_string
;
15114 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->service_pack_major
));
15115 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->service_pack_minor
));
15116 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->suite_mask
));
15117 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->product_type
));
15118 NDR_CHECK(ndr_push_uint8(ndr
, NDR_SCALARS
, r
->reserved
));
15119 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15121 if (ndr_flags
& NDR_BUFFERS
) {
15123 return NDR_ERR_SUCCESS
;
15126 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersionEx(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersionEx
*r
)
15128 if (ndr_flags
& NDR_SCALARS
) {
15129 NDR_CHECK(ndr_pull_align(ndr
, 4));
15130 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
15131 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
15132 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
15133 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
15134 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->platform_id
));
15136 uint32_t _flags_save_string
= ndr
->flags
;
15137 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15139 struct ndr_pull
*_ndr_extra_string
;
15140 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
15141 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
15142 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
15144 ndr
->flags
= _flags_save_string
;
15146 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->service_pack_major
));
15147 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->service_pack_minor
));
15148 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->suite_mask
));
15149 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->product_type
));
15150 NDR_CHECK(ndr_pull_uint8(ndr
, NDR_SCALARS
, &r
->reserved
));
15151 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15153 if (ndr_flags
& NDR_BUFFERS
) {
15155 return NDR_ERR_SUCCESS
;
15158 _PUBLIC_
void ndr_print_spoolss_OSVersionEx(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersionEx
*r
)
15160 ndr_print_struct(ndr
, name
, "spoolss_OSVersionEx");
15162 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
);
15163 ndr_print_uint32(ndr
, "major", r
->major
);
15164 ndr_print_uint32(ndr
, "minor", r
->minor
);
15165 ndr_print_uint32(ndr
, "build", r
->build
);
15166 ndr_print_uint32(ndr
, "platform_id", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->platform_id
);
15167 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
15168 ndr_print_uint16(ndr
, "service_pack_major", r
->service_pack_major
);
15169 ndr_print_uint16(ndr
, "service_pack_minor", r
->service_pack_minor
);
15170 ndr_print_uint16(ndr
, "suite_mask", r
->suite_mask
);
15171 ndr_print_uint8(ndr
, "product_type", r
->product_type
);
15172 ndr_print_uint8(ndr
, "reserved", r
->reserved
);
15176 _PUBLIC_
size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15178 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersionEx
, ic
);
15181 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterData
*r
)
15183 if (ndr_flags
& NDR_SCALARS
) {
15184 int level
= ndr_push_get_switch_value(ndr
, r
);
15185 NDR_CHECK(ndr_push_union_align(ndr
, 4));
15192 uint32_t _flags_save_string
= ndr
->flags
;
15193 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15194 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->string
));
15195 ndr
->flags
= _flags_save_string
;
15201 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15202 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15203 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->binary
));
15204 ndr
->flags
= _flags_save_DATA_BLOB
;
15209 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->value
));
15212 case REG_MULTI_SZ
: {
15214 uint32_t _flags_save_string_array
= ndr
->flags
;
15215 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15216 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
15217 ndr
->flags
= _flags_save_string_array
;
15223 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15224 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15225 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->data
));
15226 ndr
->flags
= _flags_save_DATA_BLOB
;
15232 if (ndr_flags
& NDR_BUFFERS
) {
15233 int level
= ndr_push_get_switch_value(ndr
, r
);
15255 return NDR_ERR_SUCCESS
;
15258 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterData
*r
)
15261 level
= ndr_pull_get_switch_value(ndr
, r
);
15262 if (ndr_flags
& NDR_SCALARS
) {
15263 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
15270 uint32_t _flags_save_string
= ndr
->flags
;
15271 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15272 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->string
));
15273 ndr
->flags
= _flags_save_string
;
15279 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15280 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15281 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->binary
));
15282 ndr
->flags
= _flags_save_DATA_BLOB
;
15287 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value
));
15290 case REG_MULTI_SZ
: {
15292 uint32_t _flags_save_string_array
= ndr
->flags
;
15293 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15294 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
15295 ndr
->flags
= _flags_save_string_array
;
15301 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
15302 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
15303 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->data
));
15304 ndr
->flags
= _flags_save_DATA_BLOB
;
15310 if (ndr_flags
& NDR_BUFFERS
) {
15332 return NDR_ERR_SUCCESS
;
15335 _PUBLIC_
void ndr_print_spoolss_PrinterData(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterData
*r
)
15338 level
= ndr_print_get_switch_value(ndr
, r
);
15339 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterData");
15345 ndr_print_string(ndr
, "string", r
->string
);
15349 ndr_print_DATA_BLOB(ndr
, "binary", r
->binary
);
15353 ndr_print_uint32(ndr
, "value", r
->value
);
15357 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
15361 ndr_print_DATA_BLOB(ndr
, "data", r
->data
);
15367 _PUBLIC_
size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15369 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterData
, ic
);
15372 static enum ndr_err_code
ndr_push_spoolss_FormFlags(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_FormFlags r
)
15374 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
15375 return NDR_ERR_SUCCESS
;
15378 static enum ndr_err_code
ndr_pull_spoolss_FormFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_FormFlags
*r
)
15381 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
15383 return NDR_ERR_SUCCESS
;
15386 _PUBLIC_
void ndr_print_spoolss_FormFlags(struct ndr_print
*ndr
, const char *name
, enum spoolss_FormFlags r
)
15388 const char *val
= NULL
;
15391 case SPOOLSS_FORM_USER
: val
= "SPOOLSS_FORM_USER"; break;
15392 case SPOOLSS_FORM_BUILTIN
: val
= "SPOOLSS_FORM_BUILTIN"; break;
15393 case SPOOLSS_FORM_PRINTER
: val
= "SPOOLSS_FORM_PRINTER"; break;
15395 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
15398 static enum ndr_err_code
ndr_push_spoolss_FormSize(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormSize
*r
)
15400 if (ndr_flags
& NDR_SCALARS
) {
15401 NDR_CHECK(ndr_push_align(ndr
, 4));
15402 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->width
));
15403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->height
));
15404 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15406 if (ndr_flags
& NDR_BUFFERS
) {
15408 return NDR_ERR_SUCCESS
;
15411 static enum ndr_err_code
ndr_pull_spoolss_FormSize(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormSize
*r
)
15413 if (ndr_flags
& NDR_SCALARS
) {
15414 NDR_CHECK(ndr_pull_align(ndr
, 4));
15415 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->width
));
15416 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->height
));
15417 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15419 if (ndr_flags
& NDR_BUFFERS
) {
15421 return NDR_ERR_SUCCESS
;
15424 _PUBLIC_
void ndr_print_spoolss_FormSize(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormSize
*r
)
15426 ndr_print_struct(ndr
, name
, "spoolss_FormSize");
15428 ndr_print_uint32(ndr
, "width", r
->width
);
15429 ndr_print_uint32(ndr
, "height", r
->height
);
15433 static enum ndr_err_code
ndr_push_spoolss_FormArea(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormArea
*r
)
15435 if (ndr_flags
& NDR_SCALARS
) {
15436 NDR_CHECK(ndr_push_align(ndr
, 4));
15437 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->left
));
15438 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->top
));
15439 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->right
));
15440 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bottom
));
15441 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
15443 if (ndr_flags
& NDR_BUFFERS
) {
15445 return NDR_ERR_SUCCESS
;
15448 static enum ndr_err_code
ndr_pull_spoolss_FormArea(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormArea
*r
)
15450 if (ndr_flags
& NDR_SCALARS
) {
15451 NDR_CHECK(ndr_pull_align(ndr
, 4));
15452 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->left
));
15453 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->top
));
15454 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->right
));
15455 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bottom
));
15456 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
15458 if (ndr_flags
& NDR_BUFFERS
) {
15460 return NDR_ERR_SUCCESS
;
15463 _PUBLIC_
void ndr_print_spoolss_FormArea(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormArea
*r
)
15465 ndr_print_struct(ndr
, name
, "spoolss_FormArea");
15467 ndr_print_uint32(ndr
, "left", r
->left
);
15468 ndr_print_uint32(ndr
, "top", r
->top
);
15469 ndr_print_uint32(ndr
, "right", r
->right
);
15470 ndr_print_uint32(ndr
, "bottom", r
->bottom
);
15474 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo1
*r
)
15476 if (ndr_flags
& NDR_SCALARS
) {
15477 NDR_CHECK(ndr_push_align(ndr
, 5));
15478 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15480 uint32_t _flags_save_string
= ndr
->flags
;
15481 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15482 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
15483 ndr
->flags
= _flags_save_string
;
15485 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15486 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15487 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
15489 if (ndr_flags
& NDR_BUFFERS
) {
15491 uint32_t _flags_save_string
= ndr
->flags
;
15492 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15493 if (r
->form_name
) {
15494 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->form_name
));
15495 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
15497 ndr
->flags
= _flags_save_string
;
15500 return NDR_ERR_SUCCESS
;
15503 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo1
*r
)
15505 uint32_t _ptr_form_name
;
15506 TALLOC_CTX
*_mem_save_form_name_0
;
15507 if (ndr_flags
& NDR_SCALARS
) {
15508 NDR_CHECK(ndr_pull_align(ndr
, 5));
15509 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15511 uint32_t _flags_save_string
= ndr
->flags
;
15512 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15513 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15514 if (_ptr_form_name
) {
15515 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15516 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
15518 r
->form_name
= NULL
;
15520 ndr
->flags
= _flags_save_string
;
15522 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15523 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15524 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
15526 if (ndr_flags
& NDR_BUFFERS
) {
15528 uint32_t _flags_save_string
= ndr
->flags
;
15529 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15530 if (r
->form_name
) {
15531 uint32_t _relative_save_offset
;
15532 _relative_save_offset
= ndr
->offset
;
15533 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
15534 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15535 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15536 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
15537 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15538 ndr
->offset
= _relative_save_offset
;
15540 ndr
->flags
= _flags_save_string
;
15543 return NDR_ERR_SUCCESS
;
15546 _PUBLIC_
void ndr_print_spoolss_FormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo1
*r
)
15548 ndr_print_struct(ndr
, name
, "spoolss_FormInfo1");
15550 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15551 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15553 if (r
->form_name
) {
15554 ndr_print_string(ndr
, "form_name", r
->form_name
);
15557 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15558 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15562 _PUBLIC_
size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15564 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo1
, ic
);
15567 static enum ndr_err_code
ndr_push_spoolss_FormStringType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
15569 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15570 return NDR_ERR_SUCCESS
;
15573 static enum ndr_err_code
ndr_pull_spoolss_FormStringType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
15576 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
15578 return NDR_ERR_SUCCESS
;
15581 _PUBLIC_
void ndr_print_spoolss_FormStringType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
15583 ndr_print_uint32(ndr
, name
, r
);
15585 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE
, r
);
15586 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL
, r
);
15587 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR
, r
);
15591 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo2
*r
)
15593 if (ndr_flags
& NDR_SCALARS
) {
15594 NDR_CHECK(ndr_push_align(ndr
, 5));
15595 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15597 uint32_t _flags_save_string
= ndr
->flags
;
15598 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15599 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
15600 ndr
->flags
= _flags_save_string
;
15602 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15603 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15605 uint32_t _flags_save_string
= ndr
->flags
;
15606 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15607 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->keyword
));
15608 ndr
->flags
= _flags_save_string
;
15610 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
15612 uint32_t _flags_save_string
= ndr
->flags
;
15613 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15614 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->mui_dll
));
15615 ndr
->flags
= _flags_save_string
;
15617 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
15619 uint32_t _flags_save_string
= ndr
->flags
;
15620 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15621 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->display_name
));
15622 ndr
->flags
= _flags_save_string
;
15624 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->lang_id
));
15625 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->unused
));
15626 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
15628 if (ndr_flags
& NDR_BUFFERS
) {
15630 uint32_t _flags_save_string
= ndr
->flags
;
15631 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15632 if (r
->form_name
) {
15633 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->form_name
));
15634 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
15636 ndr
->flags
= _flags_save_string
;
15639 uint32_t _flags_save_string
= ndr
->flags
;
15640 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15642 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->keyword
));
15643 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->keyword
));
15645 ndr
->flags
= _flags_save_string
;
15648 uint32_t _flags_save_string
= ndr
->flags
;
15649 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15651 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->mui_dll
));
15652 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mui_dll
));
15654 ndr
->flags
= _flags_save_string
;
15657 uint32_t _flags_save_string
= ndr
->flags
;
15658 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15659 if (r
->display_name
) {
15660 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->display_name
));
15661 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->display_name
));
15663 ndr
->flags
= _flags_save_string
;
15666 return NDR_ERR_SUCCESS
;
15669 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo2
*r
)
15671 uint32_t _ptr_form_name
;
15672 TALLOC_CTX
*_mem_save_form_name_0
;
15673 uint32_t _ptr_keyword
;
15674 TALLOC_CTX
*_mem_save_keyword_0
;
15675 uint32_t _ptr_mui_dll
;
15676 TALLOC_CTX
*_mem_save_mui_dll_0
;
15677 uint32_t _ptr_display_name
;
15678 TALLOC_CTX
*_mem_save_display_name_0
;
15679 if (ndr_flags
& NDR_SCALARS
) {
15680 NDR_CHECK(ndr_pull_align(ndr
, 5));
15681 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15683 uint32_t _flags_save_string
= ndr
->flags
;
15684 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15685 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15686 if (_ptr_form_name
) {
15687 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15688 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
15690 r
->form_name
= NULL
;
15692 ndr
->flags
= _flags_save_string
;
15694 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15695 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15697 uint32_t _flags_save_string
= ndr
->flags
;
15698 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15699 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
15700 if (_ptr_keyword
) {
15701 NDR_PULL_ALLOC(ndr
, r
->keyword
);
15702 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->keyword
, _ptr_keyword
));
15706 ndr
->flags
= _flags_save_string
;
15708 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
15710 uint32_t _flags_save_string
= ndr
->flags
;
15711 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15712 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
15713 if (_ptr_mui_dll
) {
15714 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
15715 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->mui_dll
, _ptr_mui_dll
));
15719 ndr
->flags
= _flags_save_string
;
15721 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
15723 uint32_t _flags_save_string
= ndr
->flags
;
15724 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15725 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
15726 if (_ptr_display_name
) {
15727 NDR_PULL_ALLOC(ndr
, r
->display_name
);
15728 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->display_name
, _ptr_display_name
));
15730 r
->display_name
= NULL
;
15732 ndr
->flags
= _flags_save_string
;
15734 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->lang_id
));
15735 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->unused
));
15736 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
15738 if (ndr_flags
& NDR_BUFFERS
) {
15740 uint32_t _flags_save_string
= ndr
->flags
;
15741 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15742 if (r
->form_name
) {
15743 uint32_t _relative_save_offset
;
15744 _relative_save_offset
= ndr
->offset
;
15745 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
15746 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15747 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15748 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
15749 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15750 ndr
->offset
= _relative_save_offset
;
15752 ndr
->flags
= _flags_save_string
;
15755 uint32_t _flags_save_string
= ndr
->flags
;
15756 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15758 uint32_t _relative_save_offset
;
15759 _relative_save_offset
= ndr
->offset
;
15760 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->keyword
));
15761 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15762 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
15763 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->keyword
));
15764 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
15765 ndr
->offset
= _relative_save_offset
;
15767 ndr
->flags
= _flags_save_string
;
15770 uint32_t _flags_save_string
= ndr
->flags
;
15771 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15773 uint32_t _relative_save_offset
;
15774 _relative_save_offset
= ndr
->offset
;
15775 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->mui_dll
));
15776 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15777 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
15778 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mui_dll
));
15779 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
15780 ndr
->offset
= _relative_save_offset
;
15782 ndr
->flags
= _flags_save_string
;
15785 uint32_t _flags_save_string
= ndr
->flags
;
15786 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15787 if (r
->display_name
) {
15788 uint32_t _relative_save_offset
;
15789 _relative_save_offset
= ndr
->offset
;
15790 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->display_name
));
15791 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15792 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
15793 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->display_name
));
15794 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
15795 ndr
->offset
= _relative_save_offset
;
15797 ndr
->flags
= _flags_save_string
;
15800 return NDR_ERR_SUCCESS
;
15803 _PUBLIC_
void ndr_print_spoolss_FormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo2
*r
)
15805 ndr_print_struct(ndr
, name
, "spoolss_FormInfo2");
15807 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15808 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15810 if (r
->form_name
) {
15811 ndr_print_string(ndr
, "form_name", r
->form_name
);
15814 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15815 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15816 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
15819 ndr_print_string(ndr
, "keyword", r
->keyword
);
15822 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
15823 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
15826 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
15829 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
15830 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
15832 if (r
->display_name
) {
15833 ndr_print_string(ndr
, "display_name", r
->display_name
);
15836 ndr_print_uint16(ndr
, "lang_id", r
->lang_id
);
15837 ndr_print_uint16(ndr
, "unused", r
->unused
);
15841 _PUBLIC_
size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15843 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo2
, ic
);
15846 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_FormInfo
*r
)
15848 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15849 if (ndr_flags
& NDR_SCALARS
) {
15850 int level
= ndr_push_get_switch_value(ndr
, r
);
15851 NDR_CHECK(ndr_push_union_align(ndr
, 5));
15854 NDR_CHECK(ndr_push_align(ndr
, 5));
15855 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15856 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15860 NDR_CHECK(ndr_push_align(ndr
, 5));
15861 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15862 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15870 if (ndr_flags
& NDR_BUFFERS
) {
15871 int level
= ndr_push_get_switch_value(ndr
, r
);
15872 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15875 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15879 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15887 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15888 return NDR_ERR_SUCCESS
;
15891 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_FormInfo
*r
)
15893 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15895 level
= ndr_pull_get_switch_value(ndr
, r
);
15896 if (ndr_flags
& NDR_SCALARS
) {
15897 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
15900 NDR_CHECK(ndr_pull_align(ndr
, 5));
15901 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15902 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15906 NDR_CHECK(ndr_pull_align(ndr
, 5));
15907 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15908 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15916 if (ndr_flags
& NDR_BUFFERS
) {
15917 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15920 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15924 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15932 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15933 return NDR_ERR_SUCCESS
;
15936 _PUBLIC_
void ndr_print_spoolss_FormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_FormInfo
*r
)
15939 level
= ndr_print_get_switch_value(ndr
, r
);
15940 ndr_print_union(ndr
, name
, level
, "spoolss_FormInfo");
15943 ndr_print_spoolss_FormInfo1(ndr
, "info1", &r
->info1
);
15947 ndr_print_spoolss_FormInfo2(ndr
, "info2", &r
->info2
);
15956 _PUBLIC_
size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15958 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo
, ic
);
15961 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo1
*r
)
15963 if (ndr_flags
& NDR_SCALARS
) {
15964 NDR_CHECK(ndr_push_align(ndr
, 5));
15965 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15966 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
15967 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15968 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15969 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
15971 if (ndr_flags
& NDR_BUFFERS
) {
15972 if (r
->form_name
) {
15973 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15974 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
15975 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15976 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15979 return NDR_ERR_SUCCESS
;
15982 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo1
*r
)
15984 uint32_t _ptr_form_name
;
15985 TALLOC_CTX
*_mem_save_form_name_0
;
15986 if (ndr_flags
& NDR_SCALARS
) {
15987 NDR_CHECK(ndr_pull_align(ndr
, 5));
15988 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15989 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15990 if (_ptr_form_name
) {
15991 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15993 r
->form_name
= NULL
;
15995 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15996 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15997 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
15999 if (ndr_flags
& NDR_BUFFERS
) {
16000 if (r
->form_name
) {
16001 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16002 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
16003 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
16004 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
16005 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
16006 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
));
16008 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
16009 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
16010 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
16013 return NDR_ERR_SUCCESS
;
16016 _PUBLIC_
void ndr_print_spoolss_AddFormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo1
*r
)
16018 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo1");
16020 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16021 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16023 if (r
->form_name
) {
16024 ndr_print_string(ndr
, "form_name", r
->form_name
);
16027 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
16028 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
16032 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo2
*r
)
16034 if (ndr_flags
& NDR_SCALARS
) {
16035 NDR_CHECK(ndr_push_align(ndr
, 5));
16036 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
16037 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
16038 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16039 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16040 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->keyword
));
16041 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
16042 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->mui_dll
));
16043 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
16044 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->display_name
));
16045 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
16046 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16048 if (ndr_flags
& NDR_BUFFERS
) {
16049 if (r
->form_name
) {
16050 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
16051 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16052 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
16053 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16056 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
16057 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16058 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
16059 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->keyword
, ndr_charset_length(r
->keyword
, CH_DOS
), sizeof(uint8_t), CH_DOS
));
16062 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
16063 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16064 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
16065 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->mui_dll
, ndr_charset_length(r
->mui_dll
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16067 if (r
->display_name
) {
16068 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
16069 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
16070 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
16071 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->display_name
, ndr_charset_length(r
->display_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
16074 return NDR_ERR_SUCCESS
;
16077 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo2
*r
)
16079 uint32_t _ptr_form_name
;
16080 TALLOC_CTX
*_mem_save_form_name_0
;
16081 uint32_t _ptr_keyword
;
16082 TALLOC_CTX
*_mem_save_keyword_0
;
16083 uint32_t _ptr_mui_dll
;
16084 TALLOC_CTX
*_mem_save_mui_dll_0
;
16085 uint32_t _ptr_display_name
;
16086 TALLOC_CTX
*_mem_save_display_name_0
;
16087 if (ndr_flags
& NDR_SCALARS
) {
16088 NDR_CHECK(ndr_pull_align(ndr
, 5));
16089 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
16090 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
16091 if (_ptr_form_name
) {
16092 NDR_PULL_ALLOC(ndr
, r
->form_name
);
16094 r
->form_name
= NULL
;
16096 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
16097 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
16098 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
16099 if (_ptr_keyword
) {
16100 NDR_PULL_ALLOC(ndr
, r
->keyword
);
16104 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
16105 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
16106 if (_ptr_mui_dll
) {
16107 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
16111 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
16112 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
16113 if (_ptr_display_name
) {
16114 NDR_PULL_ALLOC(ndr
, r
->display_name
);
16116 r
->display_name
= NULL
;
16118 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
16119 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16121 if (ndr_flags
& NDR_BUFFERS
) {
16122 if (r
->form_name
) {
16123 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16124 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
16125 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
16126 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
16127 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
16128 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
));
16130 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
16131 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
16132 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
16135 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16136 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
16137 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->keyword
));
16138 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->keyword
));
16139 if (ndr_get_array_length(ndr
, &r
->keyword
) > ndr_get_array_size(ndr
, &r
->keyword
)) {
16140 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
));
16142 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t)));
16143 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->keyword
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t), CH_DOS
));
16144 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
16147 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16148 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
16149 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->mui_dll
));
16150 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->mui_dll
));
16151 if (ndr_get_array_length(ndr
, &r
->mui_dll
) > ndr_get_array_size(ndr
, &r
->mui_dll
)) {
16152 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
));
16154 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t)));
16155 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->mui_dll
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t), CH_UTF16
));
16156 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
16158 if (r
->display_name
) {
16159 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16160 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
16161 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->display_name
));
16162 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->display_name
));
16163 if (ndr_get_array_length(ndr
, &r
->display_name
) > ndr_get_array_size(ndr
, &r
->display_name
)) {
16164 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
));
16166 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t)));
16167 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->display_name
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t), CH_UTF16
));
16168 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
16171 return NDR_ERR_SUCCESS
;
16174 _PUBLIC_
void ndr_print_spoolss_AddFormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo2
*r
)
16176 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo2");
16178 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
16179 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
16181 if (r
->form_name
) {
16182 ndr_print_string(ndr
, "form_name", r
->form_name
);
16185 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
16186 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
16187 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
16190 ndr_print_string(ndr
, "keyword", r
->keyword
);
16193 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
16194 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
16197 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
16200 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
16201 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
16203 if (r
->display_name
) {
16204 ndr_print_string(ndr
, "display_name", r
->display_name
);
16207 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
16211 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddFormInfo
*r
)
16213 if (ndr_flags
& NDR_SCALARS
) {
16214 int level
= ndr_push_get_switch_value(ndr
, r
);
16215 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
16216 NDR_CHECK(ndr_push_union_align(ndr
, 5));
16219 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
16223 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
16227 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
16230 if (ndr_flags
& NDR_BUFFERS
) {
16231 int level
= ndr_push_get_switch_value(ndr
, r
);
16235 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
16241 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
16246 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
16249 return NDR_ERR_SUCCESS
;
16252 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddFormInfo
*r
)
16256 TALLOC_CTX
*_mem_save_info1_0
;
16257 TALLOC_CTX
*_mem_save_info2_0
;
16258 level
= ndr_pull_get_switch_value(ndr
, r
);
16259 if (ndr_flags
& NDR_SCALARS
) {
16260 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
16261 if (_level
!= level
) {
16262 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
16264 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
16267 uint32_t _ptr_info1
;
16268 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
16270 NDR_PULL_ALLOC(ndr
, r
->info1
);
16277 uint32_t _ptr_info2
;
16278 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
16280 NDR_PULL_ALLOC(ndr
, r
->info2
);
16287 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
16290 if (ndr_flags
& NDR_BUFFERS
) {
16294 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16295 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
16296 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
16297 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
16303 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16304 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
16305 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
16306 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
16311 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
16314 return NDR_ERR_SUCCESS
;
16317 _PUBLIC_
void ndr_print_spoolss_AddFormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddFormInfo
*r
)
16320 level
= ndr_print_get_switch_value(ndr
, r
);
16321 ndr_print_union(ndr
, name
, level
, "spoolss_AddFormInfo");
16324 ndr_print_ptr(ndr
, "info1", r
->info1
);
16327 ndr_print_spoolss_AddFormInfo1(ndr
, "info1", r
->info1
);
16333 ndr_print_ptr(ndr
, "info2", r
->info2
);
16336 ndr_print_spoolss_AddFormInfo2(ndr
, "info2", r
->info2
);
16342 ndr_print_bad_level(ndr
, name
, level
);
16346 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo1
*r
)
16348 if (ndr_flags
& NDR_SCALARS
) {
16349 NDR_CHECK(ndr_push_align(ndr
, 5));
16351 uint32_t _flags_save_string
= ndr
->flags
;
16352 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16353 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
16354 ndr
->flags
= _flags_save_string
;
16356 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16358 if (ndr_flags
& NDR_BUFFERS
) {
16360 uint32_t _flags_save_string
= ndr
->flags
;
16361 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16362 if (r
->port_name
) {
16363 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
16364 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
16366 ndr
->flags
= _flags_save_string
;
16369 return NDR_ERR_SUCCESS
;
16372 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo1
*r
)
16374 uint32_t _ptr_port_name
;
16375 TALLOC_CTX
*_mem_save_port_name_0
;
16376 if (ndr_flags
& NDR_SCALARS
) {
16377 NDR_CHECK(ndr_pull_align(ndr
, 5));
16379 uint32_t _flags_save_string
= ndr
->flags
;
16380 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16381 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
16382 if (_ptr_port_name
) {
16383 NDR_PULL_ALLOC(ndr
, r
->port_name
);
16384 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
16386 r
->port_name
= NULL
;
16388 ndr
->flags
= _flags_save_string
;
16390 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16392 if (ndr_flags
& NDR_BUFFERS
) {
16394 uint32_t _flags_save_string
= ndr
->flags
;
16395 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16396 if (r
->port_name
) {
16397 uint32_t _relative_save_offset
;
16398 _relative_save_offset
= ndr
->offset
;
16399 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
16400 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16401 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
16402 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
16403 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
16404 ndr
->offset
= _relative_save_offset
;
16406 ndr
->flags
= _flags_save_string
;
16409 return NDR_ERR_SUCCESS
;
16412 _PUBLIC_
void ndr_print_spoolss_PortInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo1
*r
)
16414 ndr_print_struct(ndr
, name
, "spoolss_PortInfo1");
16416 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
16418 if (r
->port_name
) {
16419 ndr_print_string(ndr
, "port_name", r
->port_name
);
16425 _PUBLIC_
size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16427 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo1
, ic
);
16430 static enum ndr_err_code
ndr_push_spoolss_PortType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
16432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16433 return NDR_ERR_SUCCESS
;
16436 static enum ndr_err_code
ndr_pull_spoolss_PortType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
16439 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16441 return NDR_ERR_SUCCESS
;
16444 _PUBLIC_
void ndr_print_spoolss_PortType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
16446 ndr_print_uint32(ndr
, name
, r
);
16448 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE
, r
);
16449 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ
, r
);
16450 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED
, r
);
16451 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED
, r
);
16455 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo2
*r
)
16457 if (ndr_flags
& NDR_SCALARS
) {
16458 NDR_CHECK(ndr_push_align(ndr
, 5));
16460 uint32_t _flags_save_string
= ndr
->flags
;
16461 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16462 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
16463 ndr
->flags
= _flags_save_string
;
16466 uint32_t _flags_save_string
= ndr
->flags
;
16467 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16468 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
16469 ndr
->flags
= _flags_save_string
;
16472 uint32_t _flags_save_string
= ndr
->flags
;
16473 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16474 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
16475 ndr
->flags
= _flags_save_string
;
16477 NDR_CHECK(ndr_push_spoolss_PortType(ndr
, NDR_SCALARS
, r
->port_type
));
16478 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
16479 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16481 if (ndr_flags
& NDR_BUFFERS
) {
16483 uint32_t _flags_save_string
= ndr
->flags
;
16484 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16485 if (r
->port_name
) {
16486 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
16487 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
16489 ndr
->flags
= _flags_save_string
;
16492 uint32_t _flags_save_string
= ndr
->flags
;
16493 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16494 if (r
->monitor_name
) {
16495 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
16496 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
16498 ndr
->flags
= _flags_save_string
;
16501 uint32_t _flags_save_string
= ndr
->flags
;
16502 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16503 if (r
->description
) {
16504 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->description
));
16505 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
16507 ndr
->flags
= _flags_save_string
;
16510 return NDR_ERR_SUCCESS
;
16513 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo2
*r
)
16515 uint32_t _ptr_port_name
;
16516 TALLOC_CTX
*_mem_save_port_name_0
;
16517 uint32_t _ptr_monitor_name
;
16518 TALLOC_CTX
*_mem_save_monitor_name_0
;
16519 uint32_t _ptr_description
;
16520 TALLOC_CTX
*_mem_save_description_0
;
16521 if (ndr_flags
& NDR_SCALARS
) {
16522 NDR_CHECK(ndr_pull_align(ndr
, 5));
16524 uint32_t _flags_save_string
= ndr
->flags
;
16525 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16526 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
16527 if (_ptr_port_name
) {
16528 NDR_PULL_ALLOC(ndr
, r
->port_name
);
16529 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
16531 r
->port_name
= NULL
;
16533 ndr
->flags
= _flags_save_string
;
16536 uint32_t _flags_save_string
= ndr
->flags
;
16537 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16538 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
16539 if (_ptr_monitor_name
) {
16540 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
16541 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
16543 r
->monitor_name
= NULL
;
16545 ndr
->flags
= _flags_save_string
;
16548 uint32_t _flags_save_string
= ndr
->flags
;
16549 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16550 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
16551 if (_ptr_description
) {
16552 NDR_PULL_ALLOC(ndr
, r
->description
);
16553 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
16555 r
->description
= NULL
;
16557 ndr
->flags
= _flags_save_string
;
16559 NDR_CHECK(ndr_pull_spoolss_PortType(ndr
, NDR_SCALARS
, &r
->port_type
));
16560 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
16561 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16563 if (ndr_flags
& NDR_BUFFERS
) {
16565 uint32_t _flags_save_string
= ndr
->flags
;
16566 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16567 if (r
->port_name
) {
16568 uint32_t _relative_save_offset
;
16569 _relative_save_offset
= ndr
->offset
;
16570 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
16571 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16572 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
16573 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
16574 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
16575 ndr
->offset
= _relative_save_offset
;
16577 ndr
->flags
= _flags_save_string
;
16580 uint32_t _flags_save_string
= ndr
->flags
;
16581 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16582 if (r
->monitor_name
) {
16583 uint32_t _relative_save_offset
;
16584 _relative_save_offset
= ndr
->offset
;
16585 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
16586 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16587 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
16588 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
16589 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
16590 ndr
->offset
= _relative_save_offset
;
16592 ndr
->flags
= _flags_save_string
;
16595 uint32_t _flags_save_string
= ndr
->flags
;
16596 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16597 if (r
->description
) {
16598 uint32_t _relative_save_offset
;
16599 _relative_save_offset
= ndr
->offset
;
16600 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
16601 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16602 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
16603 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
16604 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
16605 ndr
->offset
= _relative_save_offset
;
16607 ndr
->flags
= _flags_save_string
;
16610 return NDR_ERR_SUCCESS
;
16613 _PUBLIC_
void ndr_print_spoolss_PortInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo2
*r
)
16615 ndr_print_struct(ndr
, name
, "spoolss_PortInfo2");
16617 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
16619 if (r
->port_name
) {
16620 ndr_print_string(ndr
, "port_name", r
->port_name
);
16623 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
16625 if (r
->monitor_name
) {
16626 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
16629 ndr_print_ptr(ndr
, "description", r
->description
);
16631 if (r
->description
) {
16632 ndr_print_string(ndr
, "description", r
->description
);
16635 ndr_print_spoolss_PortType(ndr
, "port_type", r
->port_type
);
16636 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
16640 _PUBLIC_
size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16642 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo2
, ic
);
16645 static enum ndr_err_code
ndr_push_spoolss_PortStatus(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortStatus r
)
16647 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
16648 return NDR_ERR_SUCCESS
;
16651 static enum ndr_err_code
ndr_pull_spoolss_PortStatus(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortStatus
*r
)
16654 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
16656 return NDR_ERR_SUCCESS
;
16659 _PUBLIC_
void ndr_print_spoolss_PortStatus(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortStatus r
)
16661 const char *val
= NULL
;
16664 case PORT_STATUS_CLEAR
: val
= "PORT_STATUS_CLEAR"; break;
16665 case PORT_STATUS_OFFLINE
: val
= "PORT_STATUS_OFFLINE"; break;
16666 case PORT_STATUS_PAPER_JAM
: val
= "PORT_STATUS_PAPER_JAM"; break;
16667 case PORT_STATUS_PAPER_OUT
: val
= "PORT_STATUS_PAPER_OUT"; break;
16668 case PORT_STATUS_OUTPUT_BIN_FULL
: val
= "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16669 case PORT_STATUS_PAPER_PROBLEM
: val
= "PORT_STATUS_PAPER_PROBLEM"; break;
16670 case PORT_STATUS_NO_TONER
: val
= "PORT_STATUS_NO_TONER"; break;
16671 case PORT_STATUS_DOOR_OPEN
: val
= "PORT_STATUS_DOOR_OPEN"; break;
16672 case PORT_STATUS_USER_INTERVENTION
: val
= "PORT_STATUS_USER_INTERVENTION"; break;
16673 case PORT_STATUS_OUT_OF_MEMORY
: val
= "PORT_STATUS_OUT_OF_MEMORY"; break;
16674 case PORT_STATUS_TONER_LOW
: val
= "PORT_STATUS_TONER_LOW"; break;
16675 case PORT_STATUS_WARMING_UP
: val
= "PORT_STATUS_WARMING_UP"; break;
16676 case PORT_STATUS_POWER_SAVE
: val
= "PORT_STATUS_POWER_SAVE"; break;
16678 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16681 static enum ndr_err_code
ndr_push_spoolss_PortSeverity(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortSeverity r
)
16683 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
16684 return NDR_ERR_SUCCESS
;
16687 static enum ndr_err_code
ndr_pull_spoolss_PortSeverity(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortSeverity
*r
)
16690 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
16692 return NDR_ERR_SUCCESS
;
16695 _PUBLIC_
void ndr_print_spoolss_PortSeverity(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortSeverity r
)
16697 const char *val
= NULL
;
16700 case PORT_STATUS_TYPE_ERROR
: val
= "PORT_STATUS_TYPE_ERROR"; break;
16701 case PORT_STATUS_TYPE_WARNING
: val
= "PORT_STATUS_TYPE_WARNING"; break;
16702 case PORT_STATUS_TYPE_INFO
: val
= "PORT_STATUS_TYPE_INFO"; break;
16704 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16707 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo3
*r
)
16709 if (ndr_flags
& NDR_SCALARS
) {
16710 NDR_CHECK(ndr_push_align(ndr
, 5));
16711 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr
, NDR_SCALARS
, r
->status
));
16713 uint32_t _flags_save_string
= ndr
->flags
;
16714 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16715 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->status_string
));
16716 ndr
->flags
= _flags_save_string
;
16718 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr
, NDR_SCALARS
, r
->severity
));
16719 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16721 if (ndr_flags
& NDR_BUFFERS
) {
16723 uint32_t _flags_save_string
= ndr
->flags
;
16724 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16725 if (r
->status_string
) {
16726 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->status_string
));
16727 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->status_string
));
16729 ndr
->flags
= _flags_save_string
;
16732 return NDR_ERR_SUCCESS
;
16735 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo3
*r
)
16737 uint32_t _ptr_status_string
;
16738 TALLOC_CTX
*_mem_save_status_string_0
;
16739 if (ndr_flags
& NDR_SCALARS
) {
16740 NDR_CHECK(ndr_pull_align(ndr
, 5));
16741 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr
, NDR_SCALARS
, &r
->status
));
16743 uint32_t _flags_save_string
= ndr
->flags
;
16744 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16745 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_status_string
));
16746 if (_ptr_status_string
) {
16747 NDR_PULL_ALLOC(ndr
, r
->status_string
);
16748 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->status_string
, _ptr_status_string
));
16750 r
->status_string
= NULL
;
16752 ndr
->flags
= _flags_save_string
;
16754 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr
, NDR_SCALARS
, &r
->severity
));
16755 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16757 if (ndr_flags
& NDR_BUFFERS
) {
16759 uint32_t _flags_save_string
= ndr
->flags
;
16760 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16761 if (r
->status_string
) {
16762 uint32_t _relative_save_offset
;
16763 _relative_save_offset
= ndr
->offset
;
16764 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->status_string
));
16765 _mem_save_status_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16766 NDR_PULL_SET_MEM_CTX(ndr
, r
->status_string
, 0);
16767 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->status_string
));
16768 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_string_0
, 0);
16769 ndr
->offset
= _relative_save_offset
;
16771 ndr
->flags
= _flags_save_string
;
16774 return NDR_ERR_SUCCESS
;
16777 _PUBLIC_
void ndr_print_spoolss_PortInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo3
*r
)
16779 ndr_print_struct(ndr
, name
, "spoolss_PortInfo3");
16781 ndr_print_spoolss_PortStatus(ndr
, "status", r
->status
);
16782 ndr_print_ptr(ndr
, "status_string", r
->status_string
);
16784 if (r
->status_string
) {
16785 ndr_print_string(ndr
, "status_string", r
->status_string
);
16788 ndr_print_spoolss_PortSeverity(ndr
, "severity", r
->severity
);
16792 _PUBLIC_
size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16794 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo3
, ic
);
16797 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfoFF(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfoFF
*r
)
16799 if (ndr_flags
& NDR_SCALARS
) {
16800 NDR_CHECK(ndr_push_align(ndr
, 5));
16802 uint32_t _flags_save_string
= ndr
->flags
;
16803 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16804 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
16805 ndr
->flags
= _flags_save_string
;
16807 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->monitor_data
));
16808 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
16810 if (ndr_flags
& NDR_BUFFERS
) {
16812 uint32_t _flags_save_string
= ndr
->flags
;
16813 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16814 if (r
->port_name
) {
16815 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
16816 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
16818 ndr
->flags
= _flags_save_string
;
16821 return NDR_ERR_SUCCESS
;
16824 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfoFF(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfoFF
*r
)
16826 uint32_t _ptr_port_name
;
16827 TALLOC_CTX
*_mem_save_port_name_0
;
16828 if (ndr_flags
& NDR_SCALARS
) {
16829 NDR_CHECK(ndr_pull_align(ndr
, 5));
16831 uint32_t _flags_save_string
= ndr
->flags
;
16832 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16833 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
16834 if (_ptr_port_name
) {
16835 NDR_PULL_ALLOC(ndr
, r
->port_name
);
16836 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
16838 r
->port_name
= NULL
;
16840 ndr
->flags
= _flags_save_string
;
16842 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->monitor_data
));
16843 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
16845 if (ndr_flags
& NDR_BUFFERS
) {
16847 uint32_t _flags_save_string
= ndr
->flags
;
16848 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16849 if (r
->port_name
) {
16850 uint32_t _relative_save_offset
;
16851 _relative_save_offset
= ndr
->offset
;
16852 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
16853 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16854 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
16855 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
16856 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
16857 ndr
->offset
= _relative_save_offset
;
16859 ndr
->flags
= _flags_save_string
;
16862 return NDR_ERR_SUCCESS
;
16865 _PUBLIC_
void ndr_print_spoolss_PortInfoFF(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfoFF
*r
)
16867 ndr_print_struct(ndr
, name
, "spoolss_PortInfoFF");
16869 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
16871 if (r
->port_name
) {
16872 ndr_print_string(ndr
, "port_name", r
->port_name
);
16875 ndr_print_DATA_BLOB(ndr
, "monitor_data", r
->monitor_data
);
16879 _PUBLIC_
size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16881 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfoFF
, ic
);
16884 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PortInfo
*r
)
16886 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16887 if (ndr_flags
& NDR_SCALARS
) {
16888 int level
= ndr_push_get_switch_value(ndr
, r
);
16889 NDR_CHECK(ndr_push_union_align(ndr
, 5));
16892 NDR_CHECK(ndr_push_align(ndr
, 5));
16893 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16894 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16898 NDR_CHECK(ndr_push_align(ndr
, 5));
16899 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16900 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16904 NDR_CHECK(ndr_push_align(ndr
, 5));
16905 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16906 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
16910 NDR_CHECK(ndr_push_align(ndr
, 5));
16911 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16912 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
16920 if (ndr_flags
& NDR_BUFFERS
) {
16921 int level
= ndr_push_get_switch_value(ndr
, r
);
16922 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16925 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16929 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16933 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
16937 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
16945 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16946 return NDR_ERR_SUCCESS
;
16949 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PortInfo
*r
)
16951 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16953 level
= ndr_pull_get_switch_value(ndr
, r
);
16954 if (ndr_flags
& NDR_SCALARS
) {
16955 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
16958 NDR_CHECK(ndr_pull_align(ndr
, 5));
16959 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16960 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16964 NDR_CHECK(ndr_pull_align(ndr
, 5));
16965 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16966 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16970 NDR_CHECK(ndr_pull_align(ndr
, 5));
16971 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16972 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
16976 NDR_CHECK(ndr_pull_align(ndr
, 5));
16977 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16978 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
16986 if (ndr_flags
& NDR_BUFFERS
) {
16987 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
16990 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16994 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16998 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
17002 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
17010 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17011 return NDR_ERR_SUCCESS
;
17014 _PUBLIC_
void ndr_print_spoolss_PortInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PortInfo
*r
)
17017 level
= ndr_print_get_switch_value(ndr
, r
);
17018 ndr_print_union(ndr
, name
, level
, "spoolss_PortInfo");
17021 ndr_print_spoolss_PortInfo1(ndr
, "info1", &r
->info1
);
17025 ndr_print_spoolss_PortInfo2(ndr
, "info2", &r
->info2
);
17029 ndr_print_spoolss_PortInfo3(ndr
, "info3", &r
->info3
);
17033 ndr_print_spoolss_PortInfoFF(ndr
, "infoFF", &r
->infoFF
);
17042 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo1
*r
)
17044 if (ndr_flags
& NDR_SCALARS
) {
17045 NDR_CHECK(ndr_push_align(ndr
, 5));
17047 uint32_t _flags_save_string
= ndr
->flags
;
17048 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17049 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
17050 ndr
->flags
= _flags_save_string
;
17052 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17054 if (ndr_flags
& NDR_BUFFERS
) {
17056 uint32_t _flags_save_string
= ndr
->flags
;
17057 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17058 if (r
->monitor_name
) {
17059 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
17060 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
17062 ndr
->flags
= _flags_save_string
;
17065 return NDR_ERR_SUCCESS
;
17068 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo1
*r
)
17070 uint32_t _ptr_monitor_name
;
17071 TALLOC_CTX
*_mem_save_monitor_name_0
;
17072 if (ndr_flags
& NDR_SCALARS
) {
17073 NDR_CHECK(ndr_pull_align(ndr
, 5));
17075 uint32_t _flags_save_string
= ndr
->flags
;
17076 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17077 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
17078 if (_ptr_monitor_name
) {
17079 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
17080 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
17082 r
->monitor_name
= NULL
;
17084 ndr
->flags
= _flags_save_string
;
17086 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17088 if (ndr_flags
& NDR_BUFFERS
) {
17090 uint32_t _flags_save_string
= ndr
->flags
;
17091 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17092 if (r
->monitor_name
) {
17093 uint32_t _relative_save_offset
;
17094 _relative_save_offset
= ndr
->offset
;
17095 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
17096 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17097 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
17098 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
17099 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
17100 ndr
->offset
= _relative_save_offset
;
17102 ndr
->flags
= _flags_save_string
;
17105 return NDR_ERR_SUCCESS
;
17108 _PUBLIC_
void ndr_print_spoolss_MonitorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo1
*r
)
17110 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo1");
17112 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
17114 if (r
->monitor_name
) {
17115 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
17121 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17123 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo1
, ic
);
17126 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo2
*r
)
17128 if (ndr_flags
& NDR_SCALARS
) {
17129 NDR_CHECK(ndr_push_align(ndr
, 5));
17131 uint32_t _flags_save_string
= ndr
->flags
;
17132 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17133 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
17134 ndr
->flags
= _flags_save_string
;
17137 uint32_t _flags_save_string
= ndr
->flags
;
17138 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17139 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->environment
));
17140 ndr
->flags
= _flags_save_string
;
17143 uint32_t _flags_save_string
= ndr
->flags
;
17144 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17145 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dll_name
));
17146 ndr
->flags
= _flags_save_string
;
17148 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17150 if (ndr_flags
& NDR_BUFFERS
) {
17152 uint32_t _flags_save_string
= ndr
->flags
;
17153 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17154 if (r
->monitor_name
) {
17155 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
17156 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
17158 ndr
->flags
= _flags_save_string
;
17161 uint32_t _flags_save_string
= ndr
->flags
;
17162 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17163 if (r
->environment
) {
17164 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->environment
));
17165 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->environment
));
17167 ndr
->flags
= _flags_save_string
;
17170 uint32_t _flags_save_string
= ndr
->flags
;
17171 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17173 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dll_name
));
17174 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
17176 ndr
->flags
= _flags_save_string
;
17179 return NDR_ERR_SUCCESS
;
17182 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo2
*r
)
17184 uint32_t _ptr_monitor_name
;
17185 TALLOC_CTX
*_mem_save_monitor_name_0
;
17186 uint32_t _ptr_environment
;
17187 TALLOC_CTX
*_mem_save_environment_0
;
17188 uint32_t _ptr_dll_name
;
17189 TALLOC_CTX
*_mem_save_dll_name_0
;
17190 if (ndr_flags
& NDR_SCALARS
) {
17191 NDR_CHECK(ndr_pull_align(ndr
, 5));
17193 uint32_t _flags_save_string
= ndr
->flags
;
17194 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17195 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
17196 if (_ptr_monitor_name
) {
17197 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
17198 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
17200 r
->monitor_name
= NULL
;
17202 ndr
->flags
= _flags_save_string
;
17205 uint32_t _flags_save_string
= ndr
->flags
;
17206 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17207 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
17208 if (_ptr_environment
) {
17209 NDR_PULL_ALLOC(ndr
, r
->environment
);
17210 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->environment
, _ptr_environment
));
17212 r
->environment
= NULL
;
17214 ndr
->flags
= _flags_save_string
;
17217 uint32_t _flags_save_string
= ndr
->flags
;
17218 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17219 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dll_name
));
17220 if (_ptr_dll_name
) {
17221 NDR_PULL_ALLOC(ndr
, r
->dll_name
);
17222 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dll_name
, _ptr_dll_name
));
17224 r
->dll_name
= NULL
;
17226 ndr
->flags
= _flags_save_string
;
17228 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17230 if (ndr_flags
& NDR_BUFFERS
) {
17232 uint32_t _flags_save_string
= ndr
->flags
;
17233 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17234 if (r
->monitor_name
) {
17235 uint32_t _relative_save_offset
;
17236 _relative_save_offset
= ndr
->offset
;
17237 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
17238 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17239 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
17240 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
17241 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
17242 ndr
->offset
= _relative_save_offset
;
17244 ndr
->flags
= _flags_save_string
;
17247 uint32_t _flags_save_string
= ndr
->flags
;
17248 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17249 if (r
->environment
) {
17250 uint32_t _relative_save_offset
;
17251 _relative_save_offset
= ndr
->offset
;
17252 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->environment
));
17253 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17254 NDR_PULL_SET_MEM_CTX(ndr
, r
->environment
, 0);
17255 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->environment
));
17256 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
17257 ndr
->offset
= _relative_save_offset
;
17259 ndr
->flags
= _flags_save_string
;
17262 uint32_t _flags_save_string
= ndr
->flags
;
17263 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17265 uint32_t _relative_save_offset
;
17266 _relative_save_offset
= ndr
->offset
;
17267 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dll_name
));
17268 _mem_save_dll_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17269 NDR_PULL_SET_MEM_CTX(ndr
, r
->dll_name
, 0);
17270 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
17271 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dll_name_0
, 0);
17272 ndr
->offset
= _relative_save_offset
;
17274 ndr
->flags
= _flags_save_string
;
17277 return NDR_ERR_SUCCESS
;
17280 _PUBLIC_
void ndr_print_spoolss_MonitorInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo2
*r
)
17282 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo2");
17284 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
17286 if (r
->monitor_name
) {
17287 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
17290 ndr_print_ptr(ndr
, "environment", r
->environment
);
17292 if (r
->environment
) {
17293 ndr_print_string(ndr
, "environment", r
->environment
);
17296 ndr_print_ptr(ndr
, "dll_name", r
->dll_name
);
17299 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
17305 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17307 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo2
, ic
);
17310 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_MonitorInfo
*r
)
17312 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
17313 if (ndr_flags
& NDR_SCALARS
) {
17314 int level
= ndr_push_get_switch_value(ndr
, r
);
17315 NDR_CHECK(ndr_push_union_align(ndr
, 5));
17318 NDR_CHECK(ndr_push_align(ndr
, 5));
17319 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17320 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17324 NDR_CHECK(ndr_push_align(ndr
, 5));
17325 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17326 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
17334 if (ndr_flags
& NDR_BUFFERS
) {
17335 int level
= ndr_push_get_switch_value(ndr
, r
);
17336 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
17339 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17343 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
17351 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17352 return NDR_ERR_SUCCESS
;
17355 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_MonitorInfo
*r
)
17357 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
17359 level
= ndr_pull_get_switch_value(ndr
, r
);
17360 if (ndr_flags
& NDR_SCALARS
) {
17361 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
17364 NDR_CHECK(ndr_pull_align(ndr
, 5));
17365 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17366 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17370 NDR_CHECK(ndr_pull_align(ndr
, 5));
17371 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17372 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
17380 if (ndr_flags
& NDR_BUFFERS
) {
17381 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
17384 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17388 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
17396 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17397 return NDR_ERR_SUCCESS
;
17400 _PUBLIC_
void ndr_print_spoolss_MonitorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_MonitorInfo
*r
)
17403 level
= ndr_print_get_switch_value(ndr
, r
);
17404 ndr_print_union(ndr
, name
, level
, "spoolss_MonitorInfo");
17407 ndr_print_spoolss_MonitorInfo1(ndr
, "info1", &r
->info1
);
17411 ndr_print_spoolss_MonitorInfo2(ndr
, "info2", &r
->info2
);
17420 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
17422 if (ndr_flags
& NDR_SCALARS
) {
17423 NDR_CHECK(ndr_push_align(ndr
, 5));
17425 uint32_t _flags_save_string
= ndr
->flags
;
17426 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17427 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name_array
));
17428 ndr
->flags
= _flags_save_string
;
17430 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17432 if (ndr_flags
& NDR_BUFFERS
) {
17434 uint32_t _flags_save_string
= ndr
->flags
;
17435 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17436 if (r
->name_array
) {
17437 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->name_array
));
17438 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name_array
));
17440 ndr
->flags
= _flags_save_string
;
17443 return NDR_ERR_SUCCESS
;
17446 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcDataTypesInfo1
*r
)
17448 uint32_t _ptr_name_array
;
17449 TALLOC_CTX
*_mem_save_name_array_0
;
17450 if (ndr_flags
& NDR_SCALARS
) {
17451 NDR_CHECK(ndr_pull_align(ndr
, 5));
17453 uint32_t _flags_save_string
= ndr
->flags
;
17454 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17455 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name_array
));
17456 if (_ptr_name_array
) {
17457 NDR_PULL_ALLOC(ndr
, r
->name_array
);
17458 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name_array
, _ptr_name_array
));
17460 r
->name_array
= NULL
;
17462 ndr
->flags
= _flags_save_string
;
17464 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17466 if (ndr_flags
& NDR_BUFFERS
) {
17468 uint32_t _flags_save_string
= ndr
->flags
;
17469 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
17470 if (r
->name_array
) {
17471 uint32_t _relative_save_offset
;
17472 _relative_save_offset
= ndr
->offset
;
17473 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name_array
));
17474 _mem_save_name_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17475 NDR_PULL_SET_MEM_CTX(ndr
, r
->name_array
, 0);
17476 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name_array
));
17477 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_array_0
, 0);
17478 ndr
->offset
= _relative_save_offset
;
17480 ndr
->flags
= _flags_save_string
;
17483 return NDR_ERR_SUCCESS
;
17486 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
17488 ndr_print_struct(ndr
, name
, "spoolss_PrintProcDataTypesInfo1");
17490 ndr_print_ptr(ndr
, "name_array", r
->name_array
);
17492 if (r
->name_array
) {
17493 ndr_print_string(ndr
, "name_array", r
->name_array
);
17499 _PUBLIC_
size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
17501 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcDataTypesInfo1
, ic
);
17504 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcDataTypesInfo
*r
)
17506 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
17507 if (ndr_flags
& NDR_SCALARS
) {
17508 int level
= ndr_push_get_switch_value(ndr
, r
);
17509 NDR_CHECK(ndr_push_union_align(ndr
, 5));
17512 NDR_CHECK(ndr_push_align(ndr
, 5));
17513 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17514 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17522 if (ndr_flags
& NDR_BUFFERS
) {
17523 int level
= ndr_push_get_switch_value(ndr
, r
);
17524 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
17527 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17535 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17536 return NDR_ERR_SUCCESS
;
17539 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcDataTypesInfo
*r
)
17541 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
17543 level
= ndr_pull_get_switch_value(ndr
, r
);
17544 if (ndr_flags
& NDR_SCALARS
) {
17545 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
17548 NDR_CHECK(ndr_pull_align(ndr
, 5));
17549 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
17550 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
17558 if (ndr_flags
& NDR_BUFFERS
) {
17559 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
17562 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
17570 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
17571 return NDR_ERR_SUCCESS
;
17574 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcDataTypesInfo
*r
)
17577 level
= ndr_print_get_switch_value(ndr
, r
);
17578 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcDataTypesInfo");
17581 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr
, "info1", &r
->info1
);
17590 static enum ndr_err_code
ndr_push_spoolss_PrinterChangeFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17592 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17593 return NDR_ERR_SUCCESS
;
17596 static enum ndr_err_code
ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17599 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17601 return NDR_ERR_SUCCESS
;
17604 _PUBLIC_
void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17606 ndr_print_uint32(ndr
, name
, r
);
17608 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER
, r
);
17609 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER
, r
);
17610 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER
, r
);
17611 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER
, r
);
17612 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB
, r
);
17613 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB
, r
);
17614 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB
, r
);
17615 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB
, r
);
17616 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM
, r
);
17617 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM
, r
);
17618 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM
, r
);
17619 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT
, r
);
17620 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT
, r
);
17621 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT
, r
);
17622 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR
, r
);
17623 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR
, r
);
17624 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER
, r
);
17625 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER
, r
);
17626 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER
, r
);
17627 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER
, r
);
17628 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT
, r
);
17632 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobNotifyField(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobNotifyField r
)
17634 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
17635 return NDR_ERR_SUCCESS
;
17638 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobNotifyField(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobNotifyField
*r
)
17641 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
17643 return NDR_ERR_SUCCESS
;
17646 _PUBLIC_
void ndr_print_spoolss_JobNotifyField(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobNotifyField r
)
17648 const char *val
= NULL
;
17651 case JOB_NOTIFY_FIELD_PRINTER_NAME
: val
= "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
17652 case JOB_NOTIFY_FIELD_MACHINE_NAME
: val
= "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
17653 case JOB_NOTIFY_FIELD_PORT_NAME
: val
= "JOB_NOTIFY_FIELD_PORT_NAME"; break;
17654 case JOB_NOTIFY_FIELD_USER_NAME
: val
= "JOB_NOTIFY_FIELD_USER_NAME"; break;
17655 case JOB_NOTIFY_FIELD_NOTIFY_NAME
: val
= "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
17656 case JOB_NOTIFY_FIELD_DATATYPE
: val
= "JOB_NOTIFY_FIELD_DATATYPE"; break;
17657 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR
: val
= "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17658 case JOB_NOTIFY_FIELD_PARAMETERS
: val
= "JOB_NOTIFY_FIELD_PARAMETERS"; break;
17659 case JOB_NOTIFY_FIELD_DRIVER_NAME
: val
= "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
17660 case JOB_NOTIFY_FIELD_DEVMODE
: val
= "JOB_NOTIFY_FIELD_DEVMODE"; break;
17661 case JOB_NOTIFY_FIELD_STATUS
: val
= "JOB_NOTIFY_FIELD_STATUS"; break;
17662 case JOB_NOTIFY_FIELD_STATUS_STRING
: val
= "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
17663 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: val
= "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17664 case JOB_NOTIFY_FIELD_DOCUMENT
: val
= "JOB_NOTIFY_FIELD_DOCUMENT"; break;
17665 case JOB_NOTIFY_FIELD_PRIORITY
: val
= "JOB_NOTIFY_FIELD_PRIORITY"; break;
17666 case JOB_NOTIFY_FIELD_POSITION
: val
= "JOB_NOTIFY_FIELD_POSITION"; break;
17667 case JOB_NOTIFY_FIELD_SUBMITTED
: val
= "JOB_NOTIFY_FIELD_SUBMITTED"; break;
17668 case JOB_NOTIFY_FIELD_START_TIME
: val
= "JOB_NOTIFY_FIELD_START_TIME"; break;
17669 case JOB_NOTIFY_FIELD_UNTIL_TIME
: val
= "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
17670 case JOB_NOTIFY_FIELD_TIME
: val
= "JOB_NOTIFY_FIELD_TIME"; break;
17671 case JOB_NOTIFY_FIELD_TOTAL_PAGES
: val
= "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
17672 case JOB_NOTIFY_FIELD_PAGES_PRINTED
: val
= "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
17673 case JOB_NOTIFY_FIELD_TOTAL_BYTES
: val
= "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
17674 case JOB_NOTIFY_FIELD_BYTES_PRINTED
: val
= "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
17676 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17679 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintNotifyField(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrintNotifyField r
)
17681 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
17682 return NDR_ERR_SUCCESS
;
17685 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintNotifyField(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrintNotifyField
*r
)
17688 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
17690 return NDR_ERR_SUCCESS
;
17693 _PUBLIC_
void ndr_print_spoolss_PrintNotifyField(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrintNotifyField r
)
17695 const char *val
= NULL
;
17698 case PRINTER_NOTIFY_FIELD_SERVER_NAME
: val
= "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
17699 case PRINTER_NOTIFY_FIELD_PRINTER_NAME
: val
= "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
17700 case PRINTER_NOTIFY_FIELD_SHARE_NAME
: val
= "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
17701 case PRINTER_NOTIFY_FIELD_PORT_NAME
: val
= "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
17702 case PRINTER_NOTIFY_FIELD_DRIVER_NAME
: val
= "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
17703 case PRINTER_NOTIFY_FIELD_COMMENT
: val
= "PRINTER_NOTIFY_FIELD_COMMENT"; break;
17704 case PRINTER_NOTIFY_FIELD_LOCATION
: val
= "PRINTER_NOTIFY_FIELD_LOCATION"; break;
17705 case PRINTER_NOTIFY_FIELD_DEVMODE
: val
= "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
17706 case PRINTER_NOTIFY_FIELD_SEPFILE
: val
= "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
17707 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR
: val
= "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17708 case PRINTER_NOTIFY_FIELD_PARAMETERS
: val
= "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
17709 case PRINTER_NOTIFY_FIELD_DATATYPE
: val
= "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
17710 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: val
= "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17711 case PRINTER_NOTIFY_FIELD_ATTRIBUTES
: val
= "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
17712 case PRINTER_NOTIFY_FIELD_PRIORITY
: val
= "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
17713 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY
: val
= "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
17714 case PRINTER_NOTIFY_FIELD_START_TIME
: val
= "PRINTER_NOTIFY_FIELD_START_TIME"; break;
17715 case PRINTER_NOTIFY_FIELD_UNTIL_TIME
: val
= "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
17716 case PRINTER_NOTIFY_FIELD_STATUS
: val
= "PRINTER_NOTIFY_FIELD_STATUS"; break;
17717 case PRINTER_NOTIFY_FIELD_STATUS_STRING
: val
= "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
17718 case PRINTER_NOTIFY_FIELD_CJOBS
: val
= "PRINTER_NOTIFY_FIELD_CJOBS"; break;
17719 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM
: val
= "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
17720 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES
: val
= "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
17721 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED
: val
= "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
17722 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES
: val
= "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
17723 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED
: val
= "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
17724 case PRINTER_NOTIFY_FIELD_OBJECT_GUID
: val
= "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
17725 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME
: val
= "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
17727 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17730 static enum ndr_err_code
ndr_push_spoolss_NotifyType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyType r
)
17732 NDR_CHECK(ndr_push_enum_uint16(ndr
, NDR_SCALARS
, r
));
17733 return NDR_ERR_SUCCESS
;
17736 static enum ndr_err_code
ndr_pull_spoolss_NotifyType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyType
*r
)
17739 NDR_CHECK(ndr_pull_enum_uint16(ndr
, NDR_SCALARS
, &v
));
17741 return NDR_ERR_SUCCESS
;
17744 _PUBLIC_
void ndr_print_spoolss_NotifyType(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyType r
)
17746 const char *val
= NULL
;
17749 case PRINTER_NOTIFY_TYPE
: val
= "PRINTER_NOTIFY_TYPE"; break;
17750 case JOB_NOTIFY_TYPE
: val
= "JOB_NOTIFY_TYPE"; break;
17752 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17755 static enum ndr_err_code
ndr_push_spoolss_Field(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_Field
*r
)
17757 if (ndr_flags
& NDR_SCALARS
) {
17758 int level
= ndr_push_get_switch_value(ndr
, r
);
17759 NDR_CHECK(ndr_push_union_align(ndr
, 2));
17761 case PRINTER_NOTIFY_TYPE
: {
17762 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
17765 case JOB_NOTIFY_TYPE
: {
17766 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
17770 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
17775 if (ndr_flags
& NDR_BUFFERS
) {
17776 int level
= ndr_push_get_switch_value(ndr
, r
);
17778 case PRINTER_NOTIFY_TYPE
:
17781 case JOB_NOTIFY_TYPE
:
17789 return NDR_ERR_SUCCESS
;
17792 static enum ndr_err_code
ndr_pull_spoolss_Field(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_Field
*r
)
17795 level
= ndr_pull_get_switch_value(ndr
, r
);
17796 if (ndr_flags
& NDR_SCALARS
) {
17797 NDR_CHECK(ndr_pull_union_align(ndr
, 2));
17799 case PRINTER_NOTIFY_TYPE
: {
17800 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
17803 case JOB_NOTIFY_TYPE
: {
17804 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
17808 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
17813 if (ndr_flags
& NDR_BUFFERS
) {
17815 case PRINTER_NOTIFY_TYPE
:
17818 case JOB_NOTIFY_TYPE
:
17826 return NDR_ERR_SUCCESS
;
17829 static enum ndr_err_code
ndr_push_spoolss_NotifyOptionType(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOptionType
*r
)
17831 uint32_t cntr_fields_1
;
17832 if (ndr_flags
& NDR_SCALARS
) {
17833 NDR_CHECK(ndr_push_align(ndr
, 5));
17834 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
17835 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->u1
));
17836 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u2
));
17837 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u3
));
17838 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17839 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->fields
));
17840 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17842 if (ndr_flags
& NDR_BUFFERS
) {
17844 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
17845 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
17846 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
));
17847 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
17851 return NDR_ERR_SUCCESS
;
17854 static enum ndr_err_code
ndr_pull_spoolss_NotifyOptionType(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOptionType
*r
)
17856 uint32_t _ptr_fields
;
17857 uint32_t cntr_fields_1
;
17858 TALLOC_CTX
*_mem_save_fields_0
;
17859 TALLOC_CTX
*_mem_save_fields_1
;
17860 if (ndr_flags
& NDR_SCALARS
) {
17861 NDR_CHECK(ndr_pull_align(ndr
, 5));
17862 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
17863 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->u1
));
17864 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u2
));
17865 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u3
));
17866 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
17867 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_fields
));
17869 NDR_PULL_ALLOC(ndr
, r
->fields
);
17873 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17875 if (ndr_flags
& NDR_BUFFERS
) {
17877 _mem_save_fields_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17878 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
17879 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->fields
));
17880 NDR_PULL_ALLOC_N(ndr
, r
->fields
, ndr_get_array_size(ndr
, &r
->fields
));
17881 _mem_save_fields_1
= NDR_PULL_GET_MEM_CTX(ndr
);
17882 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
17883 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
17884 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
));
17885 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
17887 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_1
, 0);
17888 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_0
, 0);
17891 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->fields
, r
->count
));
17894 return NDR_ERR_SUCCESS
;
17897 _PUBLIC_
void ndr_print_spoolss_NotifyOptionType(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOptionType
*r
)
17899 uint32_t cntr_fields_1
;
17900 ndr_print_struct(ndr
, name
, "spoolss_NotifyOptionType");
17902 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
17903 ndr_print_uint16(ndr
, "u1", r
->u1
);
17904 ndr_print_uint32(ndr
, "u2", r
->u2
);
17905 ndr_print_uint32(ndr
, "u3", r
->u3
);
17906 ndr_print_uint32(ndr
, "count", r
->count
);
17907 ndr_print_ptr(ndr
, "fields", r
->fields
);
17910 ndr
->print(ndr
, "%s: ARRAY(%d)", "fields", (int)r
->count
);
17912 for (cntr_fields_1
=0;cntr_fields_1
<r
->count
;cntr_fields_1
++) {
17914 if (asprintf(&idx_1
, "[%d]", cntr_fields_1
) != -1) {
17915 ndr_print_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
);
17916 ndr_print_spoolss_Field(ndr
, "fields", &r
->fields
[cntr_fields_1
]);
17926 static enum ndr_err_code
ndr_push_spoolssNotifyOptionFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17928 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17929 return NDR_ERR_SUCCESS
;
17932 static enum ndr_err_code
ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17935 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17937 return NDR_ERR_SUCCESS
;
17940 _PUBLIC_
void ndr_print_spoolssNotifyOptionFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17942 ndr_print_uint32(ndr
, name
, r
);
17944 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH
, r
);
17948 static enum ndr_err_code
ndr_push_spoolss_NotifyOption(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOption
*r
)
17950 uint32_t cntr_types_1
;
17951 if (ndr_flags
& NDR_SCALARS
) {
17952 NDR_CHECK(ndr_push_align(ndr
, 5));
17953 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
17954 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, r
->flags
));
17955 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17956 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->types
));
17957 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
17959 if (ndr_flags
& NDR_BUFFERS
) {
17961 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
17962 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17963 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
17965 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17966 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
17970 return NDR_ERR_SUCCESS
;
17973 static enum ndr_err_code
ndr_pull_spoolss_NotifyOption(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOption
*r
)
17975 uint32_t _ptr_types
;
17976 uint32_t cntr_types_1
;
17977 TALLOC_CTX
*_mem_save_types_0
;
17978 TALLOC_CTX
*_mem_save_types_1
;
17979 if (ndr_flags
& NDR_SCALARS
) {
17980 NDR_CHECK(ndr_pull_align(ndr
, 5));
17981 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
17982 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, &r
->flags
));
17983 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
17984 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_types
));
17986 NDR_PULL_ALLOC(ndr
, r
->types
);
17990 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
17992 if (ndr_flags
& NDR_BUFFERS
) {
17994 _mem_save_types_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17995 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
17996 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->types
));
17997 NDR_PULL_ALLOC_N(ndr
, r
->types
, ndr_get_array_size(ndr
, &r
->types
));
17998 _mem_save_types_1
= NDR_PULL_GET_MEM_CTX(ndr
);
17999 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
18000 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
18001 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
18003 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
18004 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
18006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_1
, 0);
18007 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_0
, 0);
18010 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->types
, r
->count
));
18013 return NDR_ERR_SUCCESS
;
18016 _PUBLIC_
void ndr_print_spoolss_NotifyOption(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOption
*r
)
18018 uint32_t cntr_types_1
;
18019 ndr_print_struct(ndr
, name
, "spoolss_NotifyOption");
18021 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
18022 ndr_print_spoolssNotifyOptionFlags(ndr
, "flags", r
->flags
);
18023 ndr_print_uint32(ndr
, "count", r
->count
);
18024 ndr_print_ptr(ndr
, "types", r
->types
);
18027 ndr
->print(ndr
, "%s: ARRAY(%d)", "types", (int)r
->count
);
18029 for (cntr_types_1
=0;cntr_types_1
<r
->count
;cntr_types_1
++) {
18031 if (asprintf(&idx_1
, "[%d]", cntr_types_1
) != -1) {
18032 ndr_print_spoolss_NotifyOptionType(ndr
, "types", &r
->types
[cntr_types_1
]);
18042 static enum ndr_err_code
ndr_push_spoolss_NotifyString(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyString
*r
)
18044 if (ndr_flags
& NDR_SCALARS
) {
18045 NDR_CHECK(ndr_push_align(ndr
, 5));
18046 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
18047 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->string
));
18048 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18050 if (ndr_flags
& NDR_BUFFERS
) {
18052 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->size
/ 2));
18053 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->string
, r
->size
/ 2, sizeof(uint16_t), CH_UTF16
));
18056 return NDR_ERR_SUCCESS
;
18059 static enum ndr_err_code
ndr_pull_spoolss_NotifyString(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyString
*r
)
18061 uint32_t _ptr_string
;
18062 TALLOC_CTX
*_mem_save_string_0
;
18063 if (ndr_flags
& NDR_SCALARS
) {
18064 NDR_CHECK(ndr_pull_align(ndr
, 5));
18065 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18066 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_string
));
18068 NDR_PULL_ALLOC(ndr
, r
->string
);
18072 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18074 if (ndr_flags
& NDR_BUFFERS
) {
18076 _mem_save_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18077 NDR_PULL_SET_MEM_CTX(ndr
, r
->string
, 0);
18078 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->string
));
18079 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->string
, ndr_get_array_size(ndr
, &r
->string
), sizeof(uint16_t), CH_UTF16
));
18080 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_string_0
, 0);
18083 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->string
, r
->size
/ 2));
18086 return NDR_ERR_SUCCESS
;
18089 _PUBLIC_
void ndr_print_spoolss_NotifyString(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyString
*r
)
18091 ndr_print_struct(ndr
, name
, "spoolss_NotifyString");
18093 ndr_print_uint32(ndr
, "size", r
->size
);
18094 ndr_print_ptr(ndr
, "string", r
->string
);
18097 ndr_print_string(ndr
, "string", r
->string
);
18103 static enum ndr_err_code
ndr_push_spoolss_NotifyTable(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyTable r
)
18105 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
18106 return NDR_ERR_SUCCESS
;
18109 static enum ndr_err_code
ndr_pull_spoolss_NotifyTable(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyTable
*r
)
18112 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
18114 return NDR_ERR_SUCCESS
;
18117 _PUBLIC_
void ndr_print_spoolss_NotifyTable(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyTable r
)
18119 const char *val
= NULL
;
18122 case NOTIFY_TABLE_DWORD
: val
= "NOTIFY_TABLE_DWORD"; break;
18123 case NOTIFY_TABLE_STRING
: val
= "NOTIFY_TABLE_STRING"; break;
18124 case NOTIFY_TABLE_DEVMODE
: val
= "NOTIFY_TABLE_DEVMODE"; break;
18125 case NOTIFY_TABLE_TIME
: val
= "NOTIFY_TABLE_TIME"; break;
18126 case NOTIFY_TABLE_SECURITYDESCRIPTOR
: val
= "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
18128 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18131 static enum ndr_err_code
ndr_push_spoolss_NotifyData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_NotifyData
*r
)
18133 if (ndr_flags
& NDR_SCALARS
) {
18134 int level
= ndr_push_get_switch_value(ndr
, r
);
18135 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
18136 NDR_CHECK(ndr_push_union_align(ndr
, 5));
18139 uint32_t cntr_integer_0
;
18140 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
18141 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->integer
[cntr_integer_0
]));
18146 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
18150 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
18154 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
18158 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
18162 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18165 if (ndr_flags
& NDR_BUFFERS
) {
18166 int level
= ndr_push_get_switch_value(ndr
, r
);
18172 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
18176 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
18180 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
18184 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
18188 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18191 return NDR_ERR_SUCCESS
;
18194 static enum ndr_err_code
ndr_pull_spoolss_NotifyData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_NotifyData
*r
)
18198 level
= ndr_pull_get_switch_value(ndr
, r
);
18199 if (ndr_flags
& NDR_SCALARS
) {
18200 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
18201 if (_level
!= level
) {
18202 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
18204 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
18207 uint32_t cntr_integer_0
;
18208 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
18209 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->integer
[cntr_integer_0
]));
18214 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
18218 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
18222 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
18226 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
18230 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18233 if (ndr_flags
& NDR_BUFFERS
) {
18239 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
18243 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
18247 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
18251 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
18255 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18258 return NDR_ERR_SUCCESS
;
18261 _PUBLIC_
void ndr_print_spoolss_NotifyData(struct ndr_print
*ndr
, const char *name
, const union spoolss_NotifyData
*r
)
18264 uint32_t cntr_integer_0
;
18265 level
= ndr_print_get_switch_value(ndr
, r
);
18266 ndr_print_union(ndr
, name
, level
, "spoolss_NotifyData");
18269 ndr
->print(ndr
, "%s: ARRAY(%d)", "integer", (int)2);
18271 for (cntr_integer_0
=0;cntr_integer_0
<2;cntr_integer_0
++) {
18273 if (asprintf(&idx_0
, "[%d]", cntr_integer_0
) != -1) {
18274 ndr_print_uint32(ndr
, "integer", r
->integer
[cntr_integer_0
]);
18282 ndr_print_spoolss_NotifyString(ndr
, "string", &r
->string
);
18286 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode", &r
->devmode
);
18290 ndr_print_spoolss_TimeCtr(ndr
, "time", &r
->time
);
18294 ndr_print_sec_desc_buf(ndr
, "sd", &r
->sd
);
18298 ndr_print_bad_level(ndr
, name
, level
);
18302 static enum ndr_err_code
ndr_push_spoolss_Notify(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_Notify
*r
)
18304 if (ndr_flags
& NDR_SCALARS
) {
18305 NDR_CHECK(ndr_push_align(ndr
, 5));
18306 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
18307 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->field
, r
->type
));
18308 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
18309 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr
, NDR_SCALARS
, r
->variable_type
));
18310 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
18311 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
18312 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
18313 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18315 if (ndr_flags
& NDR_BUFFERS
) {
18316 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
18318 return NDR_ERR_SUCCESS
;
18321 static enum ndr_err_code
ndr_pull_spoolss_Notify(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Notify
*r
)
18323 if (ndr_flags
& NDR_SCALARS
) {
18324 NDR_CHECK(ndr_pull_align(ndr
, 5));
18325 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
18326 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->field
, r
->type
));
18327 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
18328 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr
, NDR_SCALARS
, &r
->variable_type
));
18329 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
18330 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
18331 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
18332 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18334 if (ndr_flags
& NDR_BUFFERS
) {
18335 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
18337 return NDR_ERR_SUCCESS
;
18340 _PUBLIC_
void ndr_print_spoolss_Notify(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Notify
*r
)
18342 ndr_print_struct(ndr
, name
, "spoolss_Notify");
18344 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
18345 ndr_print_set_switch_value(ndr
, &r
->field
, r
->type
);
18346 ndr_print_spoolss_Field(ndr
, "field", &r
->field
);
18347 ndr_print_spoolss_NotifyTable(ndr
, "variable_type", r
->variable_type
);
18348 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
18349 ndr_print_set_switch_value(ndr
, &r
->data
, r
->variable_type
);
18350 ndr_print_spoolss_NotifyData(ndr
, "data", &r
->data
);
18354 static enum ndr_err_code
ndr_push_spoolss_NotifyInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyInfo
*r
)
18356 uint32_t cntr_notifies_0
;
18357 if (ndr_flags
& NDR_SCALARS
) {
18358 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->count
));
18359 NDR_CHECK(ndr_push_align(ndr
, 5));
18360 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
18361 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
18362 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
18363 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
18364 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
18366 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18368 if (ndr_flags
& NDR_BUFFERS
) {
18369 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
18370 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
18373 return NDR_ERR_SUCCESS
;
18376 static enum ndr_err_code
ndr_pull_spoolss_NotifyInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyInfo
*r
)
18378 uint32_t cntr_notifies_0
;
18379 TALLOC_CTX
*_mem_save_notifies_0
;
18380 if (ndr_flags
& NDR_SCALARS
) {
18381 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notifies
));
18382 NDR_CHECK(ndr_pull_align(ndr
, 5));
18383 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
18384 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
18385 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
18386 NDR_PULL_ALLOC_N(ndr
, r
->notifies
, ndr_get_array_size(ndr
, &r
->notifies
));
18387 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18388 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
18389 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
18390 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
18392 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
18394 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->notifies
, r
->count
));
18396 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18398 if (ndr_flags
& NDR_BUFFERS
) {
18399 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18400 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
18401 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
18402 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
18404 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
18406 return NDR_ERR_SUCCESS
;
18409 _PUBLIC_
void ndr_print_spoolss_NotifyInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyInfo
*r
)
18411 uint32_t cntr_notifies_0
;
18412 ndr_print_struct(ndr
, name
, "spoolss_NotifyInfo");
18414 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
18415 ndr_print_uint32(ndr
, "flags", r
->flags
);
18416 ndr_print_uint32(ndr
, "count", r
->count
);
18417 ndr
->print(ndr
, "%s: ARRAY(%d)", "notifies", (int)r
->count
);
18419 for (cntr_notifies_0
=0;cntr_notifies_0
<r
->count
;cntr_notifies_0
++) {
18421 if (asprintf(&idx_0
, "[%d]", cntr_notifies_0
) != -1) {
18422 ndr_print_spoolss_Notify(ndr
, "notifies", &r
->notifies
[cntr_notifies_0
]);
18430 static enum ndr_err_code
ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_ReplyPrinterInfo
*r
)
18432 if (ndr_flags
& NDR_SCALARS
) {
18433 int level
= ndr_push_get_switch_value(ndr
, r
);
18434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
18435 NDR_CHECK(ndr_push_union_align(ndr
, 5));
18438 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
18442 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18445 if (ndr_flags
& NDR_BUFFERS
) {
18446 int level
= ndr_push_get_switch_value(ndr
, r
);
18450 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
18455 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18458 return NDR_ERR_SUCCESS
;
18461 static enum ndr_err_code
ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_ReplyPrinterInfo
*r
)
18465 TALLOC_CTX
*_mem_save_info0_0
;
18466 level
= ndr_pull_get_switch_value(ndr
, r
);
18467 if (ndr_flags
& NDR_SCALARS
) {
18468 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
18469 if (_level
!= level
) {
18470 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
18472 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
18475 uint32_t _ptr_info0
;
18476 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
18478 NDR_PULL_ALLOC(ndr
, r
->info0
);
18485 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18488 if (ndr_flags
& NDR_BUFFERS
) {
18492 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18493 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
18494 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
18495 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
18500 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18503 return NDR_ERR_SUCCESS
;
18506 _PUBLIC_
void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_ReplyPrinterInfo
*r
)
18509 level
= ndr_print_get_switch_value(ndr
, r
);
18510 ndr_print_union(ndr
, name
, level
, "spoolss_ReplyPrinterInfo");
18513 ndr_print_ptr(ndr
, "info0", r
->info0
);
18516 ndr_print_spoolss_NotifyInfo(ndr
, "info0", r
->info0
);
18522 ndr_print_bad_level(ndr
, name
, level
);
18526 static enum ndr_err_code
ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18528 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18529 return NDR_ERR_SUCCESS
;
18532 static enum ndr_err_code
ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18535 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18537 return NDR_ERR_SUCCESS
;
18540 _PUBLIC_
void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18542 ndr_print_uint32(ndr
, name
, r
);
18544 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED
, r
);
18545 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED
, r
);
18546 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH
, r
);
18550 static enum ndr_err_code
ndr_push_spoolss_UserLevel1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel1
*r
)
18552 if (ndr_flags
& NDR_SCALARS
) {
18553 NDR_CHECK(ndr_push_align(ndr
, 5));
18554 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
18555 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
18556 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
18557 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
18558 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
18559 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
18560 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
18561 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18563 if (ndr_flags
& NDR_BUFFERS
) {
18565 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18566 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
18567 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18568 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18571 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18572 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
18573 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18574 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18577 return NDR_ERR_SUCCESS
;
18580 static enum ndr_err_code
ndr_pull_spoolss_UserLevel1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel1
*r
)
18582 uint32_t _ptr_client
;
18583 TALLOC_CTX
*_mem_save_client_0
;
18584 uint32_t _ptr_user
;
18585 TALLOC_CTX
*_mem_save_user_0
;
18586 if (ndr_flags
& NDR_SCALARS
) {
18587 NDR_CHECK(ndr_pull_align(ndr
, 5));
18588 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18589 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
18591 NDR_PULL_ALLOC(ndr
, r
->client
);
18595 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
18597 NDR_PULL_ALLOC(ndr
, r
->user
);
18601 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
18602 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
18603 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
18604 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
18605 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18607 if (ndr_flags
& NDR_BUFFERS
) {
18609 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18610 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
18611 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
18612 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
18613 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
18614 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
));
18616 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
18617 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
18618 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
18621 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18622 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
18623 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
18624 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
18625 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
18626 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
));
18628 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
18629 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
18630 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
18633 return NDR_ERR_SUCCESS
;
18636 _PUBLIC_
void ndr_print_spoolss_UserLevel1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel1
*r
)
18638 ndr_print_struct(ndr
, name
, "spoolss_UserLevel1");
18640 ndr_print_uint32(ndr
, "size", r
->size
);
18641 ndr_print_ptr(ndr
, "client", r
->client
);
18644 ndr_print_string(ndr
, "client", r
->client
);
18647 ndr_print_ptr(ndr
, "user", r
->user
);
18650 ndr_print_string(ndr
, "user", r
->user
);
18653 ndr_print_uint32(ndr
, "build", r
->build
);
18654 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
18655 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
18656 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
18660 static enum ndr_err_code
ndr_push_spoolss_UserLevel2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel2
*r
)
18662 if (ndr_flags
& NDR_SCALARS
) {
18663 NDR_CHECK(ndr_push_align(ndr
, 4));
18664 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->not_used
));
18665 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
18667 if (ndr_flags
& NDR_BUFFERS
) {
18669 return NDR_ERR_SUCCESS
;
18672 static enum ndr_err_code
ndr_pull_spoolss_UserLevel2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel2
*r
)
18674 if (ndr_flags
& NDR_SCALARS
) {
18675 NDR_CHECK(ndr_pull_align(ndr
, 4));
18676 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->not_used
));
18677 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
18679 if (ndr_flags
& NDR_BUFFERS
) {
18681 return NDR_ERR_SUCCESS
;
18684 _PUBLIC_
void ndr_print_spoolss_UserLevel2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel2
*r
)
18686 ndr_print_struct(ndr
, name
, "spoolss_UserLevel2");
18688 ndr_print_uint32(ndr
, "not_used", r
->not_used
);
18692 static enum ndr_err_code
ndr_push_spoolss_UserLevel3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel3
*r
)
18694 if (ndr_flags
& NDR_SCALARS
) {
18695 NDR_CHECK(ndr_push_align(ndr
, 5));
18696 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
18697 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
18698 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size2
));
18699 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
18700 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
18701 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
18702 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
18703 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
18704 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
18705 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reserved
));
18706 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18708 if (ndr_flags
& NDR_BUFFERS
) {
18710 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18711 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
18712 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18713 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18716 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18717 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
18718 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18719 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18722 return NDR_ERR_SUCCESS
;
18725 static enum ndr_err_code
ndr_pull_spoolss_UserLevel3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel3
*r
)
18727 uint32_t _ptr_client
;
18728 TALLOC_CTX
*_mem_save_client_0
;
18729 uint32_t _ptr_user
;
18730 TALLOC_CTX
*_mem_save_user_0
;
18731 if (ndr_flags
& NDR_SCALARS
) {
18732 NDR_CHECK(ndr_pull_align(ndr
, 5));
18733 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18734 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
18735 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size2
));
18736 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
18738 NDR_PULL_ALLOC(ndr
, r
->client
);
18742 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
18744 NDR_PULL_ALLOC(ndr
, r
->user
);
18748 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
18749 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
18750 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
18751 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
18752 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reserved
));
18753 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
18755 if (ndr_flags
& NDR_BUFFERS
) {
18757 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18758 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
18759 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
18760 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
18761 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
18762 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
));
18764 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
18765 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
18766 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
18769 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18770 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
18771 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
18772 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
18773 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
18774 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
));
18776 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
18777 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
18778 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
18781 return NDR_ERR_SUCCESS
;
18784 _PUBLIC_
void ndr_print_spoolss_UserLevel3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel3
*r
)
18786 ndr_print_struct(ndr
, name
, "spoolss_UserLevel3");
18788 ndr_print_uint32(ndr
, "size", r
->size
);
18789 ndr_print_uint32(ndr
, "flags", r
->flags
);
18790 ndr_print_uint32(ndr
, "size2", r
->size2
);
18791 ndr_print_ptr(ndr
, "client", r
->client
);
18794 ndr_print_string(ndr
, "client", r
->client
);
18797 ndr_print_ptr(ndr
, "user", r
->user
);
18800 ndr_print_string(ndr
, "user", r
->user
);
18803 ndr_print_uint32(ndr
, "build", r
->build
);
18804 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
18805 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
18806 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
18807 ndr_print_udlong(ndr
, "reserved", r
->reserved
);
18811 static enum ndr_err_code
ndr_push_spoolss_UserLevel(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_UserLevel
*r
)
18813 if (ndr_flags
& NDR_SCALARS
) {
18814 int level
= ndr_push_get_switch_value(ndr
, r
);
18815 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
18816 NDR_CHECK(ndr_push_union_align(ndr
, 5));
18819 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level1
));
18823 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level2
));
18827 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level3
));
18831 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18834 if (ndr_flags
& NDR_BUFFERS
) {
18835 int level
= ndr_push_get_switch_value(ndr
, r
);
18839 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
18845 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
18851 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
18856 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18859 return NDR_ERR_SUCCESS
;
18862 static enum ndr_err_code
ndr_pull_spoolss_UserLevel(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_UserLevel
*r
)
18866 TALLOC_CTX
*_mem_save_level1_0
;
18867 TALLOC_CTX
*_mem_save_level2_0
;
18868 TALLOC_CTX
*_mem_save_level3_0
;
18869 level
= ndr_pull_get_switch_value(ndr
, r
);
18870 if (ndr_flags
& NDR_SCALARS
) {
18871 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
18872 if (_level
!= level
) {
18873 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r at %s", _level
, __location__
);
18875 NDR_CHECK(ndr_pull_union_align(ndr
, 5));
18878 uint32_t _ptr_level1
;
18879 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level1
));
18881 NDR_PULL_ALLOC(ndr
, r
->level1
);
18888 uint32_t _ptr_level2
;
18889 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level2
));
18891 NDR_PULL_ALLOC(ndr
, r
->level2
);
18898 uint32_t _ptr_level3
;
18899 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level3
));
18901 NDR_PULL_ALLOC(ndr
, r
->level3
);
18908 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18911 if (ndr_flags
& NDR_BUFFERS
) {
18915 _mem_save_level1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18916 NDR_PULL_SET_MEM_CTX(ndr
, r
->level1
, 0);
18917 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
18918 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level1_0
, 0);
18924 _mem_save_level2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18925 NDR_PULL_SET_MEM_CTX(ndr
, r
->level2
, 0);
18926 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
18927 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level2_0
, 0);
18933 _mem_save_level3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18934 NDR_PULL_SET_MEM_CTX(ndr
, r
->level3
, 0);
18935 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
18936 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level3_0
, 0);
18941 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u at %s", level
, __location__
);
18944 return NDR_ERR_SUCCESS
;
18947 _PUBLIC_
void ndr_print_spoolss_UserLevel(struct ndr_print
*ndr
, const char *name
, const union spoolss_UserLevel
*r
)
18950 level
= ndr_print_get_switch_value(ndr
, r
);
18951 ndr_print_union(ndr
, name
, level
, "spoolss_UserLevel");
18954 ndr_print_ptr(ndr
, "level1", r
->level1
);
18957 ndr_print_spoolss_UserLevel1(ndr
, "level1", r
->level1
);
18963 ndr_print_ptr(ndr
, "level2", r
->level2
);
18966 ndr_print_spoolss_UserLevel2(ndr
, "level2", r
->level2
);
18972 ndr_print_ptr(ndr
, "level3", r
->level3
);
18975 ndr_print_spoolss_UserLevel3(ndr
, "level3", r
->level3
);
18981 ndr_print_bad_level(ndr
, name
, level
);
18985 static enum ndr_err_code
ndr_push_spoolss_UserLevelCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevelCtr
*r
)
18987 if (ndr_flags
& NDR_SCALARS
) {
18988 NDR_CHECK(ndr_push_align(ndr
, 5));
18989 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
18990 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->user_info
, r
->level
));
18991 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
18992 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
18994 if (ndr_flags
& NDR_BUFFERS
) {
18995 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
18997 return NDR_ERR_SUCCESS
;
19000 static enum ndr_err_code
ndr_pull_spoolss_UserLevelCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevelCtr
*r
)
19002 if (ndr_flags
& NDR_SCALARS
) {
19003 NDR_CHECK(ndr_pull_align(ndr
, 5));
19004 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
19005 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->user_info
, r
->level
));
19006 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
19007 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19009 if (ndr_flags
& NDR_BUFFERS
) {
19010 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
19012 return NDR_ERR_SUCCESS
;
19015 _PUBLIC_
void ndr_print_spoolss_UserLevelCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevelCtr
*r
)
19017 ndr_print_struct(ndr
, name
, "spoolss_UserLevelCtr");
19019 ndr_print_uint32(ndr
, "level", r
->level
);
19020 ndr_print_set_switch_value(ndr
, &r
->user_info
, r
->level
);
19021 ndr_print_spoolss_UserLevel(ndr
, "user_info", &r
->user_info
);
19025 static enum ndr_err_code
ndr_push_spoolss_AccessRights(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19027 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19028 return NDR_ERR_SUCCESS
;
19031 static enum ndr_err_code
ndr_pull_spoolss_AccessRights(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19034 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19036 return NDR_ERR_SUCCESS
;
19039 _PUBLIC_
void ndr_print_spoolss_AccessRights(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19041 ndr_print_uint32(ndr
, name
, r
);
19043 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER
, r
);
19044 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE
, r
);
19045 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER
, r
);
19046 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE
, r
);
19047 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER
, r
);
19048 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ
, r
);
19052 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterEnumValues(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterEnumValues
*r
)
19054 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
19055 if (ndr_flags
& NDR_SCALARS
) {
19056 NDR_CHECK(ndr_push_align(ndr
, 5));
19057 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
19059 uint32_t _flags_save_string
= ndr
->flags
;
19060 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19061 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->value_name
));
19062 ndr
->flags
= _flags_save_string
;
19064 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2 * strlen_m_term(r
->value_name
)));
19065 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->type
));
19066 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data
));
19067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_PrinterData(r
->data
, r
->type
, ndr
->iconv_convenience
, ndr
->flags
)));
19068 NDR_CHECK(ndr_push_trailer_align(ndr
, 5));
19070 if (ndr_flags
& NDR_BUFFERS
) {
19071 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
19073 uint32_t _flags_save_string
= ndr
->flags
;
19074 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19075 if (r
->value_name
) {
19076 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->value_name
));
19077 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->value_name
));
19079 ndr
->flags
= _flags_save_string
;
19082 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data
));
19084 struct ndr_push
*_ndr_data
;
19085 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_data
, 0, r
->data_length
));
19086 NDR_CHECK(ndr_push_set_switch_value(_ndr_data
, r
->data
, r
->type
));
19087 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, r
->data
));
19088 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_data
, 0, r
->data_length
));
19092 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
19093 return NDR_ERR_SUCCESS
;
19096 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterEnumValues
*r
)
19098 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
19099 uint32_t _ptr_value_name
;
19100 TALLOC_CTX
*_mem_save_value_name_0
;
19101 uint32_t _ptr_data
;
19102 TALLOC_CTX
*_mem_save_data_0
;
19103 if (ndr_flags
& NDR_SCALARS
) {
19104 NDR_CHECK(ndr_pull_align(ndr
, 5));
19105 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
19107 uint32_t _flags_save_string
= ndr
->flags
;
19108 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19109 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value_name
));
19110 if (_ptr_value_name
) {
19111 NDR_PULL_ALLOC(ndr
, r
->value_name
);
19112 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->value_name
, _ptr_value_name
));
19114 r
->value_name
= NULL
;
19116 ndr
->flags
= _flags_save_string
;
19118 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value_name_len
));
19119 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->type
));
19120 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
19122 NDR_PULL_ALLOC(ndr
, r
->data
);
19123 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data
, _ptr_data
));
19127 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data_length
));
19128 NDR_CHECK(ndr_pull_trailer_align(ndr
, 5));
19130 if (ndr_flags
& NDR_BUFFERS
) {
19131 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
19133 uint32_t _flags_save_string
= ndr
->flags
;
19134 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19135 if (r
->value_name
) {
19136 uint32_t _relative_save_offset
;
19137 _relative_save_offset
= ndr
->offset
;
19138 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->value_name
));
19139 _mem_save_value_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19140 NDR_PULL_SET_MEM_CTX(ndr
, r
->value_name
, 0);
19141 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->value_name
));
19142 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_name_0
, 0);
19143 ndr
->offset
= _relative_save_offset
;
19145 ndr
->flags
= _flags_save_string
;
19148 uint32_t _relative_save_offset
;
19149 _relative_save_offset
= ndr
->offset
;
19150 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data
));
19151 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19152 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
19154 struct ndr_pull
*_ndr_data
;
19155 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 0, r
->data_length
));
19156 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, r
->data
, r
->type
));
19157 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, r
->data
));
19158 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 0, r
->data_length
));
19160 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
19161 ndr
->offset
= _relative_save_offset
;
19164 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
19165 return NDR_ERR_SUCCESS
;
19168 _PUBLIC_
void ndr_print_spoolss_PrinterEnumValues(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterEnumValues
*r
)
19170 ndr_print_struct(ndr
, name
, "spoolss_PrinterEnumValues");
19172 ndr_print_ptr(ndr
, "value_name", r
->value_name
);
19174 if (r
->value_name
) {
19175 ndr_print_string(ndr
, "value_name", r
->value_name
);
19178 ndr_print_uint32(ndr
, "value_name_len", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2 * strlen_m_term(r
->value_name
):r
->value_name_len
);
19179 ndr_print_winreg_Type(ndr
, "type", r
->type
);
19180 ndr_print_ptr(ndr
, "data", r
->data
);
19183 ndr_print_set_switch_value(ndr
, r
->data
, r
->type
);
19184 ndr_print_spoolss_PrinterData(ndr
, "data", r
->data
);
19187 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
);
19191 _PUBLIC_
size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues
*r
, struct smb_iconv_convenience
*ic
, int flags
)
19193 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterEnumValues
, ic
);
19196 static enum ndr_err_code
ndr_push_spoolss_KeyNames(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_KeyNames
*r
)
19198 if (ndr_flags
& NDR_SCALARS
) {
19199 int level
= ndr_push_get_switch_value(ndr
, r
);
19200 NDR_CHECK(ndr_push_union_align(ndr
, 4));
19210 uint32_t _flags_save_string_array
= ndr
->flags
;
19211 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19212 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
19213 ndr
->flags
= _flags_save_string_array
;
19219 if (ndr_flags
& NDR_BUFFERS
) {
19220 int level
= ndr_push_get_switch_value(ndr
, r
);
19233 return NDR_ERR_SUCCESS
;
19236 static enum ndr_err_code
ndr_pull_spoolss_KeyNames(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_KeyNames
*r
)
19239 level
= ndr_pull_get_switch_value(ndr
, r
);
19240 if (ndr_flags
& NDR_SCALARS
) {
19241 NDR_CHECK(ndr_pull_union_align(ndr
, 4));
19251 uint32_t _flags_save_string_array
= ndr
->flags
;
19252 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19253 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
19254 ndr
->flags
= _flags_save_string_array
;
19260 if (ndr_flags
& NDR_BUFFERS
) {
19273 return NDR_ERR_SUCCESS
;
19276 _PUBLIC_
void ndr_print_spoolss_KeyNames(struct ndr_print
*ndr
, const char *name
, const union spoolss_KeyNames
*r
)
19279 level
= ndr_print_get_switch_value(ndr
, r
);
19280 ndr_print_union(ndr
, name
, level
, "spoolss_KeyNames");
19289 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
19295 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeleteDriverFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19297 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19298 return NDR_ERR_SUCCESS
;
19301 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19304 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19306 return NDR_ERR_SUCCESS
;
19309 _PUBLIC_
void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19311 ndr_print_uint32(ndr
, name
, r
);
19313 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES
, r
);
19314 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION
, r
);
19315 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES
, r
);
19319 static enum ndr_err_code
ndr_push_spoolss_PortProtocol(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortProtocol r
)
19321 NDR_CHECK(ndr_push_enum_uint32(ndr
, NDR_SCALARS
, r
));
19322 return NDR_ERR_SUCCESS
;
19325 static enum ndr_err_code
ndr_pull_spoolss_PortProtocol(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortProtocol
*r
)
19328 NDR_CHECK(ndr_pull_enum_uint32(ndr
, NDR_SCALARS
, &v
));
19330 return NDR_ERR_SUCCESS
;
19333 _PUBLIC_
void ndr_print_spoolss_PortProtocol(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortProtocol r
)
19335 const char *val
= NULL
;
19338 case PROTOCOL_RAWTCP_TYPE
: val
= "PROTOCOL_RAWTCP_TYPE"; break;
19339 case PROTOCOL_LPR_TYPE
: val
= "PROTOCOL_LPR_TYPE"; break;
19341 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
19344 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData1
*r
)
19346 if (ndr_flags
& NDR_SCALARS
) {
19347 NDR_CHECK(ndr_push_align(ndr
, 4));
19348 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
19349 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000001));
19350 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
19351 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
19352 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
19353 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
19354 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
19355 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
19356 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
19357 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
19358 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
19359 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
19360 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
19361 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
19362 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
19363 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
19365 if (ndr_flags
& NDR_BUFFERS
) {
19367 return NDR_ERR_SUCCESS
;
19370 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData1
*r
)
19372 if (ndr_flags
& NDR_SCALARS
) {
19373 NDR_CHECK(ndr_pull_align(ndr
, 4));
19374 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
19375 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
19376 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
19377 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
19378 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
19379 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
19380 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
19381 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
19382 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
19383 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
19384 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
19385 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
19386 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
19387 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
19388 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
19389 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
19391 if (ndr_flags
& NDR_BUFFERS
) {
19393 return NDR_ERR_SUCCESS
;
19396 _PUBLIC_
void ndr_print_spoolss_PortData1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData1
*r
)
19398 ndr_print_struct(ndr
, name
, "spoolss_PortData1");
19400 ndr_print_string(ndr
, "portname", r
->portname
);
19401 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000001:r
->version
);
19402 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
19403 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
19404 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
19405 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
19406 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
19407 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
19408 ndr_print_string(ndr
, "queue", r
->queue
);
19409 ndr_print_string(ndr
, "ip_address", r
->ip_address
);
19410 ndr_print_string(ndr
, "hardware_address", r
->hardware_address
);
19411 ndr_print_string(ndr
, "device_type", r
->device_type
);
19412 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
19413 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
19414 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
19418 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData2
*r
)
19420 if (ndr_flags
& NDR_SCALARS
) {
19421 NDR_CHECK(ndr_push_align(ndr
, 4));
19422 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
19423 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000002));
19424 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
19425 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
19426 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
19427 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
19428 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
19429 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
19430 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
19431 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
19432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
19433 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
19434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
19435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_monitor_mib_index
));
19436 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
19438 if (ndr_flags
& NDR_BUFFERS
) {
19440 return NDR_ERR_SUCCESS
;
19443 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData2
*r
)
19445 if (ndr_flags
& NDR_SCALARS
) {
19446 NDR_CHECK(ndr_pull_align(ndr
, 4));
19447 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
19448 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
19449 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
19450 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
19451 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
19452 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
19453 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
19454 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
19455 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
19456 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
19457 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
19458 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
19459 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
19460 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_monitor_mib_index
));
19461 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
19463 if (ndr_flags
& NDR_BUFFERS
) {
19465 return NDR_ERR_SUCCESS
;
19468 _PUBLIC_
void ndr_print_spoolss_PortData2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData2
*r
)
19470 ndr_print_struct(ndr
, name
, "spoolss_PortData2");
19472 ndr_print_string(ndr
, "portname", r
->portname
);
19473 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000002:r
->version
);
19474 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
19475 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
19476 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
19477 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
19478 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
19479 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
19480 ndr_print_string(ndr
, "queue", r
->queue
);
19481 ndr_print_string(ndr
, "device_type", r
->device_type
);
19482 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
19483 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
19484 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
19485 ndr_print_uint32(ndr
, "port_monitor_mib_index", r
->port_monitor_mib_index
);
19489 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorUi(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorUi
*r
)
19491 if (ndr_flags
& NDR_SCALARS
) {
19492 NDR_CHECK(ndr_push_align(ndr
, 4));
19494 uint32_t _flags_save_string
= ndr
->flags
;
19495 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19496 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
19497 ndr
->flags
= _flags_save_string
;
19499 NDR_CHECK(ndr_push_trailer_align(ndr
, 4));
19501 if (ndr_flags
& NDR_BUFFERS
) {
19503 return NDR_ERR_SUCCESS
;
19506 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorUi(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorUi
*r
)
19508 if (ndr_flags
& NDR_SCALARS
) {
19509 NDR_CHECK(ndr_pull_align(ndr
, 4));
19511 uint32_t _flags_save_string
= ndr
->flags
;
19512 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
19513 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
19514 ndr
->flags
= _flags_save_string
;
19516 NDR_CHECK(ndr_pull_trailer_align(ndr
, 4));
19518 if (ndr_flags
& NDR_BUFFERS
) {
19520 return NDR_ERR_SUCCESS
;
19523 _PUBLIC_
void ndr_print_spoolss_MonitorUi(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorUi
*r
)
19525 ndr_print_struct(ndr
, name
, "spoolss_MonitorUi");
19527 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
19531 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
19533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
19534 return NDR_ERR_SUCCESS
;
19537 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
19540 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
19542 return NDR_ERR_SUCCESS
;
19545 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
19547 ndr_print_uint32(ndr
, name
, r
);
19549 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE
, r
);
19550 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE
, r
);
19551 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES
, r
);
19552 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES
, r
);
19553 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY
, r
);
19554 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER
, r
);
19555 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS
, r
);
19556 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE
, r
);
19560 static enum ndr_err_code
ndr_push_spoolss_CorePrinterDriver(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_CorePrinterDriver
*r
)
19562 if (ndr_flags
& NDR_SCALARS
) {
19563 NDR_CHECK(ndr_push_align(ndr
, 8));
19564 NDR_CHECK(ndr_push_GUID(ndr
, NDR_SCALARS
, &r
->core_driver_guid
));
19565 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
19566 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
19567 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, 520, sizeof(uint8_t), CH_UTF8
));
19568 NDR_CHECK(ndr_push_trailer_align(ndr
, 8));
19570 if (ndr_flags
& NDR_BUFFERS
) {
19572 return NDR_ERR_SUCCESS
;
19575 static enum ndr_err_code
ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_CorePrinterDriver
*r
)
19577 if (ndr_flags
& NDR_SCALARS
) {
19578 NDR_CHECK(ndr_pull_align(ndr
, 8));
19579 NDR_CHECK(ndr_pull_GUID(ndr
, NDR_SCALARS
, &r
->core_driver_guid
));
19580 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
19581 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
19582 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, 520, sizeof(uint8_t), CH_UTF8
));
19583 NDR_CHECK(ndr_pull_trailer_align(ndr
, 8));
19585 if (ndr_flags
& NDR_BUFFERS
) {
19587 return NDR_ERR_SUCCESS
;
19590 _PUBLIC_
void ndr_print_spoolss_CorePrinterDriver(struct ndr_print
*ndr
, const char *name
, const struct spoolss_CorePrinterDriver
*r
)
19592 ndr_print_struct(ndr
, name
, "spoolss_CorePrinterDriver");
19594 ndr_print_GUID(ndr
, "core_driver_guid", &r
->core_driver_guid
);
19595 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
19596 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
19597 ndr_print_string(ndr
, "formname", r
->formname
);
19601 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinters
*r
)
19603 if (flags
& NDR_IN
) {
19604 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
19605 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
19606 if (r
->in
.server
) {
19607 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
19608 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19609 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
19610 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19612 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19613 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19614 if (r
->in
.buffer
) {
19615 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19617 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19619 if (flags
& NDR_OUT
) {
19620 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19622 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
19624 if (r
->out
.needed
== NULL
) {
19625 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19627 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19628 if (r
->out
.count
== NULL
) {
19629 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19631 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
19632 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19634 return NDR_ERR_SUCCESS
;
19637 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinters
*r
)
19639 uint32_t _ptr_server
;
19640 uint32_t _ptr_buffer
;
19641 uint32_t _ptr_info
;
19642 TALLOC_CTX
*_mem_save_server_0
;
19643 TALLOC_CTX
*_mem_save_buffer_0
;
19644 TALLOC_CTX
*_mem_save_info_0
;
19645 TALLOC_CTX
*_mem_save_needed_0
;
19646 TALLOC_CTX
*_mem_save_count_0
;
19647 if (flags
& NDR_IN
) {
19648 ZERO_STRUCT(r
->out
);
19650 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
19651 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
19653 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
19655 r
->in
.server
= NULL
;
19657 if (r
->in
.server
) {
19658 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19659 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
19660 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
19661 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
19662 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
19663 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
));
19665 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
19666 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
19667 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
19669 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19670 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19672 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19674 r
->in
.buffer
= NULL
;
19676 if (r
->in
.buffer
) {
19677 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19678 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19679 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19680 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19682 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19683 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19684 ZERO_STRUCTP(r
->out
.needed
);
19685 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19686 ZERO_STRUCTP(r
->out
.count
);
19688 if (flags
& NDR_OUT
) {
19689 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19691 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19693 r
->out
.info
= NULL
;
19696 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19697 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19698 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
19699 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19701 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19702 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19704 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19705 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19706 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19707 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19708 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19709 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19711 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19712 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
19713 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
19714 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
19715 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19717 return NDR_ERR_SUCCESS
;
19720 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinters
*r
)
19722 uint32_t cntr_info_0
;
19723 if (flags
& NDR_IN
) {
19724 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19725 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
19727 if (flags
& NDR_OUT
) {
19728 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19729 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19730 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19732 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19733 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19736 return NDR_ERR_SUCCESS
;
19739 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinters
*r
)
19741 uint32_t cntr_info_0
;
19742 TALLOC_CTX
*_mem_save_info_0
;
19743 if (flags
& NDR_IN
) {
19744 ZERO_STRUCT(r
->out
);
19746 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19747 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
19749 if (flags
& NDR_OUT
) {
19750 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
19751 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19752 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19753 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19754 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19755 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19757 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19758 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19760 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19762 return NDR_ERR_SUCCESS
;
19765 _PUBLIC_
void ndr_print_spoolss_EnumPrinters(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinters
*r
)
19767 uint32_t cntr_info_2
;
19768 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinters");
19770 if (flags
& NDR_SET_VALUES
) {
19771 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19773 if (flags
& NDR_IN
) {
19774 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinters");
19776 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->in
.flags
);
19777 ndr_print_ptr(ndr
, "server", r
->in
.server
);
19779 if (r
->in
.server
) {
19780 ndr_print_string(ndr
, "server", r
->in
.server
);
19783 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19784 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19786 if (r
->in
.buffer
) {
19787 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19790 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19793 if (flags
& NDR_OUT
) {
19794 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinters");
19796 ndr_print_ptr(ndr
, "count", r
->out
.count
);
19798 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
19800 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19802 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
19804 if (*r
->out
.info
) {
19805 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
19807 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
19809 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
19810 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
19811 ndr_print_spoolss_PrinterInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
19819 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19821 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19823 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19829 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinter
*r
)
19831 if (flags
& NDR_IN
) {
19832 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
19833 if (r
->in
.printername
) {
19834 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
19835 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19836 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
19837 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19839 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
19840 if (r
->in
.datatype
) {
19841 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
19842 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
19843 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
19844 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19846 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
19847 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
19849 if (flags
& NDR_OUT
) {
19850 if (r
->out
.handle
== NULL
) {
19851 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19853 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
19854 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19856 return NDR_ERR_SUCCESS
;
19859 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinter
*r
)
19861 uint32_t _ptr_printername
;
19862 uint32_t _ptr_datatype
;
19863 TALLOC_CTX
*_mem_save_printername_0
;
19864 TALLOC_CTX
*_mem_save_datatype_0
;
19865 TALLOC_CTX
*_mem_save_handle_0
;
19866 if (flags
& NDR_IN
) {
19867 ZERO_STRUCT(r
->out
);
19869 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
19870 if (_ptr_printername
) {
19871 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
19873 r
->in
.printername
= NULL
;
19875 if (r
->in
.printername
) {
19876 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19877 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
19878 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
19879 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
19880 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
19881 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
));
19883 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
19884 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
19885 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
19887 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
19888 if (_ptr_datatype
) {
19889 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
19891 r
->in
.datatype
= NULL
;
19893 if (r
->in
.datatype
) {
19894 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19895 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
19896 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
19897 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
19898 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
19899 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
));
19901 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
19902 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
19903 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
19905 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
19906 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
19907 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
19908 ZERO_STRUCTP(r
->out
.handle
);
19910 if (flags
& NDR_OUT
) {
19911 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19912 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
19914 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19915 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19916 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
19917 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19918 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19920 return NDR_ERR_SUCCESS
;
19923 _PUBLIC_
void ndr_print_spoolss_OpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinter
*r
)
19925 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinter");
19927 if (flags
& NDR_SET_VALUES
) {
19928 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19930 if (flags
& NDR_IN
) {
19931 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinter");
19933 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
19935 if (r
->in
.printername
) {
19936 ndr_print_string(ndr
, "printername", r
->in
.printername
);
19939 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
19941 if (r
->in
.datatype
) {
19942 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
19945 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
19946 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
19949 if (flags
& NDR_OUT
) {
19950 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinter");
19952 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
19954 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
19956 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19962 static enum ndr_err_code
ndr_push_spoolss_SetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetJob
*r
)
19964 if (flags
& NDR_IN
) {
19965 if (r
->in
.handle
== NULL
) {
19966 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19968 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
19970 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.ctr
));
19972 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
19974 NDR_CHECK(ndr_push_spoolss_JobControl(ndr
, NDR_SCALARS
, r
->in
.command
));
19976 if (flags
& NDR_OUT
) {
19977 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19979 return NDR_ERR_SUCCESS
;
19982 static enum ndr_err_code
ndr_pull_spoolss_SetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetJob
*r
)
19985 TALLOC_CTX
*_mem_save_handle_0
;
19986 TALLOC_CTX
*_mem_save_ctr_0
;
19987 if (flags
& NDR_IN
) {
19988 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19989 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19991 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19992 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19993 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19994 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19995 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
19996 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
19998 NDR_PULL_ALLOC(ndr
, r
->in
.ctr
);
20003 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20004 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.ctr
, 0);
20005 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
20006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, 0);
20008 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
20010 if (flags
& NDR_OUT
) {
20011 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20013 return NDR_ERR_SUCCESS
;
20016 _PUBLIC_
void ndr_print_spoolss_SetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetJob
*r
)
20018 ndr_print_struct(ndr
, name
, "spoolss_SetJob");
20020 if (flags
& NDR_SET_VALUES
) {
20021 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20023 if (flags
& NDR_IN
) {
20024 ndr_print_struct(ndr
, "in", "spoolss_SetJob");
20026 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20028 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20030 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
20031 ndr_print_ptr(ndr
, "ctr", r
->in
.ctr
);
20034 ndr_print_spoolss_JobInfoContainer(ndr
, "ctr", r
->in
.ctr
);
20037 ndr_print_spoolss_JobControl(ndr
, "command", r
->in
.command
);
20040 if (flags
& NDR_OUT
) {
20041 ndr_print_struct(ndr
, "out", "spoolss_SetJob");
20043 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20049 static enum ndr_err_code
ndr_push_spoolss_GetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetJob
*r
)
20051 if (flags
& NDR_IN
) {
20052 if (r
->in
.handle
== NULL
) {
20053 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20055 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20056 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
20057 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20058 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20059 if (r
->in
.buffer
) {
20060 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20064 if (flags
& NDR_OUT
) {
20065 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20068 struct ndr_push
*_ndr_info
;
20069 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20070 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20071 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
20072 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20075 if (r
->out
.needed
== NULL
) {
20076 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20078 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20079 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20081 return NDR_ERR_SUCCESS
;
20084 static enum ndr_err_code
ndr_pull_spoolss_GetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetJob
*r
)
20086 uint32_t _ptr_buffer
;
20087 uint32_t _ptr_info
;
20088 TALLOC_CTX
*_mem_save_handle_0
;
20089 TALLOC_CTX
*_mem_save_buffer_0
;
20090 TALLOC_CTX
*_mem_save_info_0
;
20091 TALLOC_CTX
*_mem_save_needed_0
;
20092 if (flags
& NDR_IN
) {
20093 ZERO_STRUCT(r
->out
);
20095 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20096 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20098 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20099 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20100 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20101 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20102 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
20103 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20104 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20106 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20108 r
->in
.buffer
= NULL
;
20110 if (r
->in
.buffer
) {
20111 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20112 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20113 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20114 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20116 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20117 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20118 ZERO_STRUCTP(r
->out
.needed
);
20120 if (flags
& NDR_OUT
) {
20121 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20123 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20125 r
->out
.info
= NULL
;
20128 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20129 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20131 struct ndr_pull
*_ndr_info
;
20132 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20133 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20134 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
20135 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20137 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20139 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20140 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20142 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20143 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20144 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20145 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20146 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20148 return NDR_ERR_SUCCESS
;
20151 _PUBLIC_
void ndr_print_spoolss_GetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetJob
*r
)
20153 ndr_print_struct(ndr
, name
, "spoolss_GetJob");
20155 if (flags
& NDR_SET_VALUES
) {
20156 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20158 if (flags
& NDR_IN
) {
20159 ndr_print_struct(ndr
, "in", "spoolss_GetJob");
20161 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20163 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20165 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
20166 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20167 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20169 if (r
->in
.buffer
) {
20170 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20173 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20176 if (flags
& NDR_OUT
) {
20177 ndr_print_struct(ndr
, "out", "spoolss_GetJob");
20179 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20182 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
20183 ndr_print_spoolss_JobInfo(ndr
, "info", r
->out
.info
);
20186 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20188 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20190 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20196 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumJobs
*r
)
20198 if (flags
& NDR_IN
) {
20199 if (r
->in
.handle
== NULL
) {
20200 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20202 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20203 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.firstjob
));
20204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.numjobs
));
20205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20206 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20207 if (r
->in
.buffer
) {
20208 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20210 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20212 if (flags
& NDR_OUT
) {
20213 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20215 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20217 if (r
->out
.needed
== NULL
) {
20218 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20220 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20221 if (r
->out
.count
== NULL
) {
20222 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20224 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20225 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20227 return NDR_ERR_SUCCESS
;
20230 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumJobs
*r
)
20232 uint32_t _ptr_buffer
;
20233 uint32_t _ptr_info
;
20234 TALLOC_CTX
*_mem_save_handle_0
;
20235 TALLOC_CTX
*_mem_save_buffer_0
;
20236 TALLOC_CTX
*_mem_save_info_0
;
20237 TALLOC_CTX
*_mem_save_needed_0
;
20238 TALLOC_CTX
*_mem_save_count_0
;
20239 if (flags
& NDR_IN
) {
20240 ZERO_STRUCT(r
->out
);
20242 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20243 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20245 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20246 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20247 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20248 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20249 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.firstjob
));
20250 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.numjobs
));
20251 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20252 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20254 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20256 r
->in
.buffer
= NULL
;
20258 if (r
->in
.buffer
) {
20259 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20260 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20261 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20262 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20264 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20265 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20266 ZERO_STRUCTP(r
->out
.needed
);
20267 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20268 ZERO_STRUCTP(r
->out
.count
);
20270 if (flags
& NDR_OUT
) {
20271 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20273 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20275 r
->out
.info
= NULL
;
20278 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20279 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20280 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
20281 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20283 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20284 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20286 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20287 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20288 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20289 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20290 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20291 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20293 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20294 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
20295 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
20296 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
20297 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20299 return NDR_ERR_SUCCESS
;
20302 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumJobs
*r
)
20304 uint32_t cntr_info_0
;
20305 if (flags
& NDR_IN
) {
20306 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20307 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
20309 if (flags
& NDR_OUT
) {
20310 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20311 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20312 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20314 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20315 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20318 return NDR_ERR_SUCCESS
;
20321 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumJobs
*r
)
20323 uint32_t cntr_info_0
;
20324 TALLOC_CTX
*_mem_save_info_0
;
20325 if (flags
& NDR_IN
) {
20326 ZERO_STRUCT(r
->out
);
20328 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20329 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
20331 if (flags
& NDR_OUT
) {
20332 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
20333 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20334 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20335 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20336 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20337 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20339 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20340 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20342 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20344 return NDR_ERR_SUCCESS
;
20347 _PUBLIC_
void ndr_print_spoolss_EnumJobs(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumJobs
*r
)
20349 uint32_t cntr_info_2
;
20350 ndr_print_struct(ndr
, name
, "spoolss_EnumJobs");
20352 if (flags
& NDR_SET_VALUES
) {
20353 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20355 if (flags
& NDR_IN
) {
20356 ndr_print_struct(ndr
, "in", "spoolss_EnumJobs");
20358 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20360 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20362 ndr_print_uint32(ndr
, "firstjob", r
->in
.firstjob
);
20363 ndr_print_uint32(ndr
, "numjobs", r
->in
.numjobs
);
20364 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20365 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20367 if (r
->in
.buffer
) {
20368 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20371 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20374 if (flags
& NDR_OUT
) {
20375 ndr_print_struct(ndr
, "out", "spoolss_EnumJobs");
20377 ndr_print_ptr(ndr
, "count", r
->out
.count
);
20379 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
20381 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20383 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
20385 if (*r
->out
.info
) {
20386 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
20388 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
20390 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
20391 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
20392 ndr_print_spoolss_JobInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
20400 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20402 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20404 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20410 static enum ndr_err_code
ndr_push_spoolss_AddPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinter
*r
)
20412 if (flags
& NDR_IN
) {
20413 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20414 if (r
->in
.server
) {
20415 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20416 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
20417 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20418 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20420 if (r
->in
.info_ctr
== NULL
) {
20421 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20423 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20424 if (r
->in
.devmode_ctr
== NULL
) {
20425 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20427 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
20428 if (r
->in
.secdesc_ctr
== NULL
) {
20429 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20431 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
20433 if (flags
& NDR_OUT
) {
20434 if (r
->out
.handle
== NULL
) {
20435 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20437 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
20438 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20440 return NDR_ERR_SUCCESS
;
20443 static enum ndr_err_code
ndr_pull_spoolss_AddPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinter
*r
)
20445 uint32_t _ptr_server
;
20446 TALLOC_CTX
*_mem_save_server_0
;
20447 TALLOC_CTX
*_mem_save_info_ctr_0
;
20448 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
20449 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
20450 TALLOC_CTX
*_mem_save_handle_0
;
20451 if (flags
& NDR_IN
) {
20452 ZERO_STRUCT(r
->out
);
20454 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20456 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20458 r
->in
.server
= NULL
;
20460 if (r
->in
.server
) {
20461 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20462 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20463 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20464 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20465 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20466 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
));
20468 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20469 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20470 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20472 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20473 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
20475 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20476 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20477 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20478 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20479 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20480 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
20482 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20483 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20484 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
20485 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20486 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20487 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
20489 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20490 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20491 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
20492 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20493 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
20494 ZERO_STRUCTP(r
->out
.handle
);
20496 if (flags
& NDR_OUT
) {
20497 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20498 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
20500 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20501 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20502 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
20503 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20504 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20506 return NDR_ERR_SUCCESS
;
20509 _PUBLIC_
void ndr_print_spoolss_AddPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinter
*r
)
20511 ndr_print_struct(ndr
, name
, "spoolss_AddPrinter");
20513 if (flags
& NDR_SET_VALUES
) {
20514 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20516 if (flags
& NDR_IN
) {
20517 ndr_print_struct(ndr
, "in", "spoolss_AddPrinter");
20519 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20521 if (r
->in
.server
) {
20522 ndr_print_string(ndr
, "server", r
->in
.server
);
20525 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
20527 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
20529 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
20531 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
20533 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
20535 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
20539 if (flags
& NDR_OUT
) {
20540 ndr_print_struct(ndr
, "out", "spoolss_AddPrinter");
20542 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
20544 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
20546 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20552 static enum ndr_err_code
ndr_push_spoolss_DeletePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinter
*r
)
20554 if (flags
& NDR_IN
) {
20555 if (r
->in
.handle
== NULL
) {
20556 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20558 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20560 if (flags
& NDR_OUT
) {
20561 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20563 return NDR_ERR_SUCCESS
;
20566 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinter
*r
)
20568 TALLOC_CTX
*_mem_save_handle_0
;
20569 if (flags
& NDR_IN
) {
20570 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20571 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20573 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20574 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20575 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20576 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20578 if (flags
& NDR_OUT
) {
20579 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20581 return NDR_ERR_SUCCESS
;
20584 _PUBLIC_
void ndr_print_spoolss_DeletePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinter
*r
)
20586 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinter");
20588 if (flags
& NDR_SET_VALUES
) {
20589 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20591 if (flags
& NDR_IN
) {
20592 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinter");
20594 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20596 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20600 if (flags
& NDR_OUT
) {
20601 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinter");
20603 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20609 static enum ndr_err_code
ndr_push_spoolss_SetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinter
*r
)
20611 if (flags
& NDR_IN
) {
20612 if (r
->in
.handle
== NULL
) {
20613 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20615 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20616 if (r
->in
.info_ctr
== NULL
) {
20617 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20619 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20620 if (r
->in
.devmode_ctr
== NULL
) {
20621 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20623 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
20624 if (r
->in
.secdesc_ctr
== NULL
) {
20625 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20627 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
20628 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr
, NDR_SCALARS
, r
->in
.command
));
20630 if (flags
& NDR_OUT
) {
20631 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20633 return NDR_ERR_SUCCESS
;
20636 static enum ndr_err_code
ndr_pull_spoolss_SetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinter
*r
)
20638 TALLOC_CTX
*_mem_save_handle_0
;
20639 TALLOC_CTX
*_mem_save_info_ctr_0
;
20640 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
20641 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
20642 if (flags
& NDR_IN
) {
20643 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20644 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20646 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20647 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20648 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20649 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20650 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20651 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
20653 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20654 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20655 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20656 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20657 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20658 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
20660 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20661 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20662 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
20663 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20664 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20665 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
20667 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20668 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20669 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
20670 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20671 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
20673 if (flags
& NDR_OUT
) {
20674 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20676 return NDR_ERR_SUCCESS
;
20679 _PUBLIC_
void ndr_print_spoolss_SetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinter
*r
)
20681 ndr_print_struct(ndr
, name
, "spoolss_SetPrinter");
20683 if (flags
& NDR_SET_VALUES
) {
20684 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20686 if (flags
& NDR_IN
) {
20687 ndr_print_struct(ndr
, "in", "spoolss_SetPrinter");
20689 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20691 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20693 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
20695 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
20697 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
20699 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
20701 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
20703 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
20705 ndr_print_spoolss_PrinterControl(ndr
, "command", r
->in
.command
);
20708 if (flags
& NDR_OUT
) {
20709 ndr_print_struct(ndr
, "out", "spoolss_SetPrinter");
20711 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20717 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinter
*r
)
20719 if (flags
& NDR_IN
) {
20720 if (r
->in
.handle
== NULL
) {
20721 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20723 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20724 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20725 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20726 if (r
->in
.buffer
) {
20727 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20729 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20731 if (flags
& NDR_OUT
) {
20732 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20735 struct ndr_push
*_ndr_info
;
20736 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20737 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20738 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
20739 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20742 if (r
->out
.needed
== NULL
) {
20743 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20745 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20746 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20748 return NDR_ERR_SUCCESS
;
20751 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinter
*r
)
20753 uint32_t _ptr_buffer
;
20754 uint32_t _ptr_info
;
20755 TALLOC_CTX
*_mem_save_handle_0
;
20756 TALLOC_CTX
*_mem_save_buffer_0
;
20757 TALLOC_CTX
*_mem_save_info_0
;
20758 TALLOC_CTX
*_mem_save_needed_0
;
20759 if (flags
& NDR_IN
) {
20760 ZERO_STRUCT(r
->out
);
20762 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20763 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20765 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20766 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20767 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20768 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20769 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20770 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20772 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20774 r
->in
.buffer
= NULL
;
20776 if (r
->in
.buffer
) {
20777 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20778 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20779 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20780 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20782 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20783 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20784 ZERO_STRUCTP(r
->out
.needed
);
20786 if (flags
& NDR_OUT
) {
20787 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20789 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20791 r
->out
.info
= NULL
;
20794 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20795 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20797 struct ndr_pull
*_ndr_info
;
20798 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20799 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20800 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
20801 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20803 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20805 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20806 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20808 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20809 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20810 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20811 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20812 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20814 return NDR_ERR_SUCCESS
;
20817 _PUBLIC_
void ndr_print_spoolss_GetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinter
*r
)
20819 ndr_print_struct(ndr
, name
, "spoolss_GetPrinter");
20821 if (flags
& NDR_SET_VALUES
) {
20822 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20824 if (flags
& NDR_IN
) {
20825 ndr_print_struct(ndr
, "in", "spoolss_GetPrinter");
20827 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20829 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20831 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20832 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20834 if (r
->in
.buffer
) {
20835 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20838 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20841 if (flags
& NDR_OUT
) {
20842 ndr_print_struct(ndr
, "out", "spoolss_GetPrinter");
20844 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20847 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
20848 ndr_print_spoolss_PrinterInfo(ndr
, "info", r
->out
.info
);
20851 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20853 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20855 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20861 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
20863 if (flags
& NDR_IN
) {
20864 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
20865 if (r
->in
.servername
) {
20866 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20867 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
20868 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20869 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20871 if (r
->in
.info_ctr
== NULL
) {
20872 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20874 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20876 if (flags
& NDR_OUT
) {
20877 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20879 return NDR_ERR_SUCCESS
;
20882 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriver
*r
)
20884 uint32_t _ptr_servername
;
20885 TALLOC_CTX
*_mem_save_servername_0
;
20886 TALLOC_CTX
*_mem_save_info_ctr_0
;
20887 if (flags
& NDR_IN
) {
20888 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
20889 if (_ptr_servername
) {
20890 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
20892 r
->in
.servername
= NULL
;
20894 if (r
->in
.servername
) {
20895 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20896 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
20897 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
20898 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
20899 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
20900 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
));
20902 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
20903 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
20904 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
20906 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20907 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
20909 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20910 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20911 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20912 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20914 if (flags
& NDR_OUT
) {
20915 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20917 return NDR_ERR_SUCCESS
;
20920 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
20922 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriver");
20924 if (flags
& NDR_SET_VALUES
) {
20925 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20927 if (flags
& NDR_IN
) {
20928 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriver");
20930 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
20932 if (r
->in
.servername
) {
20933 ndr_print_string(ndr
, "servername", r
->in
.servername
);
20936 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
20938 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
20942 if (flags
& NDR_OUT
) {
20943 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriver");
20945 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20951 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDrivers
*r
)
20953 if (flags
& NDR_IN
) {
20954 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20955 if (r
->in
.server
) {
20956 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20957 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
20958 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20959 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20961 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
20962 if (r
->in
.environment
) {
20963 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20964 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
20965 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20966 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20968 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20969 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20970 if (r
->in
.buffer
) {
20971 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20973 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20975 if (flags
& NDR_OUT
) {
20976 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20978 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20980 if (r
->out
.needed
== NULL
) {
20981 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20983 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20984 if (r
->out
.count
== NULL
) {
20985 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20987 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20988 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20990 return NDR_ERR_SUCCESS
;
20993 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDrivers
*r
)
20995 uint32_t _ptr_server
;
20996 uint32_t _ptr_environment
;
20997 uint32_t _ptr_buffer
;
20998 uint32_t _ptr_info
;
20999 TALLOC_CTX
*_mem_save_server_0
;
21000 TALLOC_CTX
*_mem_save_environment_0
;
21001 TALLOC_CTX
*_mem_save_buffer_0
;
21002 TALLOC_CTX
*_mem_save_info_0
;
21003 TALLOC_CTX
*_mem_save_needed_0
;
21004 TALLOC_CTX
*_mem_save_count_0
;
21005 if (flags
& NDR_IN
) {
21006 ZERO_STRUCT(r
->out
);
21008 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21010 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21012 r
->in
.server
= NULL
;
21014 if (r
->in
.server
) {
21015 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21016 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21017 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21018 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21019 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
21020 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
));
21022 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
21023 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
21024 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21026 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
21027 if (_ptr_environment
) {
21028 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
21030 r
->in
.environment
= NULL
;
21032 if (r
->in
.environment
) {
21033 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21034 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
21035 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
21036 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
21037 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
21038 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
));
21040 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
21041 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
21042 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
21044 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21045 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21047 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21049 r
->in
.buffer
= NULL
;
21051 if (r
->in
.buffer
) {
21052 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21053 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21054 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21055 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21057 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21058 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21059 ZERO_STRUCTP(r
->out
.needed
);
21060 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21061 ZERO_STRUCTP(r
->out
.count
);
21063 if (flags
& NDR_OUT
) {
21064 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21066 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21068 r
->out
.info
= NULL
;
21071 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21072 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21073 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
21074 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21076 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21077 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21079 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21080 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21081 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21082 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21083 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21084 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21086 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21087 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
21088 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
21089 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
21090 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21092 return NDR_ERR_SUCCESS
;
21095 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDrivers
*r
)
21097 uint32_t cntr_info_0
;
21098 if (flags
& NDR_IN
) {
21099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21100 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
21102 if (flags
& NDR_OUT
) {
21103 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21104 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21105 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21107 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21108 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21111 return NDR_ERR_SUCCESS
;
21114 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDrivers
*r
)
21116 uint32_t cntr_info_0
;
21117 TALLOC_CTX
*_mem_save_info_0
;
21118 if (flags
& NDR_IN
) {
21119 ZERO_STRUCT(r
->out
);
21121 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21122 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
21124 if (flags
& NDR_OUT
) {
21125 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
21126 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21127 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21128 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21129 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21130 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21132 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21133 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21135 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21137 return NDR_ERR_SUCCESS
;
21140 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDrivers
*r
)
21142 uint32_t cntr_info_2
;
21143 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDrivers");
21145 if (flags
& NDR_SET_VALUES
) {
21146 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21148 if (flags
& NDR_IN
) {
21149 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDrivers");
21151 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21153 if (r
->in
.server
) {
21154 ndr_print_string(ndr
, "server", r
->in
.server
);
21157 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
21159 if (r
->in
.environment
) {
21160 ndr_print_string(ndr
, "environment", r
->in
.environment
);
21163 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21164 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21166 if (r
->in
.buffer
) {
21167 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21170 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21173 if (flags
& NDR_OUT
) {
21174 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDrivers");
21176 ndr_print_ptr(ndr
, "count", r
->out
.count
);
21178 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
21180 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21182 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
21184 if (*r
->out
.info
) {
21185 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
21187 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
21189 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
21190 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
21191 ndr_print_spoolss_DriverInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
21199 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21201 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21203 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21209 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
21211 if (flags
& NDR_IN
) {
21212 if (r
->in
.handle
== NULL
) {
21213 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21215 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21216 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
21217 if (r
->in
.architecture
) {
21218 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21219 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21220 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21221 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21223 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21224 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21225 if (r
->in
.buffer
) {
21226 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21228 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21230 if (flags
& NDR_OUT
) {
21231 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21234 struct ndr_push
*_ndr_info
;
21235 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21236 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21237 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21238 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21241 if (r
->out
.needed
== NULL
) {
21242 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21245 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21247 return NDR_ERR_SUCCESS
;
21250 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver
*r
)
21252 uint32_t _ptr_architecture
;
21253 uint32_t _ptr_buffer
;
21254 uint32_t _ptr_info
;
21255 TALLOC_CTX
*_mem_save_handle_0
;
21256 TALLOC_CTX
*_mem_save_architecture_0
;
21257 TALLOC_CTX
*_mem_save_buffer_0
;
21258 TALLOC_CTX
*_mem_save_info_0
;
21259 TALLOC_CTX
*_mem_save_needed_0
;
21260 if (flags
& NDR_IN
) {
21261 ZERO_STRUCT(r
->out
);
21263 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21264 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21266 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21267 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21268 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21269 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21270 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
21271 if (_ptr_architecture
) {
21272 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
21274 r
->in
.architecture
= NULL
;
21276 if (r
->in
.architecture
) {
21277 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21278 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
21279 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
21280 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
21281 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
21282 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
));
21284 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
21285 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
21286 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
21288 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21289 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21291 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21293 r
->in
.buffer
= NULL
;
21295 if (r
->in
.buffer
) {
21296 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21297 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21298 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21299 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21301 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21302 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21303 ZERO_STRUCTP(r
->out
.needed
);
21305 if (flags
& NDR_OUT
) {
21306 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21308 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21310 r
->out
.info
= NULL
;
21313 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21314 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21316 struct ndr_pull
*_ndr_info
;
21317 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21318 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21319 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
21320 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21322 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21324 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21325 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21327 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21328 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21329 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21330 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21331 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21333 return NDR_ERR_SUCCESS
;
21336 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
21338 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver");
21340 if (flags
& NDR_SET_VALUES
) {
21341 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21343 if (flags
& NDR_IN
) {
21344 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver");
21346 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21348 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21350 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
21352 if (r
->in
.architecture
) {
21353 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
21356 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21357 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21359 if (r
->in
.buffer
) {
21360 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21363 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21366 if (flags
& NDR_OUT
) {
21367 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver");
21369 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21372 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
21373 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
21376 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21378 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21380 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21386 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
21388 if (flags
& NDR_IN
) {
21389 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21390 if (r
->in
.server
) {
21391 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21392 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21393 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21394 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21396 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
21397 if (r
->in
.environment
) {
21398 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21399 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21400 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21401 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21404 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21405 if (r
->in
.buffer
) {
21406 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21410 if (flags
& NDR_OUT
) {
21411 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21414 struct ndr_push
*_ndr_info
;
21415 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21416 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21417 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
21418 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21421 if (r
->out
.needed
== NULL
) {
21422 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21424 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21425 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21427 return NDR_ERR_SUCCESS
;
21430 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverDirectory
*r
)
21432 uint32_t _ptr_server
;
21433 uint32_t _ptr_environment
;
21434 uint32_t _ptr_buffer
;
21435 uint32_t _ptr_info
;
21436 TALLOC_CTX
*_mem_save_server_0
;
21437 TALLOC_CTX
*_mem_save_environment_0
;
21438 TALLOC_CTX
*_mem_save_buffer_0
;
21439 TALLOC_CTX
*_mem_save_info_0
;
21440 TALLOC_CTX
*_mem_save_needed_0
;
21441 if (flags
& NDR_IN
) {
21442 ZERO_STRUCT(r
->out
);
21444 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21446 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21448 r
->in
.server
= NULL
;
21450 if (r
->in
.server
) {
21451 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21452 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21453 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21454 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21455 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
21456 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
));
21458 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
21459 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
21460 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21462 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
21463 if (_ptr_environment
) {
21464 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
21466 r
->in
.environment
= NULL
;
21468 if (r
->in
.environment
) {
21469 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21470 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
21471 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
21472 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
21473 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
21474 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
));
21476 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
21477 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
21478 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
21480 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21481 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21483 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21485 r
->in
.buffer
= NULL
;
21487 if (r
->in
.buffer
) {
21488 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21489 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21490 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21491 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21493 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21494 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21495 ZERO_STRUCTP(r
->out
.needed
);
21497 if (flags
& NDR_OUT
) {
21498 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21500 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21502 r
->out
.info
= NULL
;
21505 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21506 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21508 struct ndr_pull
*_ndr_info
;
21509 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21510 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21511 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
21512 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21514 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21516 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21517 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21519 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21520 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21521 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21522 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21523 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21525 return NDR_ERR_SUCCESS
;
21528 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
21530 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverDirectory");
21532 if (flags
& NDR_SET_VALUES
) {
21533 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21535 if (flags
& NDR_IN
) {
21536 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverDirectory");
21538 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21540 if (r
->in
.server
) {
21541 ndr_print_string(ndr
, "server", r
->in
.server
);
21544 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
21546 if (r
->in
.environment
) {
21547 ndr_print_string(ndr
, "environment", r
->in
.environment
);
21550 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21551 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21553 if (r
->in
.buffer
) {
21554 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21557 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21560 if (flags
& NDR_OUT
) {
21561 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverDirectory");
21563 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21566 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
21567 ndr_print_spoolss_DriverDirectoryInfo(ndr
, "info", r
->out
.info
);
21570 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21572 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21574 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21580 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
21582 if (flags
& NDR_IN
) {
21583 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21584 if (r
->in
.server
) {
21585 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21586 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21587 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21588 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21590 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21591 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21592 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21593 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21594 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
21595 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21596 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
21597 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21599 if (flags
& NDR_OUT
) {
21600 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21602 return NDR_ERR_SUCCESS
;
21605 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriver
*r
)
21607 uint32_t _ptr_server
;
21608 TALLOC_CTX
*_mem_save_server_0
;
21609 if (flags
& NDR_IN
) {
21610 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21612 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21614 r
->in
.server
= NULL
;
21616 if (r
->in
.server
) {
21617 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21618 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21619 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21620 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21621 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
21622 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
));
21624 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
21625 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
21626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21628 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
21629 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
21630 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
21631 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
));
21633 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
21634 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
21635 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
21636 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
21637 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
21638 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
));
21640 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
21641 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
21643 if (flags
& NDR_OUT
) {
21644 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21646 return NDR_ERR_SUCCESS
;
21649 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
21651 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriver");
21653 if (flags
& NDR_SET_VALUES
) {
21654 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21656 if (flags
& NDR_IN
) {
21657 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriver");
21659 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21661 if (r
->in
.server
) {
21662 ndr_print_string(ndr
, "server", r
->in
.server
);
21665 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
21666 ndr_print_string(ndr
, "driver", r
->in
.driver
);
21669 if (flags
& NDR_OUT
) {
21670 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriver");
21672 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21678 static enum ndr_err_code
ndr_push_spoolss_AddPrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
21680 if (flags
& NDR_IN
) {
21681 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21682 if (r
->in
.server
) {
21683 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21684 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21685 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21686 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21688 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21689 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21690 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
21691 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21692 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
21693 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21694 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
21695 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
));
21696 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
21697 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21698 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
21699 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
));
21701 if (flags
& NDR_OUT
) {
21702 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21704 return NDR_ERR_SUCCESS
;
21707 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProcessor
*r
)
21709 uint32_t _ptr_server
;
21710 TALLOC_CTX
*_mem_save_server_0
;
21711 if (flags
& NDR_IN
) {
21712 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21714 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21716 r
->in
.server
= NULL
;
21718 if (r
->in
.server
) {
21719 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21720 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21721 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21722 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21723 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
21724 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
));
21726 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
21727 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
21728 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21730 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
21731 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
21732 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
21733 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
));
21735 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
21736 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
21737 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.path_name
));
21738 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.path_name
));
21739 if (ndr_get_array_length(ndr
, &r
->in
.path_name
) > ndr_get_array_size(ndr
, &r
->in
.path_name
)) {
21740 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
));
21742 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.path_name
), sizeof(uint16_t)));
21743 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
));
21744 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
21745 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
21746 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
21747 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
));
21749 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
21750 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
));
21752 if (flags
& NDR_OUT
) {
21753 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21755 return NDR_ERR_SUCCESS
;
21758 _PUBLIC_
void ndr_print_spoolss_AddPrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
21760 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProcessor");
21762 if (flags
& NDR_SET_VALUES
) {
21763 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21765 if (flags
& NDR_IN
) {
21766 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProcessor");
21768 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21770 if (r
->in
.server
) {
21771 ndr_print_string(ndr
, "server", r
->in
.server
);
21774 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
21775 ndr_print_string(ndr
, "path_name", r
->in
.path_name
);
21776 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
21779 if (flags
& NDR_OUT
) {
21780 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProcessor");
21782 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21788 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcessors
*r
)
21790 if (flags
& NDR_IN
) {
21791 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
21792 if (r
->in
.servername
) {
21793 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
21794 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21795 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
21796 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21798 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
21799 if (r
->in
.environment
) {
21800 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21801 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
21802 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21803 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21805 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21806 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21807 if (r
->in
.buffer
) {
21808 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21810 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21812 if (flags
& NDR_OUT
) {
21813 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21815 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
21817 if (r
->out
.needed
== NULL
) {
21818 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21820 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21821 if (r
->out
.count
== NULL
) {
21822 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21824 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
21825 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21827 return NDR_ERR_SUCCESS
;
21830 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcessors
*r
)
21832 uint32_t _ptr_servername
;
21833 uint32_t _ptr_environment
;
21834 uint32_t _ptr_buffer
;
21835 uint32_t _ptr_info
;
21836 TALLOC_CTX
*_mem_save_servername_0
;
21837 TALLOC_CTX
*_mem_save_environment_0
;
21838 TALLOC_CTX
*_mem_save_buffer_0
;
21839 TALLOC_CTX
*_mem_save_info_0
;
21840 TALLOC_CTX
*_mem_save_needed_0
;
21841 TALLOC_CTX
*_mem_save_count_0
;
21842 if (flags
& NDR_IN
) {
21843 ZERO_STRUCT(r
->out
);
21845 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
21846 if (_ptr_servername
) {
21847 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
21849 r
->in
.servername
= NULL
;
21851 if (r
->in
.servername
) {
21852 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21853 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
21854 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
21855 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
21856 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
21857 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
));
21859 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
21860 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
21861 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
21863 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
21864 if (_ptr_environment
) {
21865 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
21867 r
->in
.environment
= NULL
;
21869 if (r
->in
.environment
) {
21870 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21871 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
21872 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
21873 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
21874 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
21875 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
));
21877 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
21878 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
21879 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
21881 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21882 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21884 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21886 r
->in
.buffer
= NULL
;
21888 if (r
->in
.buffer
) {
21889 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21890 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21891 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21892 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21894 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21895 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21896 ZERO_STRUCTP(r
->out
.needed
);
21897 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21898 ZERO_STRUCTP(r
->out
.count
);
21900 if (flags
& NDR_OUT
) {
21901 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21903 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21905 r
->out
.info
= NULL
;
21908 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21909 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21910 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
21911 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21913 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21914 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21916 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21917 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21918 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21919 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21920 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21921 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
21923 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21924 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
21925 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
21926 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
21927 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21929 return NDR_ERR_SUCCESS
;
21932 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcessors
*r
)
21934 uint32_t cntr_info_0
;
21935 if (flags
& NDR_IN
) {
21936 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21937 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
21939 if (flags
& NDR_OUT
) {
21940 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21941 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21942 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21944 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21945 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21948 return NDR_ERR_SUCCESS
;
21951 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcessors
*r
)
21953 uint32_t cntr_info_0
;
21954 TALLOC_CTX
*_mem_save_info_0
;
21955 if (flags
& NDR_IN
) {
21956 ZERO_STRUCT(r
->out
);
21958 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21959 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
21961 if (flags
& NDR_OUT
) {
21962 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
21963 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21964 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21965 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21966 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21967 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21969 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21970 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21972 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21974 return NDR_ERR_SUCCESS
;
21977 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcessors
*r
)
21979 uint32_t cntr_info_2
;
21980 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcessors");
21982 if (flags
& NDR_SET_VALUES
) {
21983 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21985 if (flags
& NDR_IN
) {
21986 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcessors");
21988 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
21990 if (r
->in
.servername
) {
21991 ndr_print_string(ndr
, "servername", r
->in
.servername
);
21994 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
21996 if (r
->in
.environment
) {
21997 ndr_print_string(ndr
, "environment", r
->in
.environment
);
22000 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22001 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22003 if (r
->in
.buffer
) {
22004 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22007 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22010 if (flags
& NDR_OUT
) {
22011 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcessors");
22013 ndr_print_ptr(ndr
, "count", r
->out
.count
);
22015 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
22017 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22019 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
22021 if (*r
->out
.info
) {
22022 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
22024 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
22026 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
22027 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
22028 ndr_print_spoolss_PrintProcessorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
22036 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22038 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22040 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22046 static enum ndr_err_code
ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
22048 if (flags
& NDR_IN
) {
22049 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
22050 if (r
->in
.server
) {
22051 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22052 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22053 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
22054 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22056 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
22057 if (r
->in
.environment
) {
22058 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22059 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22060 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
22061 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22063 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22064 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22065 if (r
->in
.buffer
) {
22066 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22068 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22070 if (flags
& NDR_OUT
) {
22071 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22074 struct ndr_push
*_ndr_info
;
22075 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22076 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22077 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
22078 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22081 if (r
->out
.needed
== NULL
) {
22082 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22084 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22085 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22087 return NDR_ERR_SUCCESS
;
22090 static enum ndr_err_code
ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrintProcessorDirectory
*r
)
22092 uint32_t _ptr_server
;
22093 uint32_t _ptr_environment
;
22094 uint32_t _ptr_buffer
;
22095 uint32_t _ptr_info
;
22096 TALLOC_CTX
*_mem_save_server_0
;
22097 TALLOC_CTX
*_mem_save_environment_0
;
22098 TALLOC_CTX
*_mem_save_buffer_0
;
22099 TALLOC_CTX
*_mem_save_info_0
;
22100 TALLOC_CTX
*_mem_save_needed_0
;
22101 if (flags
& NDR_IN
) {
22102 ZERO_STRUCT(r
->out
);
22104 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
22106 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
22108 r
->in
.server
= NULL
;
22110 if (r
->in
.server
) {
22111 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22112 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
22113 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
22114 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
22115 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
22116 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
));
22118 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
22119 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
22120 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
22122 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
22123 if (_ptr_environment
) {
22124 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
22126 r
->in
.environment
= NULL
;
22128 if (r
->in
.environment
) {
22129 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22130 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
22131 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
22132 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
22133 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
22134 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
));
22136 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
22137 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
22138 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
22140 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22141 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22143 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22145 r
->in
.buffer
= NULL
;
22147 if (r
->in
.buffer
) {
22148 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22149 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22150 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22151 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22153 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22154 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22155 ZERO_STRUCTP(r
->out
.needed
);
22157 if (flags
& NDR_OUT
) {
22158 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22160 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22162 r
->out
.info
= NULL
;
22165 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22166 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22168 struct ndr_pull
*_ndr_info
;
22169 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22170 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22171 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
22172 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22174 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22176 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22177 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22179 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22180 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22181 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22182 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22183 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22185 return NDR_ERR_SUCCESS
;
22188 _PUBLIC_
void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
22190 ndr_print_struct(ndr
, name
, "spoolss_GetPrintProcessorDirectory");
22192 if (flags
& NDR_SET_VALUES
) {
22193 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22195 if (flags
& NDR_IN
) {
22196 ndr_print_struct(ndr
, "in", "spoolss_GetPrintProcessorDirectory");
22198 ndr_print_ptr(ndr
, "server", r
->in
.server
);
22200 if (r
->in
.server
) {
22201 ndr_print_string(ndr
, "server", r
->in
.server
);
22204 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
22206 if (r
->in
.environment
) {
22207 ndr_print_string(ndr
, "environment", r
->in
.environment
);
22210 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22211 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22213 if (r
->in
.buffer
) {
22214 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22217 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22220 if (flags
& NDR_OUT
) {
22221 ndr_print_struct(ndr
, "out", "spoolss_GetPrintProcessorDirectory");
22223 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22226 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22227 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr
, "info", r
->out
.info
);
22230 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22232 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22234 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22240 static enum ndr_err_code
ndr_push_spoolss_StartDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartDocPrinter
*r
)
22242 if (flags
& NDR_IN
) {
22243 if (r
->in
.handle
== NULL
) {
22244 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22246 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22247 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22248 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22249 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22251 if (flags
& NDR_OUT
) {
22252 if (r
->out
.job_id
== NULL
) {
22253 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22255 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.job_id
));
22256 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22258 return NDR_ERR_SUCCESS
;
22261 static enum ndr_err_code
ndr_pull_spoolss_StartDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartDocPrinter
*r
)
22263 TALLOC_CTX
*_mem_save_handle_0
;
22264 TALLOC_CTX
*_mem_save_job_id_0
;
22265 if (flags
& NDR_IN
) {
22266 ZERO_STRUCT(r
->out
);
22268 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22269 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22271 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22272 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22273 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22274 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22275 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22276 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22277 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22278 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
22279 ZERO_STRUCTP(r
->out
.job_id
);
22281 if (flags
& NDR_OUT
) {
22282 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22283 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
22285 _mem_save_job_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22286 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.job_id
, LIBNDR_FLAG_REF_ALLOC
);
22287 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.job_id
));
22288 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_job_id_0
, LIBNDR_FLAG_REF_ALLOC
);
22289 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22291 return NDR_ERR_SUCCESS
;
22294 _PUBLIC_
void ndr_print_spoolss_StartDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartDocPrinter
*r
)
22296 ndr_print_struct(ndr
, name
, "spoolss_StartDocPrinter");
22298 if (flags
& NDR_SET_VALUES
) {
22299 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22301 if (flags
& NDR_IN
) {
22302 ndr_print_struct(ndr
, "in", "spoolss_StartDocPrinter");
22304 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22306 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22308 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22309 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
22310 ndr_print_spoolss_DocumentInfo(ndr
, "info", &r
->in
.info
);
22313 if (flags
& NDR_OUT
) {
22314 ndr_print_struct(ndr
, "out", "spoolss_StartDocPrinter");
22316 ndr_print_ptr(ndr
, "job_id", r
->out
.job_id
);
22318 ndr_print_uint32(ndr
, "job_id", *r
->out
.job_id
);
22320 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22326 static enum ndr_err_code
ndr_push_spoolss_StartPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartPagePrinter
*r
)
22328 if (flags
& NDR_IN
) {
22329 if (r
->in
.handle
== NULL
) {
22330 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22332 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22334 if (flags
& NDR_OUT
) {
22335 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22337 return NDR_ERR_SUCCESS
;
22340 static enum ndr_err_code
ndr_pull_spoolss_StartPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartPagePrinter
*r
)
22342 TALLOC_CTX
*_mem_save_handle_0
;
22343 if (flags
& NDR_IN
) {
22344 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22345 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22347 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22348 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22349 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22350 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22352 if (flags
& NDR_OUT
) {
22353 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22355 return NDR_ERR_SUCCESS
;
22358 _PUBLIC_
void ndr_print_spoolss_StartPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartPagePrinter
*r
)
22360 ndr_print_struct(ndr
, name
, "spoolss_StartPagePrinter");
22362 if (flags
& NDR_SET_VALUES
) {
22363 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22365 if (flags
& NDR_IN
) {
22366 ndr_print_struct(ndr
, "in", "spoolss_StartPagePrinter");
22368 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22370 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22374 if (flags
& NDR_OUT
) {
22375 ndr_print_struct(ndr
, "out", "spoolss_StartPagePrinter");
22377 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22383 static enum ndr_err_code
ndr_push_spoolss_WritePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_WritePrinter
*r
)
22385 if (flags
& NDR_IN
) {
22386 if (r
->in
.handle
== NULL
) {
22387 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22389 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22390 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
22391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data
.length
));
22393 if (flags
& NDR_OUT
) {
22394 if (r
->out
.num_written
== NULL
) {
22395 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_written
));
22398 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22400 return NDR_ERR_SUCCESS
;
22403 static enum ndr_err_code
ndr_pull_spoolss_WritePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_WritePrinter
*r
)
22405 TALLOC_CTX
*_mem_save_handle_0
;
22406 TALLOC_CTX
*_mem_save_num_written_0
;
22407 if (flags
& NDR_IN
) {
22408 ZERO_STRUCT(r
->out
);
22410 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22411 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22413 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22414 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22415 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22416 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22417 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.data
));
22418 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._data_size
));
22419 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
22420 ZERO_STRUCTP(r
->out
.num_written
);
22422 if (flags
& NDR_OUT
) {
22423 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22424 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
22426 _mem_save_num_written_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22427 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_written
, LIBNDR_FLAG_REF_ALLOC
);
22428 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_written
));
22429 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_written_0
, LIBNDR_FLAG_REF_ALLOC
);
22430 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22432 return NDR_ERR_SUCCESS
;
22435 _PUBLIC_
void ndr_print_spoolss_WritePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WritePrinter
*r
)
22437 ndr_print_struct(ndr
, name
, "spoolss_WritePrinter");
22439 if (flags
& NDR_SET_VALUES
) {
22440 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22442 if (flags
& NDR_IN
) {
22443 ndr_print_struct(ndr
, "in", "spoolss_WritePrinter");
22445 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22447 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22449 ndr_print_DATA_BLOB(ndr
, "data", r
->in
.data
);
22450 ndr_print_uint32(ndr
, "_data_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.data
.length
:r
->in
._data_size
);
22453 if (flags
& NDR_OUT
) {
22454 ndr_print_struct(ndr
, "out", "spoolss_WritePrinter");
22456 ndr_print_ptr(ndr
, "num_written", r
->out
.num_written
);
22458 ndr_print_uint32(ndr
, "num_written", *r
->out
.num_written
);
22460 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22466 static enum ndr_err_code
ndr_push_spoolss_EndPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndPagePrinter
*r
)
22468 if (flags
& NDR_IN
) {
22469 if (r
->in
.handle
== NULL
) {
22470 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22472 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22474 if (flags
& NDR_OUT
) {
22475 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22477 return NDR_ERR_SUCCESS
;
22480 static enum ndr_err_code
ndr_pull_spoolss_EndPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndPagePrinter
*r
)
22482 TALLOC_CTX
*_mem_save_handle_0
;
22483 if (flags
& NDR_IN
) {
22484 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22485 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22487 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22488 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22489 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22490 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22492 if (flags
& NDR_OUT
) {
22493 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22495 return NDR_ERR_SUCCESS
;
22498 _PUBLIC_
void ndr_print_spoolss_EndPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndPagePrinter
*r
)
22500 ndr_print_struct(ndr
, name
, "spoolss_EndPagePrinter");
22502 if (flags
& NDR_SET_VALUES
) {
22503 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22505 if (flags
& NDR_IN
) {
22506 ndr_print_struct(ndr
, "in", "spoolss_EndPagePrinter");
22508 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22510 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22514 if (flags
& NDR_OUT
) {
22515 ndr_print_struct(ndr
, "out", "spoolss_EndPagePrinter");
22517 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22523 static enum ndr_err_code
ndr_push_spoolss_AbortPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AbortPrinter
*r
)
22525 if (flags
& NDR_IN
) {
22526 if (r
->in
.handle
== NULL
) {
22527 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22529 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22531 if (flags
& NDR_OUT
) {
22532 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22534 return NDR_ERR_SUCCESS
;
22537 static enum ndr_err_code
ndr_pull_spoolss_AbortPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AbortPrinter
*r
)
22539 TALLOC_CTX
*_mem_save_handle_0
;
22540 if (flags
& NDR_IN
) {
22541 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22542 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22544 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22545 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22546 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22547 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22549 if (flags
& NDR_OUT
) {
22550 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22552 return NDR_ERR_SUCCESS
;
22555 _PUBLIC_
void ndr_print_spoolss_AbortPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AbortPrinter
*r
)
22557 ndr_print_struct(ndr
, name
, "spoolss_AbortPrinter");
22559 if (flags
& NDR_SET_VALUES
) {
22560 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22562 if (flags
& NDR_IN
) {
22563 ndr_print_struct(ndr
, "in", "spoolss_AbortPrinter");
22565 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22567 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22571 if (flags
& NDR_OUT
) {
22572 ndr_print_struct(ndr
, "out", "spoolss_AbortPrinter");
22574 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22580 static enum ndr_err_code
ndr_push_spoolss_ReadPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReadPrinter
*r
)
22582 if (flags
& NDR_IN
) {
22583 if (r
->in
.handle
== NULL
) {
22584 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22586 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22587 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
22589 if (flags
& NDR_OUT
) {
22590 if (r
->out
.data
== NULL
) {
22591 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22593 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_size
));
22594 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_size
));
22595 if (r
->out
._data_size
== NULL
) {
22596 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._data_size
));
22599 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22601 return NDR_ERR_SUCCESS
;
22604 static enum ndr_err_code
ndr_pull_spoolss_ReadPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReadPrinter
*r
)
22606 TALLOC_CTX
*_mem_save_handle_0
;
22607 TALLOC_CTX
*_mem_save__data_size_0
;
22608 if (flags
& NDR_IN
) {
22609 ZERO_STRUCT(r
->out
);
22611 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22612 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22614 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22615 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22616 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22617 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22618 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_size
));
22619 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_size
);
22620 memset(r
->out
.data
, 0, (r
->in
.data_size
) * sizeof(*r
->out
.data
));
22621 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
22622 ZERO_STRUCTP(r
->out
._data_size
);
22624 if (flags
& NDR_OUT
) {
22625 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
22626 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22627 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
22629 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
22630 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22631 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
22633 _mem_save__data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22634 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._data_size
, LIBNDR_FLAG_REF_ALLOC
);
22635 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._data_size
));
22636 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__data_size_0
, LIBNDR_FLAG_REF_ALLOC
);
22637 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22639 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_size
));
22642 return NDR_ERR_SUCCESS
;
22645 _PUBLIC_
void ndr_print_spoolss_ReadPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReadPrinter
*r
)
22647 ndr_print_struct(ndr
, name
, "spoolss_ReadPrinter");
22649 if (flags
& NDR_SET_VALUES
) {
22650 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22652 if (flags
& NDR_IN
) {
22653 ndr_print_struct(ndr
, "in", "spoolss_ReadPrinter");
22655 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22657 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22659 ndr_print_uint32(ndr
, "data_size", r
->in
.data_size
);
22662 if (flags
& NDR_OUT
) {
22663 ndr_print_struct(ndr
, "out", "spoolss_ReadPrinter");
22665 ndr_print_ptr(ndr
, "data", r
->out
.data
);
22667 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_size
);
22669 ndr_print_ptr(ndr
, "_data_size", r
->out
._data_size
);
22671 ndr_print_uint32(ndr
, "_data_size", *r
->out
._data_size
);
22673 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22679 static enum ndr_err_code
ndr_push_spoolss_EndDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndDocPrinter
*r
)
22681 if (flags
& NDR_IN
) {
22682 if (r
->in
.handle
== NULL
) {
22683 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22685 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22687 if (flags
& NDR_OUT
) {
22688 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22690 return NDR_ERR_SUCCESS
;
22693 static enum ndr_err_code
ndr_pull_spoolss_EndDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndDocPrinter
*r
)
22695 TALLOC_CTX
*_mem_save_handle_0
;
22696 if (flags
& NDR_IN
) {
22697 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22698 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22700 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22701 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22702 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22703 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22705 if (flags
& NDR_OUT
) {
22706 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22708 return NDR_ERR_SUCCESS
;
22711 _PUBLIC_
void ndr_print_spoolss_EndDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndDocPrinter
*r
)
22713 ndr_print_struct(ndr
, name
, "spoolss_EndDocPrinter");
22715 if (flags
& NDR_SET_VALUES
) {
22716 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22718 if (flags
& NDR_IN
) {
22719 ndr_print_struct(ndr
, "in", "spoolss_EndDocPrinter");
22721 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22723 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22727 if (flags
& NDR_OUT
) {
22728 ndr_print_struct(ndr
, "out", "spoolss_EndDocPrinter");
22730 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22736 static enum ndr_err_code
ndr_push_spoolss_AddJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddJob
*r
)
22738 if (flags
& NDR_IN
) {
22739 if (r
->in
.handle
== NULL
) {
22740 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22742 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22743 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22744 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22745 if (r
->in
.buffer
) {
22746 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
22747 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
22749 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22751 if (flags
& NDR_OUT
) {
22752 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
22753 if (r
->out
.buffer
) {
22754 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.offered
));
22755 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
22757 if (r
->out
.needed
== NULL
) {
22758 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22761 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22763 return NDR_ERR_SUCCESS
;
22766 static enum ndr_err_code
ndr_pull_spoolss_AddJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddJob
*r
)
22768 uint32_t _ptr_buffer
;
22769 TALLOC_CTX
*_mem_save_handle_0
;
22770 TALLOC_CTX
*_mem_save_buffer_0
;
22771 TALLOC_CTX
*_mem_save_needed_0
;
22772 if (flags
& NDR_IN
) {
22773 ZERO_STRUCT(r
->out
);
22775 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22776 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22778 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22779 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22780 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22781 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22782 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22783 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22785 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22787 r
->in
.buffer
= NULL
;
22789 if (r
->in
.buffer
) {
22790 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22791 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22792 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
22793 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
22794 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
22795 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22797 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22798 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22799 ZERO_STRUCTP(r
->out
.needed
);
22800 if (r
->in
.buffer
) {
22801 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
22804 if (flags
& NDR_OUT
) {
22805 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22807 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
22809 r
->out
.buffer
= NULL
;
22811 if (r
->out
.buffer
) {
22812 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22813 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
22814 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
22815 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
22816 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
22817 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22819 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22820 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22822 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22823 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22824 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22825 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22826 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22827 if (r
->out
.buffer
) {
22828 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
22831 return NDR_ERR_SUCCESS
;
22834 _PUBLIC_
void ndr_print_spoolss_AddJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddJob
*r
)
22836 ndr_print_struct(ndr
, name
, "spoolss_AddJob");
22838 if (flags
& NDR_SET_VALUES
) {
22839 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22841 if (flags
& NDR_IN
) {
22842 ndr_print_struct(ndr
, "in", "spoolss_AddJob");
22844 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22846 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22848 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22849 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22851 if (r
->in
.buffer
) {
22852 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
22855 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22858 if (flags
& NDR_OUT
) {
22859 ndr_print_struct(ndr
, "out", "spoolss_AddJob");
22861 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
22863 if (r
->out
.buffer
) {
22864 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
22867 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22869 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22871 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22877 static enum ndr_err_code
ndr_push_spoolss_ScheduleJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_ScheduleJob
*r
)
22879 if (flags
& NDR_IN
) {
22880 if (r
->in
.handle
== NULL
) {
22881 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22883 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22884 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.jobid
));
22886 if (flags
& NDR_OUT
) {
22887 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22889 return NDR_ERR_SUCCESS
;
22892 static enum ndr_err_code
ndr_pull_spoolss_ScheduleJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_ScheduleJob
*r
)
22894 TALLOC_CTX
*_mem_save_handle_0
;
22895 if (flags
& NDR_IN
) {
22896 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22897 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22899 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22900 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22901 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22902 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22903 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.jobid
));
22905 if (flags
& NDR_OUT
) {
22906 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22908 return NDR_ERR_SUCCESS
;
22911 _PUBLIC_
void ndr_print_spoolss_ScheduleJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ScheduleJob
*r
)
22913 ndr_print_struct(ndr
, name
, "spoolss_ScheduleJob");
22915 if (flags
& NDR_SET_VALUES
) {
22916 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22918 if (flags
& NDR_IN
) {
22919 ndr_print_struct(ndr
, "in", "spoolss_ScheduleJob");
22921 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22923 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22925 ndr_print_uint32(ndr
, "jobid", r
->in
.jobid
);
22928 if (flags
& NDR_OUT
) {
22929 ndr_print_struct(ndr
, "out", "spoolss_ScheduleJob");
22931 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22937 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_GetPrinterData
*r
)
22939 if (flags
& NDR_IN
) {
22940 if (r
->in
.handle
== NULL
) {
22941 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22943 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22944 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
22945 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
22946 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
22947 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
));
22948 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22950 if (flags
& NDR_OUT
) {
22951 if (r
->out
.type
== NULL
) {
22952 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22954 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
22955 if (r
->out
.data
== NULL
) {
22956 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22958 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.data
));
22959 if (r
->out
.needed
== NULL
) {
22960 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22963 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22965 return NDR_ERR_SUCCESS
;
22968 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct _spoolss_GetPrinterData
*r
)
22970 TALLOC_CTX
*_mem_save_handle_0
;
22971 TALLOC_CTX
*_mem_save_type_0
;
22972 TALLOC_CTX
*_mem_save_data_0
;
22973 TALLOC_CTX
*_mem_save_needed_0
;
22974 if (flags
& NDR_IN
) {
22975 ZERO_STRUCT(r
->out
);
22977 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22978 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22980 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22981 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22982 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22983 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22984 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
22985 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
22986 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
22987 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
));
22989 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
22990 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
));
22991 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22992 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
22993 ZERO_STRUCTP(r
->out
.type
);
22994 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
22995 ZERO_STRUCTP(r
->out
.data
);
22996 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22997 ZERO_STRUCTP(r
->out
.needed
);
22999 if (flags
& NDR_OUT
) {
23000 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23001 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
23003 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23004 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
23005 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
23006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
23007 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23008 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
23010 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23011 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
23012 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.data
));
23013 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
23014 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23015 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23017 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23018 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23019 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23020 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23021 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23023 return NDR_ERR_SUCCESS
;
23026 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_GetPrinterData
*r
)
23028 if (flags
& NDR_IN
) {
23029 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
23031 if (flags
& NDR_OUT
) {
23032 if (r
->out
.data
== NULL
) {
23033 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23035 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
23036 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
23038 return NDR_ERR_SUCCESS
;
23041 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct __spoolss_GetPrinterData
*r
)
23043 TALLOC_CTX
*_mem_save_data_0
;
23044 if (flags
& NDR_IN
) {
23045 ZERO_STRUCT(r
->out
);
23047 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
23048 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
23049 ZERO_STRUCTP(r
->out
.data
);
23051 if (flags
& NDR_OUT
) {
23052 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23053 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
23055 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23056 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
23057 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
23058 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
23059 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
23061 return NDR_ERR_SUCCESS
;
23064 _PUBLIC_
void ndr_print_spoolss_GetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterData
*r
)
23066 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterData");
23068 if (flags
& NDR_SET_VALUES
) {
23069 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23071 if (flags
& NDR_IN
) {
23072 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterData");
23074 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23076 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23078 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
23079 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23082 if (flags
& NDR_OUT
) {
23083 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterData");
23085 ndr_print_ptr(ndr
, "type", r
->out
.type
);
23087 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
23089 ndr_print_ptr(ndr
, "data", r
->out
.data
);
23091 ndr_print_set_switch_value(ndr
, r
->out
.data
, *r
->out
.type
);
23092 ndr_print_spoolss_PrinterData(ndr
, "data", r
->out
.data
);
23094 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23096 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23098 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23104 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_SetPrinterData
*r
)
23106 if (flags
& NDR_IN
) {
23107 if (r
->in
.handle
== NULL
) {
23108 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23110 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23111 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
23112 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23113 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
23114 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
));
23115 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
23116 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
23117 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
._offered
));
23119 if (flags
& NDR_OUT
) {
23120 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23122 return NDR_ERR_SUCCESS
;
23125 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_SetPrinterData
*r
)
23127 if (flags
& NDR_IN
) {
23128 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
23130 if (flags
& NDR_OUT
) {
23131 if (r
->out
.data
== NULL
) {
23132 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23134 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
23135 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
23137 return NDR_ERR_SUCCESS
;
23140 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterData
*r
)
23142 TALLOC_CTX
*_mem_save_handle_0
;
23143 if (flags
& NDR_IN
) {
23144 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23145 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23147 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23148 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23149 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23150 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23151 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
23152 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
23153 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
23154 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
));
23156 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
23157 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
));
23158 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
23160 struct ndr_pull
*_ndr_data
;
23161 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 4, -1));
23162 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, &r
->in
.data
, r
->in
.type
));
23163 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
23164 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 4, -1));
23166 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._offered
));
23168 if (flags
& NDR_OUT
) {
23169 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23171 return NDR_ERR_SUCCESS
;
23174 _PUBLIC_
void ndr_print_spoolss_SetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterData
*r
)
23176 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterData");
23178 if (flags
& NDR_SET_VALUES
) {
23179 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23181 if (flags
& NDR_IN
) {
23182 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterData");
23184 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23186 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23188 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
23189 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
23190 ndr_print_set_switch_value(ndr
, &r
->in
.data
, r
->in
.type
);
23191 ndr_print_spoolss_PrinterData(ndr
, "data", &r
->in
.data
);
23192 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
);
23195 if (flags
& NDR_OUT
) {
23196 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterData");
23198 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23204 static enum ndr_err_code
ndr_push_spoolss_WaitForPrinterChange(struct ndr_push
*ndr
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
23206 if (flags
& NDR_IN
) {
23208 if (flags
& NDR_OUT
) {
23209 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23211 return NDR_ERR_SUCCESS
;
23214 static enum ndr_err_code
ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull
*ndr
, int flags
, struct spoolss_WaitForPrinterChange
*r
)
23216 if (flags
& NDR_IN
) {
23218 if (flags
& NDR_OUT
) {
23219 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23221 return NDR_ERR_SUCCESS
;
23224 _PUBLIC_
void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
23226 ndr_print_struct(ndr
, name
, "spoolss_WaitForPrinterChange");
23228 if (flags
& NDR_SET_VALUES
) {
23229 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23231 if (flags
& NDR_IN
) {
23232 ndr_print_struct(ndr
, "in", "spoolss_WaitForPrinterChange");
23236 if (flags
& NDR_OUT
) {
23237 ndr_print_struct(ndr
, "out", "spoolss_WaitForPrinterChange");
23239 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23245 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ClosePrinter
*r
)
23247 if (flags
& NDR_IN
) {
23248 if (r
->in
.handle
== NULL
) {
23249 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23251 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23253 if (flags
& NDR_OUT
) {
23254 if (r
->out
.handle
== NULL
) {
23255 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23257 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
23258 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23260 return NDR_ERR_SUCCESS
;
23263 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ClosePrinter
*r
)
23265 TALLOC_CTX
*_mem_save_handle_0
;
23266 if (flags
& NDR_IN
) {
23267 ZERO_STRUCT(r
->out
);
23269 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23270 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23272 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23273 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23274 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23275 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23276 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
23277 *r
->out
.handle
= *r
->in
.handle
;
23279 if (flags
& NDR_OUT
) {
23280 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23281 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
23283 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23284 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23285 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
23286 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23287 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23289 return NDR_ERR_SUCCESS
;
23292 _PUBLIC_
void ndr_print_spoolss_ClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ClosePrinter
*r
)
23294 ndr_print_struct(ndr
, name
, "spoolss_ClosePrinter");
23296 if (flags
& NDR_SET_VALUES
) {
23297 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23299 if (flags
& NDR_IN
) {
23300 ndr_print_struct(ndr
, "in", "spoolss_ClosePrinter");
23302 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23304 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23308 if (flags
& NDR_OUT
) {
23309 ndr_print_struct(ndr
, "out", "spoolss_ClosePrinter");
23311 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
23313 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
23315 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23321 static enum ndr_err_code
ndr_push_spoolss_AddForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddForm
*r
)
23323 if (flags
& NDR_IN
) {
23324 if (r
->in
.handle
== NULL
) {
23325 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23327 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23328 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23329 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23330 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23332 if (flags
& NDR_OUT
) {
23333 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23335 return NDR_ERR_SUCCESS
;
23338 static enum ndr_err_code
ndr_pull_spoolss_AddForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddForm
*r
)
23340 TALLOC_CTX
*_mem_save_handle_0
;
23341 if (flags
& NDR_IN
) {
23342 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23343 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23345 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23346 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23347 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23348 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23349 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23350 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23351 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23353 if (flags
& NDR_OUT
) {
23354 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23356 return NDR_ERR_SUCCESS
;
23359 _PUBLIC_
void ndr_print_spoolss_AddForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddForm
*r
)
23361 ndr_print_struct(ndr
, name
, "spoolss_AddForm");
23363 if (flags
& NDR_SET_VALUES
) {
23364 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23366 if (flags
& NDR_IN
) {
23367 ndr_print_struct(ndr
, "in", "spoolss_AddForm");
23369 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23371 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23373 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23374 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
23375 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
23378 if (flags
& NDR_OUT
) {
23379 ndr_print_struct(ndr
, "out", "spoolss_AddForm");
23381 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23387 static enum ndr_err_code
ndr_push_spoolss_DeleteForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteForm
*r
)
23389 if (flags
& NDR_IN
) {
23390 if (r
->in
.handle
== NULL
) {
23391 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23393 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23394 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23395 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23396 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23397 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
));
23399 if (flags
& NDR_OUT
) {
23400 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23402 return NDR_ERR_SUCCESS
;
23405 static enum ndr_err_code
ndr_pull_spoolss_DeleteForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteForm
*r
)
23407 TALLOC_CTX
*_mem_save_handle_0
;
23408 if (flags
& NDR_IN
) {
23409 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23410 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23412 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23413 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23414 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23415 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23416 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
23417 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
23418 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
23419 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
));
23421 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
23422 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
));
23424 if (flags
& NDR_OUT
) {
23425 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23427 return NDR_ERR_SUCCESS
;
23430 _PUBLIC_
void ndr_print_spoolss_DeleteForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteForm
*r
)
23432 ndr_print_struct(ndr
, name
, "spoolss_DeleteForm");
23434 if (flags
& NDR_SET_VALUES
) {
23435 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23437 if (flags
& NDR_IN
) {
23438 ndr_print_struct(ndr
, "in", "spoolss_DeleteForm");
23440 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23442 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23444 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
23447 if (flags
& NDR_OUT
) {
23448 ndr_print_struct(ndr
, "out", "spoolss_DeleteForm");
23450 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23456 static enum ndr_err_code
ndr_push_spoolss_GetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetForm
*r
)
23458 if (flags
& NDR_IN
) {
23459 if (r
->in
.handle
== NULL
) {
23460 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23462 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23463 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23464 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23465 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23466 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
));
23467 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23468 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23469 if (r
->in
.buffer
) {
23470 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23472 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23474 if (flags
& NDR_OUT
) {
23475 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23478 struct ndr_push
*_ndr_info
;
23479 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23480 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23481 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
23482 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23485 if (r
->out
.needed
== NULL
) {
23486 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23488 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23489 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23491 return NDR_ERR_SUCCESS
;
23494 static enum ndr_err_code
ndr_pull_spoolss_GetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetForm
*r
)
23496 uint32_t _ptr_buffer
;
23497 uint32_t _ptr_info
;
23498 TALLOC_CTX
*_mem_save_handle_0
;
23499 TALLOC_CTX
*_mem_save_buffer_0
;
23500 TALLOC_CTX
*_mem_save_info_0
;
23501 TALLOC_CTX
*_mem_save_needed_0
;
23502 if (flags
& NDR_IN
) {
23503 ZERO_STRUCT(r
->out
);
23505 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23506 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23508 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23509 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23510 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23511 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23512 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
23513 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
23514 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
23515 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
));
23517 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
23518 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
));
23519 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23520 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23522 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23524 r
->in
.buffer
= NULL
;
23526 if (r
->in
.buffer
) {
23527 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23528 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23529 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23530 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23532 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23533 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23534 ZERO_STRUCTP(r
->out
.needed
);
23536 if (flags
& NDR_OUT
) {
23537 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23539 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23541 r
->out
.info
= NULL
;
23544 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23545 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23547 struct ndr_pull
*_ndr_info
;
23548 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23549 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23550 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
23551 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23553 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23555 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23556 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23558 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23559 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23560 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23561 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23562 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23564 return NDR_ERR_SUCCESS
;
23567 _PUBLIC_
void ndr_print_spoolss_GetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetForm
*r
)
23569 ndr_print_struct(ndr
, name
, "spoolss_GetForm");
23571 if (flags
& NDR_SET_VALUES
) {
23572 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23574 if (flags
& NDR_IN
) {
23575 ndr_print_struct(ndr
, "in", "spoolss_GetForm");
23577 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23579 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23581 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
23582 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23583 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23585 if (r
->in
.buffer
) {
23586 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23589 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23592 if (flags
& NDR_OUT
) {
23593 ndr_print_struct(ndr
, "out", "spoolss_GetForm");
23595 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23598 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
23599 ndr_print_spoolss_FormInfo(ndr
, "info", r
->out
.info
);
23602 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23604 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23606 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23612 static enum ndr_err_code
ndr_push_spoolss_SetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetForm
*r
)
23614 if (flags
& NDR_IN
) {
23615 if (r
->in
.handle
== NULL
) {
23616 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23618 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23619 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23620 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23621 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
23622 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
));
23623 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23624 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23625 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23627 if (flags
& NDR_OUT
) {
23628 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23630 return NDR_ERR_SUCCESS
;
23633 static enum ndr_err_code
ndr_pull_spoolss_SetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetForm
*r
)
23635 TALLOC_CTX
*_mem_save_handle_0
;
23636 if (flags
& NDR_IN
) {
23637 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23638 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23640 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23641 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23642 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23643 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23644 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
23645 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
23646 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
23647 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
));
23649 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
23650 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
));
23651 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23652 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
23653 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
23655 if (flags
& NDR_OUT
) {
23656 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23658 return NDR_ERR_SUCCESS
;
23661 _PUBLIC_
void ndr_print_spoolss_SetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetForm
*r
)
23663 ndr_print_struct(ndr
, name
, "spoolss_SetForm");
23665 if (flags
& NDR_SET_VALUES
) {
23666 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23668 if (flags
& NDR_IN
) {
23669 ndr_print_struct(ndr
, "in", "spoolss_SetForm");
23671 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23673 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23675 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
23676 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23677 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
23678 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
23681 if (flags
& NDR_OUT
) {
23682 ndr_print_struct(ndr
, "out", "spoolss_SetForm");
23684 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23690 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumForms
*r
)
23692 if (flags
& NDR_IN
) {
23693 if (r
->in
.handle
== NULL
) {
23694 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23696 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23697 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23698 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23699 if (r
->in
.buffer
) {
23700 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23702 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23704 if (flags
& NDR_OUT
) {
23705 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23707 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
23709 if (r
->out
.needed
== NULL
) {
23710 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23712 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23713 if (r
->out
.count
== NULL
) {
23714 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23716 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
23717 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23719 return NDR_ERR_SUCCESS
;
23722 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumForms
*r
)
23724 uint32_t _ptr_buffer
;
23725 uint32_t _ptr_info
;
23726 TALLOC_CTX
*_mem_save_handle_0
;
23727 TALLOC_CTX
*_mem_save_buffer_0
;
23728 TALLOC_CTX
*_mem_save_info_0
;
23729 TALLOC_CTX
*_mem_save_needed_0
;
23730 TALLOC_CTX
*_mem_save_count_0
;
23731 if (flags
& NDR_IN
) {
23732 ZERO_STRUCT(r
->out
);
23734 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23735 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23737 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23738 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23739 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23740 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23741 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23742 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23744 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23746 r
->in
.buffer
= NULL
;
23748 if (r
->in
.buffer
) {
23749 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23750 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23751 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23752 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23754 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23755 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23756 ZERO_STRUCTP(r
->out
.needed
);
23757 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23758 ZERO_STRUCTP(r
->out
.count
);
23760 if (flags
& NDR_OUT
) {
23761 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23763 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23765 r
->out
.info
= NULL
;
23768 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23769 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23770 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
23771 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23773 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23774 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23776 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23777 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23778 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23779 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23780 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23781 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23783 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23784 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
23785 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
23786 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
23787 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23789 return NDR_ERR_SUCCESS
;
23792 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumForms
*r
)
23794 uint32_t cntr_info_0
;
23795 if (flags
& NDR_IN
) {
23796 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23797 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
23799 if (flags
& NDR_OUT
) {
23800 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23801 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23802 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23804 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23805 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23808 return NDR_ERR_SUCCESS
;
23811 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumForms
*r
)
23813 uint32_t cntr_info_0
;
23814 TALLOC_CTX
*_mem_save_info_0
;
23815 if (flags
& NDR_IN
) {
23816 ZERO_STRUCT(r
->out
);
23818 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23819 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
23821 if (flags
& NDR_OUT
) {
23822 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
23823 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23824 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23825 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23826 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23827 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23829 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23830 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23832 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23834 return NDR_ERR_SUCCESS
;
23837 _PUBLIC_
void ndr_print_spoolss_EnumForms(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumForms
*r
)
23839 uint32_t cntr_info_2
;
23840 ndr_print_struct(ndr
, name
, "spoolss_EnumForms");
23842 if (flags
& NDR_SET_VALUES
) {
23843 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23845 if (flags
& NDR_IN
) {
23846 ndr_print_struct(ndr
, "in", "spoolss_EnumForms");
23848 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23850 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23852 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23853 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23855 if (r
->in
.buffer
) {
23856 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23859 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23862 if (flags
& NDR_OUT
) {
23863 ndr_print_struct(ndr
, "out", "spoolss_EnumForms");
23865 ndr_print_ptr(ndr
, "count", r
->out
.count
);
23867 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
23869 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23871 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
23873 if (*r
->out
.info
) {
23874 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
23876 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
23878 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
23879 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
23880 ndr_print_spoolss_FormInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
23888 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23890 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23892 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23898 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPorts
*r
)
23900 if (flags
& NDR_IN
) {
23901 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
23902 if (r
->in
.servername
) {
23903 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
23904 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
23905 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
23906 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23908 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23909 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23910 if (r
->in
.buffer
) {
23911 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23913 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23915 if (flags
& NDR_OUT
) {
23916 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23918 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
23920 if (r
->out
.needed
== NULL
) {
23921 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23923 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23924 if (r
->out
.count
== NULL
) {
23925 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
23928 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23930 return NDR_ERR_SUCCESS
;
23933 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPorts
*r
)
23935 uint32_t _ptr_servername
;
23936 uint32_t _ptr_buffer
;
23937 uint32_t _ptr_info
;
23938 TALLOC_CTX
*_mem_save_servername_0
;
23939 TALLOC_CTX
*_mem_save_buffer_0
;
23940 TALLOC_CTX
*_mem_save_info_0
;
23941 TALLOC_CTX
*_mem_save_needed_0
;
23942 TALLOC_CTX
*_mem_save_count_0
;
23943 if (flags
& NDR_IN
) {
23944 ZERO_STRUCT(r
->out
);
23946 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
23947 if (_ptr_servername
) {
23948 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
23950 r
->in
.servername
= NULL
;
23952 if (r
->in
.servername
) {
23953 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23954 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
23955 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
23956 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
23957 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
23958 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
));
23960 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
23961 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
23962 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
23964 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23965 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23967 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23969 r
->in
.buffer
= NULL
;
23971 if (r
->in
.buffer
) {
23972 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23973 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23974 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23975 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23977 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23978 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23979 ZERO_STRUCTP(r
->out
.needed
);
23980 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23981 ZERO_STRUCTP(r
->out
.count
);
23983 if (flags
& NDR_OUT
) {
23984 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23986 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23988 r
->out
.info
= NULL
;
23991 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23992 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23993 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
23994 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23996 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23997 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23999 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24000 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24001 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24002 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24003 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24004 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24006 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24007 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
24008 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
24009 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
24010 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24012 return NDR_ERR_SUCCESS
;
24015 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPorts
*r
)
24017 uint32_t cntr_info_0
;
24018 if (flags
& NDR_IN
) {
24019 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24020 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
24022 if (flags
& NDR_OUT
) {
24023 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24024 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24025 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24027 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24028 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24031 return NDR_ERR_SUCCESS
;
24034 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPorts
*r
)
24036 uint32_t cntr_info_0
;
24037 TALLOC_CTX
*_mem_save_info_0
;
24038 if (flags
& NDR_IN
) {
24039 ZERO_STRUCT(r
->out
);
24041 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24042 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
24044 if (flags
& NDR_OUT
) {
24045 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
24046 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24047 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24048 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24049 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24050 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24052 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24053 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24055 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24057 return NDR_ERR_SUCCESS
;
24060 _PUBLIC_
void ndr_print_spoolss_EnumPorts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPorts
*r
)
24062 uint32_t cntr_info_2
;
24063 ndr_print_struct(ndr
, name
, "spoolss_EnumPorts");
24065 if (flags
& NDR_SET_VALUES
) {
24066 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24068 if (flags
& NDR_IN
) {
24069 ndr_print_struct(ndr
, "in", "spoolss_EnumPorts");
24071 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
24073 if (r
->in
.servername
) {
24074 ndr_print_string(ndr
, "servername", r
->in
.servername
);
24077 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24078 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24080 if (r
->in
.buffer
) {
24081 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
24084 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24087 if (flags
& NDR_OUT
) {
24088 ndr_print_struct(ndr
, "out", "spoolss_EnumPorts");
24090 ndr_print_ptr(ndr
, "count", r
->out
.count
);
24092 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
24094 ndr_print_ptr(ndr
, "info", r
->out
.info
);
24096 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
24098 if (*r
->out
.info
) {
24099 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
24101 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
24103 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
24104 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
24105 ndr_print_spoolss_PortInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
24113 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24115 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24117 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24123 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumMonitors
*r
)
24125 if (flags
& NDR_IN
) {
24126 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
24127 if (r
->in
.servername
) {
24128 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24129 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24130 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24131 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24133 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24134 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24135 if (r
->in
.buffer
) {
24136 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24138 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24140 if (flags
& NDR_OUT
) {
24141 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24143 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
24145 if (r
->out
.needed
== NULL
) {
24146 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24149 if (r
->out
.count
== NULL
) {
24150 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24152 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
24153 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24155 return NDR_ERR_SUCCESS
;
24158 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumMonitors
*r
)
24160 uint32_t _ptr_servername
;
24161 uint32_t _ptr_buffer
;
24162 uint32_t _ptr_info
;
24163 TALLOC_CTX
*_mem_save_servername_0
;
24164 TALLOC_CTX
*_mem_save_buffer_0
;
24165 TALLOC_CTX
*_mem_save_info_0
;
24166 TALLOC_CTX
*_mem_save_needed_0
;
24167 TALLOC_CTX
*_mem_save_count_0
;
24168 if (flags
& NDR_IN
) {
24169 ZERO_STRUCT(r
->out
);
24171 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
24172 if (_ptr_servername
) {
24173 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
24175 r
->in
.servername
= NULL
;
24177 if (r
->in
.servername
) {
24178 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24179 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
24180 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
24181 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
24182 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
24183 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
));
24185 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
24186 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
24187 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
24189 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24190 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24192 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24194 r
->in
.buffer
= NULL
;
24196 if (r
->in
.buffer
) {
24197 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24198 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24199 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
24200 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24202 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24203 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24204 ZERO_STRUCTP(r
->out
.needed
);
24205 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24206 ZERO_STRUCTP(r
->out
.count
);
24208 if (flags
& NDR_OUT
) {
24209 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24211 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24213 r
->out
.info
= NULL
;
24216 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24217 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24218 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
24219 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24221 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24222 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24224 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24225 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24226 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24227 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24228 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24229 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24231 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24232 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
24233 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
24234 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
24235 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24237 return NDR_ERR_SUCCESS
;
24240 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumMonitors
*r
)
24242 uint32_t cntr_info_0
;
24243 if (flags
& NDR_IN
) {
24244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
24247 if (flags
& NDR_OUT
) {
24248 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24249 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24250 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24252 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24253 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24256 return NDR_ERR_SUCCESS
;
24259 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumMonitors
*r
)
24261 uint32_t cntr_info_0
;
24262 TALLOC_CTX
*_mem_save_info_0
;
24263 if (flags
& NDR_IN
) {
24264 ZERO_STRUCT(r
->out
);
24266 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24267 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
24269 if (flags
& NDR_OUT
) {
24270 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
24271 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24272 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24273 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24274 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24275 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24277 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24278 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24280 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24282 return NDR_ERR_SUCCESS
;
24285 _PUBLIC_
void ndr_print_spoolss_EnumMonitors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumMonitors
*r
)
24287 uint32_t cntr_info_2
;
24288 ndr_print_struct(ndr
, name
, "spoolss_EnumMonitors");
24290 if (flags
& NDR_SET_VALUES
) {
24291 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24293 if (flags
& NDR_IN
) {
24294 ndr_print_struct(ndr
, "in", "spoolss_EnumMonitors");
24296 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
24298 if (r
->in
.servername
) {
24299 ndr_print_string(ndr
, "servername", r
->in
.servername
);
24302 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24303 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24305 if (r
->in
.buffer
) {
24306 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
24309 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24312 if (flags
& NDR_OUT
) {
24313 ndr_print_struct(ndr
, "out", "spoolss_EnumMonitors");
24315 ndr_print_ptr(ndr
, "count", r
->out
.count
);
24317 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
24319 ndr_print_ptr(ndr
, "info", r
->out
.info
);
24321 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
24323 if (*r
->out
.info
) {
24324 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
24326 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
24328 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
24329 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
24330 ndr_print_spoolss_MonitorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
24338 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24340 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24342 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24348 static enum ndr_err_code
ndr_push_spoolss_AddPort(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPort
*r
)
24350 if (flags
& NDR_IN
) {
24351 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
24352 if (r
->in
.server_name
) {
24353 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
24354 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24355 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
24356 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
));
24358 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
24359 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
24360 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
24361 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
24362 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
));
24364 if (flags
& NDR_OUT
) {
24365 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24367 return NDR_ERR_SUCCESS
;
24370 static enum ndr_err_code
ndr_pull_spoolss_AddPort(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPort
*r
)
24372 uint32_t _ptr_server_name
;
24373 TALLOC_CTX
*_mem_save_server_name_0
;
24374 if (flags
& NDR_IN
) {
24375 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
24376 if (_ptr_server_name
) {
24377 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
24379 r
->in
.server_name
= NULL
;
24381 if (r
->in
.server_name
) {
24382 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24383 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
24384 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
24385 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
24386 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
24387 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
));
24389 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
24390 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
));
24391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
24393 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
24394 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.monitor_name
));
24395 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.monitor_name
));
24396 if (ndr_get_array_length(ndr
, &r
->in
.monitor_name
) > ndr_get_array_size(ndr
, &r
->in
.monitor_name
)) {
24397 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
));
24399 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.monitor_name
), sizeof(uint16_t)));
24400 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
));
24402 if (flags
& NDR_OUT
) {
24403 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24405 return NDR_ERR_SUCCESS
;
24408 _PUBLIC_
void ndr_print_spoolss_AddPort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPort
*r
)
24410 ndr_print_struct(ndr
, name
, "spoolss_AddPort");
24412 if (flags
& NDR_SET_VALUES
) {
24413 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24415 if (flags
& NDR_IN
) {
24416 ndr_print_struct(ndr
, "in", "spoolss_AddPort");
24418 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
24420 if (r
->in
.server_name
) {
24421 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
24424 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
24425 ndr_print_string(ndr
, "monitor_name", r
->in
.monitor_name
);
24428 if (flags
& NDR_OUT
) {
24429 ndr_print_struct(ndr
, "out", "spoolss_AddPort");
24431 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24437 static enum ndr_err_code
ndr_push_spoolss_ConfigurePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_ConfigurePort
*r
)
24439 if (flags
& NDR_IN
) {
24441 if (flags
& NDR_OUT
) {
24442 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24444 return NDR_ERR_SUCCESS
;
24447 static enum ndr_err_code
ndr_pull_spoolss_ConfigurePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_ConfigurePort
*r
)
24449 if (flags
& NDR_IN
) {
24451 if (flags
& NDR_OUT
) {
24452 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24454 return NDR_ERR_SUCCESS
;
24457 _PUBLIC_
void ndr_print_spoolss_ConfigurePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ConfigurePort
*r
)
24459 ndr_print_struct(ndr
, name
, "spoolss_ConfigurePort");
24461 if (flags
& NDR_SET_VALUES
) {
24462 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24464 if (flags
& NDR_IN
) {
24465 ndr_print_struct(ndr
, "in", "spoolss_ConfigurePort");
24469 if (flags
& NDR_OUT
) {
24470 ndr_print_struct(ndr
, "out", "spoolss_ConfigurePort");
24472 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24478 static enum ndr_err_code
ndr_push_spoolss_DeletePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePort
*r
)
24480 if (flags
& NDR_IN
) {
24482 if (flags
& NDR_OUT
) {
24483 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24485 return NDR_ERR_SUCCESS
;
24488 static enum ndr_err_code
ndr_pull_spoolss_DeletePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePort
*r
)
24490 if (flags
& NDR_IN
) {
24492 if (flags
& NDR_OUT
) {
24493 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24495 return NDR_ERR_SUCCESS
;
24498 _PUBLIC_
void ndr_print_spoolss_DeletePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePort
*r
)
24500 ndr_print_struct(ndr
, name
, "spoolss_DeletePort");
24502 if (flags
& NDR_SET_VALUES
) {
24503 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24505 if (flags
& NDR_IN
) {
24506 ndr_print_struct(ndr
, "in", "spoolss_DeletePort");
24510 if (flags
& NDR_OUT
) {
24511 ndr_print_struct(ndr
, "out", "spoolss_DeletePort");
24513 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24519 static enum ndr_err_code
ndr_push_spoolss_CreatePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
24521 if (flags
& NDR_IN
) {
24522 if (r
->in
.handle
== NULL
) {
24523 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24525 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24526 if (r
->in
.devmode_ctr
== NULL
) {
24527 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24529 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
24531 if (flags
& NDR_OUT
) {
24532 if (r
->out
.gdi_handle
== NULL
) {
24533 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24535 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
24536 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24538 return NDR_ERR_SUCCESS
;
24541 static enum ndr_err_code
ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_CreatePrinterIC
*r
)
24543 TALLOC_CTX
*_mem_save_handle_0
;
24544 TALLOC_CTX
*_mem_save_gdi_handle_0
;
24545 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
24546 if (flags
& NDR_IN
) {
24547 ZERO_STRUCT(r
->out
);
24549 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24550 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24552 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24553 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24554 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24555 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24556 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24557 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
24559 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24560 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
24561 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
24562 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
24563 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
24564 ZERO_STRUCTP(r
->out
.gdi_handle
);
24566 if (flags
& NDR_OUT
) {
24567 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24568 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
24570 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24571 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
24572 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
24573 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24574 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24576 return NDR_ERR_SUCCESS
;
24579 _PUBLIC_
void ndr_print_spoolss_CreatePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
24581 ndr_print_struct(ndr
, name
, "spoolss_CreatePrinterIC");
24583 if (flags
& NDR_SET_VALUES
) {
24584 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24586 if (flags
& NDR_IN
) {
24587 ndr_print_struct(ndr
, "in", "spoolss_CreatePrinterIC");
24589 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24591 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24593 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
24595 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
24599 if (flags
& NDR_OUT
) {
24600 ndr_print_struct(ndr
, "out", "spoolss_CreatePrinterIC");
24602 ndr_print_ptr(ndr
, "gdi_handle", r
->out
.gdi_handle
);
24604 ndr_print_policy_handle(ndr
, "gdi_handle", r
->out
.gdi_handle
);
24606 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24612 static enum ndr_err_code
ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
24614 if (flags
& NDR_IN
) {
24616 if (flags
& NDR_OUT
) {
24617 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24619 return NDR_ERR_SUCCESS
;
24622 static enum ndr_err_code
ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
24624 if (flags
& NDR_IN
) {
24626 if (flags
& NDR_OUT
) {
24627 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24629 return NDR_ERR_SUCCESS
;
24632 _PUBLIC_
void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
24634 ndr_print_struct(ndr
, name
, "spoolss_PlayGDIScriptOnPrinterIC");
24636 if (flags
& NDR_SET_VALUES
) {
24637 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24639 if (flags
& NDR_IN
) {
24640 ndr_print_struct(ndr
, "in", "spoolss_PlayGDIScriptOnPrinterIC");
24644 if (flags
& NDR_OUT
) {
24645 ndr_print_struct(ndr
, "out", "spoolss_PlayGDIScriptOnPrinterIC");
24647 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24653 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
24655 if (flags
& NDR_IN
) {
24656 if (r
->in
.gdi_handle
== NULL
) {
24657 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24659 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.gdi_handle
));
24661 if (flags
& NDR_OUT
) {
24662 if (r
->out
.gdi_handle
== NULL
) {
24663 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24665 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
24666 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24668 return NDR_ERR_SUCCESS
;
24671 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterIC
*r
)
24673 TALLOC_CTX
*_mem_save_gdi_handle_0
;
24674 if (flags
& NDR_IN
) {
24675 ZERO_STRUCT(r
->out
);
24677 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24678 NDR_PULL_ALLOC(ndr
, r
->in
.gdi_handle
);
24680 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24681 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
24682 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.gdi_handle
));
24683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24684 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
24685 *r
->out
.gdi_handle
= *r
->in
.gdi_handle
;
24687 if (flags
& NDR_OUT
) {
24688 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24689 NDR_PULL_ALLOC(ndr
, r
->out
.gdi_handle
);
24691 _mem_save_gdi_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24692 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.gdi_handle
, LIBNDR_FLAG_REF_ALLOC
);
24693 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.gdi_handle
));
24694 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_gdi_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24695 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24697 return NDR_ERR_SUCCESS
;
24700 _PUBLIC_
void ndr_print_spoolss_DeletePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
24702 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterIC");
24704 if (flags
& NDR_SET_VALUES
) {
24705 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24707 if (flags
& NDR_IN
) {
24708 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterIC");
24710 ndr_print_ptr(ndr
, "gdi_handle", r
->in
.gdi_handle
);
24712 ndr_print_policy_handle(ndr
, "gdi_handle", r
->in
.gdi_handle
);
24716 if (flags
& NDR_OUT
) {
24717 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterIC");
24719 ndr_print_ptr(ndr
, "gdi_handle", r
->out
.gdi_handle
);
24721 ndr_print_policy_handle(ndr
, "gdi_handle", r
->out
.gdi_handle
);
24723 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24729 static enum ndr_err_code
ndr_push_spoolss_AddPrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
24731 if (flags
& NDR_IN
) {
24733 if (flags
& NDR_OUT
) {
24734 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24736 return NDR_ERR_SUCCESS
;
24739 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterConnection
*r
)
24741 if (flags
& NDR_IN
) {
24743 if (flags
& NDR_OUT
) {
24744 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24746 return NDR_ERR_SUCCESS
;
24749 _PUBLIC_
void ndr_print_spoolss_AddPrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
24751 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterConnection");
24753 if (flags
& NDR_SET_VALUES
) {
24754 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24756 if (flags
& NDR_IN
) {
24757 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterConnection");
24761 if (flags
& NDR_OUT
) {
24762 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterConnection");
24764 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24770 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
24772 if (flags
& NDR_IN
) {
24774 if (flags
& NDR_OUT
) {
24775 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24777 return NDR_ERR_SUCCESS
;
24780 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterConnection
*r
)
24782 if (flags
& NDR_IN
) {
24784 if (flags
& NDR_OUT
) {
24785 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24787 return NDR_ERR_SUCCESS
;
24790 _PUBLIC_
void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
24792 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterConnection");
24794 if (flags
& NDR_SET_VALUES
) {
24795 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24797 if (flags
& NDR_IN
) {
24798 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterConnection");
24802 if (flags
& NDR_OUT
) {
24803 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterConnection");
24805 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24811 static enum ndr_err_code
ndr_push_spoolss_PrinterMessageBox(struct ndr_push
*ndr
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
24813 if (flags
& NDR_IN
) {
24815 if (flags
& NDR_OUT
) {
24816 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24818 return NDR_ERR_SUCCESS
;
24821 static enum ndr_err_code
ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull
*ndr
, int flags
, struct spoolss_PrinterMessageBox
*r
)
24823 if (flags
& NDR_IN
) {
24825 if (flags
& NDR_OUT
) {
24826 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24828 return NDR_ERR_SUCCESS
;
24831 _PUBLIC_
void ndr_print_spoolss_PrinterMessageBox(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
24833 ndr_print_struct(ndr
, name
, "spoolss_PrinterMessageBox");
24835 if (flags
& NDR_SET_VALUES
) {
24836 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24838 if (flags
& NDR_IN
) {
24839 ndr_print_struct(ndr
, "in", "spoolss_PrinterMessageBox");
24843 if (flags
& NDR_OUT
) {
24844 ndr_print_struct(ndr
, "out", "spoolss_PrinterMessageBox");
24846 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24852 static enum ndr_err_code
ndr_push_spoolss_AddMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddMonitor
*r
)
24854 if (flags
& NDR_IN
) {
24856 if (flags
& NDR_OUT
) {
24857 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24859 return NDR_ERR_SUCCESS
;
24862 static enum ndr_err_code
ndr_pull_spoolss_AddMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddMonitor
*r
)
24864 if (flags
& NDR_IN
) {
24866 if (flags
& NDR_OUT
) {
24867 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24869 return NDR_ERR_SUCCESS
;
24872 _PUBLIC_
void ndr_print_spoolss_AddMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddMonitor
*r
)
24874 ndr_print_struct(ndr
, name
, "spoolss_AddMonitor");
24876 if (flags
& NDR_SET_VALUES
) {
24877 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24879 if (flags
& NDR_IN
) {
24880 ndr_print_struct(ndr
, "in", "spoolss_AddMonitor");
24884 if (flags
& NDR_OUT
) {
24885 ndr_print_struct(ndr
, "out", "spoolss_AddMonitor");
24887 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24893 static enum ndr_err_code
ndr_push_spoolss_DeleteMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteMonitor
*r
)
24895 if (flags
& NDR_IN
) {
24897 if (flags
& NDR_OUT
) {
24898 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24900 return NDR_ERR_SUCCESS
;
24903 static enum ndr_err_code
ndr_pull_spoolss_DeleteMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteMonitor
*r
)
24905 if (flags
& NDR_IN
) {
24907 if (flags
& NDR_OUT
) {
24908 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24910 return NDR_ERR_SUCCESS
;
24913 _PUBLIC_
void ndr_print_spoolss_DeleteMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteMonitor
*r
)
24915 ndr_print_struct(ndr
, name
, "spoolss_DeleteMonitor");
24917 if (flags
& NDR_SET_VALUES
) {
24918 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24920 if (flags
& NDR_IN
) {
24921 ndr_print_struct(ndr
, "in", "spoolss_DeleteMonitor");
24925 if (flags
& NDR_OUT
) {
24926 ndr_print_struct(ndr
, "out", "spoolss_DeleteMonitor");
24928 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24934 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
24936 if (flags
& NDR_IN
) {
24938 if (flags
& NDR_OUT
) {
24939 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24941 return NDR_ERR_SUCCESS
;
24944 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProcessor
*r
)
24946 if (flags
& NDR_IN
) {
24948 if (flags
& NDR_OUT
) {
24949 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24951 return NDR_ERR_SUCCESS
;
24954 _PUBLIC_
void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
24956 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProcessor");
24958 if (flags
& NDR_SET_VALUES
) {
24959 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24961 if (flags
& NDR_IN
) {
24962 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProcessor");
24966 if (flags
& NDR_OUT
) {
24967 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProcessor");
24969 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24975 static enum ndr_err_code
ndr_push_spoolss_AddPrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
24977 if (flags
& NDR_IN
) {
24979 if (flags
& NDR_OUT
) {
24980 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24982 return NDR_ERR_SUCCESS
;
24985 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProvidor
*r
)
24987 if (flags
& NDR_IN
) {
24989 if (flags
& NDR_OUT
) {
24990 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24992 return NDR_ERR_SUCCESS
;
24995 _PUBLIC_
void ndr_print_spoolss_AddPrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
24997 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProvidor");
24999 if (flags
& NDR_SET_VALUES
) {
25000 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25002 if (flags
& NDR_IN
) {
25003 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProvidor");
25007 if (flags
& NDR_OUT
) {
25008 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProvidor");
25010 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25016 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
25018 if (flags
& NDR_IN
) {
25020 if (flags
& NDR_OUT
) {
25021 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25023 return NDR_ERR_SUCCESS
;
25026 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProvidor
*r
)
25028 if (flags
& NDR_IN
) {
25030 if (flags
& NDR_OUT
) {
25031 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25033 return NDR_ERR_SUCCESS
;
25036 _PUBLIC_
void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
25038 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProvidor");
25040 if (flags
& NDR_SET_VALUES
) {
25041 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25043 if (flags
& NDR_IN
) {
25044 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProvidor");
25048 if (flags
& NDR_OUT
) {
25049 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProvidor");
25051 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25057 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcDataTypes
*r
)
25059 if (flags
& NDR_IN
) {
25060 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
25061 if (r
->in
.servername
) {
25062 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
25063 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25064 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
25065 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25067 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.print_processor_name
));
25068 if (r
->in
.print_processor_name
) {
25069 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
25070 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25071 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
25072 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
));
25074 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25075 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25076 if (r
->in
.buffer
) {
25077 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
25079 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25081 if (flags
& NDR_OUT
) {
25082 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
25084 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
25086 if (r
->out
.needed
== NULL
) {
25087 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25089 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
25090 if (r
->out
.count
== NULL
) {
25091 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25093 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
25094 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25096 return NDR_ERR_SUCCESS
;
25099 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcDataTypes
*r
)
25101 uint32_t _ptr_servername
;
25102 uint32_t _ptr_print_processor_name
;
25103 uint32_t _ptr_buffer
;
25104 uint32_t _ptr_info
;
25105 TALLOC_CTX
*_mem_save_servername_0
;
25106 TALLOC_CTX
*_mem_save_print_processor_name_0
;
25107 TALLOC_CTX
*_mem_save_buffer_0
;
25108 TALLOC_CTX
*_mem_save_info_0
;
25109 TALLOC_CTX
*_mem_save_needed_0
;
25110 TALLOC_CTX
*_mem_save_count_0
;
25111 if (flags
& NDR_IN
) {
25112 ZERO_STRUCT(r
->out
);
25114 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
25115 if (_ptr_servername
) {
25116 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
25118 r
->in
.servername
= NULL
;
25120 if (r
->in
.servername
) {
25121 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25122 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
25123 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
25124 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
25125 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
25126 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
));
25128 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
25129 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
25130 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
25132 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
25133 if (_ptr_print_processor_name
) {
25134 NDR_PULL_ALLOC(ndr
, r
->in
.print_processor_name
);
25136 r
->in
.print_processor_name
= NULL
;
25138 if (r
->in
.print_processor_name
) {
25139 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25140 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.print_processor_name
, 0);
25141 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
25142 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
25143 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
25144 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
));
25146 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
25147 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
));
25148 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
25150 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25151 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25153 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25155 r
->in
.buffer
= NULL
;
25157 if (r
->in
.buffer
) {
25158 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25159 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25160 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
25161 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25163 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25164 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25165 ZERO_STRUCTP(r
->out
.needed
);
25166 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25167 ZERO_STRUCTP(r
->out
.count
);
25169 if (flags
& NDR_OUT
) {
25170 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
25172 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25174 r
->out
.info
= NULL
;
25177 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25178 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25179 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
25180 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25182 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25183 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25185 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25186 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
25187 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
25188 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25189 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25190 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
25192 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25193 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
25194 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
25195 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
25196 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25198 return NDR_ERR_SUCCESS
;
25201 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcDataTypes
*r
)
25203 uint32_t cntr_info_0
;
25204 if (flags
& NDR_IN
) {
25205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25206 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
25208 if (flags
& NDR_OUT
) {
25209 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25210 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25211 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25213 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25214 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25217 return NDR_ERR_SUCCESS
;
25220 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcDataTypes
*r
)
25222 uint32_t cntr_info_0
;
25223 TALLOC_CTX
*_mem_save_info_0
;
25224 if (flags
& NDR_IN
) {
25225 ZERO_STRUCT(r
->out
);
25227 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25228 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
25230 if (flags
& NDR_OUT
) {
25231 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
25232 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25233 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25234 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25235 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
25236 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
25238 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
25239 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
25241 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25243 return NDR_ERR_SUCCESS
;
25246 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcDataTypes
*r
)
25248 uint32_t cntr_info_2
;
25249 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcDataTypes");
25251 if (flags
& NDR_SET_VALUES
) {
25252 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25254 if (flags
& NDR_IN
) {
25255 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcDataTypes");
25257 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
25259 if (r
->in
.servername
) {
25260 ndr_print_string(ndr
, "servername", r
->in
.servername
);
25263 ndr_print_ptr(ndr
, "print_processor_name", r
->in
.print_processor_name
);
25265 if (r
->in
.print_processor_name
) {
25266 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
25269 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25270 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25272 if (r
->in
.buffer
) {
25273 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
25276 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25279 if (flags
& NDR_OUT
) {
25280 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcDataTypes");
25282 ndr_print_ptr(ndr
, "count", r
->out
.count
);
25284 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
25286 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25288 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
25290 if (*r
->out
.info
) {
25291 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
25293 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
25295 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
25296 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
25297 ndr_print_spoolss_PrintProcDataTypesInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
25305 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25307 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25309 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25315 static enum ndr_err_code
ndr_push_spoolss_ResetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinter
*r
)
25317 if (flags
& NDR_IN
) {
25318 if (r
->in
.handle
== NULL
) {
25319 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25321 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25322 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_type
));
25323 if (r
->in
.data_type
) {
25324 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
25325 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25326 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
25327 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
));
25329 if (r
->in
.devmode_ctr
== NULL
) {
25330 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25332 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25334 if (flags
& NDR_OUT
) {
25335 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25337 return NDR_ERR_SUCCESS
;
25340 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinter
*r
)
25342 uint32_t _ptr_data_type
;
25343 TALLOC_CTX
*_mem_save_handle_0
;
25344 TALLOC_CTX
*_mem_save_data_type_0
;
25345 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
25346 if (flags
& NDR_IN
) {
25347 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25348 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25350 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25351 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25352 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25353 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25354 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
25355 if (_ptr_data_type
) {
25356 NDR_PULL_ALLOC(ndr
, r
->in
.data_type
);
25358 r
->in
.data_type
= NULL
;
25360 if (r
->in
.data_type
) {
25361 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25362 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_type
, 0);
25363 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data_type
));
25364 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data_type
));
25365 if (ndr_get_array_length(ndr
, &r
->in
.data_type
) > ndr_get_array_size(ndr
, &r
->in
.data_type
)) {
25366 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
));
25368 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.data_type
), sizeof(uint16_t)));
25369 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
));
25370 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
25372 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25373 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
25375 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25376 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25377 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25378 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25380 if (flags
& NDR_OUT
) {
25381 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25383 return NDR_ERR_SUCCESS
;
25386 _PUBLIC_
void ndr_print_spoolss_ResetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinter
*r
)
25388 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinter");
25390 if (flags
& NDR_SET_VALUES
) {
25391 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25393 if (flags
& NDR_IN
) {
25394 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinter");
25396 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25398 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25400 ndr_print_ptr(ndr
, "data_type", r
->in
.data_type
);
25402 if (r
->in
.data_type
) {
25403 ndr_print_string(ndr
, "data_type", r
->in
.data_type
);
25406 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25408 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25412 if (flags
& NDR_OUT
) {
25413 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinter");
25415 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25421 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver2(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
25423 if (flags
& NDR_IN
) {
25424 if (r
->in
.handle
== NULL
) {
25425 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25427 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25428 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
25429 if (r
->in
.architecture
) {
25430 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
25431 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25432 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
25433 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25436 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25437 if (r
->in
.buffer
) {
25438 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
25440 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_major_version
));
25442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_minor_version
));
25444 if (flags
& NDR_OUT
) {
25445 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
25448 struct ndr_push
*_ndr_info
;
25449 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
25450 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
25451 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
25452 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
25455 if (r
->out
.needed
== NULL
) {
25456 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
25459 if (r
->out
.server_major_version
== NULL
) {
25460 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25462 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_major_version
));
25463 if (r
->out
.server_minor_version
== NULL
) {
25464 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25466 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_minor_version
));
25467 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25469 return NDR_ERR_SUCCESS
;
25472 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver2
*r
)
25474 uint32_t _ptr_architecture
;
25475 uint32_t _ptr_buffer
;
25476 uint32_t _ptr_info
;
25477 TALLOC_CTX
*_mem_save_handle_0
;
25478 TALLOC_CTX
*_mem_save_architecture_0
;
25479 TALLOC_CTX
*_mem_save_buffer_0
;
25480 TALLOC_CTX
*_mem_save_info_0
;
25481 TALLOC_CTX
*_mem_save_needed_0
;
25482 TALLOC_CTX
*_mem_save_server_major_version_0
;
25483 TALLOC_CTX
*_mem_save_server_minor_version_0
;
25484 if (flags
& NDR_IN
) {
25485 ZERO_STRUCT(r
->out
);
25487 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25488 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25490 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25491 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25492 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25493 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25494 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
25495 if (_ptr_architecture
) {
25496 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
25498 r
->in
.architecture
= NULL
;
25500 if (r
->in
.architecture
) {
25501 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25502 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
25503 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
25504 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
25505 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
25506 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
));
25508 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
25509 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
25510 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
25512 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25513 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25515 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25517 r
->in
.buffer
= NULL
;
25519 if (r
->in
.buffer
) {
25520 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25521 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25522 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
25523 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25525 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25526 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_major_version
));
25527 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_minor_version
));
25528 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25529 ZERO_STRUCTP(r
->out
.needed
);
25530 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
25531 ZERO_STRUCTP(r
->out
.server_major_version
);
25532 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
25533 ZERO_STRUCTP(r
->out
.server_minor_version
);
25535 if (flags
& NDR_OUT
) {
25536 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
25538 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25540 r
->out
.info
= NULL
;
25543 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25544 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
25546 struct ndr_pull
*_ndr_info
;
25547 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
25548 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
25549 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
25550 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
25552 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
25554 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25555 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
25557 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25558 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
25559 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
25560 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25561 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25562 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
25564 _mem_save_server_major_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25565 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_major_version
, LIBNDR_FLAG_REF_ALLOC
);
25566 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_major_version
));
25567 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_major_version_0
, LIBNDR_FLAG_REF_ALLOC
);
25568 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25569 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
25571 _mem_save_server_minor_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25572 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_minor_version
, LIBNDR_FLAG_REF_ALLOC
);
25573 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_minor_version
));
25574 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_minor_version_0
, LIBNDR_FLAG_REF_ALLOC
);
25575 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25577 return NDR_ERR_SUCCESS
;
25580 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
25582 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver2");
25584 if (flags
& NDR_SET_VALUES
) {
25585 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25587 if (flags
& NDR_IN
) {
25588 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver2");
25590 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25592 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25594 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
25596 if (r
->in
.architecture
) {
25597 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
25600 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25601 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25603 if (r
->in
.buffer
) {
25604 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
25607 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25608 ndr_print_uint32(ndr
, "client_major_version", r
->in
.client_major_version
);
25609 ndr_print_uint32(ndr
, "client_minor_version", r
->in
.client_minor_version
);
25612 if (flags
& NDR_OUT
) {
25613 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver2");
25615 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25618 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
25619 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
25622 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
25624 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
25626 ndr_print_ptr(ndr
, "server_major_version", r
->out
.server_major_version
);
25628 ndr_print_uint32(ndr
, "server_major_version", *r
->out
.server_major_version
);
25630 ndr_print_ptr(ndr
, "server_minor_version", r
->out
.server_minor_version
);
25632 ndr_print_uint32(ndr
, "server_minor_version", *r
->out
.server_minor_version
);
25634 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25640 static enum ndr_err_code
ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
25642 if (flags
& NDR_IN
) {
25644 if (flags
& NDR_OUT
) {
25645 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25647 return NDR_ERR_SUCCESS
;
25650 static enum ndr_err_code
ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindFirstPrinterChangeNotification
*r
)
25652 if (flags
& NDR_IN
) {
25654 if (flags
& NDR_OUT
) {
25655 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25657 return NDR_ERR_SUCCESS
;
25660 _PUBLIC_
void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
25662 ndr_print_struct(ndr
, name
, "spoolss_FindFirstPrinterChangeNotification");
25664 if (flags
& NDR_SET_VALUES
) {
25665 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25667 if (flags
& NDR_IN
) {
25668 ndr_print_struct(ndr
, "in", "spoolss_FindFirstPrinterChangeNotification");
25672 if (flags
& NDR_OUT
) {
25673 ndr_print_struct(ndr
, "out", "spoolss_FindFirstPrinterChangeNotification");
25675 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25681 static enum ndr_err_code
ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
25683 if (flags
& NDR_IN
) {
25685 if (flags
& NDR_OUT
) {
25686 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25688 return NDR_ERR_SUCCESS
;
25691 static enum ndr_err_code
ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindNextPrinterChangeNotification
*r
)
25693 if (flags
& NDR_IN
) {
25695 if (flags
& NDR_OUT
) {
25696 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25698 return NDR_ERR_SUCCESS
;
25701 _PUBLIC_
void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
25703 ndr_print_struct(ndr
, name
, "spoolss_FindNextPrinterChangeNotification");
25705 if (flags
& NDR_SET_VALUES
) {
25706 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25708 if (flags
& NDR_IN
) {
25709 ndr_print_struct(ndr
, "in", "spoolss_FindNextPrinterChangeNotification");
25713 if (flags
& NDR_OUT
) {
25714 ndr_print_struct(ndr
, "out", "spoolss_FindNextPrinterChangeNotification");
25716 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25722 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
25724 if (flags
& NDR_IN
) {
25725 if (r
->in
.handle
== NULL
) {
25726 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25728 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25730 if (flags
& NDR_OUT
) {
25731 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25733 return NDR_ERR_SUCCESS
;
25736 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindClosePrinterNotify
*r
)
25738 TALLOC_CTX
*_mem_save_handle_0
;
25739 if (flags
& NDR_IN
) {
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
);
25748 if (flags
& NDR_OUT
) {
25749 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25751 return NDR_ERR_SUCCESS
;
25754 _PUBLIC_
void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
25756 ndr_print_struct(ndr
, name
, "spoolss_FindClosePrinterNotify");
25758 if (flags
& NDR_SET_VALUES
) {
25759 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25761 if (flags
& NDR_IN
) {
25762 ndr_print_struct(ndr
, "in", "spoolss_FindClosePrinterNotify");
25764 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25766 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25770 if (flags
& NDR_OUT
) {
25771 ndr_print_struct(ndr
, "out", "spoolss_FindClosePrinterNotify");
25773 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25779 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
25781 if (flags
& NDR_IN
) {
25783 if (flags
& NDR_OUT
) {
25784 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25786 return NDR_ERR_SUCCESS
;
25789 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
25791 if (flags
& NDR_IN
) {
25793 if (flags
& NDR_OUT
) {
25794 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25796 return NDR_ERR_SUCCESS
;
25799 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
25801 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25803 if (flags
& NDR_SET_VALUES
) {
25804 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25806 if (flags
& NDR_IN
) {
25807 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25811 if (flags
& NDR_OUT
) {
25812 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
25814 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25820 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
25822 if (flags
& NDR_IN
) {
25823 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
25824 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
25825 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
25826 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
));
25827 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
25828 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
25829 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
25830 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25831 if (r
->in
.buffer
) {
25832 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
25833 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
25836 if (flags
& NDR_OUT
) {
25837 if (r
->out
.handle
== NULL
) {
25838 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25840 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25841 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25843 return NDR_ERR_SUCCESS
;
25846 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyOpenPrinter
*r
)
25848 uint32_t _ptr_buffer
;
25849 TALLOC_CTX
*_mem_save_buffer_0
;
25850 TALLOC_CTX
*_mem_save_handle_0
;
25851 if (flags
& NDR_IN
) {
25852 ZERO_STRUCT(r
->out
);
25854 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
25855 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
25856 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
25857 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
));
25859 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
25860 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
));
25861 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
25862 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
25863 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
25864 if (r
->in
.bufsize
> 512) {
25865 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
25867 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25869 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25871 r
->in
.buffer
= NULL
;
25873 if (r
->in
.buffer
) {
25874 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25875 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25876 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
25877 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
25878 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
25879 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25881 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25882 ZERO_STRUCTP(r
->out
.handle
);
25883 if (r
->in
.buffer
) {
25884 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
25887 if (flags
& NDR_OUT
) {
25888 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25889 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25891 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25892 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25893 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25894 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25895 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25897 return NDR_ERR_SUCCESS
;
25900 _PUBLIC_
void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
25902 ndr_print_struct(ndr
, name
, "spoolss_ReplyOpenPrinter");
25904 if (flags
& NDR_SET_VALUES
) {
25905 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25907 if (flags
& NDR_IN
) {
25908 ndr_print_struct(ndr
, "in", "spoolss_ReplyOpenPrinter");
25910 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
25911 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
25912 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
25913 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
25914 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25916 if (r
->in
.buffer
) {
25917 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
25922 if (flags
& NDR_OUT
) {
25923 ndr_print_struct(ndr
, "out", "spoolss_ReplyOpenPrinter");
25925 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
25927 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
25929 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25935 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
25937 if (flags
& NDR_IN
) {
25938 if (r
->in
.handle
== NULL
) {
25939 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25941 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25942 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
25943 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
25944 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
25945 if (r
->in
.buffer
) {
25946 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
25947 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
25950 if (flags
& NDR_OUT
) {
25951 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25953 return NDR_ERR_SUCCESS
;
25956 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinter
*r
)
25958 uint32_t _ptr_buffer
;
25959 TALLOC_CTX
*_mem_save_handle_0
;
25960 TALLOC_CTX
*_mem_save_buffer_0
;
25961 if (flags
& NDR_IN
) {
25962 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25963 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25965 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25966 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25967 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25968 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25969 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
25970 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
25971 if (r
->in
.bufsize
> 512) {
25972 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
25974 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
25976 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
25978 r
->in
.buffer
= NULL
;
25980 if (r
->in
.buffer
) {
25981 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25982 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
25983 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
25984 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
25985 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
25986 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
25988 if (r
->in
.buffer
) {
25989 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
25992 if (flags
& NDR_OUT
) {
25993 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25995 return NDR_ERR_SUCCESS
;
25998 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
26000 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinter");
26002 if (flags
& NDR_SET_VALUES
) {
26003 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26005 if (flags
& NDR_IN
) {
26006 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinter");
26008 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26010 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26012 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
26013 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
26014 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
26016 if (r
->in
.buffer
) {
26017 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
26022 if (flags
& NDR_OUT
) {
26023 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinter");
26025 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26031 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
26033 if (flags
& NDR_IN
) {
26034 if (r
->in
.handle
== NULL
) {
26035 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26037 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26039 if (flags
& NDR_OUT
) {
26040 if (r
->out
.handle
== NULL
) {
26041 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26043 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26044 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26046 return NDR_ERR_SUCCESS
;
26049 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyClosePrinter
*r
)
26051 TALLOC_CTX
*_mem_save_handle_0
;
26052 if (flags
& NDR_IN
) {
26053 ZERO_STRUCT(r
->out
);
26055 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26056 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26058 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26059 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26060 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26061 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26062 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26063 *r
->out
.handle
= *r
->in
.handle
;
26065 if (flags
& NDR_OUT
) {
26066 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26067 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26069 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26070 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26071 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26072 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26073 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26075 return NDR_ERR_SUCCESS
;
26078 _PUBLIC_
void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
26080 ndr_print_struct(ndr
, name
, "spoolss_ReplyClosePrinter");
26082 if (flags
& NDR_SET_VALUES
) {
26083 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26085 if (flags
& NDR_IN
) {
26086 ndr_print_struct(ndr
, "in", "spoolss_ReplyClosePrinter");
26088 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26090 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26094 if (flags
& NDR_OUT
) {
26095 ndr_print_struct(ndr
, "out", "spoolss_ReplyClosePrinter");
26097 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
26099 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
26101 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26107 static enum ndr_err_code
ndr_push_spoolss_AddPortEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPortEx
*r
)
26109 if (flags
& NDR_IN
) {
26111 if (flags
& NDR_OUT
) {
26112 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26114 return NDR_ERR_SUCCESS
;
26117 static enum ndr_err_code
ndr_pull_spoolss_AddPortEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPortEx
*r
)
26119 if (flags
& NDR_IN
) {
26121 if (flags
& NDR_OUT
) {
26122 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26124 return NDR_ERR_SUCCESS
;
26127 _PUBLIC_
void ndr_print_spoolss_AddPortEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPortEx
*r
)
26129 ndr_print_struct(ndr
, name
, "spoolss_AddPortEx");
26131 if (flags
& NDR_SET_VALUES
) {
26132 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26134 if (flags
& NDR_IN
) {
26135 ndr_print_struct(ndr
, "in", "spoolss_AddPortEx");
26139 if (flags
& NDR_OUT
) {
26140 ndr_print_struct(ndr
, "out", "spoolss_AddPortEx");
26142 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26148 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
26150 if (flags
& NDR_IN
) {
26152 if (flags
& NDR_OUT
) {
26153 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26155 return NDR_ERR_SUCCESS
;
26158 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
26160 if (flags
& NDR_IN
) {
26162 if (flags
& NDR_OUT
) {
26163 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26165 return NDR_ERR_SUCCESS
;
26168 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
26170 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotification");
26172 if (flags
& NDR_SET_VALUES
) {
26173 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26175 if (flags
& NDR_IN
) {
26176 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
26180 if (flags
& NDR_OUT
) {
26181 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
26183 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26189 static enum ndr_err_code
ndr_push_spoolss_SpoolerInit(struct ndr_push
*ndr
, int flags
, const struct spoolss_SpoolerInit
*r
)
26191 if (flags
& NDR_IN
) {
26193 if (flags
& NDR_OUT
) {
26194 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26196 return NDR_ERR_SUCCESS
;
26199 static enum ndr_err_code
ndr_pull_spoolss_SpoolerInit(struct ndr_pull
*ndr
, int flags
, struct spoolss_SpoolerInit
*r
)
26201 if (flags
& NDR_IN
) {
26203 if (flags
& NDR_OUT
) {
26204 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26206 return NDR_ERR_SUCCESS
;
26209 _PUBLIC_
void ndr_print_spoolss_SpoolerInit(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SpoolerInit
*r
)
26211 ndr_print_struct(ndr
, name
, "spoolss_SpoolerInit");
26213 if (flags
& NDR_SET_VALUES
) {
26214 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26216 if (flags
& NDR_IN
) {
26217 ndr_print_struct(ndr
, "in", "spoolss_SpoolerInit");
26221 if (flags
& NDR_OUT
) {
26222 ndr_print_struct(ndr
, "out", "spoolss_SpoolerInit");
26224 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26230 static enum ndr_err_code
ndr_push_spoolss_ResetPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
26232 if (flags
& NDR_IN
) {
26234 if (flags
& NDR_OUT
) {
26235 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26237 return NDR_ERR_SUCCESS
;
26240 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinterEx
*r
)
26242 if (flags
& NDR_IN
) {
26244 if (flags
& NDR_OUT
) {
26245 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26247 return NDR_ERR_SUCCESS
;
26250 _PUBLIC_
void ndr_print_spoolss_ResetPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
26252 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinterEx");
26254 if (flags
& NDR_SET_VALUES
) {
26255 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26257 if (flags
& NDR_IN
) {
26258 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinterEx");
26262 if (flags
& NDR_OUT
) {
26263 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinterEx");
26265 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26271 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
26273 if (flags
& NDR_IN
) {
26274 if (r
->in
.handle
== NULL
) {
26275 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26277 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26278 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
26279 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.options
));
26280 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.local_machine
));
26281 if (r
->in
.local_machine
) {
26282 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
26283 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26284 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
26285 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
));
26287 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
26288 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.notify_options
));
26289 if (r
->in
.notify_options
) {
26290 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
26293 if (flags
& NDR_OUT
) {
26294 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26296 return NDR_ERR_SUCCESS
;
26299 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
26301 uint32_t _ptr_local_machine
;
26302 uint32_t _ptr_notify_options
;
26303 TALLOC_CTX
*_mem_save_handle_0
;
26304 TALLOC_CTX
*_mem_save_local_machine_0
;
26305 TALLOC_CTX
*_mem_save_notify_options_0
;
26306 if (flags
& NDR_IN
) {
26307 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26308 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26310 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26311 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26312 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26313 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26314 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
26315 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.options
));
26316 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_local_machine
));
26317 if (_ptr_local_machine
) {
26318 NDR_PULL_ALLOC(ndr
, r
->in
.local_machine
);
26320 r
->in
.local_machine
= NULL
;
26322 if (r
->in
.local_machine
) {
26323 _mem_save_local_machine_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26324 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.local_machine
, 0);
26325 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.local_machine
));
26326 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.local_machine
));
26327 if (ndr_get_array_length(ndr
, &r
->in
.local_machine
) > ndr_get_array_size(ndr
, &r
->in
.local_machine
)) {
26328 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
));
26330 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.local_machine
), sizeof(uint16_t)));
26331 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
));
26332 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_local_machine_0
, 0);
26334 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
26335 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_options
));
26336 if (_ptr_notify_options
) {
26337 NDR_PULL_ALLOC(ndr
, r
->in
.notify_options
);
26339 r
->in
.notify_options
= NULL
;
26341 if (r
->in
.notify_options
) {
26342 _mem_save_notify_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26343 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.notify_options
, 0);
26344 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
26345 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_options_0
, 0);
26348 if (flags
& NDR_OUT
) {
26349 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26351 return NDR_ERR_SUCCESS
;
26354 _PUBLIC_
void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
26356 ndr_print_struct(ndr
, name
, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26358 if (flags
& NDR_SET_VALUES
) {
26359 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26361 if (flags
& NDR_IN
) {
26362 ndr_print_struct(ndr
, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26364 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26366 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26368 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
26369 ndr_print_uint32(ndr
, "options", r
->in
.options
);
26370 ndr_print_ptr(ndr
, "local_machine", r
->in
.local_machine
);
26372 if (r
->in
.local_machine
) {
26373 ndr_print_string(ndr
, "local_machine", r
->in
.local_machine
);
26376 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
26377 ndr_print_ptr(ndr
, "notify_options", r
->in
.notify_options
);
26379 if (r
->in
.notify_options
) {
26380 ndr_print_spoolss_NotifyOption(ndr
, "notify_options", r
->in
.notify_options
);
26385 if (flags
& NDR_OUT
) {
26386 ndr_print_struct(ndr
, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
26388 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26394 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
26396 if (flags
& NDR_IN
) {
26397 if (r
->in
.handle
== NULL
) {
26398 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26400 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26401 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.color
));
26402 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
26403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reply_type
));
26404 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
26405 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
26407 if (flags
& NDR_OUT
) {
26408 if (r
->out
.reply_result
== NULL
) {
26409 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26411 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, *r
->out
.reply_result
));
26412 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26414 return NDR_ERR_SUCCESS
;
26417 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinterEx
*r
)
26419 TALLOC_CTX
*_mem_save_handle_0
;
26420 TALLOC_CTX
*_mem_save_reply_result_0
;
26421 if (flags
& NDR_IN
) {
26422 ZERO_STRUCT(r
->out
);
26424 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26425 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26427 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26428 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26429 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26430 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26431 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.color
));
26432 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
26433 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reply_type
));
26434 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
26435 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
26436 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
26437 ZERO_STRUCTP(r
->out
.reply_result
);
26439 if (flags
& NDR_OUT
) {
26440 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26441 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
26443 _mem_save_reply_result_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26444 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.reply_result
, LIBNDR_FLAG_REF_ALLOC
);
26445 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, r
->out
.reply_result
));
26446 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_reply_result_0
, LIBNDR_FLAG_REF_ALLOC
);
26447 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26449 return NDR_ERR_SUCCESS
;
26452 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
26454 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinterEx");
26456 if (flags
& NDR_SET_VALUES
) {
26457 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26459 if (flags
& NDR_IN
) {
26460 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinterEx");
26462 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26464 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26466 ndr_print_uint32(ndr
, "color", r
->in
.color
);
26467 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
26468 ndr_print_uint32(ndr
, "reply_type", r
->in
.reply_type
);
26469 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
);
26470 ndr_print_spoolss_ReplyPrinterInfo(ndr
, "info", &r
->in
.info
);
26473 if (flags
& NDR_OUT
) {
26474 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinterEx");
26476 ndr_print_ptr(ndr
, "reply_result", r
->out
.reply_result
);
26478 ndr_print_spoolss_PrinterNotifyFlags(ndr
, "reply_result", *r
->out
.reply_result
);
26480 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26486 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
26488 if (flags
& NDR_IN
) {
26489 if (r
->in
.handle
== NULL
) {
26490 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26492 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26493 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.change_low
));
26494 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.options
));
26495 if (r
->in
.options
) {
26496 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
26499 if (flags
& NDR_OUT
) {
26500 if (r
->out
.info
== NULL
) {
26501 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26503 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
26504 if (*r
->out
.info
) {
26505 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
26507 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26509 return NDR_ERR_SUCCESS
;
26512 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
26514 uint32_t _ptr_options
;
26515 uint32_t _ptr_info
;
26516 TALLOC_CTX
*_mem_save_handle_0
;
26517 TALLOC_CTX
*_mem_save_options_0
;
26518 TALLOC_CTX
*_mem_save_info_0
;
26519 TALLOC_CTX
*_mem_save_info_1
;
26520 if (flags
& NDR_IN
) {
26521 ZERO_STRUCT(r
->out
);
26523 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26524 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26526 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26527 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26528 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26529 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26530 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_low
));
26531 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_options
));
26532 if (_ptr_options
) {
26533 NDR_PULL_ALLOC(ndr
, r
->in
.options
);
26535 r
->in
.options
= NULL
;
26537 if (r
->in
.options
) {
26538 _mem_save_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26539 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.options
, 0);
26540 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
26541 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_options_0
, 0);
26543 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
26544 ZERO_STRUCTP(r
->out
.info
);
26546 if (flags
& NDR_OUT
) {
26547 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26548 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
26550 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26551 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
26552 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
26554 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
26556 *r
->out
.info
= NULL
;
26558 if (*r
->out
.info
) {
26559 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
26560 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
26561 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
26562 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
26564 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
26565 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26567 return NDR_ERR_SUCCESS
;
26570 _PUBLIC_
void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
26572 ndr_print_struct(ndr
, name
, "spoolss_RouterRefreshPrinterChangeNotify");
26574 if (flags
& NDR_SET_VALUES
) {
26575 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26577 if (flags
& NDR_IN
) {
26578 ndr_print_struct(ndr
, "in", "spoolss_RouterRefreshPrinterChangeNotify");
26580 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26582 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26584 ndr_print_uint32(ndr
, "change_low", r
->in
.change_low
);
26585 ndr_print_ptr(ndr
, "options", r
->in
.options
);
26587 if (r
->in
.options
) {
26588 ndr_print_spoolss_NotifyOption(ndr
, "options", r
->in
.options
);
26593 if (flags
& NDR_OUT
) {
26594 ndr_print_struct(ndr
, "out", "spoolss_RouterRefreshPrinterChangeNotify");
26596 ndr_print_ptr(ndr
, "info", r
->out
.info
);
26598 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
26600 if (*r
->out
.info
) {
26601 ndr_print_spoolss_NotifyInfo(ndr
, "info", *r
->out
.info
);
26605 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26611 static enum ndr_err_code
ndr_push_spoolss_44(struct ndr_push
*ndr
, int flags
, const struct spoolss_44
*r
)
26613 if (flags
& NDR_IN
) {
26615 if (flags
& NDR_OUT
) {
26616 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26618 return NDR_ERR_SUCCESS
;
26621 static enum ndr_err_code
ndr_pull_spoolss_44(struct ndr_pull
*ndr
, int flags
, struct spoolss_44
*r
)
26623 if (flags
& NDR_IN
) {
26625 if (flags
& NDR_OUT
) {
26626 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26628 return NDR_ERR_SUCCESS
;
26631 _PUBLIC_
void ndr_print_spoolss_44(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_44
*r
)
26633 ndr_print_struct(ndr
, name
, "spoolss_44");
26635 if (flags
& NDR_SET_VALUES
) {
26636 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26638 if (flags
& NDR_IN
) {
26639 ndr_print_struct(ndr
, "in", "spoolss_44");
26643 if (flags
& NDR_OUT
) {
26644 ndr_print_struct(ndr
, "out", "spoolss_44");
26646 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26652 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
26654 if (flags
& NDR_IN
) {
26655 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
26656 if (r
->in
.printername
) {
26657 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
26658 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26659 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
26660 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26662 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
26663 if (r
->in
.datatype
) {
26664 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
26665 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26666 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
26667 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26669 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
26670 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
26671 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
26672 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
26673 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
26675 if (flags
& NDR_OUT
) {
26676 if (r
->out
.handle
== NULL
) {
26677 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26679 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26680 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26682 return NDR_ERR_SUCCESS
;
26685 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinterEx
*r
)
26687 uint32_t _ptr_printername
;
26688 uint32_t _ptr_datatype
;
26689 TALLOC_CTX
*_mem_save_printername_0
;
26690 TALLOC_CTX
*_mem_save_datatype_0
;
26691 TALLOC_CTX
*_mem_save_handle_0
;
26692 if (flags
& NDR_IN
) {
26693 ZERO_STRUCT(r
->out
);
26695 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
26696 if (_ptr_printername
) {
26697 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
26699 r
->in
.printername
= NULL
;
26701 if (r
->in
.printername
) {
26702 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26703 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
26704 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
26705 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
26706 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
26707 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
));
26709 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
26710 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
26711 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
26713 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
26714 if (_ptr_datatype
) {
26715 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
26717 r
->in
.datatype
= NULL
;
26719 if (r
->in
.datatype
) {
26720 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26721 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
26722 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
26723 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
26724 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
26725 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
));
26727 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
26728 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
26729 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
26731 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
26732 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
26733 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
26734 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
26735 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
26736 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26737 ZERO_STRUCTP(r
->out
.handle
);
26739 if (flags
& NDR_OUT
) {
26740 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26741 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26743 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26744 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26745 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26746 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26747 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26749 return NDR_ERR_SUCCESS
;
26752 _PUBLIC_
void ndr_print_spoolss_OpenPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
26754 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinterEx");
26756 if (flags
& NDR_SET_VALUES
) {
26757 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26759 if (flags
& NDR_IN
) {
26760 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinterEx");
26762 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
26764 if (r
->in
.printername
) {
26765 ndr_print_string(ndr
, "printername", r
->in
.printername
);
26768 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
26770 if (r
->in
.datatype
) {
26771 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
26774 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
26775 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
26776 ndr_print_uint32(ndr
, "level", r
->in
.level
);
26777 ndr_print_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
);
26778 ndr_print_spoolss_UserLevel(ndr
, "userlevel", &r
->in
.userlevel
);
26781 if (flags
& NDR_OUT
) {
26782 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinterEx");
26784 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
26786 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
26788 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26794 static enum ndr_err_code
ndr_push_spoolss_AddPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterEx
*r
)
26796 if (flags
& NDR_IN
) {
26797 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
26798 if (r
->in
.server
) {
26799 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
26800 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
26801 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
26802 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26804 if (r
->in
.info_ctr
== NULL
) {
26805 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26807 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
26808 if (r
->in
.devmode_ctr
== NULL
) {
26809 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26811 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
26812 if (r
->in
.secdesc_ctr
== NULL
) {
26813 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26815 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
26816 if (r
->in
.userlevel_ctr
== NULL
) {
26817 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26819 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
26821 if (flags
& NDR_OUT
) {
26822 if (r
->out
.handle
== NULL
) {
26823 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26825 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26826 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26828 return NDR_ERR_SUCCESS
;
26831 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterEx
*r
)
26833 uint32_t _ptr_server
;
26834 TALLOC_CTX
*_mem_save_server_0
;
26835 TALLOC_CTX
*_mem_save_info_ctr_0
;
26836 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
26837 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
26838 TALLOC_CTX
*_mem_save_userlevel_ctr_0
;
26839 TALLOC_CTX
*_mem_save_handle_0
;
26840 if (flags
& NDR_IN
) {
26841 ZERO_STRUCT(r
->out
);
26843 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
26845 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
26847 r
->in
.server
= NULL
;
26849 if (r
->in
.server
) {
26850 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26851 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
26852 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
26853 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
26854 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
26855 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
));
26857 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
26858 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
26859 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
26861 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26862 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
26864 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26865 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26866 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
26867 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26868 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26869 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
26871 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26872 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26873 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
26874 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26875 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26876 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
26878 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26879 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26880 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
26881 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26882 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26883 NDR_PULL_ALLOC(ndr
, r
->in
.userlevel_ctr
);
26885 _mem_save_userlevel_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26886 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.userlevel_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26887 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
26888 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_userlevel_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26889 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26890 ZERO_STRUCTP(r
->out
.handle
);
26892 if (flags
& NDR_OUT
) {
26893 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26894 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
26896 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26897 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26898 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
26899 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26900 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26902 return NDR_ERR_SUCCESS
;
26905 _PUBLIC_
void ndr_print_spoolss_AddPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterEx
*r
)
26907 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterEx");
26909 if (flags
& NDR_SET_VALUES
) {
26910 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26912 if (flags
& NDR_IN
) {
26913 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterEx");
26915 ndr_print_ptr(ndr
, "server", r
->in
.server
);
26917 if (r
->in
.server
) {
26918 ndr_print_string(ndr
, "server", r
->in
.server
);
26921 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
26923 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
26925 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
26927 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
26929 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
26931 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
26933 ndr_print_ptr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
26935 ndr_print_spoolss_UserLevelCtr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
26939 if (flags
& NDR_OUT
) {
26940 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterEx");
26942 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
26944 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
26946 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26952 static enum ndr_err_code
ndr_push_spoolss_47(struct ndr_push
*ndr
, int flags
, const struct spoolss_47
*r
)
26954 if (flags
& NDR_IN
) {
26956 if (flags
& NDR_OUT
) {
26957 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26959 return NDR_ERR_SUCCESS
;
26962 static enum ndr_err_code
ndr_pull_spoolss_47(struct ndr_pull
*ndr
, int flags
, struct spoolss_47
*r
)
26964 if (flags
& NDR_IN
) {
26966 if (flags
& NDR_OUT
) {
26967 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26969 return NDR_ERR_SUCCESS
;
26972 _PUBLIC_
void ndr_print_spoolss_47(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_47
*r
)
26974 ndr_print_struct(ndr
, name
, "spoolss_47");
26976 if (flags
& NDR_SET_VALUES
) {
26977 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26979 if (flags
& NDR_IN
) {
26980 ndr_print_struct(ndr
, "in", "spoolss_47");
26984 if (flags
& NDR_OUT
) {
26985 ndr_print_struct(ndr
, "out", "spoolss_47");
26987 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26993 static enum ndr_err_code
ndr_push_spoolss_EnumPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterData
*r
)
26995 if (flags
& NDR_IN
) {
26996 if (r
->in
.handle
== NULL
) {
26997 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26999 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27000 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
27001 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
));
27002 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
27004 if (flags
& NDR_OUT
) {
27005 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.value_offered
/ 2));
27006 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.value_name
, r
->in
.value_offered
/ 2, sizeof(uint16_t), CH_UTF16
));
27007 if (r
->out
.value_needed
== NULL
) {
27008 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27010 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.value_needed
));
27011 if (r
->out
.type
== NULL
) {
27012 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27014 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
27016 uint32_t _flags_save_uint8
= ndr
->flags
;
27017 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
27018 if (r
->out
.data
== NULL
) {
27019 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27021 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
27022 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_offered
));
27023 ndr
->flags
= _flags_save_uint8
;
27025 if (r
->out
.data_needed
== NULL
) {
27026 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27028 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_needed
));
27029 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27031 return NDR_ERR_SUCCESS
;
27034 static enum ndr_err_code
ndr_pull_spoolss_EnumPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterData
*r
)
27036 TALLOC_CTX
*_mem_save_handle_0
;
27037 TALLOC_CTX
*_mem_save_value_needed_0
;
27038 TALLOC_CTX
*_mem_save_type_0
;
27039 TALLOC_CTX
*_mem_save_data_needed_0
;
27040 if (flags
& NDR_IN
) {
27041 ZERO_STRUCT(r
->out
);
27043 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27044 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27046 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27047 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27048 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27050 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
27051 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.value_offered
));
27052 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_offered
));
27053 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
27054 ZERO_STRUCTP(r
->out
.value_needed
);
27055 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
27056 ZERO_STRUCTP(r
->out
.type
);
27057 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_offered
);
27058 memset(r
->out
.data
, 0, (r
->in
.data_offered
) * sizeof(*r
->out
.data
));
27059 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
27060 ZERO_STRUCTP(r
->out
.data_needed
);
27062 if (flags
& NDR_OUT
) {
27063 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value_name
));
27064 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
));
27065 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27066 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
27068 _mem_save_value_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27069 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value_needed
, LIBNDR_FLAG_REF_ALLOC
);
27070 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.value_needed
));
27071 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
27072 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27073 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
27075 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27076 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
27077 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
27078 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
27080 uint32_t _flags_save_uint8
= ndr
->flags
;
27081 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
27082 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
27083 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27084 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
27086 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
27087 ndr
->flags
= _flags_save_uint8
;
27089 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27090 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
27092 _mem_save_data_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27093 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_needed
, LIBNDR_FLAG_REF_ALLOC
);
27094 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_needed
));
27095 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
27096 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27097 if (r
->out
.value_name
) {
27098 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value_name
, r
->in
.value_offered
/ 2));
27101 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_offered
));
27104 return NDR_ERR_SUCCESS
;
27107 _PUBLIC_
void ndr_print_spoolss_EnumPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterData
*r
)
27109 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterData");
27111 if (flags
& NDR_SET_VALUES
) {
27112 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27114 if (flags
& NDR_IN
) {
27115 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterData");
27117 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27119 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27121 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
27122 ndr_print_uint32(ndr
, "value_offered", r
->in
.value_offered
);
27123 ndr_print_uint32(ndr
, "data_offered", r
->in
.data_offered
);
27126 if (flags
& NDR_OUT
) {
27127 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterData");
27129 ndr_print_string(ndr
, "value_name", r
->out
.value_name
);
27130 ndr_print_ptr(ndr
, "value_needed", r
->out
.value_needed
);
27132 ndr_print_uint32(ndr
, "value_needed", *r
->out
.value_needed
);
27134 ndr_print_ptr(ndr
, "type", r
->out
.type
);
27136 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
27138 ndr_print_ptr(ndr
, "data", r
->out
.data
);
27140 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_offered
);
27142 ndr_print_ptr(ndr
, "data_needed", r
->out
.data_needed
);
27144 ndr_print_uint32(ndr
, "data_needed", *r
->out
.data_needed
);
27146 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27152 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterData
*r
)
27154 if (flags
& NDR_IN
) {
27155 if (r
->in
.handle
== NULL
) {
27156 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27158 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27159 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27160 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27161 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27162 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
));
27164 if (flags
& NDR_OUT
) {
27165 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27167 return NDR_ERR_SUCCESS
;
27170 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterData
*r
)
27172 TALLOC_CTX
*_mem_save_handle_0
;
27173 if (flags
& NDR_IN
) {
27174 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27175 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27177 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27178 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27179 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27180 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27181 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
27182 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
27183 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
27184 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
));
27186 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
27187 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
));
27189 if (flags
& NDR_OUT
) {
27190 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27192 return NDR_ERR_SUCCESS
;
27195 _PUBLIC_
void ndr_print_spoolss_DeletePrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterData
*r
)
27197 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterData");
27199 if (flags
& NDR_SET_VALUES
) {
27200 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27202 if (flags
& NDR_IN
) {
27203 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterData");
27205 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27207 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27209 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
27212 if (flags
& NDR_OUT
) {
27213 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterData");
27215 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27221 static enum ndr_err_code
ndr_push_spoolss_4a(struct ndr_push
*ndr
, int flags
, const struct spoolss_4a
*r
)
27223 if (flags
& NDR_IN
) {
27225 if (flags
& NDR_OUT
) {
27226 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27228 return NDR_ERR_SUCCESS
;
27231 static enum ndr_err_code
ndr_pull_spoolss_4a(struct ndr_pull
*ndr
, int flags
, struct spoolss_4a
*r
)
27233 if (flags
& NDR_IN
) {
27235 if (flags
& NDR_OUT
) {
27236 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27238 return NDR_ERR_SUCCESS
;
27241 _PUBLIC_
void ndr_print_spoolss_4a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4a
*r
)
27243 ndr_print_struct(ndr
, name
, "spoolss_4a");
27245 if (flags
& NDR_SET_VALUES
) {
27246 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27248 if (flags
& NDR_IN
) {
27249 ndr_print_struct(ndr
, "in", "spoolss_4a");
27253 if (flags
& NDR_OUT
) {
27254 ndr_print_struct(ndr
, "out", "spoolss_4a");
27256 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27262 static enum ndr_err_code
ndr_push_spoolss_4b(struct ndr_push
*ndr
, int flags
, const struct spoolss_4b
*r
)
27264 if (flags
& NDR_IN
) {
27266 if (flags
& NDR_OUT
) {
27267 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27269 return NDR_ERR_SUCCESS
;
27272 static enum ndr_err_code
ndr_pull_spoolss_4b(struct ndr_pull
*ndr
, int flags
, struct spoolss_4b
*r
)
27274 if (flags
& NDR_IN
) {
27276 if (flags
& NDR_OUT
) {
27277 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27279 return NDR_ERR_SUCCESS
;
27282 _PUBLIC_
void ndr_print_spoolss_4b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4b
*r
)
27284 ndr_print_struct(ndr
, name
, "spoolss_4b");
27286 if (flags
& NDR_SET_VALUES
) {
27287 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27289 if (flags
& NDR_IN
) {
27290 ndr_print_struct(ndr
, "in", "spoolss_4b");
27294 if (flags
& NDR_OUT
) {
27295 ndr_print_struct(ndr
, "out", "spoolss_4b");
27297 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27303 static enum ndr_err_code
ndr_push_spoolss_4c(struct ndr_push
*ndr
, int flags
, const struct spoolss_4c
*r
)
27305 if (flags
& NDR_IN
) {
27307 if (flags
& NDR_OUT
) {
27308 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27310 return NDR_ERR_SUCCESS
;
27313 static enum ndr_err_code
ndr_pull_spoolss_4c(struct ndr_pull
*ndr
, int flags
, struct spoolss_4c
*r
)
27315 if (flags
& NDR_IN
) {
27317 if (flags
& NDR_OUT
) {
27318 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27320 return NDR_ERR_SUCCESS
;
27323 _PUBLIC_
void ndr_print_spoolss_4c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4c
*r
)
27325 ndr_print_struct(ndr
, name
, "spoolss_4c");
27327 if (flags
& NDR_SET_VALUES
) {
27328 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27330 if (flags
& NDR_IN
) {
27331 ndr_print_struct(ndr
, "in", "spoolss_4c");
27335 if (flags
& NDR_OUT
) {
27336 ndr_print_struct(ndr
, "out", "spoolss_4c");
27338 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27344 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_SetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct _spoolss_SetPrinterDataEx
*r
)
27346 if (flags
& NDR_IN
) {
27347 if (r
->in
.handle
== NULL
) {
27348 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27350 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27351 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27352 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27353 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27354 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
));
27355 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27356 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27357 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27358 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
));
27359 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
27360 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
27361 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
._offered
));
27363 if (flags
& NDR_OUT
) {
27364 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27366 return NDR_ERR_SUCCESS
;
27369 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_SetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct __spoolss_SetPrinterDataEx
*r
)
27371 if (flags
& NDR_IN
) {
27372 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
27374 if (flags
& NDR_OUT
) {
27375 if (r
->out
.data
== NULL
) {
27376 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27378 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
27379 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
27381 return NDR_ERR_SUCCESS
;
27384 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterDataEx
*r
)
27386 TALLOC_CTX
*_mem_save_handle_0
;
27387 if (flags
& NDR_IN
) {
27388 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27389 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27391 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27392 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27393 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27394 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27395 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27396 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27397 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
27398 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
));
27400 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
27401 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
));
27402 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
27403 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
27404 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
27405 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
));
27407 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
27408 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
));
27409 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
27411 struct ndr_pull
*_ndr_data
;
27412 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 4, -1));
27413 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, &r
->in
.data
, r
->in
.type
));
27414 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
27415 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 4, -1));
27417 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._offered
));
27419 if (flags
& NDR_OUT
) {
27420 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27422 return NDR_ERR_SUCCESS
;
27425 _PUBLIC_
void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
27427 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterDataEx");
27429 if (flags
& NDR_SET_VALUES
) {
27430 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27432 if (flags
& NDR_IN
) {
27433 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterDataEx");
27435 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27437 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27439 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27440 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
27441 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
27442 ndr_print_set_switch_value(ndr
, &r
->in
.data
, r
->in
.type
);
27443 ndr_print_spoolss_PrinterData(ndr
, "data", &r
->in
.data
);
27444 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
);
27447 if (flags
& NDR_OUT
) {
27448 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterDataEx");
27450 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27456 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_GetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct _spoolss_GetPrinterDataEx
*r
)
27458 if (flags
& NDR_IN
) {
27459 if (r
->in
.handle
== NULL
) {
27460 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27462 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27463 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27464 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27465 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27466 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
));
27467 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27468 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27469 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27470 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
));
27471 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
27473 if (flags
& NDR_OUT
) {
27474 if (r
->out
.type
== NULL
) {
27475 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27477 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
27478 if (r
->out
.data
== NULL
) {
27479 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27481 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.data
));
27482 if (r
->out
.needed
== NULL
) {
27483 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27485 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
27486 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27488 return NDR_ERR_SUCCESS
;
27491 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_GetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct _spoolss_GetPrinterDataEx
*r
)
27493 TALLOC_CTX
*_mem_save_handle_0
;
27494 TALLOC_CTX
*_mem_save_type_0
;
27495 TALLOC_CTX
*_mem_save_data_0
;
27496 TALLOC_CTX
*_mem_save_needed_0
;
27497 if (flags
& NDR_IN
) {
27498 ZERO_STRUCT(r
->out
);
27500 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27501 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27503 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27504 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27505 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27506 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27507 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27508 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27509 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
27510 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
));
27512 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
27513 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
));
27514 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
27515 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
27516 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
27517 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
));
27519 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
27520 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
));
27521 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
27522 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
27523 ZERO_STRUCTP(r
->out
.type
);
27524 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
27525 ZERO_STRUCTP(r
->out
.data
);
27526 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27527 ZERO_STRUCTP(r
->out
.needed
);
27529 if (flags
& NDR_OUT
) {
27530 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27531 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
27533 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27534 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
27535 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
27536 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
27537 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27538 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
27540 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27541 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
27542 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.data
));
27543 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
27544 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27545 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27547 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27548 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
27549 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
27550 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
27551 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27553 return NDR_ERR_SUCCESS
;
27556 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_GetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct __spoolss_GetPrinterDataEx
*r
)
27558 if (flags
& NDR_IN
) {
27559 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
27561 if (flags
& NDR_OUT
) {
27562 if (r
->out
.data
== NULL
) {
27563 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27565 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
27566 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
27568 return NDR_ERR_SUCCESS
;
27571 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_GetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct __spoolss_GetPrinterDataEx
*r
)
27573 TALLOC_CTX
*_mem_save_data_0
;
27574 if (flags
& NDR_IN
) {
27575 ZERO_STRUCT(r
->out
);
27577 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
27578 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
27579 ZERO_STRUCTP(r
->out
.data
);
27581 if (flags
& NDR_OUT
) {
27582 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27583 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
27585 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27586 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
27587 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
27588 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
27589 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
27591 return NDR_ERR_SUCCESS
;
27594 _PUBLIC_
void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
27596 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDataEx");
27598 if (flags
& NDR_SET_VALUES
) {
27599 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27601 if (flags
& NDR_IN
) {
27602 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDataEx");
27604 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27606 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27608 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27609 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
27610 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
27613 if (flags
& NDR_OUT
) {
27614 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDataEx");
27616 ndr_print_ptr(ndr
, "type", r
->out
.type
);
27618 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
27620 ndr_print_ptr(ndr
, "data", r
->out
.data
);
27622 ndr_print_set_switch_value(ndr
, r
->out
.data
, *r
->out
.type
);
27623 ndr_print_spoolss_PrinterData(ndr
, "data", r
->out
.data
);
27625 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
27627 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
27629 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27635 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDataEx
*r
)
27637 if (flags
& NDR_IN
) {
27638 if (r
->in
.handle
== NULL
) {
27639 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27641 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27642 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27643 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27644 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27645 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
));
27646 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
27648 if (flags
& NDR_OUT
) {
27649 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
27650 if (r
->out
.needed
== NULL
) {
27651 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27653 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
27654 if (r
->out
.count
== NULL
) {
27655 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27657 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
27658 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27660 return NDR_ERR_SUCCESS
;
27663 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDataEx
*r
)
27665 TALLOC_CTX
*_mem_save_handle_0
;
27666 TALLOC_CTX
*_mem_save_needed_0
;
27667 TALLOC_CTX
*_mem_save_count_0
;
27668 if (flags
& NDR_IN
) {
27669 ZERO_STRUCT(r
->out
);
27671 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27672 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27674 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27675 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27676 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27677 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27678 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27679 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27680 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
27681 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
));
27683 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
27684 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
));
27685 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
27686 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27687 ZERO_STRUCTP(r
->out
.needed
);
27688 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
27689 ZERO_STRUCTP(r
->out
.count
);
27691 if (flags
& NDR_OUT
) {
27692 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->out
.info
));
27693 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27694 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27696 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27697 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
27698 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
27699 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
27700 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27701 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
27703 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27704 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
27705 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
27706 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
27707 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27709 return NDR_ERR_SUCCESS
;
27712 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDataEx
*r
)
27714 uint32_t cntr_info_0
;
27715 if (flags
& NDR_IN
) {
27716 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
27718 if (flags
& NDR_OUT
) {
27719 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
27720 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
27722 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
27723 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
27726 return NDR_ERR_SUCCESS
;
27729 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDataEx
*r
)
27731 uint32_t cntr_info_0
;
27732 TALLOC_CTX
*_mem_save_info_0
;
27733 if (flags
& NDR_IN
) {
27734 ZERO_STRUCT(r
->out
);
27736 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
27738 if (flags
& NDR_OUT
) {
27739 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
27740 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27741 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
27742 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
27743 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
27745 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
27746 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
27748 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
27750 return NDR_ERR_SUCCESS
;
27753 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDataEx
*r
)
27755 uint32_t cntr_info_2
;
27756 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDataEx");
27758 if (flags
& NDR_SET_VALUES
) {
27759 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27761 if (flags
& NDR_IN
) {
27762 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDataEx");
27764 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27766 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27768 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27769 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
27772 if (flags
& NDR_OUT
) {
27773 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDataEx");
27775 ndr_print_ptr(ndr
, "count", r
->out
.count
);
27777 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
27779 ndr_print_ptr(ndr
, "info", r
->out
.info
);
27781 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
27783 if (*r
->out
.info
) {
27784 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
27786 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
27788 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
27789 ndr_print_spoolss_PrinterEnumValues(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
27797 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
27799 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
27801 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27807 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
27809 if (flags
& NDR_IN
) {
27810 if (r
->in
.handle
== NULL
) {
27811 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27813 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27814 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27815 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27816 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27817 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
));
27818 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
27820 if (flags
& NDR_OUT
) {
27821 if (r
->out
._ndr_size
== NULL
) {
27822 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27824 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._ndr_size
));
27825 if (r
->out
.key_buffer
== NULL
) {
27826 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27829 struct ndr_push
*_ndr_key_buffer
;
27830 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
27831 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer
, r
->out
.key_buffer
, *r
->out
._ndr_size
));
27832 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.key_buffer
));
27833 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
27835 if (r
->out
.needed
== NULL
) {
27836 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27838 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
27839 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27841 return NDR_ERR_SUCCESS
;
27844 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterKey
*r
)
27846 TALLOC_CTX
*_mem_save_handle_0
;
27847 TALLOC_CTX
*_mem_save__ndr_size_0
;
27848 TALLOC_CTX
*_mem_save_key_buffer_0
;
27849 TALLOC_CTX
*_mem_save_needed_0
;
27850 if (flags
& NDR_IN
) {
27851 ZERO_STRUCT(r
->out
);
27853 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27854 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27856 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27857 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27858 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27859 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27860 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27861 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27862 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
27863 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
));
27865 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
27866 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
));
27867 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
27868 NDR_PULL_ALLOC(ndr
, r
->out
._ndr_size
);
27869 ZERO_STRUCTP(r
->out
._ndr_size
);
27870 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
27871 ZERO_STRUCTP(r
->out
.key_buffer
);
27872 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27873 ZERO_STRUCTP(r
->out
.needed
);
27875 if (flags
& NDR_OUT
) {
27876 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27877 NDR_PULL_ALLOC(ndr
, r
->out
._ndr_size
);
27879 _mem_save__ndr_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27880 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._ndr_size
, LIBNDR_FLAG_REF_ALLOC
);
27881 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._ndr_size
));
27882 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__ndr_size_0
, LIBNDR_FLAG_REF_ALLOC
);
27883 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27884 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
27886 _mem_save_key_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27887 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.key_buffer
, LIBNDR_FLAG_REF_ALLOC
);
27889 struct ndr_pull
*_ndr_key_buffer
;
27890 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
27891 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer
, r
->out
.key_buffer
, *r
->out
._ndr_size
));
27892 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.key_buffer
));
27893 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
27895 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
27896 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27897 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27899 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27900 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
27901 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
27902 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
27903 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27905 return NDR_ERR_SUCCESS
;
27908 _PUBLIC_
void ndr_print_spoolss_EnumPrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
27910 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterKey");
27912 if (flags
& NDR_SET_VALUES
) {
27913 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27915 if (flags
& NDR_IN
) {
27916 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterKey");
27918 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27920 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27922 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
27923 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
27926 if (flags
& NDR_OUT
) {
27927 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterKey");
27929 ndr_print_ptr(ndr
, "_ndr_size", r
->out
._ndr_size
);
27931 ndr_print_uint32(ndr
, "_ndr_size", *r
->out
._ndr_size
);
27933 ndr_print_ptr(ndr
, "key_buffer", r
->out
.key_buffer
);
27935 ndr_print_set_switch_value(ndr
, r
->out
.key_buffer
, *r
->out
._ndr_size
);
27936 ndr_print_spoolss_KeyNames(ndr
, "key_buffer", r
->out
.key_buffer
);
27938 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
27940 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
27942 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27948 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
27950 if (flags
& NDR_IN
) {
27951 if (r
->in
.handle
== NULL
) {
27952 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27954 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27955 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27956 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27957 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
27958 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
));
27959 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27960 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
27961 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
27962 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
));
27964 if (flags
& NDR_OUT
) {
27965 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27967 return NDR_ERR_SUCCESS
;
27970 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDataEx
*r
)
27972 TALLOC_CTX
*_mem_save_handle_0
;
27973 if (flags
& NDR_IN
) {
27974 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27975 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27977 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27978 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27979 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27980 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27981 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
27982 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
27983 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
27984 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
));
27986 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
27987 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
));
27988 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
27989 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
27990 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
27991 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
));
27993 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
27994 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
));
27996 if (flags
& NDR_OUT
) {
27997 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27999 return NDR_ERR_SUCCESS
;
28002 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
28004 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDataEx");
28006 if (flags
& NDR_SET_VALUES
) {
28007 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28009 if (flags
& NDR_IN
) {
28010 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDataEx");
28012 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28014 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28016 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
28017 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
28020 if (flags
& NDR_OUT
) {
28021 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDataEx");
28023 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28029 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
28031 if (flags
& NDR_IN
) {
28032 if (r
->in
.handle
== NULL
) {
28033 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28035 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28036 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28037 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28038 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
28039 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
));
28041 if (flags
& NDR_OUT
) {
28042 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28044 return NDR_ERR_SUCCESS
;
28047 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterKey
*r
)
28049 TALLOC_CTX
*_mem_save_handle_0
;
28050 if (flags
& NDR_IN
) {
28051 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28052 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28054 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28055 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28056 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28057 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28058 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
28059 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
28060 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
28061 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
));
28063 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
28064 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
));
28066 if (flags
& NDR_OUT
) {
28067 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28069 return NDR_ERR_SUCCESS
;
28072 _PUBLIC_
void ndr_print_spoolss_DeletePrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
28074 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterKey");
28076 if (flags
& NDR_SET_VALUES
) {
28077 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28079 if (flags
& NDR_IN
) {
28080 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterKey");
28082 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28084 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28086 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
28089 if (flags
& NDR_OUT
) {
28090 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterKey");
28092 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28098 static enum ndr_err_code
ndr_push_spoolss_53(struct ndr_push
*ndr
, int flags
, const struct spoolss_53
*r
)
28100 if (flags
& NDR_IN
) {
28102 if (flags
& NDR_OUT
) {
28103 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28105 return NDR_ERR_SUCCESS
;
28108 static enum ndr_err_code
ndr_pull_spoolss_53(struct ndr_pull
*ndr
, int flags
, struct spoolss_53
*r
)
28110 if (flags
& NDR_IN
) {
28112 if (flags
& NDR_OUT
) {
28113 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28115 return NDR_ERR_SUCCESS
;
28118 _PUBLIC_
void ndr_print_spoolss_53(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_53
*r
)
28120 ndr_print_struct(ndr
, name
, "spoolss_53");
28122 if (flags
& NDR_SET_VALUES
) {
28123 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28125 if (flags
& NDR_IN
) {
28126 ndr_print_struct(ndr
, "in", "spoolss_53");
28130 if (flags
& NDR_OUT
) {
28131 ndr_print_struct(ndr
, "out", "spoolss_53");
28133 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28139 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
28141 if (flags
& NDR_IN
) {
28142 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
28143 if (r
->in
.server
) {
28144 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
28145 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28146 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
28147 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
28149 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
28150 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28151 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
28152 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
28153 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
28154 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28155 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
28156 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
28157 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, r
->in
.delete_flags
));
28158 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.version
));
28160 if (flags
& NDR_OUT
) {
28161 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28163 return NDR_ERR_SUCCESS
;
28166 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriverEx
*r
)
28168 uint32_t _ptr_server
;
28169 TALLOC_CTX
*_mem_save_server_0
;
28170 if (flags
& NDR_IN
) {
28171 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
28173 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
28175 r
->in
.server
= NULL
;
28177 if (r
->in
.server
) {
28178 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28179 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
28180 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
28181 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
28182 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
28183 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
));
28185 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
28186 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
28187 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
28189 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
28190 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
28191 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
28192 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
));
28194 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
28195 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
28196 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
28197 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
28198 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
28199 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
));
28201 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
28202 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
28203 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, &r
->in
.delete_flags
));
28204 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.version
));
28206 if (flags
& NDR_OUT
) {
28207 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28209 return NDR_ERR_SUCCESS
;
28212 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
28214 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriverEx");
28216 if (flags
& NDR_SET_VALUES
) {
28217 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28219 if (flags
& NDR_IN
) {
28220 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriverEx");
28222 ndr_print_ptr(ndr
, "server", r
->in
.server
);
28224 if (r
->in
.server
) {
28225 ndr_print_string(ndr
, "server", r
->in
.server
);
28228 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
28229 ndr_print_string(ndr
, "driver", r
->in
.driver
);
28230 ndr_print_spoolss_DeleteDriverFlags(ndr
, "delete_flags", r
->in
.delete_flags
);
28231 ndr_print_uint32(ndr
, "version", r
->in
.version
);
28234 if (flags
& NDR_OUT
) {
28235 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriverEx");
28237 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28243 static enum ndr_err_code
ndr_push_spoolss_55(struct ndr_push
*ndr
, int flags
, const struct spoolss_55
*r
)
28245 if (flags
& NDR_IN
) {
28247 if (flags
& NDR_OUT
) {
28248 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28250 return NDR_ERR_SUCCESS
;
28253 static enum ndr_err_code
ndr_pull_spoolss_55(struct ndr_pull
*ndr
, int flags
, struct spoolss_55
*r
)
28255 if (flags
& NDR_IN
) {
28257 if (flags
& NDR_OUT
) {
28258 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28260 return NDR_ERR_SUCCESS
;
28263 _PUBLIC_
void ndr_print_spoolss_55(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_55
*r
)
28265 ndr_print_struct(ndr
, name
, "spoolss_55");
28267 if (flags
& NDR_SET_VALUES
) {
28268 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28270 if (flags
& NDR_IN
) {
28271 ndr_print_struct(ndr
, "in", "spoolss_55");
28275 if (flags
& NDR_OUT
) {
28276 ndr_print_struct(ndr
, "out", "spoolss_55");
28278 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28284 static enum ndr_err_code
ndr_push_spoolss_56(struct ndr_push
*ndr
, int flags
, const struct spoolss_56
*r
)
28286 if (flags
& NDR_IN
) {
28288 if (flags
& NDR_OUT
) {
28289 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28291 return NDR_ERR_SUCCESS
;
28294 static enum ndr_err_code
ndr_pull_spoolss_56(struct ndr_pull
*ndr
, int flags
, struct spoolss_56
*r
)
28296 if (flags
& NDR_IN
) {
28298 if (flags
& NDR_OUT
) {
28299 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28301 return NDR_ERR_SUCCESS
;
28304 _PUBLIC_
void ndr_print_spoolss_56(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_56
*r
)
28306 ndr_print_struct(ndr
, name
, "spoolss_56");
28308 if (flags
& NDR_SET_VALUES
) {
28309 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28311 if (flags
& NDR_IN
) {
28312 ndr_print_struct(ndr
, "in", "spoolss_56");
28316 if (flags
& NDR_OUT
) {
28317 ndr_print_struct(ndr
, "out", "spoolss_56");
28319 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28325 static enum ndr_err_code
ndr_push_spoolss_57(struct ndr_push
*ndr
, int flags
, const struct spoolss_57
*r
)
28327 if (flags
& NDR_IN
) {
28329 if (flags
& NDR_OUT
) {
28330 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28332 return NDR_ERR_SUCCESS
;
28335 static enum ndr_err_code
ndr_pull_spoolss_57(struct ndr_pull
*ndr
, int flags
, struct spoolss_57
*r
)
28337 if (flags
& NDR_IN
) {
28339 if (flags
& NDR_OUT
) {
28340 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28342 return NDR_ERR_SUCCESS
;
28345 _PUBLIC_
void ndr_print_spoolss_57(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_57
*r
)
28347 ndr_print_struct(ndr
, name
, "spoolss_57");
28349 if (flags
& NDR_SET_VALUES
) {
28350 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28352 if (flags
& NDR_IN
) {
28353 ndr_print_struct(ndr
, "in", "spoolss_57");
28357 if (flags
& NDR_OUT
) {
28358 ndr_print_struct(ndr
, "out", "spoolss_57");
28360 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28366 static enum ndr_err_code
ndr_push_spoolss_XcvData(struct ndr_push
*ndr
, int flags
, const struct spoolss_XcvData
*r
)
28368 if (flags
& NDR_IN
) {
28369 if (r
->in
.handle
== NULL
) {
28370 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28372 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28373 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
28374 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28375 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
28376 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
));
28377 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.in_data
));
28378 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.in_data
.length
));
28379 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
28380 if (r
->in
.status_code
== NULL
) {
28381 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28383 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.status_code
));
28385 if (flags
& NDR_OUT
) {
28386 if (r
->out
.out_data
== NULL
) {
28387 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28389 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
28390 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, r
->in
.out_data_size
));
28391 if (r
->out
.needed
== NULL
) {
28392 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28394 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
28395 if (r
->out
.status_code
== NULL
) {
28396 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28398 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.status_code
));
28399 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28401 return NDR_ERR_SUCCESS
;
28404 static enum ndr_err_code
ndr_pull_spoolss_XcvData(struct ndr_pull
*ndr
, int flags
, struct spoolss_XcvData
*r
)
28406 TALLOC_CTX
*_mem_save_handle_0
;
28407 TALLOC_CTX
*_mem_save_needed_0
;
28408 TALLOC_CTX
*_mem_save_status_code_0
;
28409 if (flags
& NDR_IN
) {
28410 ZERO_STRUCT(r
->out
);
28412 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28413 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
28415 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28416 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
28417 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
28418 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
28419 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.function_name
));
28420 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.function_name
));
28421 if (ndr_get_array_length(ndr
, &r
->in
.function_name
) > ndr_get_array_size(ndr
, &r
->in
.function_name
)) {
28422 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
));
28424 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.function_name
), sizeof(uint16_t)));
28425 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
));
28426 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.in_data
));
28427 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._in_data_length
));
28428 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.out_data_size
));
28429 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28430 NDR_PULL_ALLOC(ndr
, r
->in
.status_code
);
28432 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28433 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
28434 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.status_code
));
28435 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
28436 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, r
->in
.out_data_size
);
28437 memset(r
->out
.out_data
, 0, (r
->in
.out_data_size
) * sizeof(*r
->out
.out_data
));
28438 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28439 ZERO_STRUCTP(r
->out
.needed
);
28440 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
28441 *r
->out
.status_code
= *r
->in
.status_code
;
28443 if (flags
& NDR_OUT
) {
28444 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.out_data
));
28445 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28446 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
));
28448 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
)));
28449 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28450 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
28452 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28453 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
28454 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
28455 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
28456 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28457 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
28459 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28460 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
28461 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.status_code
));
28462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
28463 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28464 if (r
->out
.out_data
) {
28465 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.out_data
, r
->in
.out_data_size
));
28468 return NDR_ERR_SUCCESS
;
28471 _PUBLIC_
void ndr_print_spoolss_XcvData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_XcvData
*r
)
28473 ndr_print_struct(ndr
, name
, "spoolss_XcvData");
28475 if (flags
& NDR_SET_VALUES
) {
28476 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28478 if (flags
& NDR_IN
) {
28479 ndr_print_struct(ndr
, "in", "spoolss_XcvData");
28481 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
28483 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
28485 ndr_print_string(ndr
, "function_name", r
->in
.function_name
);
28486 ndr_print_DATA_BLOB(ndr
, "in_data", r
->in
.in_data
);
28487 ndr_print_uint32(ndr
, "_in_data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.in_data
.length
:r
->in
._in_data_length
);
28488 ndr_print_uint32(ndr
, "out_data_size", r
->in
.out_data_size
);
28489 ndr_print_ptr(ndr
, "status_code", r
->in
.status_code
);
28491 ndr_print_uint32(ndr
, "status_code", *r
->in
.status_code
);
28495 if (flags
& NDR_OUT
) {
28496 ndr_print_struct(ndr
, "out", "spoolss_XcvData");
28498 ndr_print_ptr(ndr
, "out_data", r
->out
.out_data
);
28500 ndr_print_array_uint8(ndr
, "out_data", r
->out
.out_data
, r
->in
.out_data_size
);
28502 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
28504 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
28506 ndr_print_ptr(ndr
, "status_code", r
->out
.status_code
);
28508 ndr_print_uint32(ndr
, "status_code", *r
->out
.status_code
);
28510 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28516 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
28518 if (flags
& NDR_IN
) {
28519 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
28520 if (r
->in
.servername
) {
28521 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
28522 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
28523 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
28524 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
28526 if (r
->in
.info_ctr
== NULL
) {
28527 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
28529 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
28530 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
28532 if (flags
& NDR_OUT
) {
28533 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28535 return NDR_ERR_SUCCESS
;
28538 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriverEx
*r
)
28540 uint32_t _ptr_servername
;
28541 TALLOC_CTX
*_mem_save_servername_0
;
28542 TALLOC_CTX
*_mem_save_info_ctr_0
;
28543 if (flags
& NDR_IN
) {
28544 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
28545 if (_ptr_servername
) {
28546 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
28548 r
->in
.servername
= NULL
;
28550 if (r
->in
.servername
) {
28551 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28552 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
28553 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
28554 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
28555 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
28556 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
));
28558 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
28559 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
28560 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
28562 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
28563 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
28565 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
28566 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
28567 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
28568 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
28569 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
28571 if (flags
& NDR_OUT
) {
28572 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28574 return NDR_ERR_SUCCESS
;
28577 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
28579 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriverEx");
28581 if (flags
& NDR_SET_VALUES
) {
28582 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28584 if (flags
& NDR_IN
) {
28585 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriverEx");
28587 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
28589 if (r
->in
.servername
) {
28590 ndr_print_string(ndr
, "servername", r
->in
.servername
);
28593 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
28595 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
28597 ndr_print_spoolss_AddPrinterDriverExFlags(ndr
, "flags", r
->in
.flags
);
28600 if (flags
& NDR_OUT
) {
28601 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriverEx");
28603 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28609 static enum ndr_err_code
ndr_push_spoolss_5a(struct ndr_push
*ndr
, int flags
, const struct spoolss_5a
*r
)
28611 if (flags
& NDR_IN
) {
28613 if (flags
& NDR_OUT
) {
28614 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28616 return NDR_ERR_SUCCESS
;
28619 static enum ndr_err_code
ndr_pull_spoolss_5a(struct ndr_pull
*ndr
, int flags
, struct spoolss_5a
*r
)
28621 if (flags
& NDR_IN
) {
28623 if (flags
& NDR_OUT
) {
28624 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28626 return NDR_ERR_SUCCESS
;
28629 _PUBLIC_
void ndr_print_spoolss_5a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5a
*r
)
28631 ndr_print_struct(ndr
, name
, "spoolss_5a");
28633 if (flags
& NDR_SET_VALUES
) {
28634 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28636 if (flags
& NDR_IN
) {
28637 ndr_print_struct(ndr
, "in", "spoolss_5a");
28641 if (flags
& NDR_OUT
) {
28642 ndr_print_struct(ndr
, "out", "spoolss_5a");
28644 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28650 static enum ndr_err_code
ndr_push_spoolss_5b(struct ndr_push
*ndr
, int flags
, const struct spoolss_5b
*r
)
28652 if (flags
& NDR_IN
) {
28654 if (flags
& NDR_OUT
) {
28655 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28657 return NDR_ERR_SUCCESS
;
28660 static enum ndr_err_code
ndr_pull_spoolss_5b(struct ndr_pull
*ndr
, int flags
, struct spoolss_5b
*r
)
28662 if (flags
& NDR_IN
) {
28664 if (flags
& NDR_OUT
) {
28665 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28667 return NDR_ERR_SUCCESS
;
28670 _PUBLIC_
void ndr_print_spoolss_5b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5b
*r
)
28672 ndr_print_struct(ndr
, name
, "spoolss_5b");
28674 if (flags
& NDR_SET_VALUES
) {
28675 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28677 if (flags
& NDR_IN
) {
28678 ndr_print_struct(ndr
, "in", "spoolss_5b");
28682 if (flags
& NDR_OUT
) {
28683 ndr_print_struct(ndr
, "out", "spoolss_5b");
28685 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28691 static enum ndr_err_code
ndr_push_spoolss_5c(struct ndr_push
*ndr
, int flags
, const struct spoolss_5c
*r
)
28693 if (flags
& NDR_IN
) {
28695 if (flags
& NDR_OUT
) {
28696 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28698 return NDR_ERR_SUCCESS
;
28701 static enum ndr_err_code
ndr_pull_spoolss_5c(struct ndr_pull
*ndr
, int flags
, struct spoolss_5c
*r
)
28703 if (flags
& NDR_IN
) {
28705 if (flags
& NDR_OUT
) {
28706 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28708 return NDR_ERR_SUCCESS
;
28711 _PUBLIC_
void ndr_print_spoolss_5c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5c
*r
)
28713 ndr_print_struct(ndr
, name
, "spoolss_5c");
28715 if (flags
& NDR_SET_VALUES
) {
28716 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28718 if (flags
& NDR_IN
) {
28719 ndr_print_struct(ndr
, "in", "spoolss_5c");
28723 if (flags
& NDR_OUT
) {
28724 ndr_print_struct(ndr
, "out", "spoolss_5c");
28726 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28732 static enum ndr_err_code
ndr_push_spoolss_5d(struct ndr_push
*ndr
, int flags
, const struct spoolss_5d
*r
)
28734 if (flags
& NDR_IN
) {
28736 if (flags
& NDR_OUT
) {
28737 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28739 return NDR_ERR_SUCCESS
;
28742 static enum ndr_err_code
ndr_pull_spoolss_5d(struct ndr_pull
*ndr
, int flags
, struct spoolss_5d
*r
)
28744 if (flags
& NDR_IN
) {
28746 if (flags
& NDR_OUT
) {
28747 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28749 return NDR_ERR_SUCCESS
;
28752 _PUBLIC_
void ndr_print_spoolss_5d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5d
*r
)
28754 ndr_print_struct(ndr
, name
, "spoolss_5d");
28756 if (flags
& NDR_SET_VALUES
) {
28757 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28759 if (flags
& NDR_IN
) {
28760 ndr_print_struct(ndr
, "in", "spoolss_5d");
28764 if (flags
& NDR_OUT
) {
28765 ndr_print_struct(ndr
, "out", "spoolss_5d");
28767 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28773 static enum ndr_err_code
ndr_push_spoolss_5e(struct ndr_push
*ndr
, int flags
, const struct spoolss_5e
*r
)
28775 if (flags
& NDR_IN
) {
28777 if (flags
& NDR_OUT
) {
28778 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28780 return NDR_ERR_SUCCESS
;
28783 static enum ndr_err_code
ndr_pull_spoolss_5e(struct ndr_pull
*ndr
, int flags
, struct spoolss_5e
*r
)
28785 if (flags
& NDR_IN
) {
28787 if (flags
& NDR_OUT
) {
28788 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28790 return NDR_ERR_SUCCESS
;
28793 _PUBLIC_
void ndr_print_spoolss_5e(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5e
*r
)
28795 ndr_print_struct(ndr
, name
, "spoolss_5e");
28797 if (flags
& NDR_SET_VALUES
) {
28798 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28800 if (flags
& NDR_IN
) {
28801 ndr_print_struct(ndr
, "in", "spoolss_5e");
28805 if (flags
& NDR_OUT
) {
28806 ndr_print_struct(ndr
, "out", "spoolss_5e");
28808 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28814 static enum ndr_err_code
ndr_push_spoolss_5f(struct ndr_push
*ndr
, int flags
, const struct spoolss_5f
*r
)
28816 if (flags
& NDR_IN
) {
28818 if (flags
& NDR_OUT
) {
28819 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28821 return NDR_ERR_SUCCESS
;
28824 static enum ndr_err_code
ndr_pull_spoolss_5f(struct ndr_pull
*ndr
, int flags
, struct spoolss_5f
*r
)
28826 if (flags
& NDR_IN
) {
28828 if (flags
& NDR_OUT
) {
28829 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28831 return NDR_ERR_SUCCESS
;
28834 _PUBLIC_
void ndr_print_spoolss_5f(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5f
*r
)
28836 ndr_print_struct(ndr
, name
, "spoolss_5f");
28838 if (flags
& NDR_SET_VALUES
) {
28839 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28841 if (flags
& NDR_IN
) {
28842 ndr_print_struct(ndr
, "in", "spoolss_5f");
28846 if (flags
& NDR_OUT
) {
28847 ndr_print_struct(ndr
, "out", "spoolss_5f");
28849 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28855 static enum ndr_err_code
ndr_push_spoolss_60(struct ndr_push
*ndr
, int flags
, const struct spoolss_60
*r
)
28857 if (flags
& NDR_IN
) {
28859 if (flags
& NDR_OUT
) {
28860 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28862 return NDR_ERR_SUCCESS
;
28865 static enum ndr_err_code
ndr_pull_spoolss_60(struct ndr_pull
*ndr
, int flags
, struct spoolss_60
*r
)
28867 if (flags
& NDR_IN
) {
28869 if (flags
& NDR_OUT
) {
28870 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28872 return NDR_ERR_SUCCESS
;
28875 _PUBLIC_
void ndr_print_spoolss_60(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_60
*r
)
28877 ndr_print_struct(ndr
, name
, "spoolss_60");
28879 if (flags
& NDR_SET_VALUES
) {
28880 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28882 if (flags
& NDR_IN
) {
28883 ndr_print_struct(ndr
, "in", "spoolss_60");
28887 if (flags
& NDR_OUT
) {
28888 ndr_print_struct(ndr
, "out", "spoolss_60");
28890 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28896 static enum ndr_err_code
ndr_push_spoolss_61(struct ndr_push
*ndr
, int flags
, const struct spoolss_61
*r
)
28898 if (flags
& NDR_IN
) {
28900 if (flags
& NDR_OUT
) {
28901 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28903 return NDR_ERR_SUCCESS
;
28906 static enum ndr_err_code
ndr_pull_spoolss_61(struct ndr_pull
*ndr
, int flags
, struct spoolss_61
*r
)
28908 if (flags
& NDR_IN
) {
28910 if (flags
& NDR_OUT
) {
28911 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28913 return NDR_ERR_SUCCESS
;
28916 _PUBLIC_
void ndr_print_spoolss_61(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_61
*r
)
28918 ndr_print_struct(ndr
, name
, "spoolss_61");
28920 if (flags
& NDR_SET_VALUES
) {
28921 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28923 if (flags
& NDR_IN
) {
28924 ndr_print_struct(ndr
, "in", "spoolss_61");
28928 if (flags
& NDR_OUT
) {
28929 ndr_print_struct(ndr
, "out", "spoolss_61");
28931 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28937 static enum ndr_err_code
ndr_push_spoolss_62(struct ndr_push
*ndr
, int flags
, const struct spoolss_62
*r
)
28939 if (flags
& NDR_IN
) {
28941 if (flags
& NDR_OUT
) {
28942 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28944 return NDR_ERR_SUCCESS
;
28947 static enum ndr_err_code
ndr_pull_spoolss_62(struct ndr_pull
*ndr
, int flags
, struct spoolss_62
*r
)
28949 if (flags
& NDR_IN
) {
28951 if (flags
& NDR_OUT
) {
28952 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28954 return NDR_ERR_SUCCESS
;
28957 _PUBLIC_
void ndr_print_spoolss_62(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_62
*r
)
28959 ndr_print_struct(ndr
, name
, "spoolss_62");
28961 if (flags
& NDR_SET_VALUES
) {
28962 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
28964 if (flags
& NDR_IN
) {
28965 ndr_print_struct(ndr
, "in", "spoolss_62");
28969 if (flags
& NDR_OUT
) {
28970 ndr_print_struct(ndr
, "out", "spoolss_62");
28972 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
28978 static enum ndr_err_code
ndr_push_spoolss_63(struct ndr_push
*ndr
, int flags
, const struct spoolss_63
*r
)
28980 if (flags
& NDR_IN
) {
28982 if (flags
& NDR_OUT
) {
28983 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
28985 return NDR_ERR_SUCCESS
;
28988 static enum ndr_err_code
ndr_pull_spoolss_63(struct ndr_pull
*ndr
, int flags
, struct spoolss_63
*r
)
28990 if (flags
& NDR_IN
) {
28992 if (flags
& NDR_OUT
) {
28993 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
28995 return NDR_ERR_SUCCESS
;
28998 _PUBLIC_
void ndr_print_spoolss_63(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_63
*r
)
29000 ndr_print_struct(ndr
, name
, "spoolss_63");
29002 if (flags
& NDR_SET_VALUES
) {
29003 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29005 if (flags
& NDR_IN
) {
29006 ndr_print_struct(ndr
, "in", "spoolss_63");
29010 if (flags
& NDR_OUT
) {
29011 ndr_print_struct(ndr
, "out", "spoolss_63");
29013 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29019 static enum ndr_err_code
ndr_push_spoolss_64(struct ndr_push
*ndr
, int flags
, const struct spoolss_64
*r
)
29021 if (flags
& NDR_IN
) {
29023 if (flags
& NDR_OUT
) {
29024 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29026 return NDR_ERR_SUCCESS
;
29029 static enum ndr_err_code
ndr_pull_spoolss_64(struct ndr_pull
*ndr
, int flags
, struct spoolss_64
*r
)
29031 if (flags
& NDR_IN
) {
29033 if (flags
& NDR_OUT
) {
29034 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29036 return NDR_ERR_SUCCESS
;
29039 _PUBLIC_
void ndr_print_spoolss_64(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_64
*r
)
29041 ndr_print_struct(ndr
, name
, "spoolss_64");
29043 if (flags
& NDR_SET_VALUES
) {
29044 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29046 if (flags
& NDR_IN
) {
29047 ndr_print_struct(ndr
, "in", "spoolss_64");
29051 if (flags
& NDR_OUT
) {
29052 ndr_print_struct(ndr
, "out", "spoolss_64");
29054 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29060 static enum ndr_err_code
ndr_push_spoolss_65(struct ndr_push
*ndr
, int flags
, const struct spoolss_65
*r
)
29062 if (flags
& NDR_IN
) {
29064 if (flags
& NDR_OUT
) {
29065 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29067 return NDR_ERR_SUCCESS
;
29070 static enum ndr_err_code
ndr_pull_spoolss_65(struct ndr_pull
*ndr
, int flags
, struct spoolss_65
*r
)
29072 if (flags
& NDR_IN
) {
29074 if (flags
& NDR_OUT
) {
29075 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29077 return NDR_ERR_SUCCESS
;
29080 _PUBLIC_
void ndr_print_spoolss_65(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_65
*r
)
29082 ndr_print_struct(ndr
, name
, "spoolss_65");
29084 if (flags
& NDR_SET_VALUES
) {
29085 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29087 if (flags
& NDR_IN
) {
29088 ndr_print_struct(ndr
, "in", "spoolss_65");
29092 if (flags
& NDR_OUT
) {
29093 ndr_print_struct(ndr
, "out", "spoolss_65");
29095 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29101 static enum ndr_err_code
ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetCorePrinterDrivers
*r
)
29103 uint32_t cntr_core_printer_drivers_1
;
29104 if (flags
& NDR_IN
) {
29105 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
29106 if (r
->in
.servername
) {
29107 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
29108 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29109 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
29110 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29112 if (r
->in
.architecture
== NULL
) {
29113 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29115 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
29116 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29117 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
29118 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29119 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.core_driver_size
));
29120 if (r
->in
.core_driver_dependencies
== NULL
) {
29121 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29123 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.core_driver_size
));
29124 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.core_driver_dependencies
, r
->in
.core_driver_size
, sizeof(uint16_t), CH_UTF16
));
29125 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.core_printer_driver_count
));
29127 if (flags
& NDR_OUT
) {
29128 if (r
->out
.core_printer_drivers
== NULL
) {
29129 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29131 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.core_printer_driver_count
));
29132 for (cntr_core_printer_drivers_1
= 0; cntr_core_printer_drivers_1
< r
->in
.core_printer_driver_count
; cntr_core_printer_drivers_1
++) {
29133 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr
, NDR_SCALARS
, &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]));
29135 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29137 return NDR_ERR_SUCCESS
;
29140 static enum ndr_err_code
ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetCorePrinterDrivers
*r
)
29142 uint32_t _ptr_servername
;
29143 uint32_t cntr_core_printer_drivers_1
;
29144 TALLOC_CTX
*_mem_save_servername_0
;
29145 TALLOC_CTX
*_mem_save_core_printer_drivers_1
;
29146 if (flags
& NDR_IN
) {
29147 ZERO_STRUCT(r
->out
);
29149 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
29150 if (_ptr_servername
) {
29151 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
29153 r
->in
.servername
= NULL
;
29155 if (r
->in
.servername
) {
29156 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29157 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
29158 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
29159 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
29160 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
29161 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
));
29163 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
29164 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
29165 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
29167 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
29168 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
29169 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
29170 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
));
29172 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
29173 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
29174 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.core_driver_size
));
29175 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.core_driver_dependencies
));
29176 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
));
29177 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.core_printer_driver_count
));
29178 NDR_PULL_ALLOC_N(ndr
, r
->out
.core_printer_drivers
, r
->in
.core_printer_driver_count
);
29179 memset(r
->out
.core_printer_drivers
, 0, (r
->in
.core_printer_driver_count
) * sizeof(*r
->out
.core_printer_drivers
));
29180 if (r
->in
.core_driver_dependencies
) {
29181 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.core_driver_dependencies
, r
->in
.core_driver_size
));
29184 if (flags
& NDR_OUT
) {
29185 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.core_printer_drivers
));
29186 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29187 NDR_PULL_ALLOC_N(ndr
, r
->out
.core_printer_drivers
, ndr_get_array_size(ndr
, &r
->out
.core_printer_drivers
));
29189 _mem_save_core_printer_drivers_1
= NDR_PULL_GET_MEM_CTX(ndr
);
29190 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.core_printer_drivers
, 0);
29191 for (cntr_core_printer_drivers_1
= 0; cntr_core_printer_drivers_1
< r
->in
.core_printer_driver_count
; cntr_core_printer_drivers_1
++) {
29192 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr
, NDR_SCALARS
, &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]));
29194 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_printer_drivers_1
, 0);
29195 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29196 if (r
->out
.core_printer_drivers
) {
29197 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.core_printer_drivers
, r
->in
.core_printer_driver_count
));
29200 return NDR_ERR_SUCCESS
;
29203 _PUBLIC_
void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetCorePrinterDrivers
*r
)
29205 uint32_t cntr_core_printer_drivers_1
;
29206 ndr_print_struct(ndr
, name
, "spoolss_GetCorePrinterDrivers");
29208 if (flags
& NDR_SET_VALUES
) {
29209 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29211 if (flags
& NDR_IN
) {
29212 ndr_print_struct(ndr
, "in", "spoolss_GetCorePrinterDrivers");
29214 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
29216 if (r
->in
.servername
) {
29217 ndr_print_string(ndr
, "servername", r
->in
.servername
);
29220 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
29222 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
29224 ndr_print_uint32(ndr
, "core_driver_size", r
->in
.core_driver_size
);
29225 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->in
.core_driver_dependencies
);
29227 ndr_print_string(ndr
, "core_driver_dependencies", r
->in
.core_driver_dependencies
);
29229 ndr_print_uint32(ndr
, "core_printer_driver_count", r
->in
.core_printer_driver_count
);
29232 if (flags
& NDR_OUT
) {
29233 ndr_print_struct(ndr
, "out", "spoolss_GetCorePrinterDrivers");
29235 ndr_print_ptr(ndr
, "core_printer_drivers", r
->out
.core_printer_drivers
);
29237 ndr
->print(ndr
, "%s: ARRAY(%d)", "core_printer_drivers", (int)r
->in
.core_printer_driver_count
);
29239 for (cntr_core_printer_drivers_1
=0;cntr_core_printer_drivers_1
<r
->in
.core_printer_driver_count
;cntr_core_printer_drivers_1
++) {
29241 if (asprintf(&idx_1
, "[%d]", cntr_core_printer_drivers_1
) != -1) {
29242 ndr_print_spoolss_CorePrinterDriver(ndr
, "core_printer_drivers", &r
->out
.core_printer_drivers
[cntr_core_printer_drivers_1
]);
29248 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29254 static enum ndr_err_code
ndr_push_spoolss_67(struct ndr_push
*ndr
, int flags
, const struct spoolss_67
*r
)
29256 if (flags
& NDR_IN
) {
29258 if (flags
& NDR_OUT
) {
29259 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29261 return NDR_ERR_SUCCESS
;
29264 static enum ndr_err_code
ndr_pull_spoolss_67(struct ndr_pull
*ndr
, int flags
, struct spoolss_67
*r
)
29266 if (flags
& NDR_IN
) {
29268 if (flags
& NDR_OUT
) {
29269 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29271 return NDR_ERR_SUCCESS
;
29274 _PUBLIC_
void ndr_print_spoolss_67(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_67
*r
)
29276 ndr_print_struct(ndr
, name
, "spoolss_67");
29278 if (flags
& NDR_SET_VALUES
) {
29279 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29281 if (flags
& NDR_IN
) {
29282 ndr_print_struct(ndr
, "in", "spoolss_67");
29286 if (flags
& NDR_OUT
) {
29287 ndr_print_struct(ndr
, "out", "spoolss_67");
29289 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29295 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverPackagePath
*r
)
29297 if (flags
& NDR_IN
) {
29298 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
29299 if (r
->in
.servername
) {
29300 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
29301 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29302 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
29303 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29305 if (r
->in
.architecture
== NULL
) {
29306 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29308 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
29309 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29310 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
29311 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29312 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.language
));
29313 if (r
->in
.language
) {
29314 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.language
, CH_UTF16
)));
29315 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29316 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.language
, CH_UTF16
)));
29317 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.language
, ndr_charset_length(r
->in
.language
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
29319 if (r
->in
.package_id
== NULL
) {
29320 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29322 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.package_id
, CH_UTF16
)));
29323 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, 0));
29324 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.package_id
, CH_UTF16
)));
29325 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
));
29326 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.driver_package_cab
));
29327 if (r
->in
.driver_package_cab
) {
29328 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
29329 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab
, r
->in
.driver_package_cab_size
, sizeof(uint16_t), CH_UTF16
));
29331 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
29333 if (flags
& NDR_OUT
) {
29334 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.driver_package_cab
));
29335 if (r
->out
.driver_package_cab
) {
29336 NDR_CHECK(ndr_push_uint3264(ndr
, NDR_SCALARS
, r
->in
.driver_package_cab_size
));
29337 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.driver_package_cab
, r
->in
.driver_package_cab_size
, sizeof(uint16_t), CH_UTF16
));
29339 if (r
->out
.required
== NULL
) {
29340 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
29342 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.required
));
29343 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29345 return NDR_ERR_SUCCESS
;
29348 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverPackagePath
*r
)
29350 uint32_t _ptr_servername
;
29351 uint32_t _ptr_language
;
29352 uint32_t _ptr_driver_package_cab
;
29353 TALLOC_CTX
*_mem_save_servername_0
;
29354 TALLOC_CTX
*_mem_save_language_0
;
29355 TALLOC_CTX
*_mem_save_driver_package_cab_0
;
29356 TALLOC_CTX
*_mem_save_required_0
;
29357 if (flags
& NDR_IN
) {
29358 ZERO_STRUCT(r
->out
);
29360 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
29361 if (_ptr_servername
) {
29362 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
29364 r
->in
.servername
= NULL
;
29366 if (r
->in
.servername
) {
29367 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29368 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
29369 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
29370 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
29371 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
29372 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
));
29374 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
29375 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
29376 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
29378 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
29379 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
29380 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
29381 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
));
29383 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
29384 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
29385 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_language
));
29386 if (_ptr_language
) {
29387 NDR_PULL_ALLOC(ndr
, r
->in
.language
);
29389 r
->in
.language
= NULL
;
29391 if (r
->in
.language
) {
29392 _mem_save_language_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29393 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.language
, 0);
29394 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.language
));
29395 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.language
));
29396 if (ndr_get_array_length(ndr
, &r
->in
.language
) > ndr_get_array_size(ndr
, &r
->in
.language
)) {
29397 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
));
29399 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.language
), sizeof(uint16_t)));
29400 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.language
, ndr_get_array_length(ndr
, &r
->in
.language
), sizeof(uint16_t), CH_UTF16
));
29401 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_language_0
, 0);
29403 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.package_id
));
29404 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.package_id
));
29405 if (ndr_get_array_length(ndr
, &r
->in
.package_id
) > ndr_get_array_size(ndr
, &r
->in
.package_id
)) {
29406 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
));
29408 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.package_id
), sizeof(uint16_t)));
29409 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
));
29410 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_package_cab
));
29411 if (_ptr_driver_package_cab
) {
29412 NDR_PULL_ALLOC(ndr
, r
->in
.driver_package_cab
);
29414 r
->in
.driver_package_cab
= NULL
;
29416 if (r
->in
.driver_package_cab
) {
29417 _mem_save_driver_package_cab_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29418 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.driver_package_cab
, 0);
29419 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver_package_cab
));
29420 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
));
29421 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_package_cab_0
, 0);
29423 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.driver_package_cab_size
));
29424 NDR_PULL_ALLOC(ndr
, r
->out
.required
);
29425 ZERO_STRUCTP(r
->out
.required
);
29426 if (r
->in
.driver_package_cab
) {
29427 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.driver_package_cab
, r
->in
.driver_package_cab_size
));
29430 if (flags
& NDR_OUT
) {
29431 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_package_cab
));
29432 if (_ptr_driver_package_cab
) {
29433 NDR_PULL_ALLOC(ndr
, r
->out
.driver_package_cab
);
29435 r
->out
.driver_package_cab
= NULL
;
29437 if (r
->out
.driver_package_cab
) {
29438 _mem_save_driver_package_cab_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29439 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.driver_package_cab
, 0);
29440 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.driver_package_cab
));
29441 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
));
29442 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_package_cab_0
, 0);
29444 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
29445 NDR_PULL_ALLOC(ndr
, r
->out
.required
);
29447 _mem_save_required_0
= NDR_PULL_GET_MEM_CTX(ndr
);
29448 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.required
, LIBNDR_FLAG_REF_ALLOC
);
29449 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.required
));
29450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_required_0
, LIBNDR_FLAG_REF_ALLOC
);
29451 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29452 if (r
->out
.driver_package_cab
) {
29453 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.driver_package_cab
, r
->in
.driver_package_cab_size
));
29456 return NDR_ERR_SUCCESS
;
29459 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverPackagePath
*r
)
29461 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverPackagePath");
29463 if (flags
& NDR_SET_VALUES
) {
29464 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29466 if (flags
& NDR_IN
) {
29467 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverPackagePath");
29469 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
29471 if (r
->in
.servername
) {
29472 ndr_print_string(ndr
, "servername", r
->in
.servername
);
29475 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
29477 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
29479 ndr_print_ptr(ndr
, "language", r
->in
.language
);
29481 if (r
->in
.language
) {
29482 ndr_print_string(ndr
, "language", r
->in
.language
);
29485 ndr_print_ptr(ndr
, "package_id", r
->in
.package_id
);
29487 ndr_print_string(ndr
, "package_id", r
->in
.package_id
);
29489 ndr_print_ptr(ndr
, "driver_package_cab", r
->in
.driver_package_cab
);
29491 if (r
->in
.driver_package_cab
) {
29492 ndr_print_string(ndr
, "driver_package_cab", r
->in
.driver_package_cab
);
29495 ndr_print_uint32(ndr
, "driver_package_cab_size", r
->in
.driver_package_cab_size
);
29498 if (flags
& NDR_OUT
) {
29499 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverPackagePath");
29501 ndr_print_ptr(ndr
, "driver_package_cab", r
->out
.driver_package_cab
);
29503 if (r
->out
.driver_package_cab
) {
29504 ndr_print_string(ndr
, "driver_package_cab", r
->out
.driver_package_cab
);
29507 ndr_print_ptr(ndr
, "required", r
->out
.required
);
29509 ndr_print_uint32(ndr
, "required", *r
->out
.required
);
29511 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29517 static enum ndr_err_code
ndr_push_spoolss_69(struct ndr_push
*ndr
, int flags
, const struct spoolss_69
*r
)
29519 if (flags
& NDR_IN
) {
29521 if (flags
& NDR_OUT
) {
29522 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29524 return NDR_ERR_SUCCESS
;
29527 static enum ndr_err_code
ndr_pull_spoolss_69(struct ndr_pull
*ndr
, int flags
, struct spoolss_69
*r
)
29529 if (flags
& NDR_IN
) {
29531 if (flags
& NDR_OUT
) {
29532 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29534 return NDR_ERR_SUCCESS
;
29537 _PUBLIC_
void ndr_print_spoolss_69(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_69
*r
)
29539 ndr_print_struct(ndr
, name
, "spoolss_69");
29541 if (flags
& NDR_SET_VALUES
) {
29542 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29544 if (flags
& NDR_IN
) {
29545 ndr_print_struct(ndr
, "in", "spoolss_69");
29549 if (flags
& NDR_OUT
) {
29550 ndr_print_struct(ndr
, "out", "spoolss_69");
29552 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29558 static enum ndr_err_code
ndr_push_spoolss_6a(struct ndr_push
*ndr
, int flags
, const struct spoolss_6a
*r
)
29560 if (flags
& NDR_IN
) {
29562 if (flags
& NDR_OUT
) {
29563 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29565 return NDR_ERR_SUCCESS
;
29568 static enum ndr_err_code
ndr_pull_spoolss_6a(struct ndr_pull
*ndr
, int flags
, struct spoolss_6a
*r
)
29570 if (flags
& NDR_IN
) {
29572 if (flags
& NDR_OUT
) {
29573 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29575 return NDR_ERR_SUCCESS
;
29578 _PUBLIC_
void ndr_print_spoolss_6a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6a
*r
)
29580 ndr_print_struct(ndr
, name
, "spoolss_6a");
29582 if (flags
& NDR_SET_VALUES
) {
29583 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29585 if (flags
& NDR_IN
) {
29586 ndr_print_struct(ndr
, "in", "spoolss_6a");
29590 if (flags
& NDR_OUT
) {
29591 ndr_print_struct(ndr
, "out", "spoolss_6a");
29593 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29599 static enum ndr_err_code
ndr_push_spoolss_6b(struct ndr_push
*ndr
, int flags
, const struct spoolss_6b
*r
)
29601 if (flags
& NDR_IN
) {
29603 if (flags
& NDR_OUT
) {
29604 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29606 return NDR_ERR_SUCCESS
;
29609 static enum ndr_err_code
ndr_pull_spoolss_6b(struct ndr_pull
*ndr
, int flags
, struct spoolss_6b
*r
)
29611 if (flags
& NDR_IN
) {
29613 if (flags
& NDR_OUT
) {
29614 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29616 return NDR_ERR_SUCCESS
;
29619 _PUBLIC_
void ndr_print_spoolss_6b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6b
*r
)
29621 ndr_print_struct(ndr
, name
, "spoolss_6b");
29623 if (flags
& NDR_SET_VALUES
) {
29624 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29626 if (flags
& NDR_IN
) {
29627 ndr_print_struct(ndr
, "in", "spoolss_6b");
29631 if (flags
& NDR_OUT
) {
29632 ndr_print_struct(ndr
, "out", "spoolss_6b");
29634 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29640 static enum ndr_err_code
ndr_push_spoolss_6c(struct ndr_push
*ndr
, int flags
, const struct spoolss_6c
*r
)
29642 if (flags
& NDR_IN
) {
29644 if (flags
& NDR_OUT
) {
29645 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29647 return NDR_ERR_SUCCESS
;
29650 static enum ndr_err_code
ndr_pull_spoolss_6c(struct ndr_pull
*ndr
, int flags
, struct spoolss_6c
*r
)
29652 if (flags
& NDR_IN
) {
29654 if (flags
& NDR_OUT
) {
29655 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29657 return NDR_ERR_SUCCESS
;
29660 _PUBLIC_
void ndr_print_spoolss_6c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6c
*r
)
29662 ndr_print_struct(ndr
, name
, "spoolss_6c");
29664 if (flags
& NDR_SET_VALUES
) {
29665 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29667 if (flags
& NDR_IN
) {
29668 ndr_print_struct(ndr
, "in", "spoolss_6c");
29672 if (flags
& NDR_OUT
) {
29673 ndr_print_struct(ndr
, "out", "spoolss_6c");
29675 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29681 static enum ndr_err_code
ndr_push_spoolss_6d(struct ndr_push
*ndr
, int flags
, const struct spoolss_6d
*r
)
29683 if (flags
& NDR_IN
) {
29685 if (flags
& NDR_OUT
) {
29686 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
29688 return NDR_ERR_SUCCESS
;
29691 static enum ndr_err_code
ndr_pull_spoolss_6d(struct ndr_pull
*ndr
, int flags
, struct spoolss_6d
*r
)
29693 if (flags
& NDR_IN
) {
29695 if (flags
& NDR_OUT
) {
29696 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
29698 return NDR_ERR_SUCCESS
;
29701 _PUBLIC_
void ndr_print_spoolss_6d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_6d
*r
)
29703 ndr_print_struct(ndr
, name
, "spoolss_6d");
29705 if (flags
& NDR_SET_VALUES
) {
29706 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
29708 if (flags
& NDR_IN
) {
29709 ndr_print_struct(ndr
, "in", "spoolss_6d");
29713 if (flags
& NDR_OUT
) {
29714 ndr_print_struct(ndr
, "out", "spoolss_6d");
29716 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
29722 static const struct ndr_interface_call spoolss_calls
[] = {
29724 "spoolss_EnumPrinters",
29725 sizeof(struct spoolss_EnumPrinters
),
29726 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinters
,
29727 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinters
,
29728 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinters
,
29732 "spoolss_OpenPrinter",
29733 sizeof(struct spoolss_OpenPrinter
),
29734 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinter
,
29735 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinter
,
29736 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinter
,
29741 sizeof(struct spoolss_SetJob
),
29742 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetJob
,
29743 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetJob
,
29744 (ndr_print_function_t
) ndr_print_spoolss_SetJob
,
29749 sizeof(struct spoolss_GetJob
),
29750 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetJob
,
29751 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetJob
,
29752 (ndr_print_function_t
) ndr_print_spoolss_GetJob
,
29756 "spoolss_EnumJobs",
29757 sizeof(struct spoolss_EnumJobs
),
29758 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumJobs
,
29759 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumJobs
,
29760 (ndr_print_function_t
) ndr_print_spoolss_EnumJobs
,
29764 "spoolss_AddPrinter",
29765 sizeof(struct spoolss_AddPrinter
),
29766 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinter
,
29767 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinter
,
29768 (ndr_print_function_t
) ndr_print_spoolss_AddPrinter
,
29772 "spoolss_DeletePrinter",
29773 sizeof(struct spoolss_DeletePrinter
),
29774 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinter
,
29775 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinter
,
29776 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinter
,
29780 "spoolss_SetPrinter",
29781 sizeof(struct spoolss_SetPrinter
),
29782 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinter
,
29783 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinter
,
29784 (ndr_print_function_t
) ndr_print_spoolss_SetPrinter
,
29788 "spoolss_GetPrinter",
29789 sizeof(struct spoolss_GetPrinter
),
29790 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinter
,
29791 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinter
,
29792 (ndr_print_function_t
) ndr_print_spoolss_GetPrinter
,
29796 "spoolss_AddPrinterDriver",
29797 sizeof(struct spoolss_AddPrinterDriver
),
29798 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriver
,
29799 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriver
,
29800 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriver
,
29804 "spoolss_EnumPrinterDrivers",
29805 sizeof(struct spoolss_EnumPrinterDrivers
),
29806 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDrivers
,
29807 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDrivers
,
29808 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDrivers
,
29812 "spoolss_GetPrinterDriver",
29813 sizeof(struct spoolss_GetPrinterDriver
),
29814 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver
,
29815 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver
,
29816 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver
,
29820 "spoolss_GetPrinterDriverDirectory",
29821 sizeof(struct spoolss_GetPrinterDriverDirectory
),
29822 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverDirectory
,
29823 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverDirectory
,
29824 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverDirectory
,
29828 "spoolss_DeletePrinterDriver",
29829 sizeof(struct spoolss_DeletePrinterDriver
),
29830 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriver
,
29831 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriver
,
29832 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriver
,
29836 "spoolss_AddPrintProcessor",
29837 sizeof(struct spoolss_AddPrintProcessor
),
29838 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProcessor
,
29839 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProcessor
,
29840 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProcessor
,
29844 "spoolss_EnumPrintProcessors",
29845 sizeof(struct spoolss_EnumPrintProcessors
),
29846 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcessors
,
29847 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcessors
,
29848 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcessors
,
29852 "spoolss_GetPrintProcessorDirectory",
29853 sizeof(struct spoolss_GetPrintProcessorDirectory
),
29854 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrintProcessorDirectory
,
29855 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrintProcessorDirectory
,
29856 (ndr_print_function_t
) ndr_print_spoolss_GetPrintProcessorDirectory
,
29860 "spoolss_StartDocPrinter",
29861 sizeof(struct spoolss_StartDocPrinter
),
29862 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartDocPrinter
,
29863 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartDocPrinter
,
29864 (ndr_print_function_t
) ndr_print_spoolss_StartDocPrinter
,
29868 "spoolss_StartPagePrinter",
29869 sizeof(struct spoolss_StartPagePrinter
),
29870 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartPagePrinter
,
29871 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartPagePrinter
,
29872 (ndr_print_function_t
) ndr_print_spoolss_StartPagePrinter
,
29876 "spoolss_WritePrinter",
29877 sizeof(struct spoolss_WritePrinter
),
29878 (ndr_push_flags_fn_t
) ndr_push_spoolss_WritePrinter
,
29879 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WritePrinter
,
29880 (ndr_print_function_t
) ndr_print_spoolss_WritePrinter
,
29884 "spoolss_EndPagePrinter",
29885 sizeof(struct spoolss_EndPagePrinter
),
29886 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndPagePrinter
,
29887 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndPagePrinter
,
29888 (ndr_print_function_t
) ndr_print_spoolss_EndPagePrinter
,
29892 "spoolss_AbortPrinter",
29893 sizeof(struct spoolss_AbortPrinter
),
29894 (ndr_push_flags_fn_t
) ndr_push_spoolss_AbortPrinter
,
29895 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AbortPrinter
,
29896 (ndr_print_function_t
) ndr_print_spoolss_AbortPrinter
,
29900 "spoolss_ReadPrinter",
29901 sizeof(struct spoolss_ReadPrinter
),
29902 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReadPrinter
,
29903 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReadPrinter
,
29904 (ndr_print_function_t
) ndr_print_spoolss_ReadPrinter
,
29908 "spoolss_EndDocPrinter",
29909 sizeof(struct spoolss_EndDocPrinter
),
29910 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndDocPrinter
,
29911 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndDocPrinter
,
29912 (ndr_print_function_t
) ndr_print_spoolss_EndDocPrinter
,
29917 sizeof(struct spoolss_AddJob
),
29918 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddJob
,
29919 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddJob
,
29920 (ndr_print_function_t
) ndr_print_spoolss_AddJob
,
29924 "spoolss_ScheduleJob",
29925 sizeof(struct spoolss_ScheduleJob
),
29926 (ndr_push_flags_fn_t
) ndr_push_spoolss_ScheduleJob
,
29927 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ScheduleJob
,
29928 (ndr_print_function_t
) ndr_print_spoolss_ScheduleJob
,
29932 "spoolss_GetPrinterData",
29933 sizeof(struct spoolss_GetPrinterData
),
29934 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterData
,
29935 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterData
,
29936 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterData
,
29940 "spoolss_SetPrinterData",
29941 sizeof(struct spoolss_SetPrinterData
),
29942 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterData
,
29943 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterData
,
29944 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterData
,
29948 "spoolss_WaitForPrinterChange",
29949 sizeof(struct spoolss_WaitForPrinterChange
),
29950 (ndr_push_flags_fn_t
) ndr_push_spoolss_WaitForPrinterChange
,
29951 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WaitForPrinterChange
,
29952 (ndr_print_function_t
) ndr_print_spoolss_WaitForPrinterChange
,
29956 "spoolss_ClosePrinter",
29957 sizeof(struct spoolss_ClosePrinter
),
29958 (ndr_push_flags_fn_t
) ndr_push_spoolss_ClosePrinter
,
29959 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ClosePrinter
,
29960 (ndr_print_function_t
) ndr_print_spoolss_ClosePrinter
,
29965 sizeof(struct spoolss_AddForm
),
29966 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddForm
,
29967 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddForm
,
29968 (ndr_print_function_t
) ndr_print_spoolss_AddForm
,
29972 "spoolss_DeleteForm",
29973 sizeof(struct spoolss_DeleteForm
),
29974 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteForm
,
29975 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteForm
,
29976 (ndr_print_function_t
) ndr_print_spoolss_DeleteForm
,
29981 sizeof(struct spoolss_GetForm
),
29982 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetForm
,
29983 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetForm
,
29984 (ndr_print_function_t
) ndr_print_spoolss_GetForm
,
29989 sizeof(struct spoolss_SetForm
),
29990 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetForm
,
29991 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetForm
,
29992 (ndr_print_function_t
) ndr_print_spoolss_SetForm
,
29996 "spoolss_EnumForms",
29997 sizeof(struct spoolss_EnumForms
),
29998 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumForms
,
29999 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumForms
,
30000 (ndr_print_function_t
) ndr_print_spoolss_EnumForms
,
30004 "spoolss_EnumPorts",
30005 sizeof(struct spoolss_EnumPorts
),
30006 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPorts
,
30007 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPorts
,
30008 (ndr_print_function_t
) ndr_print_spoolss_EnumPorts
,
30012 "spoolss_EnumMonitors",
30013 sizeof(struct spoolss_EnumMonitors
),
30014 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumMonitors
,
30015 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumMonitors
,
30016 (ndr_print_function_t
) ndr_print_spoolss_EnumMonitors
,
30021 sizeof(struct spoolss_AddPort
),
30022 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPort
,
30023 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPort
,
30024 (ndr_print_function_t
) ndr_print_spoolss_AddPort
,
30028 "spoolss_ConfigurePort",
30029 sizeof(struct spoolss_ConfigurePort
),
30030 (ndr_push_flags_fn_t
) ndr_push_spoolss_ConfigurePort
,
30031 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ConfigurePort
,
30032 (ndr_print_function_t
) ndr_print_spoolss_ConfigurePort
,
30036 "spoolss_DeletePort",
30037 sizeof(struct spoolss_DeletePort
),
30038 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePort
,
30039 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePort
,
30040 (ndr_print_function_t
) ndr_print_spoolss_DeletePort
,
30044 "spoolss_CreatePrinterIC",
30045 sizeof(struct spoolss_CreatePrinterIC
),
30046 (ndr_push_flags_fn_t
) ndr_push_spoolss_CreatePrinterIC
,
30047 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_CreatePrinterIC
,
30048 (ndr_print_function_t
) ndr_print_spoolss_CreatePrinterIC
,
30052 "spoolss_PlayGDIScriptOnPrinterIC",
30053 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC
),
30054 (ndr_push_flags_fn_t
) ndr_push_spoolss_PlayGDIScriptOnPrinterIC
,
30055 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC
,
30056 (ndr_print_function_t
) ndr_print_spoolss_PlayGDIScriptOnPrinterIC
,
30060 "spoolss_DeletePrinterIC",
30061 sizeof(struct spoolss_DeletePrinterIC
),
30062 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterIC
,
30063 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterIC
,
30064 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterIC
,
30068 "spoolss_AddPrinterConnection",
30069 sizeof(struct spoolss_AddPrinterConnection
),
30070 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterConnection
,
30071 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterConnection
,
30072 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterConnection
,
30076 "spoolss_DeletePrinterConnection",
30077 sizeof(struct spoolss_DeletePrinterConnection
),
30078 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterConnection
,
30079 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterConnection
,
30080 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterConnection
,
30084 "spoolss_PrinterMessageBox",
30085 sizeof(struct spoolss_PrinterMessageBox
),
30086 (ndr_push_flags_fn_t
) ndr_push_spoolss_PrinterMessageBox
,
30087 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PrinterMessageBox
,
30088 (ndr_print_function_t
) ndr_print_spoolss_PrinterMessageBox
,
30092 "spoolss_AddMonitor",
30093 sizeof(struct spoolss_AddMonitor
),
30094 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddMonitor
,
30095 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddMonitor
,
30096 (ndr_print_function_t
) ndr_print_spoolss_AddMonitor
,
30100 "spoolss_DeleteMonitor",
30101 sizeof(struct spoolss_DeleteMonitor
),
30102 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteMonitor
,
30103 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteMonitor
,
30104 (ndr_print_function_t
) ndr_print_spoolss_DeleteMonitor
,
30108 "spoolss_DeletePrintProcessor",
30109 sizeof(struct spoolss_DeletePrintProcessor
),
30110 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProcessor
,
30111 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProcessor
,
30112 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProcessor
,
30116 "spoolss_AddPrintProvidor",
30117 sizeof(struct spoolss_AddPrintProvidor
),
30118 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProvidor
,
30119 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProvidor
,
30120 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProvidor
,
30124 "spoolss_DeletePrintProvidor",
30125 sizeof(struct spoolss_DeletePrintProvidor
),
30126 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProvidor
,
30127 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProvidor
,
30128 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProvidor
,
30132 "spoolss_EnumPrintProcDataTypes",
30133 sizeof(struct spoolss_EnumPrintProcDataTypes
),
30134 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcDataTypes
,
30135 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcDataTypes
,
30136 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcDataTypes
,
30140 "spoolss_ResetPrinter",
30141 sizeof(struct spoolss_ResetPrinter
),
30142 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinter
,
30143 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinter
,
30144 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinter
,
30148 "spoolss_GetPrinterDriver2",
30149 sizeof(struct spoolss_GetPrinterDriver2
),
30150 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver2
,
30151 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver2
,
30152 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver2
,
30156 "spoolss_FindFirstPrinterChangeNotification",
30157 sizeof(struct spoolss_FindFirstPrinterChangeNotification
),
30158 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindFirstPrinterChangeNotification
,
30159 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindFirstPrinterChangeNotification
,
30160 (ndr_print_function_t
) ndr_print_spoolss_FindFirstPrinterChangeNotification
,
30164 "spoolss_FindNextPrinterChangeNotification",
30165 sizeof(struct spoolss_FindNextPrinterChangeNotification
),
30166 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindNextPrinterChangeNotification
,
30167 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindNextPrinterChangeNotification
,
30168 (ndr_print_function_t
) ndr_print_spoolss_FindNextPrinterChangeNotification
,
30172 "spoolss_FindClosePrinterNotify",
30173 sizeof(struct spoolss_FindClosePrinterNotify
),
30174 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindClosePrinterNotify
,
30175 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindClosePrinterNotify
,
30176 (ndr_print_function_t
) ndr_print_spoolss_FindClosePrinterNotify
,
30180 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
30181 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld
),
30182 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
30183 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
30184 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
30188 "spoolss_ReplyOpenPrinter",
30189 sizeof(struct spoolss_ReplyOpenPrinter
),
30190 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyOpenPrinter
,
30191 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyOpenPrinter
,
30192 (ndr_print_function_t
) ndr_print_spoolss_ReplyOpenPrinter
,
30196 "spoolss_RouterReplyPrinter",
30197 sizeof(struct spoolss_RouterReplyPrinter
),
30198 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinter
,
30199 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinter
,
30200 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinter
,
30204 "spoolss_ReplyClosePrinter",
30205 sizeof(struct spoolss_ReplyClosePrinter
),
30206 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyClosePrinter
,
30207 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyClosePrinter
,
30208 (ndr_print_function_t
) ndr_print_spoolss_ReplyClosePrinter
,
30212 "spoolss_AddPortEx",
30213 sizeof(struct spoolss_AddPortEx
),
30214 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPortEx
,
30215 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPortEx
,
30216 (ndr_print_function_t
) ndr_print_spoolss_AddPortEx
,
30220 "spoolss_RouterFindFirstPrinterChangeNotification",
30221 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification
),
30222 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification
,
30223 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification
,
30224 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification
,
30228 "spoolss_SpoolerInit",
30229 sizeof(struct spoolss_SpoolerInit
),
30230 (ndr_push_flags_fn_t
) ndr_push_spoolss_SpoolerInit
,
30231 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SpoolerInit
,
30232 (ndr_print_function_t
) ndr_print_spoolss_SpoolerInit
,
30236 "spoolss_ResetPrinterEx",
30237 sizeof(struct spoolss_ResetPrinterEx
),
30238 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinterEx
,
30239 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinterEx
,
30240 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinterEx
,
30244 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
30245 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
),
30246 (ndr_push_flags_fn_t
) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
30247 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
30248 (ndr_print_function_t
) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
30252 "spoolss_RouterReplyPrinterEx",
30253 sizeof(struct spoolss_RouterReplyPrinterEx
),
30254 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinterEx
,
30255 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinterEx
,
30256 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinterEx
,
30260 "spoolss_RouterRefreshPrinterChangeNotify",
30261 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify
),
30262 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterRefreshPrinterChangeNotify
,
30263 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify
,
30264 (ndr_print_function_t
) ndr_print_spoolss_RouterRefreshPrinterChangeNotify
,
30269 sizeof(struct spoolss_44
),
30270 (ndr_push_flags_fn_t
) ndr_push_spoolss_44
,
30271 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_44
,
30272 (ndr_print_function_t
) ndr_print_spoolss_44
,
30276 "spoolss_OpenPrinterEx",
30277 sizeof(struct spoolss_OpenPrinterEx
),
30278 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinterEx
,
30279 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinterEx
,
30280 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinterEx
,
30284 "spoolss_AddPrinterEx",
30285 sizeof(struct spoolss_AddPrinterEx
),
30286 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterEx
,
30287 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterEx
,
30288 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterEx
,
30293 sizeof(struct spoolss_47
),
30294 (ndr_push_flags_fn_t
) ndr_push_spoolss_47
,
30295 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_47
,
30296 (ndr_print_function_t
) ndr_print_spoolss_47
,
30300 "spoolss_EnumPrinterData",
30301 sizeof(struct spoolss_EnumPrinterData
),
30302 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterData
,
30303 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterData
,
30304 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterData
,
30308 "spoolss_DeletePrinterData",
30309 sizeof(struct spoolss_DeletePrinterData
),
30310 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterData
,
30311 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterData
,
30312 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterData
,
30317 sizeof(struct spoolss_4a
),
30318 (ndr_push_flags_fn_t
) ndr_push_spoolss_4a
,
30319 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4a
,
30320 (ndr_print_function_t
) ndr_print_spoolss_4a
,
30325 sizeof(struct spoolss_4b
),
30326 (ndr_push_flags_fn_t
) ndr_push_spoolss_4b
,
30327 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4b
,
30328 (ndr_print_function_t
) ndr_print_spoolss_4b
,
30333 sizeof(struct spoolss_4c
),
30334 (ndr_push_flags_fn_t
) ndr_push_spoolss_4c
,
30335 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4c
,
30336 (ndr_print_function_t
) ndr_print_spoolss_4c
,
30340 "spoolss_SetPrinterDataEx",
30341 sizeof(struct spoolss_SetPrinterDataEx
),
30342 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterDataEx
,
30343 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterDataEx
,
30344 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterDataEx
,
30348 "spoolss_GetPrinterDataEx",
30349 sizeof(struct spoolss_GetPrinterDataEx
),
30350 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDataEx
,
30351 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDataEx
,
30352 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDataEx
,
30356 "spoolss_EnumPrinterDataEx",
30357 sizeof(struct spoolss_EnumPrinterDataEx
),
30358 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDataEx
,
30359 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDataEx
,
30360 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDataEx
,
30364 "spoolss_EnumPrinterKey",
30365 sizeof(struct spoolss_EnumPrinterKey
),
30366 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterKey
,
30367 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterKey
,
30368 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterKey
,
30372 "spoolss_DeletePrinterDataEx",
30373 sizeof(struct spoolss_DeletePrinterDataEx
),
30374 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDataEx
,
30375 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDataEx
,
30376 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDataEx
,
30380 "spoolss_DeletePrinterKey",
30381 sizeof(struct spoolss_DeletePrinterKey
),
30382 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterKey
,
30383 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterKey
,
30384 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterKey
,
30389 sizeof(struct spoolss_53
),
30390 (ndr_push_flags_fn_t
) ndr_push_spoolss_53
,
30391 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_53
,
30392 (ndr_print_function_t
) ndr_print_spoolss_53
,
30396 "spoolss_DeletePrinterDriverEx",
30397 sizeof(struct spoolss_DeletePrinterDriverEx
),
30398 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriverEx
,
30399 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriverEx
,
30400 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriverEx
,
30405 sizeof(struct spoolss_55
),
30406 (ndr_push_flags_fn_t
) ndr_push_spoolss_55
,
30407 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_55
,
30408 (ndr_print_function_t
) ndr_print_spoolss_55
,
30413 sizeof(struct spoolss_56
),
30414 (ndr_push_flags_fn_t
) ndr_push_spoolss_56
,
30415 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_56
,
30416 (ndr_print_function_t
) ndr_print_spoolss_56
,
30421 sizeof(struct spoolss_57
),
30422 (ndr_push_flags_fn_t
) ndr_push_spoolss_57
,
30423 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_57
,
30424 (ndr_print_function_t
) ndr_print_spoolss_57
,
30429 sizeof(struct spoolss_XcvData
),
30430 (ndr_push_flags_fn_t
) ndr_push_spoolss_XcvData
,
30431 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_XcvData
,
30432 (ndr_print_function_t
) ndr_print_spoolss_XcvData
,
30436 "spoolss_AddPrinterDriverEx",
30437 sizeof(struct spoolss_AddPrinterDriverEx
),
30438 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriverEx
,
30439 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriverEx
,
30440 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriverEx
,
30445 sizeof(struct spoolss_5a
),
30446 (ndr_push_flags_fn_t
) ndr_push_spoolss_5a
,
30447 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5a
,
30448 (ndr_print_function_t
) ndr_print_spoolss_5a
,
30453 sizeof(struct spoolss_5b
),
30454 (ndr_push_flags_fn_t
) ndr_push_spoolss_5b
,
30455 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5b
,
30456 (ndr_print_function_t
) ndr_print_spoolss_5b
,
30461 sizeof(struct spoolss_5c
),
30462 (ndr_push_flags_fn_t
) ndr_push_spoolss_5c
,
30463 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5c
,
30464 (ndr_print_function_t
) ndr_print_spoolss_5c
,
30469 sizeof(struct spoolss_5d
),
30470 (ndr_push_flags_fn_t
) ndr_push_spoolss_5d
,
30471 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5d
,
30472 (ndr_print_function_t
) ndr_print_spoolss_5d
,
30477 sizeof(struct spoolss_5e
),
30478 (ndr_push_flags_fn_t
) ndr_push_spoolss_5e
,
30479 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5e
,
30480 (ndr_print_function_t
) ndr_print_spoolss_5e
,
30485 sizeof(struct spoolss_5f
),
30486 (ndr_push_flags_fn_t
) ndr_push_spoolss_5f
,
30487 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5f
,
30488 (ndr_print_function_t
) ndr_print_spoolss_5f
,
30493 sizeof(struct spoolss_60
),
30494 (ndr_push_flags_fn_t
) ndr_push_spoolss_60
,
30495 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_60
,
30496 (ndr_print_function_t
) ndr_print_spoolss_60
,
30501 sizeof(struct spoolss_61
),
30502 (ndr_push_flags_fn_t
) ndr_push_spoolss_61
,
30503 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_61
,
30504 (ndr_print_function_t
) ndr_print_spoolss_61
,
30509 sizeof(struct spoolss_62
),
30510 (ndr_push_flags_fn_t
) ndr_push_spoolss_62
,
30511 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_62
,
30512 (ndr_print_function_t
) ndr_print_spoolss_62
,
30517 sizeof(struct spoolss_63
),
30518 (ndr_push_flags_fn_t
) ndr_push_spoolss_63
,
30519 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_63
,
30520 (ndr_print_function_t
) ndr_print_spoolss_63
,
30525 sizeof(struct spoolss_64
),
30526 (ndr_push_flags_fn_t
) ndr_push_spoolss_64
,
30527 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_64
,
30528 (ndr_print_function_t
) ndr_print_spoolss_64
,
30533 sizeof(struct spoolss_65
),
30534 (ndr_push_flags_fn_t
) ndr_push_spoolss_65
,
30535 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_65
,
30536 (ndr_print_function_t
) ndr_print_spoolss_65
,
30540 "spoolss_GetCorePrinterDrivers",
30541 sizeof(struct spoolss_GetCorePrinterDrivers
),
30542 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetCorePrinterDrivers
,
30543 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetCorePrinterDrivers
,
30544 (ndr_print_function_t
) ndr_print_spoolss_GetCorePrinterDrivers
,
30549 sizeof(struct spoolss_67
),
30550 (ndr_push_flags_fn_t
) ndr_push_spoolss_67
,
30551 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_67
,
30552 (ndr_print_function_t
) ndr_print_spoolss_67
,
30556 "spoolss_GetPrinterDriverPackagePath",
30557 sizeof(struct spoolss_GetPrinterDriverPackagePath
),
30558 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverPackagePath
,
30559 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverPackagePath
,
30560 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverPackagePath
,
30565 sizeof(struct spoolss_69
),
30566 (ndr_push_flags_fn_t
) ndr_push_spoolss_69
,
30567 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_69
,
30568 (ndr_print_function_t
) ndr_print_spoolss_69
,
30573 sizeof(struct spoolss_6a
),
30574 (ndr_push_flags_fn_t
) ndr_push_spoolss_6a
,
30575 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6a
,
30576 (ndr_print_function_t
) ndr_print_spoolss_6a
,
30581 sizeof(struct spoolss_6b
),
30582 (ndr_push_flags_fn_t
) ndr_push_spoolss_6b
,
30583 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6b
,
30584 (ndr_print_function_t
) ndr_print_spoolss_6b
,
30589 sizeof(struct spoolss_6c
),
30590 (ndr_push_flags_fn_t
) ndr_push_spoolss_6c
,
30591 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6c
,
30592 (ndr_print_function_t
) ndr_print_spoolss_6c
,
30597 sizeof(struct spoolss_6d
),
30598 (ndr_push_flags_fn_t
) ndr_push_spoolss_6d
,
30599 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_6d
,
30600 (ndr_print_function_t
) ndr_print_spoolss_6d
,
30603 { NULL
, 0, NULL
, NULL
, NULL
, false }
30606 static const char * const spoolss_endpoint_strings
[] = {
30607 "ncacn_np:[\\pipe\\spoolss]",
30610 static const struct ndr_interface_string_array spoolss_endpoints
= {
30612 .names
= spoolss_endpoint_strings
30615 static const char * const spoolss_authservice_strings
[] = {
30619 static const struct ndr_interface_string_array spoolss_authservices
= {
30621 .names
= spoolss_authservice_strings
30625 const struct ndr_interface_table ndr_table_spoolss
= {
30628 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
30629 NDR_SPOOLSS_VERSION
30631 .helpstring
= NDR_SPOOLSS_HELPSTRING
,
30633 .calls
= spoolss_calls
,
30634 .endpoints
= &spoolss_endpoints
,
30635 .authservices
= &spoolss_authservices