1 /* parser auto-generated by pidl */
4 #include "../librpc/gen_ndr/ndr_spoolss.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_security.h"
8 #include "librpc/gen_ndr/ndr_winreg.h"
9 static enum ndr_err_code
ndr_push_spoolss_Time(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_Time
*r
)
11 if (ndr_flags
& NDR_SCALARS
) {
12 NDR_CHECK(ndr_push_align(ndr
, 2));
13 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->year
));
14 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->month
));
15 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->day_of_week
));
16 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->day
));
17 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->hour
));
18 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->minute
));
19 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->second
));
20 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->millisecond
));
22 if (ndr_flags
& NDR_BUFFERS
) {
24 return NDR_ERR_SUCCESS
;
27 static enum ndr_err_code
ndr_pull_spoolss_Time(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Time
*r
)
29 if (ndr_flags
& NDR_SCALARS
) {
30 NDR_CHECK(ndr_pull_align(ndr
, 2));
31 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->year
));
32 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->month
));
33 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->day_of_week
));
34 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->day
));
35 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->hour
));
36 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->minute
));
37 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->second
));
38 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->millisecond
));
40 if (ndr_flags
& NDR_BUFFERS
) {
42 return NDR_ERR_SUCCESS
;
45 _PUBLIC_
void ndr_print_spoolss_Time(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Time
*r
)
47 ndr_print_struct(ndr
, name
, "spoolss_Time");
49 ndr_print_uint16(ndr
, "year", r
->year
);
50 ndr_print_uint16(ndr
, "month", r
->month
);
51 ndr_print_uint16(ndr
, "day_of_week", r
->day_of_week
);
52 ndr_print_uint16(ndr
, "day", r
->day
);
53 ndr_print_uint16(ndr
, "hour", r
->hour
);
54 ndr_print_uint16(ndr
, "minute", r
->minute
);
55 ndr_print_uint16(ndr
, "second", r
->second
);
56 ndr_print_uint16(ndr
, "millisecond", r
->millisecond
);
60 static size_t ndr_size_spoolss_Time(const struct spoolss_Time
*r
, struct smb_iconv_convenience
*ic
, int flags
)
62 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_Time
, ic
);
65 static enum ndr_err_code
ndr_push_spoolss_TimeCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_TimeCtr
*r
)
67 if (ndr_flags
& NDR_SCALARS
) {
68 NDR_CHECK(ndr_push_align(ndr
, 4));
69 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_Time(r
->time
, ndr
->iconv_convenience
, ndr
->flags
)));
70 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->time
));
72 if (ndr_flags
& NDR_BUFFERS
) {
74 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, r
->time
));
77 return NDR_ERR_SUCCESS
;
80 static enum ndr_err_code
ndr_pull_spoolss_TimeCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_TimeCtr
*r
)
83 TALLOC_CTX
*_mem_save_time_0
;
84 if (ndr_flags
& NDR_SCALARS
) {
85 NDR_CHECK(ndr_pull_align(ndr
, 4));
86 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
87 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_time
));
89 NDR_PULL_ALLOC(ndr
, r
->time
);
94 if (ndr_flags
& NDR_BUFFERS
) {
96 _mem_save_time_0
= NDR_PULL_GET_MEM_CTX(ndr
);
97 NDR_PULL_SET_MEM_CTX(ndr
, r
->time
, 0);
98 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, r
->time
));
99 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_time_0
, 0);
102 return NDR_ERR_SUCCESS
;
105 _PUBLIC_
void ndr_print_spoolss_TimeCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_TimeCtr
*r
)
107 ndr_print_struct(ndr
, name
, "spoolss_TimeCtr");
109 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?ndr_size_spoolss_Time(r
->time
, ndr
->iconv_convenience
, ndr
->flags
):r
->size
);
110 ndr_print_ptr(ndr
, "time", r
->time
);
113 ndr_print_spoolss_Time(ndr
, "time", r
->time
);
119 static enum ndr_err_code
ndr_push_spoolss_ProcessorArchitecture(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_ProcessorArchitecture r
)
121 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
122 return NDR_ERR_SUCCESS
;
125 static enum ndr_err_code
ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_ProcessorArchitecture
*r
)
128 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
130 return NDR_ERR_SUCCESS
;
133 _PUBLIC_
void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print
*ndr
, const char *name
, enum spoolss_ProcessorArchitecture r
)
135 const char *val
= NULL
;
138 case PROCESSOR_ARCHITECTURE_INTEL
: val
= "PROCESSOR_ARCHITECTURE_INTEL"; break;
139 case PROCESSOR_ARCHITECTURE_IA64
: val
= "PROCESSOR_ARCHITECTURE_IA64"; break;
140 case PROCESSOR_ARCHITECTURE_AMD64
: val
= "PROCESSOR_ARCHITECTURE_AMD64"; break;
142 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
145 static enum ndr_err_code
ndr_push_spoolss_ProcessorType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_ProcessorType r
)
147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
148 return NDR_ERR_SUCCESS
;
151 static enum ndr_err_code
ndr_pull_spoolss_ProcessorType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_ProcessorType
*r
)
154 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
156 return NDR_ERR_SUCCESS
;
159 _PUBLIC_
void ndr_print_spoolss_ProcessorType(struct ndr_print
*ndr
, const char *name
, enum spoolss_ProcessorType r
)
161 const char *val
= NULL
;
164 case PROCESSOR_INTEL_386
: val
= "PROCESSOR_INTEL_386"; break;
165 case PROCESSOR_INTEL_486
: val
= "PROCESSOR_INTEL_486"; break;
166 case PROCESSOR_INTEL_PENTIUM
: val
= "PROCESSOR_INTEL_PENTIUM"; break;
167 case PROCESSOR_INTEL_IA64
: val
= "PROCESSOR_INTEL_IA64"; break;
168 case PROCESSOR_AMD_X8664
: val
= "PROCESSOR_AMD_X8664"; break;
170 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
173 static enum ndr_err_code
ndr_push_spoolss_MajorVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_MajorVersion r
)
175 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
176 return NDR_ERR_SUCCESS
;
179 static enum ndr_err_code
ndr_pull_spoolss_MajorVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_MajorVersion
*r
)
182 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
184 return NDR_ERR_SUCCESS
;
187 _PUBLIC_
void ndr_print_spoolss_MajorVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_MajorVersion r
)
189 const char *val
= NULL
;
192 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME
: val
= "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
193 case SPOOLSS_MAJOR_VERSION_2000_2003_XP
: val
= "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
194 case SPOOLSS_MAJOR_VERSION_2008_VISTA
: val
= "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
196 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
199 static enum ndr_err_code
ndr_push_spoolss_MinorVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_MinorVersion r
)
201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
202 return NDR_ERR_SUCCESS
;
205 static enum ndr_err_code
ndr_pull_spoolss_MinorVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_MinorVersion
*r
)
208 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
210 return NDR_ERR_SUCCESS
;
213 _PUBLIC_
void ndr_print_spoolss_MinorVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_MinorVersion r
)
215 const char *val
= NULL
;
218 case SPOOLSS_MINOR_VERSION_0
: val
= "SPOOLSS_MINOR_VERSION_0"; break;
219 case SPOOLSS_MINOR_VERSION_XP
: val
= "SPOOLSS_MINOR_VERSION_XP"; break;
220 case SPOOLSS_MINOR_VERSION_2003_XP64
: val
= "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
221 case SPOOLSS_MINOR_VERSION_98
: val
= "SPOOLSS_MINOR_VERSION_98"; break;
222 case SPOOLSS_MINOR_VERSION_ME
: val
= "SPOOLSS_MINOR_VERSION_ME"; break;
224 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
227 static enum ndr_err_code
ndr_push_spoolss_PrinterStatus(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
229 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
230 return NDR_ERR_SUCCESS
;
233 static enum ndr_err_code
ndr_pull_spoolss_PrinterStatus(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
236 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
238 return NDR_ERR_SUCCESS
;
241 _PUBLIC_
void ndr_print_spoolss_PrinterStatus(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
243 ndr_print_uint32(ndr
, name
, r
);
245 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED
, r
);
246 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR
, r
);
247 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION
, r
);
248 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM
, r
);
249 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT
, r
);
250 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED
, r
);
251 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM
, r
);
252 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE
, r
);
253 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE
, r
);
254 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY
, r
);
255 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING
, r
);
256 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL
, r
);
257 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE
, r
);
258 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING
, r
);
259 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING
, r
);
260 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING
, r
);
261 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP
, r
);
262 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW
, r
);
263 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER
, r
);
264 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT
, r
);
265 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION
, r
);
266 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY
, r
);
267 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN
, r
);
268 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN
, r
);
269 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE
, r
);
273 static enum ndr_err_code
ndr_push_spoolss_JobStatus(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
275 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
276 return NDR_ERR_SUCCESS
;
279 static enum ndr_err_code
ndr_pull_spoolss_JobStatus(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
282 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
284 return NDR_ERR_SUCCESS
;
287 _PUBLIC_
void ndr_print_spoolss_JobStatus(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
289 ndr_print_uint32(ndr
, name
, r
);
291 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED
, r
);
292 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR
, r
);
293 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING
, r
);
294 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING
, r
);
295 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING
, r
);
296 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE
, r
);
297 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT
, r
);
298 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED
, r
);
299 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED
, r
);
300 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ
, r
);
301 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION
, r
);
302 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART
, r
);
303 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE
, r
);
307 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo0
*r
)
309 if (ndr_flags
& NDR_SCALARS
) {
310 NDR_CHECK(ndr_push_align(ndr
, 4));
312 uint32_t _flags_save_string
= ndr
->flags
;
313 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
314 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
315 ndr
->flags
= _flags_save_string
;
318 uint32_t _flags_save_string
= ndr
->flags
;
319 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
320 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
321 ndr
->flags
= _flags_save_string
;
323 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
325 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
326 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
327 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
328 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
329 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
330 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
331 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
332 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
333 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
334 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
335 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
336 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->job_error
));
337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
338 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
339 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
340 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
341 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
342 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
345 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
346 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
347 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
348 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
349 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
351 if (ndr_flags
& NDR_BUFFERS
) {
353 uint32_t _flags_save_string
= ndr
->flags
;
354 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
355 if (r
->printername
) {
356 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
357 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
359 ndr
->flags
= _flags_save_string
;
362 uint32_t _flags_save_string
= ndr
->flags
;
363 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
365 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
366 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
368 ndr
->flags
= _flags_save_string
;
371 return NDR_ERR_SUCCESS
;
374 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo0
*r
)
376 uint32_t _ptr_printername
;
377 TALLOC_CTX
*_mem_save_printername_0
;
378 uint32_t _ptr_servername
;
379 TALLOC_CTX
*_mem_save_servername_0
;
380 if (ndr_flags
& NDR_SCALARS
) {
381 NDR_CHECK(ndr_pull_align(ndr
, 4));
383 uint32_t _flags_save_string
= ndr
->flags
;
384 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
385 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
386 if (_ptr_printername
) {
387 NDR_PULL_ALLOC(ndr
, r
->printername
);
388 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
390 r
->printername
= NULL
;
392 ndr
->flags
= _flags_save_string
;
395 uint32_t _flags_save_string
= ndr
->flags
;
396 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
397 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
398 if (_ptr_servername
) {
399 NDR_PULL_ALLOC(ndr
, r
->servername
);
400 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
402 r
->servername
= NULL
;
404 ndr
->flags
= _flags_save_string
;
406 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
407 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
408 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
409 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
410 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
411 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
412 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
413 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
414 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
415 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
416 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
417 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
418 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
419 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->job_error
));
420 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
421 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
422 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
423 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
424 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
425 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
426 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
427 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
428 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
429 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
430 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
431 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
432 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
434 if (ndr_flags
& NDR_BUFFERS
) {
436 uint32_t _flags_save_string
= ndr
->flags
;
437 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
438 if (r
->printername
) {
439 uint32_t _relative_save_offset
;
440 _relative_save_offset
= ndr
->offset
;
441 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
442 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
443 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
444 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
445 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
446 ndr
->offset
= _relative_save_offset
;
448 ndr
->flags
= _flags_save_string
;
451 uint32_t _flags_save_string
= ndr
->flags
;
452 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
454 uint32_t _relative_save_offset
;
455 _relative_save_offset
= ndr
->offset
;
456 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
457 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
458 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
459 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
460 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
461 ndr
->offset
= _relative_save_offset
;
463 ndr
->flags
= _flags_save_string
;
466 return NDR_ERR_SUCCESS
;
469 _PUBLIC_
void ndr_print_spoolss_PrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo0
*r
)
471 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo0");
473 ndr_print_ptr(ndr
, "printername", r
->printername
);
475 if (r
->printername
) {
476 ndr_print_string(ndr
, "printername", r
->printername
);
479 ndr_print_ptr(ndr
, "servername", r
->servername
);
482 ndr_print_string(ndr
, "servername", r
->servername
);
485 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
486 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
487 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
488 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
489 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
490 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
491 ndr_print_uint32(ndr
, "version", r
->version
);
492 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
493 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
494 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
495 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
496 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
497 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
498 ndr_print_spoolss_JobStatus(ndr
, "job_error", r
->job_error
);
499 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
500 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
501 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
502 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
503 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
504 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
505 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
506 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
507 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
508 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
509 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
510 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
511 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
515 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0
*r
, struct smb_iconv_convenience
*ic
, int flags
)
517 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo0
, ic
);
520 static enum ndr_err_code
ndr_push_spoolss_DeviceModeFields(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
522 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
523 return NDR_ERR_SUCCESS
;
526 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeFields(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
529 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
531 return NDR_ERR_SUCCESS
;
534 _PUBLIC_
void ndr_print_spoolss_DeviceModeFields(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
536 ndr_print_uint32(ndr
, name
, r
);
538 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION
, r
);
539 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE
, r
);
540 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH
, r
);
541 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH
, r
);
542 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE
, r
);
543 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION
, r
);
544 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP
, r
);
545 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES
, r
);
546 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE
, r
);
547 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY
, r
);
548 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR
, r
);
549 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX
, r
);
550 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION
, r
);
551 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION
, r
);
552 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE
, r
);
553 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME
, r
);
554 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS
, r
);
555 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL
, r
);
556 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH
, r
);
557 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT
, r
);
558 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS
, r
);
559 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY
, r
);
560 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD
, r
);
561 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT
, r
);
562 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE
, r
);
563 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE
, r
);
564 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH
, r
);
565 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT
, r
);
569 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeviceMode(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceMode
*r
)
571 if (ndr_flags
& NDR_SCALARS
) {
572 NDR_CHECK(ndr_push_align(ndr
, 4));
573 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->devicename
, 32, sizeof(uint16_t), CH_UTF16
));
574 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->specversion
));
575 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverversion
));
576 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
577 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverextra_data
.length
));
578 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, r
->fields
));
579 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->orientation
));
580 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->papersize
));
581 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperlength
));
582 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperwidth
));
583 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->scale
));
584 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->copies
));
585 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->defaultsource
));
586 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->printquality
));
587 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->color
));
588 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->duplex
));
589 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->yresolution
));
590 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ttoption
));
591 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->collate
));
592 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, 32, sizeof(uint16_t), CH_UTF16
));
593 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logpixels
));
594 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bitsperpel
));
595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelswidth
));
596 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelsheight
));
597 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayflags
));
598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayfrequency
));
599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->icmmethod
));
600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->icmintent
));
601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->mediatype
));
602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dithertype
));
603 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved1
));
604 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
605 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningwidth
));
606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningheight
));
608 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
609 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
611 struct ndr_push
*_ndr_driverextra_data
;
612 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
613 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, r
->driverextra_data
));
614 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
616 ndr
->flags
= _flags_save_DATA_BLOB
;
619 if (ndr_flags
& NDR_BUFFERS
) {
621 return NDR_ERR_SUCCESS
;
624 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeviceMode(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceMode
*r
)
626 if (ndr_flags
& NDR_SCALARS
) {
627 NDR_CHECK(ndr_pull_align(ndr
, 4));
628 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->devicename
, 32, sizeof(uint16_t), CH_UTF16
));
629 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->specversion
));
630 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->driverversion
));
631 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
632 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->__driverextra_length
));
633 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, &r
->fields
));
634 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->orientation
));
635 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->papersize
));
636 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperlength
));
637 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperwidth
));
638 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->scale
));
639 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->copies
));
640 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->defaultsource
));
641 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->printquality
));
642 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->color
));
643 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->duplex
));
644 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->yresolution
));
645 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ttoption
));
646 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->collate
));
647 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, 32, sizeof(uint16_t), CH_UTF16
));
648 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logpixels
));
649 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bitsperpel
));
650 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelswidth
));
651 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelsheight
));
652 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayflags
));
653 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayfrequency
));
654 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->icmmethod
));
655 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->icmintent
));
656 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->mediatype
));
657 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dithertype
));
658 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved1
));
659 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
660 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningwidth
));
661 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningheight
));
663 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
664 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
666 struct ndr_pull
*_ndr_driverextra_data
;
667 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->__driverextra_length
));
668 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, &r
->driverextra_data
));
669 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->__driverextra_length
));
671 ndr
->flags
= _flags_save_DATA_BLOB
;
674 if (ndr_flags
& NDR_BUFFERS
) {
676 return NDR_ERR_SUCCESS
;
679 _PUBLIC_
void ndr_print_spoolss_DeviceMode(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceMode
*r
)
681 ndr_print_struct(ndr
, name
, "spoolss_DeviceMode");
683 ndr_print_string(ndr
, "devicename", r
->devicename
);
684 ndr_print_uint16(ndr
, "specversion", r
->specversion
);
685 ndr_print_uint16(ndr
, "driverversion", r
->driverversion
);
686 ndr_print_uint16(ndr
, "size", r
->size
);
687 ndr_print_uint16(ndr
, "__driverextra_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->driverextra_data
.length
:r
->__driverextra_length
);
688 ndr_print_spoolss_DeviceModeFields(ndr
, "fields", r
->fields
);
689 ndr_print_uint16(ndr
, "orientation", r
->orientation
);
690 ndr_print_uint16(ndr
, "papersize", r
->papersize
);
691 ndr_print_uint16(ndr
, "paperlength", r
->paperlength
);
692 ndr_print_uint16(ndr
, "paperwidth", r
->paperwidth
);
693 ndr_print_uint16(ndr
, "scale", r
->scale
);
694 ndr_print_uint16(ndr
, "copies", r
->copies
);
695 ndr_print_uint16(ndr
, "defaultsource", r
->defaultsource
);
696 ndr_print_uint16(ndr
, "printquality", r
->printquality
);
697 ndr_print_uint16(ndr
, "color", r
->color
);
698 ndr_print_uint16(ndr
, "duplex", r
->duplex
);
699 ndr_print_uint16(ndr
, "yresolution", r
->yresolution
);
700 ndr_print_uint16(ndr
, "ttoption", r
->ttoption
);
701 ndr_print_uint16(ndr
, "collate", r
->collate
);
702 ndr_print_string(ndr
, "formname", r
->formname
);
703 ndr_print_uint16(ndr
, "logpixels", r
->logpixels
);
704 ndr_print_uint32(ndr
, "bitsperpel", r
->bitsperpel
);
705 ndr_print_uint32(ndr
, "pelswidth", r
->pelswidth
);
706 ndr_print_uint32(ndr
, "pelsheight", r
->pelsheight
);
707 ndr_print_uint32(ndr
, "displayflags", r
->displayflags
);
708 ndr_print_uint32(ndr
, "displayfrequency", r
->displayfrequency
);
709 ndr_print_uint32(ndr
, "icmmethod", r
->icmmethod
);
710 ndr_print_uint32(ndr
, "icmintent", r
->icmintent
);
711 ndr_print_uint32(ndr
, "mediatype", r
->mediatype
);
712 ndr_print_uint32(ndr
, "dithertype", r
->dithertype
);
713 ndr_print_uint32(ndr
, "reserved1", r
->reserved1
);
714 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
715 ndr_print_uint32(ndr
, "panningwidth", r
->panningwidth
);
716 ndr_print_uint32(ndr
, "panningheight", r
->panningheight
);
717 ndr_print_DATA_BLOB(ndr
, "driverextra_data", r
->driverextra_data
);
721 _PUBLIC_
size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode
*r
, struct smb_iconv_convenience
*ic
, int flags
)
723 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DeviceMode
, ic
);
726 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
728 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
729 return NDR_ERR_SUCCESS
;
732 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
735 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
737 return NDR_ERR_SUCCESS
;
740 _PUBLIC_
void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
742 ndr_print_uint32(ndr
, name
, r
);
744 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT
, r
);
745 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL
, r
);
746 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS
, r
);
747 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE
, r
);
748 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME
, r
);
749 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE
, r
);
750 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED
, r
);
751 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK
, r
);
752 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND
, r
);
753 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER
, r
);
754 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1
, r
);
755 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2
, r
);
756 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3
, r
);
757 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4
, r
);
758 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5
, r
);
759 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6
, r
);
760 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7
, r
);
761 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8
, r
);
762 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE
, r
);
766 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo1
*r
)
768 if (ndr_flags
& NDR_SCALARS
) {
769 NDR_CHECK(ndr_push_align(ndr
, 4));
770 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->flags
));
772 uint32_t _flags_save_string
= ndr
->flags
;
773 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
774 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
775 ndr
->flags
= _flags_save_string
;
778 uint32_t _flags_save_string
= ndr
->flags
;
779 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
780 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name
));
781 ndr
->flags
= _flags_save_string
;
784 uint32_t _flags_save_string
= ndr
->flags
;
785 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
786 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
787 ndr
->flags
= _flags_save_string
;
790 if (ndr_flags
& NDR_BUFFERS
) {
792 uint32_t _flags_save_string
= ndr
->flags
;
793 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
794 if (r
->description
) {
795 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->description
));
796 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
798 ndr
->flags
= _flags_save_string
;
801 uint32_t _flags_save_string
= ndr
->flags
;
802 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
804 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->name
));
805 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name
));
807 ndr
->flags
= _flags_save_string
;
810 uint32_t _flags_save_string
= ndr
->flags
;
811 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
813 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->comment
));
814 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
816 ndr
->flags
= _flags_save_string
;
819 return NDR_ERR_SUCCESS
;
822 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo1
*r
)
824 uint32_t _ptr_description
;
825 TALLOC_CTX
*_mem_save_description_0
;
827 TALLOC_CTX
*_mem_save_name_0
;
828 uint32_t _ptr_comment
;
829 TALLOC_CTX
*_mem_save_comment_0
;
830 if (ndr_flags
& NDR_SCALARS
) {
831 NDR_CHECK(ndr_pull_align(ndr
, 4));
832 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->flags
));
834 uint32_t _flags_save_string
= ndr
->flags
;
835 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
836 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
837 if (_ptr_description
) {
838 NDR_PULL_ALLOC(ndr
, r
->description
);
839 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
841 r
->description
= NULL
;
843 ndr
->flags
= _flags_save_string
;
846 uint32_t _flags_save_string
= ndr
->flags
;
847 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
848 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
850 NDR_PULL_ALLOC(ndr
, r
->name
);
851 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name
, _ptr_name
));
855 ndr
->flags
= _flags_save_string
;
858 uint32_t _flags_save_string
= ndr
->flags
;
859 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
860 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
862 NDR_PULL_ALLOC(ndr
, r
->comment
);
863 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
867 ndr
->flags
= _flags_save_string
;
870 if (ndr_flags
& NDR_BUFFERS
) {
872 uint32_t _flags_save_string
= ndr
->flags
;
873 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
874 if (r
->description
) {
875 uint32_t _relative_save_offset
;
876 _relative_save_offset
= ndr
->offset
;
877 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
878 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
879 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
880 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
881 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
882 ndr
->offset
= _relative_save_offset
;
884 ndr
->flags
= _flags_save_string
;
887 uint32_t _flags_save_string
= ndr
->flags
;
888 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
890 uint32_t _relative_save_offset
;
891 _relative_save_offset
= ndr
->offset
;
892 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name
));
893 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
894 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
895 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name
));
896 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
897 ndr
->offset
= _relative_save_offset
;
899 ndr
->flags
= _flags_save_string
;
902 uint32_t _flags_save_string
= ndr
->flags
;
903 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
905 uint32_t _relative_save_offset
;
906 _relative_save_offset
= ndr
->offset
;
907 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
908 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
909 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
910 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
911 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
912 ndr
->offset
= _relative_save_offset
;
914 ndr
->flags
= _flags_save_string
;
917 return NDR_ERR_SUCCESS
;
920 _PUBLIC_
void ndr_print_spoolss_PrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo1
*r
)
922 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo1");
924 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->flags
);
925 ndr_print_ptr(ndr
, "description", r
->description
);
927 if (r
->description
) {
928 ndr_print_string(ndr
, "description", r
->description
);
931 ndr_print_ptr(ndr
, "name", r
->name
);
934 ndr_print_string(ndr
, "name", r
->name
);
937 ndr_print_ptr(ndr
, "comment", r
->comment
);
940 ndr_print_string(ndr
, "comment", r
->comment
);
946 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
948 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo1
, ic
);
951 static enum ndr_err_code
ndr_push_spoolss_PrinterAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
953 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
954 return NDR_ERR_SUCCESS
;
957 static enum ndr_err_code
ndr_pull_spoolss_PrinterAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
960 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
962 return NDR_ERR_SUCCESS
;
965 _PUBLIC_
void ndr_print_spoolss_PrinterAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
967 ndr_print_uint32(ndr
, name
, r
);
969 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED
, r
);
970 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT
, r
);
971 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT
, r
);
972 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED
, r
);
973 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK
, r
);
974 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN
, r
);
975 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL
, r
);
976 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ
, r
);
977 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS
, r
);
978 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST
, r
);
979 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE
, r
);
980 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI
, r
);
981 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY
, r
);
982 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED
, r
);
983 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX
, r
);
984 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS
, r
);
988 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo2
*r
)
990 if (ndr_flags
& NDR_SCALARS
) {
991 NDR_CHECK(ndr_push_align(ndr
, 4));
993 uint32_t _flags_save_string
= ndr
->flags
;
994 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
995 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
996 ndr
->flags
= _flags_save_string
;
999 uint32_t _flags_save_string
= ndr
->flags
;
1000 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1001 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
1002 ndr
->flags
= _flags_save_string
;
1005 uint32_t _flags_save_string
= ndr
->flags
;
1006 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1007 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->sharename
));
1008 ndr
->flags
= _flags_save_string
;
1011 uint32_t _flags_save_string
= ndr
->flags
;
1012 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1013 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
1014 ndr
->flags
= _flags_save_string
;
1017 uint32_t _flags_save_string
= ndr
->flags
;
1018 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1019 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->drivername
));
1020 ndr
->flags
= _flags_save_string
;
1023 uint32_t _flags_save_string
= ndr
->flags
;
1024 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1025 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
1026 ndr
->flags
= _flags_save_string
;
1029 uint32_t _flags_save_string
= ndr
->flags
;
1030 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1031 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->location
));
1032 ndr
->flags
= _flags_save_string
;
1034 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
1036 uint32_t _flags_save_string
= ndr
->flags
;
1037 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1038 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->sepfile
));
1039 ndr
->flags
= _flags_save_string
;
1042 uint32_t _flags_save_string
= ndr
->flags
;
1043 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1044 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printprocessor
));
1045 ndr
->flags
= _flags_save_string
;
1048 uint32_t _flags_save_string
= ndr
->flags
;
1049 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1050 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->datatype
));
1051 ndr
->flags
= _flags_save_string
;
1054 uint32_t _flags_save_string
= ndr
->flags
;
1055 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1056 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
1057 ndr
->flags
= _flags_save_string
;
1059 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
1060 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
1062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
1063 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
1064 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
1065 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
1066 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
1067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
1069 if (ndr_flags
& NDR_BUFFERS
) {
1071 uint32_t _flags_save_string
= ndr
->flags
;
1072 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1073 if (r
->servername
) {
1074 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
1075 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
1077 ndr
->flags
= _flags_save_string
;
1080 uint32_t _flags_save_string
= ndr
->flags
;
1081 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1082 if (r
->printername
) {
1083 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1084 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1086 ndr
->flags
= _flags_save_string
;
1089 uint32_t _flags_save_string
= ndr
->flags
;
1090 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1092 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->sharename
));
1093 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->sharename
));
1095 ndr
->flags
= _flags_save_string
;
1098 uint32_t _flags_save_string
= ndr
->flags
;
1099 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1101 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->portname
));
1102 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
1104 ndr
->flags
= _flags_save_string
;
1107 uint32_t _flags_save_string
= ndr
->flags
;
1108 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1109 if (r
->drivername
) {
1110 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->drivername
));
1111 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->drivername
));
1113 ndr
->flags
= _flags_save_string
;
1116 uint32_t _flags_save_string
= ndr
->flags
;
1117 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1119 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->comment
));
1120 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
1122 ndr
->flags
= _flags_save_string
;
1125 uint32_t _flags_save_string
= ndr
->flags
;
1126 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1128 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->location
));
1129 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->location
));
1131 ndr
->flags
= _flags_save_string
;
1134 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
1136 struct ndr_push
*_ndr_devmode
;
1137 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
1138 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
1139 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
1143 uint32_t _flags_save_string
= ndr
->flags
;
1144 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1146 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->sepfile
));
1147 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->sepfile
));
1149 ndr
->flags
= _flags_save_string
;
1152 uint32_t _flags_save_string
= ndr
->flags
;
1153 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1154 if (r
->printprocessor
) {
1155 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printprocessor
));
1156 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printprocessor
));
1158 ndr
->flags
= _flags_save_string
;
1161 uint32_t _flags_save_string
= ndr
->flags
;
1162 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1164 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->datatype
));
1165 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->datatype
));
1167 ndr
->flags
= _flags_save_string
;
1170 uint32_t _flags_save_string
= ndr
->flags
;
1171 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1172 if (r
->parameters
) {
1173 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
1174 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
1176 ndr
->flags
= _flags_save_string
;
1179 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
1181 struct ndr_push
*_ndr_secdesc
;
1182 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1183 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1184 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1188 return NDR_ERR_SUCCESS
;
1191 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo2
*r
)
1193 uint32_t _ptr_servername
;
1194 TALLOC_CTX
*_mem_save_servername_0
;
1195 uint32_t _ptr_printername
;
1196 TALLOC_CTX
*_mem_save_printername_0
;
1197 uint32_t _ptr_sharename
;
1198 TALLOC_CTX
*_mem_save_sharename_0
;
1199 uint32_t _ptr_portname
;
1200 TALLOC_CTX
*_mem_save_portname_0
;
1201 uint32_t _ptr_drivername
;
1202 TALLOC_CTX
*_mem_save_drivername_0
;
1203 uint32_t _ptr_comment
;
1204 TALLOC_CTX
*_mem_save_comment_0
;
1205 uint32_t _ptr_location
;
1206 TALLOC_CTX
*_mem_save_location_0
;
1207 uint32_t _ptr_devmode
;
1208 TALLOC_CTX
*_mem_save_devmode_0
;
1209 uint32_t _ptr_sepfile
;
1210 TALLOC_CTX
*_mem_save_sepfile_0
;
1211 uint32_t _ptr_printprocessor
;
1212 TALLOC_CTX
*_mem_save_printprocessor_0
;
1213 uint32_t _ptr_datatype
;
1214 TALLOC_CTX
*_mem_save_datatype_0
;
1215 uint32_t _ptr_parameters
;
1216 TALLOC_CTX
*_mem_save_parameters_0
;
1217 uint32_t _ptr_secdesc
;
1218 TALLOC_CTX
*_mem_save_secdesc_0
;
1219 if (ndr_flags
& NDR_SCALARS
) {
1220 NDR_CHECK(ndr_pull_align(ndr
, 4));
1222 uint32_t _flags_save_string
= ndr
->flags
;
1223 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1224 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1225 if (_ptr_servername
) {
1226 NDR_PULL_ALLOC(ndr
, r
->servername
);
1227 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1229 r
->servername
= NULL
;
1231 ndr
->flags
= _flags_save_string
;
1234 uint32_t _flags_save_string
= ndr
->flags
;
1235 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1236 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1237 if (_ptr_printername
) {
1238 NDR_PULL_ALLOC(ndr
, r
->printername
);
1239 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1241 r
->printername
= NULL
;
1243 ndr
->flags
= _flags_save_string
;
1246 uint32_t _flags_save_string
= ndr
->flags
;
1247 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1248 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
1249 if (_ptr_sharename
) {
1250 NDR_PULL_ALLOC(ndr
, r
->sharename
);
1251 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sharename
, _ptr_sharename
));
1253 r
->sharename
= NULL
;
1255 ndr
->flags
= _flags_save_string
;
1258 uint32_t _flags_save_string
= ndr
->flags
;
1259 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1260 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
1261 if (_ptr_portname
) {
1262 NDR_PULL_ALLOC(ndr
, r
->portname
);
1263 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1267 ndr
->flags
= _flags_save_string
;
1270 uint32_t _flags_save_string
= ndr
->flags
;
1271 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1272 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
1273 if (_ptr_drivername
) {
1274 NDR_PULL_ALLOC(ndr
, r
->drivername
);
1275 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->drivername
, _ptr_drivername
));
1277 r
->drivername
= NULL
;
1279 ndr
->flags
= _flags_save_string
;
1282 uint32_t _flags_save_string
= ndr
->flags
;
1283 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1284 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
1286 NDR_PULL_ALLOC(ndr
, r
->comment
);
1287 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
1291 ndr
->flags
= _flags_save_string
;
1294 uint32_t _flags_save_string
= ndr
->flags
;
1295 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1296 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
1297 if (_ptr_location
) {
1298 NDR_PULL_ALLOC(ndr
, r
->location
);
1299 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->location
, _ptr_location
));
1303 ndr
->flags
= _flags_save_string
;
1305 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
1307 NDR_PULL_ALLOC(ndr
, r
->devmode
);
1308 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
1313 uint32_t _flags_save_string
= ndr
->flags
;
1314 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1315 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
1317 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
1318 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sepfile
, _ptr_sepfile
));
1322 ndr
->flags
= _flags_save_string
;
1325 uint32_t _flags_save_string
= ndr
->flags
;
1326 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1327 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
1328 if (_ptr_printprocessor
) {
1329 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
1330 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printprocessor
, _ptr_printprocessor
));
1332 r
->printprocessor
= NULL
;
1334 ndr
->flags
= _flags_save_string
;
1337 uint32_t _flags_save_string
= ndr
->flags
;
1338 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1339 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
1340 if (_ptr_datatype
) {
1341 NDR_PULL_ALLOC(ndr
, r
->datatype
);
1342 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->datatype
, _ptr_datatype
));
1346 ndr
->flags
= _flags_save_string
;
1349 uint32_t _flags_save_string
= ndr
->flags
;
1350 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1351 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
1352 if (_ptr_parameters
) {
1353 NDR_PULL_ALLOC(ndr
, r
->parameters
);
1354 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
1356 r
->parameters
= NULL
;
1358 ndr
->flags
= _flags_save_string
;
1360 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1362 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1363 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1367 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1368 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
1369 if (r
->priority
> 99) {
1370 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
1372 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
1373 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
1374 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
1375 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
1376 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
1377 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
1379 if (ndr_flags
& NDR_BUFFERS
) {
1381 uint32_t _flags_save_string
= ndr
->flags
;
1382 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1383 if (r
->servername
) {
1384 uint32_t _relative_save_offset
;
1385 _relative_save_offset
= ndr
->offset
;
1386 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
1387 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1388 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
1389 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
1390 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
1391 ndr
->offset
= _relative_save_offset
;
1393 ndr
->flags
= _flags_save_string
;
1396 uint32_t _flags_save_string
= ndr
->flags
;
1397 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1398 if (r
->printername
) {
1399 uint32_t _relative_save_offset
;
1400 _relative_save_offset
= ndr
->offset
;
1401 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1402 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1403 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1404 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1405 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1406 ndr
->offset
= _relative_save_offset
;
1408 ndr
->flags
= _flags_save_string
;
1411 uint32_t _flags_save_string
= ndr
->flags
;
1412 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1414 uint32_t _relative_save_offset
;
1415 _relative_save_offset
= ndr
->offset
;
1416 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sharename
));
1417 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1418 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
1419 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sharename
));
1420 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
1421 ndr
->offset
= _relative_save_offset
;
1423 ndr
->flags
= _flags_save_string
;
1426 uint32_t _flags_save_string
= ndr
->flags
;
1427 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1429 uint32_t _relative_save_offset
;
1430 _relative_save_offset
= ndr
->offset
;
1431 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
1432 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1433 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
1434 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
1435 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
1436 ndr
->offset
= _relative_save_offset
;
1438 ndr
->flags
= _flags_save_string
;
1441 uint32_t _flags_save_string
= ndr
->flags
;
1442 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1443 if (r
->drivername
) {
1444 uint32_t _relative_save_offset
;
1445 _relative_save_offset
= ndr
->offset
;
1446 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->drivername
));
1447 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1448 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
1449 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->drivername
));
1450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
1451 ndr
->offset
= _relative_save_offset
;
1453 ndr
->flags
= _flags_save_string
;
1456 uint32_t _flags_save_string
= ndr
->flags
;
1457 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1459 uint32_t _relative_save_offset
;
1460 _relative_save_offset
= ndr
->offset
;
1461 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
1462 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1463 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
1464 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
1465 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
1466 ndr
->offset
= _relative_save_offset
;
1468 ndr
->flags
= _flags_save_string
;
1471 uint32_t _flags_save_string
= ndr
->flags
;
1472 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1474 uint32_t _relative_save_offset
;
1475 _relative_save_offset
= ndr
->offset
;
1476 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->location
));
1477 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1478 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
1479 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->location
));
1480 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
1481 ndr
->offset
= _relative_save_offset
;
1483 ndr
->flags
= _flags_save_string
;
1486 uint32_t _relative_save_offset
;
1487 _relative_save_offset
= ndr
->offset
;
1488 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
1489 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1490 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
1492 struct ndr_pull
*_ndr_devmode
;
1493 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
1494 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
1495 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
1497 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
1498 ndr
->offset
= _relative_save_offset
;
1501 uint32_t _flags_save_string
= ndr
->flags
;
1502 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1504 uint32_t _relative_save_offset
;
1505 _relative_save_offset
= ndr
->offset
;
1506 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sepfile
));
1507 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1508 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
1509 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sepfile
));
1510 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
1511 ndr
->offset
= _relative_save_offset
;
1513 ndr
->flags
= _flags_save_string
;
1516 uint32_t _flags_save_string
= ndr
->flags
;
1517 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1518 if (r
->printprocessor
) {
1519 uint32_t _relative_save_offset
;
1520 _relative_save_offset
= ndr
->offset
;
1521 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printprocessor
));
1522 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1523 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
1524 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printprocessor
));
1525 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
1526 ndr
->offset
= _relative_save_offset
;
1528 ndr
->flags
= _flags_save_string
;
1531 uint32_t _flags_save_string
= ndr
->flags
;
1532 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1534 uint32_t _relative_save_offset
;
1535 _relative_save_offset
= ndr
->offset
;
1536 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->datatype
));
1537 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1538 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
1539 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->datatype
));
1540 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
1541 ndr
->offset
= _relative_save_offset
;
1543 ndr
->flags
= _flags_save_string
;
1546 uint32_t _flags_save_string
= ndr
->flags
;
1547 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1548 if (r
->parameters
) {
1549 uint32_t _relative_save_offset
;
1550 _relative_save_offset
= ndr
->offset
;
1551 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
1552 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1553 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
1554 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
1555 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
1556 ndr
->offset
= _relative_save_offset
;
1558 ndr
->flags
= _flags_save_string
;
1561 uint32_t _relative_save_offset
;
1562 _relative_save_offset
= ndr
->offset
;
1563 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
1564 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1565 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
1567 struct ndr_pull
*_ndr_secdesc
;
1568 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1569 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1570 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1572 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1573 ndr
->offset
= _relative_save_offset
;
1576 return NDR_ERR_SUCCESS
;
1579 _PUBLIC_
void ndr_print_spoolss_PrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo2
*r
)
1581 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo2");
1583 ndr_print_ptr(ndr
, "servername", r
->servername
);
1585 if (r
->servername
) {
1586 ndr_print_string(ndr
, "servername", r
->servername
);
1589 ndr_print_ptr(ndr
, "printername", r
->printername
);
1591 if (r
->printername
) {
1592 ndr_print_string(ndr
, "printername", r
->printername
);
1595 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
1598 ndr_print_string(ndr
, "sharename", r
->sharename
);
1601 ndr_print_ptr(ndr
, "portname", r
->portname
);
1604 ndr_print_string(ndr
, "portname", r
->portname
);
1607 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
1609 if (r
->drivername
) {
1610 ndr_print_string(ndr
, "drivername", r
->drivername
);
1613 ndr_print_ptr(ndr
, "comment", r
->comment
);
1616 ndr_print_string(ndr
, "comment", r
->comment
);
1619 ndr_print_ptr(ndr
, "location", r
->location
);
1622 ndr_print_string(ndr
, "location", r
->location
);
1625 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
1628 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
1631 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
1634 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
1637 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
1639 if (r
->printprocessor
) {
1640 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
1643 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
1646 ndr_print_string(ndr
, "datatype", r
->datatype
);
1649 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
1651 if (r
->parameters
) {
1652 ndr_print_string(ndr
, "parameters", r
->parameters
);
1655 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
1658 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
1661 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1662 ndr_print_uint32(ndr
, "priority", r
->priority
);
1663 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
1664 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
1665 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
1666 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
1667 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
1668 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
1672 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1674 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo2
, ic
);
1677 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo3
*r
)
1679 if (ndr_flags
& NDR_SCALARS
) {
1680 NDR_CHECK(ndr_push_align(ndr
, 4));
1681 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
1683 if (ndr_flags
& NDR_BUFFERS
) {
1685 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
1687 struct ndr_push
*_ndr_secdesc
;
1688 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1689 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1690 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1694 return NDR_ERR_SUCCESS
;
1697 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo3
*r
)
1699 uint32_t _ptr_secdesc
;
1700 TALLOC_CTX
*_mem_save_secdesc_0
;
1701 if (ndr_flags
& NDR_SCALARS
) {
1702 NDR_CHECK(ndr_pull_align(ndr
, 4));
1703 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1705 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1706 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1711 if (ndr_flags
& NDR_BUFFERS
) {
1713 uint32_t _relative_save_offset
;
1714 _relative_save_offset
= ndr
->offset
;
1715 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
1716 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1717 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
1719 struct ndr_pull
*_ndr_secdesc
;
1720 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1721 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1722 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1724 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1725 ndr
->offset
= _relative_save_offset
;
1728 return NDR_ERR_SUCCESS
;
1731 _PUBLIC_
void ndr_print_spoolss_PrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo3
*r
)
1733 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo3");
1735 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
1738 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
1744 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1746 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo3
, ic
);
1749 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo4
*r
)
1751 if (ndr_flags
& NDR_SCALARS
) {
1752 NDR_CHECK(ndr_push_align(ndr
, 4));
1754 uint32_t _flags_save_string
= ndr
->flags
;
1755 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1756 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
1757 ndr
->flags
= _flags_save_string
;
1760 uint32_t _flags_save_string
= ndr
->flags
;
1761 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1762 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
1763 ndr
->flags
= _flags_save_string
;
1765 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1767 if (ndr_flags
& NDR_BUFFERS
) {
1769 uint32_t _flags_save_string
= ndr
->flags
;
1770 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1771 if (r
->printername
) {
1772 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1773 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1775 ndr
->flags
= _flags_save_string
;
1778 uint32_t _flags_save_string
= ndr
->flags
;
1779 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1780 if (r
->servername
) {
1781 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
1782 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
1784 ndr
->flags
= _flags_save_string
;
1787 return NDR_ERR_SUCCESS
;
1790 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo4
*r
)
1792 uint32_t _ptr_printername
;
1793 TALLOC_CTX
*_mem_save_printername_0
;
1794 uint32_t _ptr_servername
;
1795 TALLOC_CTX
*_mem_save_servername_0
;
1796 if (ndr_flags
& NDR_SCALARS
) {
1797 NDR_CHECK(ndr_pull_align(ndr
, 4));
1799 uint32_t _flags_save_string
= ndr
->flags
;
1800 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1801 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1802 if (_ptr_printername
) {
1803 NDR_PULL_ALLOC(ndr
, r
->printername
);
1804 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1806 r
->printername
= NULL
;
1808 ndr
->flags
= _flags_save_string
;
1811 uint32_t _flags_save_string
= ndr
->flags
;
1812 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1813 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1814 if (_ptr_servername
) {
1815 NDR_PULL_ALLOC(ndr
, r
->servername
);
1816 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1818 r
->servername
= NULL
;
1820 ndr
->flags
= _flags_save_string
;
1822 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1824 if (ndr_flags
& NDR_BUFFERS
) {
1826 uint32_t _flags_save_string
= ndr
->flags
;
1827 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1828 if (r
->printername
) {
1829 uint32_t _relative_save_offset
;
1830 _relative_save_offset
= ndr
->offset
;
1831 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1832 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1833 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1834 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1835 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1836 ndr
->offset
= _relative_save_offset
;
1838 ndr
->flags
= _flags_save_string
;
1841 uint32_t _flags_save_string
= ndr
->flags
;
1842 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1843 if (r
->servername
) {
1844 uint32_t _relative_save_offset
;
1845 _relative_save_offset
= ndr
->offset
;
1846 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
1847 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1848 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
1849 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
1850 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
1851 ndr
->offset
= _relative_save_offset
;
1853 ndr
->flags
= _flags_save_string
;
1856 return NDR_ERR_SUCCESS
;
1859 _PUBLIC_
void ndr_print_spoolss_PrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo4
*r
)
1861 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo4");
1863 ndr_print_ptr(ndr
, "printername", r
->printername
);
1865 if (r
->printername
) {
1866 ndr_print_string(ndr
, "printername", r
->printername
);
1869 ndr_print_ptr(ndr
, "servername", r
->servername
);
1871 if (r
->servername
) {
1872 ndr_print_string(ndr
, "servername", r
->servername
);
1875 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1879 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
1881 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo4
, ic
);
1884 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo5
*r
)
1886 if (ndr_flags
& NDR_SCALARS
) {
1887 NDR_CHECK(ndr_push_align(ndr
, 4));
1889 uint32_t _flags_save_string
= ndr
->flags
;
1890 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1891 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
1892 ndr
->flags
= _flags_save_string
;
1895 uint32_t _flags_save_string
= ndr
->flags
;
1896 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1897 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
1898 ndr
->flags
= _flags_save_string
;
1900 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1901 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
1902 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
1904 if (ndr_flags
& NDR_BUFFERS
) {
1906 uint32_t _flags_save_string
= ndr
->flags
;
1907 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1908 if (r
->printername
) {
1909 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1910 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1912 ndr
->flags
= _flags_save_string
;
1915 uint32_t _flags_save_string
= ndr
->flags
;
1916 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1918 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->portname
));
1919 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
1921 ndr
->flags
= _flags_save_string
;
1924 return NDR_ERR_SUCCESS
;
1927 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo5
*r
)
1929 uint32_t _ptr_printername
;
1930 TALLOC_CTX
*_mem_save_printername_0
;
1931 uint32_t _ptr_portname
;
1932 TALLOC_CTX
*_mem_save_portname_0
;
1933 if (ndr_flags
& NDR_SCALARS
) {
1934 NDR_CHECK(ndr_pull_align(ndr
, 4));
1936 uint32_t _flags_save_string
= ndr
->flags
;
1937 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1938 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1939 if (_ptr_printername
) {
1940 NDR_PULL_ALLOC(ndr
, r
->printername
);
1941 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1943 r
->printername
= NULL
;
1945 ndr
->flags
= _flags_save_string
;
1948 uint32_t _flags_save_string
= ndr
->flags
;
1949 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1950 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
1951 if (_ptr_portname
) {
1952 NDR_PULL_ALLOC(ndr
, r
->portname
);
1953 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1957 ndr
->flags
= _flags_save_string
;
1959 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1960 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
1961 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
1963 if (ndr_flags
& NDR_BUFFERS
) {
1965 uint32_t _flags_save_string
= ndr
->flags
;
1966 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1967 if (r
->printername
) {
1968 uint32_t _relative_save_offset
;
1969 _relative_save_offset
= ndr
->offset
;
1970 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1971 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1972 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1973 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1974 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1975 ndr
->offset
= _relative_save_offset
;
1977 ndr
->flags
= _flags_save_string
;
1980 uint32_t _flags_save_string
= ndr
->flags
;
1981 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1983 uint32_t _relative_save_offset
;
1984 _relative_save_offset
= ndr
->offset
;
1985 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
1986 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1987 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
1988 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
1989 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
1990 ndr
->offset
= _relative_save_offset
;
1992 ndr
->flags
= _flags_save_string
;
1995 return NDR_ERR_SUCCESS
;
1998 _PUBLIC_
void ndr_print_spoolss_PrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo5
*r
)
2000 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo5");
2002 ndr_print_ptr(ndr
, "printername", r
->printername
);
2004 if (r
->printername
) {
2005 ndr_print_string(ndr
, "printername", r
->printername
);
2008 ndr_print_ptr(ndr
, "portname", r
->portname
);
2011 ndr_print_string(ndr
, "portname", r
->portname
);
2014 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
2015 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
2016 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
2020 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2022 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo5
, ic
);
2025 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo6
*r
)
2027 if (ndr_flags
& NDR_SCALARS
) {
2028 NDR_CHECK(ndr_push_align(ndr
, 4));
2029 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
2031 if (ndr_flags
& NDR_BUFFERS
) {
2033 return NDR_ERR_SUCCESS
;
2036 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo6
*r
)
2038 if (ndr_flags
& NDR_SCALARS
) {
2039 NDR_CHECK(ndr_pull_align(ndr
, 4));
2040 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
2042 if (ndr_flags
& NDR_BUFFERS
) {
2044 return NDR_ERR_SUCCESS
;
2047 _PUBLIC_
void ndr_print_spoolss_PrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo6
*r
)
2049 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo6");
2051 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
2055 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2057 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo6
, ic
);
2060 static enum ndr_err_code
ndr_push_spoolss_DsPrintAction(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
2062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
2063 return NDR_ERR_SUCCESS
;
2066 static enum ndr_err_code
ndr_pull_spoolss_DsPrintAction(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
2069 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
2071 return NDR_ERR_SUCCESS
;
2074 _PUBLIC_
void ndr_print_spoolss_DsPrintAction(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
2076 ndr_print_uint32(ndr
, name
, r
);
2078 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH
, r
);
2079 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE
, r
);
2080 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH
, r
);
2081 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH
, r
);
2082 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING
, r
);
2086 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo7
*r
)
2088 if (ndr_flags
& NDR_SCALARS
) {
2089 NDR_CHECK(ndr_push_align(ndr
, 4));
2091 uint32_t _flags_save_string
= ndr
->flags
;
2092 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2093 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->guid
));
2094 ndr
->flags
= _flags_save_string
;
2096 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
2098 if (ndr_flags
& NDR_BUFFERS
) {
2100 uint32_t _flags_save_string
= ndr
->flags
;
2101 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2103 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->guid
));
2104 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->guid
));
2106 ndr
->flags
= _flags_save_string
;
2109 return NDR_ERR_SUCCESS
;
2112 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo7
*r
)
2115 TALLOC_CTX
*_mem_save_guid_0
;
2116 if (ndr_flags
& NDR_SCALARS
) {
2117 NDR_CHECK(ndr_pull_align(ndr
, 4));
2119 uint32_t _flags_save_string
= ndr
->flags
;
2120 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2121 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
2123 NDR_PULL_ALLOC(ndr
, r
->guid
);
2124 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->guid
, _ptr_guid
));
2128 ndr
->flags
= _flags_save_string
;
2130 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
2132 if (ndr_flags
& NDR_BUFFERS
) {
2134 uint32_t _flags_save_string
= ndr
->flags
;
2135 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2137 uint32_t _relative_save_offset
;
2138 _relative_save_offset
= ndr
->offset
;
2139 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->guid
));
2140 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2141 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
2142 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->guid
));
2143 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
2144 ndr
->offset
= _relative_save_offset
;
2146 ndr
->flags
= _flags_save_string
;
2149 return NDR_ERR_SUCCESS
;
2152 _PUBLIC_
void ndr_print_spoolss_PrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo7
*r
)
2154 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo7");
2156 ndr_print_ptr(ndr
, "guid", r
->guid
);
2159 ndr_print_string(ndr
, "guid", r
->guid
);
2162 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
2166 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2168 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo7
, ic
);
2171 static enum ndr_err_code
ndr_push_spoolss_DeviceModeInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceModeInfo
*r
)
2173 if (ndr_flags
& NDR_SCALARS
) {
2174 NDR_CHECK(ndr_push_align(ndr
, 4));
2175 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
2177 if (ndr_flags
& NDR_BUFFERS
) {
2179 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
2181 struct ndr_push
*_ndr_devmode
;
2182 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2183 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2184 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2188 return NDR_ERR_SUCCESS
;
2191 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceModeInfo
*r
)
2193 uint32_t _ptr_devmode
;
2194 TALLOC_CTX
*_mem_save_devmode_0
;
2195 if (ndr_flags
& NDR_SCALARS
) {
2196 NDR_CHECK(ndr_pull_align(ndr
, 4));
2197 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2199 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2200 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
2205 if (ndr_flags
& NDR_BUFFERS
) {
2207 uint32_t _relative_save_offset
;
2208 _relative_save_offset
= ndr
->offset
;
2209 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
2210 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2211 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2213 struct ndr_pull
*_ndr_devmode
;
2214 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2215 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2216 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2218 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2219 ndr
->offset
= _relative_save_offset
;
2222 return NDR_ERR_SUCCESS
;
2225 _PUBLIC_
void ndr_print_spoolss_DeviceModeInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceModeInfo
*r
)
2227 ndr_print_struct(ndr
, name
, "spoolss_DeviceModeInfo");
2229 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2232 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2238 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterInfo
*r
)
2240 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
2241 if (ndr_flags
& NDR_SCALARS
) {
2242 int level
= ndr_push_get_switch_value(ndr
, r
);
2245 NDR_CHECK(ndr_push_align(ndr
, 4));
2246 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2247 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2251 NDR_CHECK(ndr_push_align(ndr
, 4));
2252 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2253 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2257 NDR_CHECK(ndr_push_align(ndr
, 4));
2258 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2259 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2263 NDR_CHECK(ndr_push_align(ndr
, 4));
2264 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2265 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2269 NDR_CHECK(ndr_push_align(ndr
, 4));
2270 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2271 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2275 NDR_CHECK(ndr_push_align(ndr
, 4));
2276 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2277 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2281 NDR_CHECK(ndr_push_align(ndr
, 4));
2282 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2283 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2287 NDR_CHECK(ndr_push_align(ndr
, 4));
2288 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2289 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2293 NDR_CHECK(ndr_push_align(ndr
, 4));
2294 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2295 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2299 NDR_CHECK(ndr_push_align(ndr
, 4));
2300 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2301 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2309 if (ndr_flags
& NDR_BUFFERS
) {
2310 int level
= ndr_push_get_switch_value(ndr
, r
);
2311 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
2314 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2318 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2322 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2326 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2330 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2334 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2341 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2345 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2349 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2357 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2358 return NDR_ERR_SUCCESS
;
2361 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterInfo
*r
)
2363 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
2365 level
= ndr_pull_get_switch_value(ndr
, r
);
2366 if (ndr_flags
& NDR_SCALARS
) {
2369 NDR_CHECK(ndr_pull_align(ndr
, 4));
2370 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2371 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2375 NDR_CHECK(ndr_pull_align(ndr
, 4));
2376 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2377 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2381 NDR_CHECK(ndr_pull_align(ndr
, 4));
2382 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2383 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2387 NDR_CHECK(ndr_pull_align(ndr
, 4));
2388 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2389 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2393 NDR_CHECK(ndr_pull_align(ndr
, 4));
2394 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2395 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2399 NDR_CHECK(ndr_pull_align(ndr
, 4));
2400 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2401 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2405 NDR_CHECK(ndr_pull_align(ndr
, 4));
2406 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2407 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2411 NDR_CHECK(ndr_pull_align(ndr
, 4));
2412 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2413 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2417 NDR_CHECK(ndr_pull_align(ndr
, 4));
2418 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2419 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2423 NDR_CHECK(ndr_pull_align(ndr
, 4));
2424 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2425 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2433 if (ndr_flags
& NDR_BUFFERS
) {
2434 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
2437 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2441 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2445 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2449 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2453 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2457 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2464 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2468 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2472 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2480 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2481 return NDR_ERR_SUCCESS
;
2484 _PUBLIC_
void ndr_print_spoolss_PrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterInfo
*r
)
2487 level
= ndr_print_get_switch_value(ndr
, r
);
2488 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterInfo");
2491 ndr_print_spoolss_PrinterInfo0(ndr
, "info0", &r
->info0
);
2495 ndr_print_spoolss_PrinterInfo1(ndr
, "info1", &r
->info1
);
2499 ndr_print_spoolss_PrinterInfo2(ndr
, "info2", &r
->info2
);
2503 ndr_print_spoolss_PrinterInfo3(ndr
, "info3", &r
->info3
);
2507 ndr_print_spoolss_PrinterInfo4(ndr
, "info4", &r
->info4
);
2511 ndr_print_spoolss_PrinterInfo5(ndr
, "info5", &r
->info5
);
2515 ndr_print_spoolss_PrinterInfo6(ndr
, "info6", &r
->info6
);
2519 ndr_print_spoolss_PrinterInfo7(ndr
, "info7", &r
->info7
);
2523 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", &r
->info8
);
2527 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", &r
->info9
);
2536 _PUBLIC_
size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
2538 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterInfo
, ic
);
2541 static enum ndr_err_code
ndr_push_spoolss_DevmodeContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DevmodeContainer
*r
)
2543 if (ndr_flags
& NDR_SCALARS
) {
2544 NDR_CHECK(ndr_push_align(ndr
, 4));
2545 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2546 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
2548 if (ndr_flags
& NDR_BUFFERS
) {
2551 struct ndr_push
*_ndr_devmode
;
2552 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2553 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2554 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2558 return NDR_ERR_SUCCESS
;
2561 static enum ndr_err_code
ndr_pull_spoolss_DevmodeContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DevmodeContainer
*r
)
2563 uint32_t _ptr_devmode
;
2564 TALLOC_CTX
*_mem_save_devmode_0
;
2565 if (ndr_flags
& NDR_SCALARS
) {
2566 NDR_CHECK(ndr_pull_align(ndr
, 4));
2567 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
2568 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2570 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2575 if (ndr_flags
& NDR_BUFFERS
) {
2577 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2578 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2580 struct ndr_pull
*_ndr_devmode
;
2581 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 4, r
->_ndr_size
));
2582 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2583 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 4, r
->_ndr_size
));
2585 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2588 return NDR_ERR_SUCCESS
;
2591 _PUBLIC_
void ndr_print_spoolss_DevmodeContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DevmodeContainer
*r
)
2593 ndr_print_struct(ndr
, name
, "spoolss_DevmodeContainer");
2595 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
);
2596 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2599 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2605 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo1
*r
)
2607 if (ndr_flags
& NDR_SCALARS
) {
2608 NDR_CHECK(ndr_push_align(ndr
, 4));
2609 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
2611 uint32_t _flags_save_string
= ndr
->flags
;
2612 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2613 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
2614 ndr
->flags
= _flags_save_string
;
2617 uint32_t _flags_save_string
= ndr
->flags
;
2618 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2619 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
2620 ndr
->flags
= _flags_save_string
;
2623 uint32_t _flags_save_string
= ndr
->flags
;
2624 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2625 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
2626 ndr
->flags
= _flags_save_string
;
2629 uint32_t _flags_save_string
= ndr
->flags
;
2630 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2631 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
2632 ndr
->flags
= _flags_save_string
;
2635 uint32_t _flags_save_string
= ndr
->flags
;
2636 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2637 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
2638 ndr
->flags
= _flags_save_string
;
2641 uint32_t _flags_save_string
= ndr
->flags
;
2642 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2643 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
2644 ndr
->flags
= _flags_save_string
;
2646 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
2647 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
2648 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
2649 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
2650 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
2651 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
2653 if (ndr_flags
& NDR_BUFFERS
) {
2655 uint32_t _flags_save_string
= ndr
->flags
;
2656 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2657 if (r
->printer_name
) {
2658 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
2659 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
2661 ndr
->flags
= _flags_save_string
;
2664 uint32_t _flags_save_string
= ndr
->flags
;
2665 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2666 if (r
->server_name
) {
2667 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
2668 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
2670 ndr
->flags
= _flags_save_string
;
2673 uint32_t _flags_save_string
= ndr
->flags
;
2674 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2676 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
2677 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
2679 ndr
->flags
= _flags_save_string
;
2682 uint32_t _flags_save_string
= ndr
->flags
;
2683 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2684 if (r
->document_name
) {
2685 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
2686 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
2688 ndr
->flags
= _flags_save_string
;
2691 uint32_t _flags_save_string
= ndr
->flags
;
2692 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2694 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
2695 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
2697 ndr
->flags
= _flags_save_string
;
2700 uint32_t _flags_save_string
= ndr
->flags
;
2701 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2702 if (r
->text_status
) {
2703 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
2704 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
2706 ndr
->flags
= _flags_save_string
;
2709 return NDR_ERR_SUCCESS
;
2712 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo1
*r
)
2714 uint32_t _ptr_printer_name
;
2715 TALLOC_CTX
*_mem_save_printer_name_0
;
2716 uint32_t _ptr_server_name
;
2717 TALLOC_CTX
*_mem_save_server_name_0
;
2718 uint32_t _ptr_user_name
;
2719 TALLOC_CTX
*_mem_save_user_name_0
;
2720 uint32_t _ptr_document_name
;
2721 TALLOC_CTX
*_mem_save_document_name_0
;
2722 uint32_t _ptr_data_type
;
2723 TALLOC_CTX
*_mem_save_data_type_0
;
2724 uint32_t _ptr_text_status
;
2725 TALLOC_CTX
*_mem_save_text_status_0
;
2726 if (ndr_flags
& NDR_SCALARS
) {
2727 NDR_CHECK(ndr_pull_align(ndr
, 4));
2728 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
2730 uint32_t _flags_save_string
= ndr
->flags
;
2731 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2732 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
2733 if (_ptr_printer_name
) {
2734 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
2735 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
2737 r
->printer_name
= NULL
;
2739 ndr
->flags
= _flags_save_string
;
2742 uint32_t _flags_save_string
= ndr
->flags
;
2743 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2744 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
2745 if (_ptr_server_name
) {
2746 NDR_PULL_ALLOC(ndr
, r
->server_name
);
2747 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
2749 r
->server_name
= NULL
;
2751 ndr
->flags
= _flags_save_string
;
2754 uint32_t _flags_save_string
= ndr
->flags
;
2755 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2756 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
2757 if (_ptr_user_name
) {
2758 NDR_PULL_ALLOC(ndr
, r
->user_name
);
2759 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
2761 r
->user_name
= NULL
;
2763 ndr
->flags
= _flags_save_string
;
2766 uint32_t _flags_save_string
= ndr
->flags
;
2767 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2768 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
2769 if (_ptr_document_name
) {
2770 NDR_PULL_ALLOC(ndr
, r
->document_name
);
2771 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
2773 r
->document_name
= NULL
;
2775 ndr
->flags
= _flags_save_string
;
2778 uint32_t _flags_save_string
= ndr
->flags
;
2779 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2780 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
2781 if (_ptr_data_type
) {
2782 NDR_PULL_ALLOC(ndr
, r
->data_type
);
2783 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
2785 r
->data_type
= NULL
;
2787 ndr
->flags
= _flags_save_string
;
2790 uint32_t _flags_save_string
= ndr
->flags
;
2791 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2792 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
2793 if (_ptr_text_status
) {
2794 NDR_PULL_ALLOC(ndr
, r
->text_status
);
2795 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
2797 r
->text_status
= NULL
;
2799 ndr
->flags
= _flags_save_string
;
2801 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
2802 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
2803 if (r
->priority
> 99) {
2804 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
2806 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
2807 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
2808 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
2809 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
2811 if (ndr_flags
& NDR_BUFFERS
) {
2813 uint32_t _flags_save_string
= ndr
->flags
;
2814 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2815 if (r
->printer_name
) {
2816 uint32_t _relative_save_offset
;
2817 _relative_save_offset
= ndr
->offset
;
2818 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
2819 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2820 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
2821 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
2822 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
2823 ndr
->offset
= _relative_save_offset
;
2825 ndr
->flags
= _flags_save_string
;
2828 uint32_t _flags_save_string
= ndr
->flags
;
2829 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2830 if (r
->server_name
) {
2831 uint32_t _relative_save_offset
;
2832 _relative_save_offset
= ndr
->offset
;
2833 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
2834 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2835 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
2836 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
2837 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
2838 ndr
->offset
= _relative_save_offset
;
2840 ndr
->flags
= _flags_save_string
;
2843 uint32_t _flags_save_string
= ndr
->flags
;
2844 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2846 uint32_t _relative_save_offset
;
2847 _relative_save_offset
= ndr
->offset
;
2848 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
2849 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2850 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
2851 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
2852 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
2853 ndr
->offset
= _relative_save_offset
;
2855 ndr
->flags
= _flags_save_string
;
2858 uint32_t _flags_save_string
= ndr
->flags
;
2859 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2860 if (r
->document_name
) {
2861 uint32_t _relative_save_offset
;
2862 _relative_save_offset
= ndr
->offset
;
2863 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
2864 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2865 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
2866 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
2867 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
2868 ndr
->offset
= _relative_save_offset
;
2870 ndr
->flags
= _flags_save_string
;
2873 uint32_t _flags_save_string
= ndr
->flags
;
2874 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2876 uint32_t _relative_save_offset
;
2877 _relative_save_offset
= ndr
->offset
;
2878 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
2879 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2880 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
2881 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
2882 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
2883 ndr
->offset
= _relative_save_offset
;
2885 ndr
->flags
= _flags_save_string
;
2888 uint32_t _flags_save_string
= ndr
->flags
;
2889 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2890 if (r
->text_status
) {
2891 uint32_t _relative_save_offset
;
2892 _relative_save_offset
= ndr
->offset
;
2893 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
2894 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2895 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
2896 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
2897 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
2898 ndr
->offset
= _relative_save_offset
;
2900 ndr
->flags
= _flags_save_string
;
2903 return NDR_ERR_SUCCESS
;
2906 _PUBLIC_
void ndr_print_spoolss_JobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo1
*r
)
2908 ndr_print_struct(ndr
, name
, "spoolss_JobInfo1");
2910 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
2911 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
2913 if (r
->printer_name
) {
2914 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
2917 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
2919 if (r
->server_name
) {
2920 ndr_print_string(ndr
, "server_name", r
->server_name
);
2923 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
2926 ndr_print_string(ndr
, "user_name", r
->user_name
);
2929 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
2931 if (r
->document_name
) {
2932 ndr_print_string(ndr
, "document_name", r
->document_name
);
2935 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
2938 ndr_print_string(ndr
, "data_type", r
->data_type
);
2941 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
2943 if (r
->text_status
) {
2944 ndr_print_string(ndr
, "text_status", r
->text_status
);
2947 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
2948 ndr_print_uint32(ndr
, "priority", r
->priority
);
2949 ndr_print_uint32(ndr
, "position", r
->position
);
2950 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
2951 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
2952 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
2956 _PUBLIC_
size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2958 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo1
, ic
);
2961 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo2
*r
)
2963 if (ndr_flags
& NDR_SCALARS
) {
2964 NDR_CHECK(ndr_push_align(ndr
, 4));
2965 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
2967 uint32_t _flags_save_string
= ndr
->flags
;
2968 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2969 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
2970 ndr
->flags
= _flags_save_string
;
2973 uint32_t _flags_save_string
= ndr
->flags
;
2974 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2975 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
2976 ndr
->flags
= _flags_save_string
;
2979 uint32_t _flags_save_string
= ndr
->flags
;
2980 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2981 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
2982 ndr
->flags
= _flags_save_string
;
2985 uint32_t _flags_save_string
= ndr
->flags
;
2986 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2987 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
2988 ndr
->flags
= _flags_save_string
;
2991 uint32_t _flags_save_string
= ndr
->flags
;
2992 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2993 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
2994 ndr
->flags
= _flags_save_string
;
2997 uint32_t _flags_save_string
= ndr
->flags
;
2998 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2999 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3000 ndr
->flags
= _flags_save_string
;
3003 uint32_t _flags_save_string
= ndr
->flags
;
3004 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3005 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
3006 ndr
->flags
= _flags_save_string
;
3009 uint32_t _flags_save_string
= ndr
->flags
;
3010 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3011 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
3012 ndr
->flags
= _flags_save_string
;
3015 uint32_t _flags_save_string
= ndr
->flags
;
3016 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3017 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
3018 ndr
->flags
= _flags_save_string
;
3020 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
3022 uint32_t _flags_save_string
= ndr
->flags
;
3023 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3024 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3025 ndr
->flags
= _flags_save_string
;
3027 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
3028 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3029 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3030 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3031 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
3032 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
3033 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3034 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
3035 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3036 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
3037 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3039 if (ndr_flags
& NDR_BUFFERS
) {
3041 uint32_t _flags_save_string
= ndr
->flags
;
3042 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3043 if (r
->printer_name
) {
3044 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
3045 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
3047 ndr
->flags
= _flags_save_string
;
3050 uint32_t _flags_save_string
= ndr
->flags
;
3051 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3052 if (r
->server_name
) {
3053 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
3054 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3056 ndr
->flags
= _flags_save_string
;
3059 uint32_t _flags_save_string
= ndr
->flags
;
3060 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3062 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
3063 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3065 ndr
->flags
= _flags_save_string
;
3068 uint32_t _flags_save_string
= ndr
->flags
;
3069 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3070 if (r
->document_name
) {
3071 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
3072 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3074 ndr
->flags
= _flags_save_string
;
3077 uint32_t _flags_save_string
= ndr
->flags
;
3078 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3079 if (r
->notify_name
) {
3080 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->notify_name
));
3081 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
3083 ndr
->flags
= _flags_save_string
;
3086 uint32_t _flags_save_string
= ndr
->flags
;
3087 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3089 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
3090 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3092 ndr
->flags
= _flags_save_string
;
3095 uint32_t _flags_save_string
= ndr
->flags
;
3096 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3097 if (r
->print_processor
) {
3098 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
3099 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
3101 ndr
->flags
= _flags_save_string
;
3104 uint32_t _flags_save_string
= ndr
->flags
;
3105 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3106 if (r
->parameters
) {
3107 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
3108 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3110 ndr
->flags
= _flags_save_string
;
3113 uint32_t _flags_save_string
= ndr
->flags
;
3114 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3115 if (r
->driver_name
) {
3116 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
3117 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3119 ndr
->flags
= _flags_save_string
;
3122 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
3123 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3126 uint32_t _flags_save_string
= ndr
->flags
;
3127 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3128 if (r
->text_status
) {
3129 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
3130 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3132 ndr
->flags
= _flags_save_string
;
3135 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
3136 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3139 return NDR_ERR_SUCCESS
;
3142 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo2
*r
)
3144 uint32_t _ptr_printer_name
;
3145 TALLOC_CTX
*_mem_save_printer_name_0
;
3146 uint32_t _ptr_server_name
;
3147 TALLOC_CTX
*_mem_save_server_name_0
;
3148 uint32_t _ptr_user_name
;
3149 TALLOC_CTX
*_mem_save_user_name_0
;
3150 uint32_t _ptr_document_name
;
3151 TALLOC_CTX
*_mem_save_document_name_0
;
3152 uint32_t _ptr_notify_name
;
3153 TALLOC_CTX
*_mem_save_notify_name_0
;
3154 uint32_t _ptr_data_type
;
3155 TALLOC_CTX
*_mem_save_data_type_0
;
3156 uint32_t _ptr_print_processor
;
3157 TALLOC_CTX
*_mem_save_print_processor_0
;
3158 uint32_t _ptr_parameters
;
3159 TALLOC_CTX
*_mem_save_parameters_0
;
3160 uint32_t _ptr_driver_name
;
3161 TALLOC_CTX
*_mem_save_driver_name_0
;
3162 uint32_t _ptr_devmode
;
3163 TALLOC_CTX
*_mem_save_devmode_0
;
3164 uint32_t _ptr_text_status
;
3165 TALLOC_CTX
*_mem_save_text_status_0
;
3166 uint32_t _ptr_secdesc
;
3167 TALLOC_CTX
*_mem_save_secdesc_0
;
3168 if (ndr_flags
& NDR_SCALARS
) {
3169 NDR_CHECK(ndr_pull_align(ndr
, 4));
3170 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3172 uint32_t _flags_save_string
= ndr
->flags
;
3173 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3174 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3175 if (_ptr_printer_name
) {
3176 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3177 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3179 r
->printer_name
= NULL
;
3181 ndr
->flags
= _flags_save_string
;
3184 uint32_t _flags_save_string
= ndr
->flags
;
3185 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3186 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3187 if (_ptr_server_name
) {
3188 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3189 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3191 r
->server_name
= NULL
;
3193 ndr
->flags
= _flags_save_string
;
3196 uint32_t _flags_save_string
= ndr
->flags
;
3197 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3198 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3199 if (_ptr_user_name
) {
3200 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3201 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3203 r
->user_name
= NULL
;
3205 ndr
->flags
= _flags_save_string
;
3208 uint32_t _flags_save_string
= ndr
->flags
;
3209 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3210 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3211 if (_ptr_document_name
) {
3212 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3213 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3215 r
->document_name
= NULL
;
3217 ndr
->flags
= _flags_save_string
;
3220 uint32_t _flags_save_string
= ndr
->flags
;
3221 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3222 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
3223 if (_ptr_notify_name
) {
3224 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
3225 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
3227 r
->notify_name
= NULL
;
3229 ndr
->flags
= _flags_save_string
;
3232 uint32_t _flags_save_string
= ndr
->flags
;
3233 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3234 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3235 if (_ptr_data_type
) {
3236 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3237 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3239 r
->data_type
= NULL
;
3241 ndr
->flags
= _flags_save_string
;
3244 uint32_t _flags_save_string
= ndr
->flags
;
3245 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3246 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
3247 if (_ptr_print_processor
) {
3248 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
3249 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
3251 r
->print_processor
= NULL
;
3253 ndr
->flags
= _flags_save_string
;
3256 uint32_t _flags_save_string
= ndr
->flags
;
3257 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3258 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
3259 if (_ptr_parameters
) {
3260 NDR_PULL_ALLOC(ndr
, r
->parameters
);
3261 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
3263 r
->parameters
= NULL
;
3265 ndr
->flags
= _flags_save_string
;
3268 uint32_t _flags_save_string
= ndr
->flags
;
3269 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3270 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
3271 if (_ptr_driver_name
) {
3272 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
3273 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
3275 r
->driver_name
= NULL
;
3277 ndr
->flags
= _flags_save_string
;
3279 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3281 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3282 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
3287 uint32_t _flags_save_string
= ndr
->flags
;
3288 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3289 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3290 if (_ptr_text_status
) {
3291 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3292 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3294 r
->text_status
= NULL
;
3296 ndr
->flags
= _flags_save_string
;
3298 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
3300 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
3301 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
3305 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3306 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3307 if (r
->priority
> 99) {
3308 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
3310 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3311 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
3312 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
3313 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3314 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
3315 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3316 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
3317 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3319 if (ndr_flags
& NDR_BUFFERS
) {
3321 uint32_t _flags_save_string
= ndr
->flags
;
3322 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3323 if (r
->printer_name
) {
3324 uint32_t _relative_save_offset
;
3325 _relative_save_offset
= ndr
->offset
;
3326 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3327 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3328 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3329 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3330 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3331 ndr
->offset
= _relative_save_offset
;
3333 ndr
->flags
= _flags_save_string
;
3336 uint32_t _flags_save_string
= ndr
->flags
;
3337 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3338 if (r
->server_name
) {
3339 uint32_t _relative_save_offset
;
3340 _relative_save_offset
= ndr
->offset
;
3341 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3342 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3343 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3344 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3345 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3346 ndr
->offset
= _relative_save_offset
;
3348 ndr
->flags
= _flags_save_string
;
3351 uint32_t _flags_save_string
= ndr
->flags
;
3352 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3354 uint32_t _relative_save_offset
;
3355 _relative_save_offset
= ndr
->offset
;
3356 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3357 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3358 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3359 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3360 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3361 ndr
->offset
= _relative_save_offset
;
3363 ndr
->flags
= _flags_save_string
;
3366 uint32_t _flags_save_string
= ndr
->flags
;
3367 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3368 if (r
->document_name
) {
3369 uint32_t _relative_save_offset
;
3370 _relative_save_offset
= ndr
->offset
;
3371 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3372 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3373 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3374 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3375 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3376 ndr
->offset
= _relative_save_offset
;
3378 ndr
->flags
= _flags_save_string
;
3381 uint32_t _flags_save_string
= ndr
->flags
;
3382 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3383 if (r
->notify_name
) {
3384 uint32_t _relative_save_offset
;
3385 _relative_save_offset
= ndr
->offset
;
3386 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
3387 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3388 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
3389 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
3390 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
3391 ndr
->offset
= _relative_save_offset
;
3393 ndr
->flags
= _flags_save_string
;
3396 uint32_t _flags_save_string
= ndr
->flags
;
3397 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3399 uint32_t _relative_save_offset
;
3400 _relative_save_offset
= ndr
->offset
;
3401 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
3402 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3403 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
3404 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
3405 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
3406 ndr
->offset
= _relative_save_offset
;
3408 ndr
->flags
= _flags_save_string
;
3411 uint32_t _flags_save_string
= ndr
->flags
;
3412 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3413 if (r
->print_processor
) {
3414 uint32_t _relative_save_offset
;
3415 _relative_save_offset
= ndr
->offset
;
3416 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
3417 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3418 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
3419 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
3420 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
3421 ndr
->offset
= _relative_save_offset
;
3423 ndr
->flags
= _flags_save_string
;
3426 uint32_t _flags_save_string
= ndr
->flags
;
3427 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3428 if (r
->parameters
) {
3429 uint32_t _relative_save_offset
;
3430 _relative_save_offset
= ndr
->offset
;
3431 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
3432 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3433 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
3434 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
3435 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
3436 ndr
->offset
= _relative_save_offset
;
3438 ndr
->flags
= _flags_save_string
;
3441 uint32_t _flags_save_string
= ndr
->flags
;
3442 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3443 if (r
->driver_name
) {
3444 uint32_t _relative_save_offset
;
3445 _relative_save_offset
= ndr
->offset
;
3446 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
3447 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3448 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
3449 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
3450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
3451 ndr
->offset
= _relative_save_offset
;
3453 ndr
->flags
= _flags_save_string
;
3456 uint32_t _relative_save_offset
;
3457 _relative_save_offset
= ndr
->offset
;
3458 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
3459 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3460 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
3461 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
3463 ndr
->offset
= _relative_save_offset
;
3466 uint32_t _flags_save_string
= ndr
->flags
;
3467 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3468 if (r
->text_status
) {
3469 uint32_t _relative_save_offset
;
3470 _relative_save_offset
= ndr
->offset
;
3471 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
3472 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3473 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
3474 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
3475 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
3476 ndr
->offset
= _relative_save_offset
;
3478 ndr
->flags
= _flags_save_string
;
3481 uint32_t _relative_save_offset
;
3482 _relative_save_offset
= ndr
->offset
;
3483 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
3484 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3485 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
3486 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3487 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
3488 ndr
->offset
= _relative_save_offset
;
3491 return NDR_ERR_SUCCESS
;
3494 _PUBLIC_
void ndr_print_spoolss_JobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo2
*r
)
3496 ndr_print_struct(ndr
, name
, "spoolss_JobInfo2");
3498 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3499 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
3501 if (r
->printer_name
) {
3502 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
3505 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
3507 if (r
->server_name
) {
3508 ndr_print_string(ndr
, "server_name", r
->server_name
);
3511 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
3514 ndr_print_string(ndr
, "user_name", r
->user_name
);
3517 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
3519 if (r
->document_name
) {
3520 ndr_print_string(ndr
, "document_name", r
->document_name
);
3523 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
3525 if (r
->notify_name
) {
3526 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
3529 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
3532 ndr_print_string(ndr
, "data_type", r
->data_type
);
3535 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
3537 if (r
->print_processor
) {
3538 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
3541 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
3543 if (r
->parameters
) {
3544 ndr_print_string(ndr
, "parameters", r
->parameters
);
3547 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
3549 if (r
->driver_name
) {
3550 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
3553 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
3556 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
3559 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
3561 if (r
->text_status
) {
3562 ndr_print_string(ndr
, "text_status", r
->text_status
);
3565 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
3568 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
3571 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
3572 ndr_print_uint32(ndr
, "priority", r
->priority
);
3573 ndr_print_uint32(ndr
, "position", r
->position
);
3574 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
3575 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
3576 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
3577 ndr_print_uint32(ndr
, "size", r
->size
);
3578 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
3579 ndr_print_uint32(ndr
, "time", r
->time
);
3580 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
3584 _PUBLIC_
size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
3586 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo2
, ic
);
3589 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo3
*r
)
3591 if (ndr_flags
& NDR_SCALARS
) {
3592 NDR_CHECK(ndr_push_align(ndr
, 4));
3593 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3594 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->next_job_id
));
3595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
3597 if (ndr_flags
& NDR_BUFFERS
) {
3599 return NDR_ERR_SUCCESS
;
3602 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo3
*r
)
3604 if (ndr_flags
& NDR_SCALARS
) {
3605 NDR_CHECK(ndr_pull_align(ndr
, 4));
3606 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3607 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->next_job_id
));
3608 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
3610 if (ndr_flags
& NDR_BUFFERS
) {
3612 return NDR_ERR_SUCCESS
;
3615 _PUBLIC_
void ndr_print_spoolss_JobInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo3
*r
)
3617 ndr_print_struct(ndr
, name
, "spoolss_JobInfo3");
3619 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3620 ndr_print_uint32(ndr
, "next_job_id", r
->next_job_id
);
3621 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
3625 _PUBLIC_
size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
3627 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo3
, ic
);
3630 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo4
*r
)
3632 if (ndr_flags
& NDR_SCALARS
) {
3633 NDR_CHECK(ndr_push_align(ndr
, 4));
3634 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3636 uint32_t _flags_save_string
= ndr
->flags
;
3637 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3638 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
3639 ndr
->flags
= _flags_save_string
;
3642 uint32_t _flags_save_string
= ndr
->flags
;
3643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3644 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
3645 ndr
->flags
= _flags_save_string
;
3648 uint32_t _flags_save_string
= ndr
->flags
;
3649 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3650 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
3651 ndr
->flags
= _flags_save_string
;
3654 uint32_t _flags_save_string
= ndr
->flags
;
3655 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3656 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
3657 ndr
->flags
= _flags_save_string
;
3660 uint32_t _flags_save_string
= ndr
->flags
;
3661 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3662 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
3663 ndr
->flags
= _flags_save_string
;
3666 uint32_t _flags_save_string
= ndr
->flags
;
3667 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3668 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3669 ndr
->flags
= _flags_save_string
;
3672 uint32_t _flags_save_string
= ndr
->flags
;
3673 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3674 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
3675 ndr
->flags
= _flags_save_string
;
3678 uint32_t _flags_save_string
= ndr
->flags
;
3679 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3680 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
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_push_relative_ptr1(ndr
, r
->driver_name
));
3687 ndr
->flags
= _flags_save_string
;
3689 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
3691 uint32_t _flags_save_string
= ndr
->flags
;
3692 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3693 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3694 ndr
->flags
= _flags_save_string
;
3696 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
3697 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3698 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3699 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3700 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
3701 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
3702 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3703 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
3704 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3705 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
3706 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3707 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
3709 if (ndr_flags
& NDR_BUFFERS
) {
3711 uint32_t _flags_save_string
= ndr
->flags
;
3712 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3713 if (r
->printer_name
) {
3714 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
3715 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
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 if (r
->server_name
) {
3723 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
3724 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3726 ndr
->flags
= _flags_save_string
;
3729 uint32_t _flags_save_string
= ndr
->flags
;
3730 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3732 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
3733 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3735 ndr
->flags
= _flags_save_string
;
3738 uint32_t _flags_save_string
= ndr
->flags
;
3739 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3740 if (r
->document_name
) {
3741 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
3742 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3744 ndr
->flags
= _flags_save_string
;
3747 uint32_t _flags_save_string
= ndr
->flags
;
3748 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3749 if (r
->notify_name
) {
3750 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->notify_name
));
3751 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
3753 ndr
->flags
= _flags_save_string
;
3756 uint32_t _flags_save_string
= ndr
->flags
;
3757 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3759 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
3760 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3762 ndr
->flags
= _flags_save_string
;
3765 uint32_t _flags_save_string
= ndr
->flags
;
3766 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3767 if (r
->print_processor
) {
3768 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
3769 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
3771 ndr
->flags
= _flags_save_string
;
3774 uint32_t _flags_save_string
= ndr
->flags
;
3775 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3776 if (r
->parameters
) {
3777 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
3778 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3780 ndr
->flags
= _flags_save_string
;
3783 uint32_t _flags_save_string
= ndr
->flags
;
3784 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3785 if (r
->driver_name
) {
3786 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
3787 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3789 ndr
->flags
= _flags_save_string
;
3792 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
3793 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3796 uint32_t _flags_save_string
= ndr
->flags
;
3797 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3798 if (r
->text_status
) {
3799 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
3800 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3802 ndr
->flags
= _flags_save_string
;
3805 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
3806 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3809 return NDR_ERR_SUCCESS
;
3812 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo4
*r
)
3814 uint32_t _ptr_printer_name
;
3815 TALLOC_CTX
*_mem_save_printer_name_0
;
3816 uint32_t _ptr_server_name
;
3817 TALLOC_CTX
*_mem_save_server_name_0
;
3818 uint32_t _ptr_user_name
;
3819 TALLOC_CTX
*_mem_save_user_name_0
;
3820 uint32_t _ptr_document_name
;
3821 TALLOC_CTX
*_mem_save_document_name_0
;
3822 uint32_t _ptr_notify_name
;
3823 TALLOC_CTX
*_mem_save_notify_name_0
;
3824 uint32_t _ptr_data_type
;
3825 TALLOC_CTX
*_mem_save_data_type_0
;
3826 uint32_t _ptr_print_processor
;
3827 TALLOC_CTX
*_mem_save_print_processor_0
;
3828 uint32_t _ptr_parameters
;
3829 TALLOC_CTX
*_mem_save_parameters_0
;
3830 uint32_t _ptr_driver_name
;
3831 TALLOC_CTX
*_mem_save_driver_name_0
;
3832 uint32_t _ptr_devmode
;
3833 TALLOC_CTX
*_mem_save_devmode_0
;
3834 uint32_t _ptr_text_status
;
3835 TALLOC_CTX
*_mem_save_text_status_0
;
3836 uint32_t _ptr_secdesc
;
3837 TALLOC_CTX
*_mem_save_secdesc_0
;
3838 if (ndr_flags
& NDR_SCALARS
) {
3839 NDR_CHECK(ndr_pull_align(ndr
, 4));
3840 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3842 uint32_t _flags_save_string
= ndr
->flags
;
3843 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3844 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3845 if (_ptr_printer_name
) {
3846 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3847 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3849 r
->printer_name
= NULL
;
3851 ndr
->flags
= _flags_save_string
;
3854 uint32_t _flags_save_string
= ndr
->flags
;
3855 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3856 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3857 if (_ptr_server_name
) {
3858 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3859 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3861 r
->server_name
= NULL
;
3863 ndr
->flags
= _flags_save_string
;
3866 uint32_t _flags_save_string
= ndr
->flags
;
3867 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3868 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3869 if (_ptr_user_name
) {
3870 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3871 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3873 r
->user_name
= NULL
;
3875 ndr
->flags
= _flags_save_string
;
3878 uint32_t _flags_save_string
= ndr
->flags
;
3879 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3880 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3881 if (_ptr_document_name
) {
3882 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3883 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3885 r
->document_name
= NULL
;
3887 ndr
->flags
= _flags_save_string
;
3890 uint32_t _flags_save_string
= ndr
->flags
;
3891 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3892 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
3893 if (_ptr_notify_name
) {
3894 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
3895 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
3897 r
->notify_name
= NULL
;
3899 ndr
->flags
= _flags_save_string
;
3902 uint32_t _flags_save_string
= ndr
->flags
;
3903 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3904 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3905 if (_ptr_data_type
) {
3906 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3907 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3909 r
->data_type
= NULL
;
3911 ndr
->flags
= _flags_save_string
;
3914 uint32_t _flags_save_string
= ndr
->flags
;
3915 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3916 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
3917 if (_ptr_print_processor
) {
3918 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
3919 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
3921 r
->print_processor
= NULL
;
3923 ndr
->flags
= _flags_save_string
;
3926 uint32_t _flags_save_string
= ndr
->flags
;
3927 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3928 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
3929 if (_ptr_parameters
) {
3930 NDR_PULL_ALLOC(ndr
, r
->parameters
);
3931 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
3933 r
->parameters
= NULL
;
3935 ndr
->flags
= _flags_save_string
;
3938 uint32_t _flags_save_string
= ndr
->flags
;
3939 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3940 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
3941 if (_ptr_driver_name
) {
3942 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
3943 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
3945 r
->driver_name
= NULL
;
3947 ndr
->flags
= _flags_save_string
;
3949 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3951 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3952 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
3957 uint32_t _flags_save_string
= ndr
->flags
;
3958 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3959 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3960 if (_ptr_text_status
) {
3961 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3962 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3964 r
->text_status
= NULL
;
3966 ndr
->flags
= _flags_save_string
;
3968 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
3970 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
3971 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
3975 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3976 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3977 if (r
->priority
> 99) {
3978 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
3980 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3981 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
3982 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
3983 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3984 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
3985 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3986 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
3987 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3988 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
3990 if (ndr_flags
& NDR_BUFFERS
) {
3992 uint32_t _flags_save_string
= ndr
->flags
;
3993 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3994 if (r
->printer_name
) {
3995 uint32_t _relative_save_offset
;
3996 _relative_save_offset
= ndr
->offset
;
3997 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3998 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3999 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4000 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
4001 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4002 ndr
->offset
= _relative_save_offset
;
4004 ndr
->flags
= _flags_save_string
;
4007 uint32_t _flags_save_string
= ndr
->flags
;
4008 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4009 if (r
->server_name
) {
4010 uint32_t _relative_save_offset
;
4011 _relative_save_offset
= ndr
->offset
;
4012 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
4013 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4014 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4015 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
4016 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4017 ndr
->offset
= _relative_save_offset
;
4019 ndr
->flags
= _flags_save_string
;
4022 uint32_t _flags_save_string
= ndr
->flags
;
4023 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4025 uint32_t _relative_save_offset
;
4026 _relative_save_offset
= ndr
->offset
;
4027 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
4028 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4029 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4030 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
4031 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4032 ndr
->offset
= _relative_save_offset
;
4034 ndr
->flags
= _flags_save_string
;
4037 uint32_t _flags_save_string
= ndr
->flags
;
4038 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4039 if (r
->document_name
) {
4040 uint32_t _relative_save_offset
;
4041 _relative_save_offset
= ndr
->offset
;
4042 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
4043 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4044 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4045 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
4046 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4047 ndr
->offset
= _relative_save_offset
;
4049 ndr
->flags
= _flags_save_string
;
4052 uint32_t _flags_save_string
= ndr
->flags
;
4053 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4054 if (r
->notify_name
) {
4055 uint32_t _relative_save_offset
;
4056 _relative_save_offset
= ndr
->offset
;
4057 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
4058 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4059 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
4060 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
4061 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
4062 ndr
->offset
= _relative_save_offset
;
4064 ndr
->flags
= _flags_save_string
;
4067 uint32_t _flags_save_string
= ndr
->flags
;
4068 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4070 uint32_t _relative_save_offset
;
4071 _relative_save_offset
= ndr
->offset
;
4072 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
4073 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4074 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4075 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
4076 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4077 ndr
->offset
= _relative_save_offset
;
4079 ndr
->flags
= _flags_save_string
;
4082 uint32_t _flags_save_string
= ndr
->flags
;
4083 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4084 if (r
->print_processor
) {
4085 uint32_t _relative_save_offset
;
4086 _relative_save_offset
= ndr
->offset
;
4087 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
4088 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4089 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
4090 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
4091 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
4092 ndr
->offset
= _relative_save_offset
;
4094 ndr
->flags
= _flags_save_string
;
4097 uint32_t _flags_save_string
= ndr
->flags
;
4098 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4099 if (r
->parameters
) {
4100 uint32_t _relative_save_offset
;
4101 _relative_save_offset
= ndr
->offset
;
4102 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
4103 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4104 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
4105 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
4106 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
4107 ndr
->offset
= _relative_save_offset
;
4109 ndr
->flags
= _flags_save_string
;
4112 uint32_t _flags_save_string
= ndr
->flags
;
4113 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4114 if (r
->driver_name
) {
4115 uint32_t _relative_save_offset
;
4116 _relative_save_offset
= ndr
->offset
;
4117 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
4118 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4119 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
4120 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
4121 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
4122 ndr
->offset
= _relative_save_offset
;
4124 ndr
->flags
= _flags_save_string
;
4127 uint32_t _relative_save_offset
;
4128 _relative_save_offset
= ndr
->offset
;
4129 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
4130 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4131 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
4132 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
4133 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
4134 ndr
->offset
= _relative_save_offset
;
4137 uint32_t _flags_save_string
= ndr
->flags
;
4138 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4139 if (r
->text_status
) {
4140 uint32_t _relative_save_offset
;
4141 _relative_save_offset
= ndr
->offset
;
4142 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
4143 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4144 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4145 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
4146 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4147 ndr
->offset
= _relative_save_offset
;
4149 ndr
->flags
= _flags_save_string
;
4152 uint32_t _relative_save_offset
;
4153 _relative_save_offset
= ndr
->offset
;
4154 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
4155 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4156 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
4157 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4158 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
4159 ndr
->offset
= _relative_save_offset
;
4162 return NDR_ERR_SUCCESS
;
4165 _PUBLIC_
void ndr_print_spoolss_JobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo4
*r
)
4167 ndr_print_struct(ndr
, name
, "spoolss_JobInfo4");
4169 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4170 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4172 if (r
->printer_name
) {
4173 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4176 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4178 if (r
->server_name
) {
4179 ndr_print_string(ndr
, "server_name", r
->server_name
);
4182 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4185 ndr_print_string(ndr
, "user_name", r
->user_name
);
4188 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4190 if (r
->document_name
) {
4191 ndr_print_string(ndr
, "document_name", r
->document_name
);
4194 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
4196 if (r
->notify_name
) {
4197 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
4200 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4203 ndr_print_string(ndr
, "data_type", r
->data_type
);
4206 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
4208 if (r
->print_processor
) {
4209 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
4212 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
4214 if (r
->parameters
) {
4215 ndr_print_string(ndr
, "parameters", r
->parameters
);
4218 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
4220 if (r
->driver_name
) {
4221 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
4224 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
4227 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
4230 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4232 if (r
->text_status
) {
4233 ndr_print_string(ndr
, "text_status", r
->text_status
);
4236 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
4239 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
4242 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4243 ndr_print_uint32(ndr
, "priority", r
->priority
);
4244 ndr_print_uint32(ndr
, "position", r
->position
);
4245 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
4246 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
4247 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4248 ndr_print_uint32(ndr
, "size", r
->size
);
4249 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4250 ndr_print_uint32(ndr
, "time", r
->time
);
4251 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4252 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
4256 _PUBLIC_
size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4258 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo4
, ic
);
4261 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_JobInfo
*r
)
4263 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
4264 if (ndr_flags
& NDR_SCALARS
) {
4265 int level
= ndr_push_get_switch_value(ndr
, r
);
4268 NDR_CHECK(ndr_push_align(ndr
, 4));
4269 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4270 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4274 NDR_CHECK(ndr_push_align(ndr
, 4));
4275 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4276 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4280 NDR_CHECK(ndr_push_align(ndr
, 4));
4281 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4282 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4286 NDR_CHECK(ndr_push_align(ndr
, 4));
4287 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4288 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4296 if (ndr_flags
& NDR_BUFFERS
) {
4297 int level
= ndr_push_get_switch_value(ndr
, r
);
4298 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
4301 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4305 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4312 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4320 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4321 return NDR_ERR_SUCCESS
;
4324 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_JobInfo
*r
)
4326 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
4328 level
= ndr_pull_get_switch_value(ndr
, r
);
4329 if (ndr_flags
& NDR_SCALARS
) {
4332 NDR_CHECK(ndr_pull_align(ndr
, 4));
4333 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4334 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4338 NDR_CHECK(ndr_pull_align(ndr
, 4));
4339 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4340 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4344 NDR_CHECK(ndr_pull_align(ndr
, 4));
4345 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4346 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4350 NDR_CHECK(ndr_pull_align(ndr
, 4));
4351 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4352 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4360 if (ndr_flags
& NDR_BUFFERS
) {
4361 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
4364 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4368 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4375 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4383 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4384 return NDR_ERR_SUCCESS
;
4387 _PUBLIC_
void ndr_print_spoolss_JobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_JobInfo
*r
)
4390 level
= ndr_print_get_switch_value(ndr
, r
);
4391 ndr_print_union(ndr
, name
, level
, "spoolss_JobInfo");
4394 ndr_print_spoolss_JobInfo1(ndr
, "info1", &r
->info1
);
4398 ndr_print_spoolss_JobInfo2(ndr
, "info2", &r
->info2
);
4402 ndr_print_spoolss_JobInfo3(ndr
, "info3", &r
->info3
);
4406 ndr_print_spoolss_JobInfo4(ndr
, "info4", &r
->info4
);
4415 _PUBLIC_
size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
4417 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo
, ic
);
4420 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo1
*r
)
4422 if (ndr_flags
& NDR_SCALARS
) {
4423 NDR_CHECK(ndr_push_align(ndr
, 4));
4424 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4425 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
4426 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
4427 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
4428 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
4429 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
4430 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
4431 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4433 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4436 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4438 if (ndr_flags
& NDR_BUFFERS
) {
4439 if (r
->printer_name
) {
4440 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4443 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4445 if (r
->server_name
) {
4446 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4447 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4448 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4449 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4452 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4453 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4454 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4455 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4457 if (r
->document_name
) {
4458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4459 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4460 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4461 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4464 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4465 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4466 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4467 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4469 if (r
->text_status
) {
4470 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4471 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4472 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4473 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4476 return NDR_ERR_SUCCESS
;
4479 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo1
*r
)
4481 uint32_t _ptr_printer_name
;
4482 TALLOC_CTX
*_mem_save_printer_name_0
;
4483 uint32_t _ptr_server_name
;
4484 TALLOC_CTX
*_mem_save_server_name_0
;
4485 uint32_t _ptr_user_name
;
4486 TALLOC_CTX
*_mem_save_user_name_0
;
4487 uint32_t _ptr_document_name
;
4488 TALLOC_CTX
*_mem_save_document_name_0
;
4489 uint32_t _ptr_data_type
;
4490 TALLOC_CTX
*_mem_save_data_type_0
;
4491 uint32_t _ptr_text_status
;
4492 TALLOC_CTX
*_mem_save_text_status_0
;
4493 if (ndr_flags
& NDR_SCALARS
) {
4494 NDR_CHECK(ndr_pull_align(ndr
, 4));
4495 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4496 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
4497 if (_ptr_printer_name
) {
4498 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
4500 r
->printer_name
= NULL
;
4502 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4503 if (_ptr_server_name
) {
4504 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4506 r
->server_name
= NULL
;
4508 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4509 if (_ptr_user_name
) {
4510 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4512 r
->user_name
= NULL
;
4514 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4515 if (_ptr_document_name
) {
4516 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4518 r
->document_name
= NULL
;
4520 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4521 if (_ptr_data_type
) {
4522 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4524 r
->data_type
= NULL
;
4526 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4527 if (_ptr_text_status
) {
4528 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4530 r
->text_status
= NULL
;
4532 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4533 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4534 if (r
->priority
> 99) {
4535 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4537 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4538 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4539 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4540 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4542 if (ndr_flags
& NDR_BUFFERS
) {
4543 if (r
->printer_name
) {
4544 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4545 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4546 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
4547 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
4548 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
4549 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
));
4551 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
4552 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
4553 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4555 if (r
->server_name
) {
4556 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4557 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4558 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
4559 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
4560 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
4561 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
));
4563 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
4564 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
4565 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4568 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4569 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4570 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
4571 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
4572 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
4573 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
));
4575 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
4576 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
4577 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4579 if (r
->document_name
) {
4580 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4581 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4582 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
4583 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
4584 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
4585 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
));
4587 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
4588 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
4589 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4592 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4593 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4594 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
4595 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
4596 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
4597 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
));
4599 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
4600 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
4601 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4603 if (r
->text_status
) {
4604 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4605 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4606 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
4607 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
4608 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
4609 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
));
4611 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
4612 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
4613 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4616 return NDR_ERR_SUCCESS
;
4619 _PUBLIC_
void ndr_print_spoolss_SetJobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo1
*r
)
4621 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo1");
4623 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4624 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4626 if (r
->printer_name
) {
4627 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4630 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4632 if (r
->server_name
) {
4633 ndr_print_string(ndr
, "server_name", r
->server_name
);
4636 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4639 ndr_print_string(ndr
, "user_name", r
->user_name
);
4642 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4644 if (r
->document_name
) {
4645 ndr_print_string(ndr
, "document_name", r
->document_name
);
4648 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4651 ndr_print_string(ndr
, "data_type", r
->data_type
);
4654 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4656 if (r
->text_status
) {
4657 ndr_print_string(ndr
, "text_status", r
->text_status
);
4660 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4661 ndr_print_uint32(ndr
, "priority", r
->priority
);
4662 ndr_print_uint32(ndr
, "position", r
->position
);
4663 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4664 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4665 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4669 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo2
*r
)
4671 if (ndr_flags
& NDR_SCALARS
) {
4672 NDR_CHECK(ndr_push_align(ndr
, 4));
4673 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4674 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
4675 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
4676 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
4677 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
4678 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
4679 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
4680 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
4681 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
4682 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
4683 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
4684 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
4685 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
4686 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4687 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4688 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4689 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
4690 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
4691 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4692 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
4693 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4694 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
4695 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4697 if (ndr_flags
& NDR_BUFFERS
) {
4698 if (r
->printer_name
) {
4699 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4700 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4701 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4702 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4704 if (r
->server_name
) {
4705 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4706 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4707 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4708 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4711 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4712 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4713 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4714 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4716 if (r
->document_name
) {
4717 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4718 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4719 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4720 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4722 if (r
->notify_name
) {
4723 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
4724 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4725 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
4726 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4729 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4730 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4732 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4734 if (r
->print_processor
) {
4735 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
4736 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4737 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
4738 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4740 if (r
->parameters
) {
4741 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
4742 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4743 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
4744 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4746 if (r
->driver_name
) {
4747 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
4748 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4749 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
4750 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4752 if (r
->text_status
) {
4753 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4754 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4755 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4756 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4759 return NDR_ERR_SUCCESS
;
4762 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo2
*r
)
4764 uint32_t _ptr_printer_name
;
4765 TALLOC_CTX
*_mem_save_printer_name_0
;
4766 uint32_t _ptr_server_name
;
4767 TALLOC_CTX
*_mem_save_server_name_0
;
4768 uint32_t _ptr_user_name
;
4769 TALLOC_CTX
*_mem_save_user_name_0
;
4770 uint32_t _ptr_document_name
;
4771 TALLOC_CTX
*_mem_save_document_name_0
;
4772 uint32_t _ptr_notify_name
;
4773 TALLOC_CTX
*_mem_save_notify_name_0
;
4774 uint32_t _ptr_data_type
;
4775 TALLOC_CTX
*_mem_save_data_type_0
;
4776 uint32_t _ptr_print_processor
;
4777 TALLOC_CTX
*_mem_save_print_processor_0
;
4778 uint32_t _ptr_parameters
;
4779 TALLOC_CTX
*_mem_save_parameters_0
;
4780 uint32_t _ptr_driver_name
;
4781 TALLOC_CTX
*_mem_save_driver_name_0
;
4782 uint32_t _ptr_text_status
;
4783 TALLOC_CTX
*_mem_save_text_status_0
;
4784 if (ndr_flags
& NDR_SCALARS
) {
4785 NDR_CHECK(ndr_pull_align(ndr
, 4));
4786 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4787 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
4788 if (_ptr_printer_name
) {
4789 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
4791 r
->printer_name
= NULL
;
4793 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4794 if (_ptr_server_name
) {
4795 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4797 r
->server_name
= NULL
;
4799 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4800 if (_ptr_user_name
) {
4801 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4803 r
->user_name
= NULL
;
4805 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4806 if (_ptr_document_name
) {
4807 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4809 r
->document_name
= NULL
;
4811 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
4812 if (_ptr_notify_name
) {
4813 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
4815 r
->notify_name
= NULL
;
4817 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4818 if (_ptr_data_type
) {
4819 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4821 r
->data_type
= NULL
;
4823 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
4824 if (_ptr_print_processor
) {
4825 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
4827 r
->print_processor
= NULL
;
4829 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
4830 if (_ptr_parameters
) {
4831 NDR_PULL_ALLOC(ndr
, r
->parameters
);
4833 r
->parameters
= NULL
;
4835 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
4836 if (_ptr_driver_name
) {
4837 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
4839 r
->driver_name
= NULL
;
4841 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
4842 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4843 if (_ptr_text_status
) {
4844 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4846 r
->text_status
= NULL
;
4848 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
4849 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4850 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4851 if (r
->priority
> 99) {
4852 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
4854 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4855 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
4856 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
4857 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4858 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
4859 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4860 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
4861 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4863 if (ndr_flags
& NDR_BUFFERS
) {
4864 if (r
->printer_name
) {
4865 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4866 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4867 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
4868 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
4869 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
4870 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
));
4872 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
4873 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
4874 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4876 if (r
->server_name
) {
4877 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4878 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4879 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
4880 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
4881 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
4882 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
));
4884 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
4885 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
4886 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4889 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4890 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4891 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
4892 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
4893 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
4894 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
));
4896 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
4897 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
4898 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4900 if (r
->document_name
) {
4901 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4902 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4903 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
4904 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
4905 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
4906 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
));
4908 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
4909 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
4910 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4912 if (r
->notify_name
) {
4913 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4914 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
4915 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
4916 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
4917 if (ndr_get_array_length(ndr
, &r
->notify_name
) > ndr_get_array_size(ndr
, &r
->notify_name
)) {
4918 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
));
4920 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t)));
4921 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t), CH_UTF16
));
4922 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
4925 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4926 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4927 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
4928 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
4929 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
4930 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
));
4932 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
4933 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
4934 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4936 if (r
->print_processor
) {
4937 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4938 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
4939 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
4940 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
4941 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
4942 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
));
4944 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
4945 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
4946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
4948 if (r
->parameters
) {
4949 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4950 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
4951 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
4952 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
4953 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
4954 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
));
4956 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
4957 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
4958 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
4960 if (r
->driver_name
) {
4961 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4962 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
4963 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
4964 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
4965 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
4966 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
));
4968 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
4969 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
4970 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
4972 if (r
->text_status
) {
4973 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4974 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4975 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
4976 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
4977 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
4978 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
));
4980 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
4981 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
4982 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4985 return NDR_ERR_SUCCESS
;
4988 _PUBLIC_
void ndr_print_spoolss_SetJobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo2
*r
)
4990 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo2");
4992 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4993 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4995 if (r
->printer_name
) {
4996 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4999 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5001 if (r
->server_name
) {
5002 ndr_print_string(ndr
, "server_name", r
->server_name
);
5005 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5008 ndr_print_string(ndr
, "user_name", r
->user_name
);
5011 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5013 if (r
->document_name
) {
5014 ndr_print_string(ndr
, "document_name", r
->document_name
);
5017 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
5019 if (r
->notify_name
) {
5020 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
5023 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5026 ndr_print_string(ndr
, "data_type", r
->data_type
);
5029 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
5031 if (r
->print_processor
) {
5032 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
5035 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
5037 if (r
->parameters
) {
5038 ndr_print_string(ndr
, "parameters", r
->parameters
);
5041 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
5043 if (r
->driver_name
) {
5044 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
5047 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
5048 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5050 if (r
->text_status
) {
5051 ndr_print_string(ndr
, "text_status", r
->text_status
);
5054 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
5055 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5056 ndr_print_uint32(ndr
, "priority", r
->priority
);
5057 ndr_print_uint32(ndr
, "position", r
->position
);
5058 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
5059 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
5060 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5061 ndr_print_uint32(ndr
, "size", r
->size
);
5062 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5063 ndr_print_uint32(ndr
, "time", r
->time
);
5064 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5068 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo4
*r
)
5070 if (ndr_flags
& NDR_SCALARS
) {
5071 NDR_CHECK(ndr_push_align(ndr
, 4));
5072 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
5073 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
5074 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
5075 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
5076 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
5077 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
5078 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
5079 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
5080 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
5081 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
5082 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
5083 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
5084 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
5085 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
5086 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
5087 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
5088 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
5089 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
5090 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5091 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
5092 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5093 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
5094 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
5095 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
5097 if (ndr_flags
& NDR_BUFFERS
) {
5098 if (r
->printer_name
) {
5099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5100 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5102 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5104 if (r
->server_name
) {
5105 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5106 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5107 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5108 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5112 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5113 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5114 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5116 if (r
->document_name
) {
5117 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5118 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5119 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5120 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5122 if (r
->notify_name
) {
5123 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5124 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5125 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5126 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5129 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5130 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5131 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5132 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5134 if (r
->print_processor
) {
5135 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5136 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5137 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5138 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5140 if (r
->parameters
) {
5141 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5142 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5143 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5144 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5146 if (r
->driver_name
) {
5147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5148 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5149 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5150 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5152 if (r
->text_status
) {
5153 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5154 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5155 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5156 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5159 return NDR_ERR_SUCCESS
;
5162 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo4
*r
)
5164 uint32_t _ptr_printer_name
;
5165 TALLOC_CTX
*_mem_save_printer_name_0
;
5166 uint32_t _ptr_server_name
;
5167 TALLOC_CTX
*_mem_save_server_name_0
;
5168 uint32_t _ptr_user_name
;
5169 TALLOC_CTX
*_mem_save_user_name_0
;
5170 uint32_t _ptr_document_name
;
5171 TALLOC_CTX
*_mem_save_document_name_0
;
5172 uint32_t _ptr_notify_name
;
5173 TALLOC_CTX
*_mem_save_notify_name_0
;
5174 uint32_t _ptr_data_type
;
5175 TALLOC_CTX
*_mem_save_data_type_0
;
5176 uint32_t _ptr_print_processor
;
5177 TALLOC_CTX
*_mem_save_print_processor_0
;
5178 uint32_t _ptr_parameters
;
5179 TALLOC_CTX
*_mem_save_parameters_0
;
5180 uint32_t _ptr_driver_name
;
5181 TALLOC_CTX
*_mem_save_driver_name_0
;
5182 uint32_t _ptr_text_status
;
5183 TALLOC_CTX
*_mem_save_text_status_0
;
5184 if (ndr_flags
& NDR_SCALARS
) {
5185 NDR_CHECK(ndr_pull_align(ndr
, 4));
5186 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5187 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5188 if (_ptr_printer_name
) {
5189 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5191 r
->printer_name
= NULL
;
5193 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5194 if (_ptr_server_name
) {
5195 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5197 r
->server_name
= NULL
;
5199 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5200 if (_ptr_user_name
) {
5201 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5203 r
->user_name
= NULL
;
5205 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5206 if (_ptr_document_name
) {
5207 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5209 r
->document_name
= NULL
;
5211 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
5212 if (_ptr_notify_name
) {
5213 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
5215 r
->notify_name
= NULL
;
5217 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5218 if (_ptr_data_type
) {
5219 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5221 r
->data_type
= NULL
;
5223 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
5224 if (_ptr_print_processor
) {
5225 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
5227 r
->print_processor
= NULL
;
5229 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
5230 if (_ptr_parameters
) {
5231 NDR_PULL_ALLOC(ndr
, r
->parameters
);
5233 r
->parameters
= NULL
;
5235 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
5236 if (_ptr_driver_name
) {
5237 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
5239 r
->driver_name
= NULL
;
5241 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
5242 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5243 if (_ptr_text_status
) {
5244 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5246 r
->text_status
= NULL
;
5248 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
5249 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5250 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5251 if (r
->priority
> 99) {
5252 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
5254 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5255 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
5256 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
5257 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5258 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
5259 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5260 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
5261 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5262 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
5264 if (ndr_flags
& NDR_BUFFERS
) {
5265 if (r
->printer_name
) {
5266 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5267 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5268 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5269 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5270 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
5271 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
));
5273 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
5274 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
5275 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5277 if (r
->server_name
) {
5278 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5279 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5280 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5281 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5282 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
5283 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
));
5285 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
5286 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
5287 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5290 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5291 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5292 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5293 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5294 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
5295 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
));
5297 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
5298 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
5299 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5301 if (r
->document_name
) {
5302 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5303 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5304 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5305 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5306 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
5307 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
));
5309 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
5310 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
5311 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5313 if (r
->notify_name
) {
5314 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5315 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
5316 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
5317 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
5318 if (ndr_get_array_length(ndr
, &r
->notify_name
) > ndr_get_array_size(ndr
, &r
->notify_name
)) {
5319 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
));
5321 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t)));
5322 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t), CH_UTF16
));
5323 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
5326 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5327 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5328 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5329 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5330 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
5331 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
));
5333 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
5334 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
5335 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5337 if (r
->print_processor
) {
5338 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5339 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
5340 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
5341 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
5342 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
5343 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
));
5345 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
5346 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
5347 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
5349 if (r
->parameters
) {
5350 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5351 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
5352 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
5353 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
5354 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
5355 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
));
5357 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
5358 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
5359 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
5361 if (r
->driver_name
) {
5362 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5363 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
5364 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
5365 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
5366 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
5367 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
));
5369 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
5370 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
5371 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
5373 if (r
->text_status
) {
5374 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5375 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5376 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5377 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
5378 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
5379 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
));
5381 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
5382 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
5383 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5386 return NDR_ERR_SUCCESS
;
5389 _PUBLIC_
void ndr_print_spoolss_SetJobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo4
*r
)
5391 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo4");
5393 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5394 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5396 if (r
->printer_name
) {
5397 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5400 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5402 if (r
->server_name
) {
5403 ndr_print_string(ndr
, "server_name", r
->server_name
);
5406 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5409 ndr_print_string(ndr
, "user_name", r
->user_name
);
5412 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5414 if (r
->document_name
) {
5415 ndr_print_string(ndr
, "document_name", r
->document_name
);
5418 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
5420 if (r
->notify_name
) {
5421 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
5424 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5427 ndr_print_string(ndr
, "data_type", r
->data_type
);
5430 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
5432 if (r
->print_processor
) {
5433 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
5436 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
5438 if (r
->parameters
) {
5439 ndr_print_string(ndr
, "parameters", r
->parameters
);
5442 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
5444 if (r
->driver_name
) {
5445 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
5448 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
5449 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5451 if (r
->text_status
) {
5452 ndr_print_string(ndr
, "text_status", r
->text_status
);
5455 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
5456 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5457 ndr_print_uint32(ndr
, "priority", r
->priority
);
5458 ndr_print_uint32(ndr
, "position", r
->position
);
5459 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
5460 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
5461 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5462 ndr_print_uint32(ndr
, "size", r
->size
);
5463 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5464 ndr_print_uint32(ndr
, "time", r
->time
);
5465 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5466 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
5470 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_SetJobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetJobInfo
*r
)
5472 if (ndr_flags
& NDR_SCALARS
) {
5473 int level
= ndr_push_get_switch_value(ndr
, r
);
5474 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5477 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
5481 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
5485 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
5489 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
5497 if (ndr_flags
& NDR_BUFFERS
) {
5498 int level
= ndr_push_get_switch_value(ndr
, r
);
5502 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
5508 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5514 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
5520 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5529 return NDR_ERR_SUCCESS
;
5532 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_SetJobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetJobInfo
*r
)
5536 TALLOC_CTX
*_mem_save_info1_0
;
5537 TALLOC_CTX
*_mem_save_info2_0
;
5538 TALLOC_CTX
*_mem_save_info3_0
;
5539 TALLOC_CTX
*_mem_save_info4_0
;
5540 level
= ndr_pull_get_switch_value(ndr
, r
);
5541 if (ndr_flags
& NDR_SCALARS
) {
5542 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5543 if (_level
!= level
) {
5544 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
5548 uint32_t _ptr_info1
;
5549 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
5551 NDR_PULL_ALLOC(ndr
, r
->info1
);
5558 uint32_t _ptr_info2
;
5559 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
5561 NDR_PULL_ALLOC(ndr
, r
->info2
);
5568 uint32_t _ptr_info3
;
5569 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
5571 NDR_PULL_ALLOC(ndr
, r
->info3
);
5578 uint32_t _ptr_info4
;
5579 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
5581 NDR_PULL_ALLOC(ndr
, r
->info4
);
5592 if (ndr_flags
& NDR_BUFFERS
) {
5596 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5597 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
5598 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
5599 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
5605 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5606 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
5607 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5608 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
5614 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5615 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
5616 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
5617 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
5623 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5624 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
5625 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
5635 return NDR_ERR_SUCCESS
;
5638 _PUBLIC_
void ndr_print_spoolss_SetJobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetJobInfo
*r
)
5641 level
= ndr_print_get_switch_value(ndr
, r
);
5642 ndr_print_union(ndr
, name
, level
, "spoolss_SetJobInfo");
5645 ndr_print_ptr(ndr
, "info1", r
->info1
);
5648 ndr_print_spoolss_SetJobInfo1(ndr
, "info1", r
->info1
);
5654 ndr_print_ptr(ndr
, "info2", r
->info2
);
5657 ndr_print_spoolss_SetJobInfo2(ndr
, "info2", r
->info2
);
5663 ndr_print_ptr(ndr
, "info3", r
->info3
);
5666 ndr_print_spoolss_JobInfo3(ndr
, "info3", r
->info3
);
5672 ndr_print_ptr(ndr
, "info4", r
->info4
);
5675 ndr_print_spoolss_SetJobInfo4(ndr
, "info4", r
->info4
);
5686 static enum ndr_err_code
ndr_push_spoolss_JobInfoContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfoContainer
*r
)
5688 if (ndr_flags
& NDR_SCALARS
) {
5689 NDR_CHECK(ndr_push_align(ndr
, 4));
5690 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
5691 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
5692 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
5694 if (ndr_flags
& NDR_BUFFERS
) {
5695 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
5697 return NDR_ERR_SUCCESS
;
5700 static enum ndr_err_code
ndr_pull_spoolss_JobInfoContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfoContainer
*r
)
5702 if (ndr_flags
& NDR_SCALARS
) {
5703 NDR_CHECK(ndr_pull_align(ndr
, 4));
5704 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
5705 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
5706 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
5708 if (ndr_flags
& NDR_BUFFERS
) {
5709 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
5711 return NDR_ERR_SUCCESS
;
5714 _PUBLIC_
void ndr_print_spoolss_JobInfoContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfoContainer
*r
)
5716 ndr_print_struct(ndr
, name
, "spoolss_JobInfoContainer");
5718 ndr_print_uint32(ndr
, "level", r
->level
);
5719 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
5720 ndr_print_spoolss_SetJobInfo(ndr
, "info", &r
->info
);
5724 static enum ndr_err_code
ndr_push_spoolss_JobControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobControl r
)
5726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5727 return NDR_ERR_SUCCESS
;
5730 static enum ndr_err_code
ndr_pull_spoolss_JobControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobControl
*r
)
5733 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5735 return NDR_ERR_SUCCESS
;
5738 _PUBLIC_
void ndr_print_spoolss_JobControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobControl r
)
5740 const char *val
= NULL
;
5743 case SPOOLSS_JOB_CONTROL_PAUSE
: val
= "SPOOLSS_JOB_CONTROL_PAUSE"; break;
5744 case SPOOLSS_JOB_CONTROL_RESUME
: val
= "SPOOLSS_JOB_CONTROL_RESUME"; break;
5745 case SPOOLSS_JOB_CONTROL_CANCEL
: val
= "SPOOLSS_JOB_CONTROL_CANCEL"; break;
5746 case SPOOLSS_JOB_CONTROL_RESTART
: val
= "SPOOLSS_JOB_CONTROL_RESTART"; break;
5747 case SPOOLSS_JOB_CONTROL_DELETE
: val
= "SPOOLSS_JOB_CONTROL_DELETE"; break;
5748 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER
: val
= "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
5749 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED
: val
= "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
5750 case SPOOLSS_JOB_CONTROL_RETAIN
: val
= "SPOOLSS_JOB_CONTROL_RETAIN"; break;
5751 case SPOOLSS_JOB_CONTROL_RELEASE
: val
= "SPOOLSS_JOB_CONTROL_RELEASE"; break;
5753 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5756 static enum ndr_err_code
ndr_push_spoolss_PrinterControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrinterControl r
)
5758 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5759 return NDR_ERR_SUCCESS
;
5762 static enum ndr_err_code
ndr_pull_spoolss_PrinterControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrinterControl
*r
)
5765 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5767 return NDR_ERR_SUCCESS
;
5770 _PUBLIC_
void ndr_print_spoolss_PrinterControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrinterControl r
)
5772 const char *val
= NULL
;
5775 case SPOOLSS_PRINTER_CONTROL_UNPAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
5776 case SPOOLSS_PRINTER_CONTROL_PAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
5777 case SPOOLSS_PRINTER_CONTROL_RESUME
: val
= "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
5778 case SPOOLSS_PRINTER_CONTROL_PURGE
: val
= "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
5779 case SPOOLSS_PRINTER_CONTROL_SET_STATUS
: val
= "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
5781 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5784 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo0
*r
)
5786 if (ndr_flags
& NDR_SCALARS
) {
5787 NDR_CHECK(ndr_push_align(ndr
, 4));
5788 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
5789 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
5790 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
5791 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
5792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
5793 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
5794 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
5795 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5796 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
5797 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
5798 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
5799 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
5800 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
5801 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
5802 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
5803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_error
));
5804 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
5805 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
5806 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
5807 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
5808 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
5809 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->status
));
5810 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
5811 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
5812 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
5813 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
5814 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
5815 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
5816 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
5818 if (ndr_flags
& NDR_BUFFERS
) {
5819 if (r
->servername
) {
5820 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
5821 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5822 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
5823 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5825 if (r
->printername
) {
5826 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
5827 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5828 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
5829 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5832 return NDR_ERR_SUCCESS
;
5835 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo0
*r
)
5837 uint32_t _ptr_servername
;
5838 TALLOC_CTX
*_mem_save_servername_0
;
5839 uint32_t _ptr_printername
;
5840 TALLOC_CTX
*_mem_save_printername_0
;
5841 if (ndr_flags
& NDR_SCALARS
) {
5842 NDR_CHECK(ndr_pull_align(ndr
, 4));
5843 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
5844 if (_ptr_servername
) {
5845 NDR_PULL_ALLOC(ndr
, r
->servername
);
5847 r
->servername
= NULL
;
5849 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
5850 if (_ptr_printername
) {
5851 NDR_PULL_ALLOC(ndr
, r
->printername
);
5853 r
->printername
= NULL
;
5855 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
5856 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
5857 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
5858 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
5859 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
5860 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5861 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
5862 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
5863 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
5864 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
5865 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
5866 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
5867 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
5868 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_error
));
5869 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
5870 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
5871 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
5872 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
5873 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
5874 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->status
));
5875 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
5876 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
5877 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
5878 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
5879 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
5880 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
5881 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
5883 if (ndr_flags
& NDR_BUFFERS
) {
5884 if (r
->servername
) {
5885 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5886 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
5887 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
5888 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
5889 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
5890 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
));
5892 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
5893 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
5894 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
5896 if (r
->printername
) {
5897 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5898 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
5899 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
5900 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
5901 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
5902 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
));
5904 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
5905 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
5906 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
5909 return NDR_ERR_SUCCESS
;
5912 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo0
*r
)
5914 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo0");
5916 ndr_print_ptr(ndr
, "servername", r
->servername
);
5918 if (r
->servername
) {
5919 ndr_print_string(ndr
, "servername", r
->servername
);
5922 ndr_print_ptr(ndr
, "printername", r
->printername
);
5924 if (r
->printername
) {
5925 ndr_print_string(ndr
, "printername", r
->printername
);
5928 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
5929 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
5930 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
5931 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
5932 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
5933 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5934 ndr_print_uint32(ndr
, "version", r
->version
);
5935 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
5936 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
5937 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
5938 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
5939 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
5940 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
5941 ndr_print_uint32(ndr
, "job_error", r
->job_error
);
5942 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
5943 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
5944 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
5945 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
5946 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
5947 ndr_print_uint32(ndr
, "status", r
->status
);
5948 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
5949 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
5950 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
5951 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
5952 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
5953 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
5954 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
5958 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo1
*r
)
5960 if (ndr_flags
& NDR_SCALARS
) {
5961 NDR_CHECK(ndr_push_align(ndr
, 4));
5962 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->flags
));
5963 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->description
));
5964 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
5965 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
5967 if (ndr_flags
& NDR_BUFFERS
) {
5968 if (r
->description
) {
5969 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
5970 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5971 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
5972 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->description
, ndr_charset_length(r
->description
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5975 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
5976 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5977 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
5978 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
5982 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5983 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
5984 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5987 return NDR_ERR_SUCCESS
;
5990 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo1
*r
)
5992 uint32_t _ptr_description
;
5993 TALLOC_CTX
*_mem_save_description_0
;
5995 TALLOC_CTX
*_mem_save_name_0
;
5996 uint32_t _ptr_comment
;
5997 TALLOC_CTX
*_mem_save_comment_0
;
5998 if (ndr_flags
& NDR_SCALARS
) {
5999 NDR_CHECK(ndr_pull_align(ndr
, 4));
6000 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->flags
));
6001 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
6002 if (_ptr_description
) {
6003 NDR_PULL_ALLOC(ndr
, r
->description
);
6005 r
->description
= NULL
;
6007 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
6009 NDR_PULL_ALLOC(ndr
, r
->name
);
6013 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
6015 NDR_PULL_ALLOC(ndr
, r
->comment
);
6020 if (ndr_flags
& NDR_BUFFERS
) {
6021 if (r
->description
) {
6022 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6023 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
6024 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->description
));
6025 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->description
));
6026 if (ndr_get_array_length(ndr
, &r
->description
) > ndr_get_array_size(ndr
, &r
->description
)) {
6027 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
));
6029 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t)));
6030 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->description
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t), CH_UTF16
));
6031 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
6034 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6035 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
6036 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
6037 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
6038 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
6039 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
));
6041 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
6042 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
6043 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
6046 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6047 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
6048 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
6049 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
6050 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
6051 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
));
6053 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
6054 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
6055 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
6058 return NDR_ERR_SUCCESS
;
6061 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo1
*r
)
6063 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo1");
6065 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->flags
);
6066 ndr_print_ptr(ndr
, "description", r
->description
);
6068 if (r
->description
) {
6069 ndr_print_string(ndr
, "description", r
->description
);
6072 ndr_print_ptr(ndr
, "name", r
->name
);
6075 ndr_print_string(ndr
, "name", r
->name
);
6078 ndr_print_ptr(ndr
, "comment", r
->comment
);
6081 ndr_print_string(ndr
, "comment", r
->comment
);
6087 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo2
*r
)
6089 if (ndr_flags
& NDR_SCALARS
) {
6090 NDR_CHECK(ndr_push_align(ndr
, 4));
6091 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6092 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6093 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sharename
));
6094 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
6095 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->drivername
));
6096 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
6097 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->location
));
6098 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
6099 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sepfile
));
6100 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printprocessor
));
6101 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
6102 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
6103 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->secdesc
));
6104 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6105 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
6106 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
6107 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
6108 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
6109 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
6110 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
6111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
6113 if (ndr_flags
& NDR_BUFFERS
) {
6114 if (r
->servername
) {
6115 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6116 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6117 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6118 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6120 if (r
->printername
) {
6121 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6122 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6123 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6124 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6127 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
6128 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6129 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
6130 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sharename
, ndr_charset_length(r
->sharename
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6133 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6134 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6135 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6136 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6138 if (r
->drivername
) {
6139 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
6140 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6141 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
6142 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->drivername
, ndr_charset_length(r
->drivername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6145 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6146 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6148 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6151 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
6152 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6153 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
6154 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->location
, ndr_charset_length(r
->location
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6158 struct ndr_push
*_ndr_devmode
;
6159 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
6160 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
6161 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
6165 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6166 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6167 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6168 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sepfile
, ndr_charset_length(r
->sepfile
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6170 if (r
->printprocessor
) {
6171 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6172 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6174 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printprocessor
, ndr_charset_length(r
->printprocessor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6177 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6178 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6179 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6180 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6182 if (r
->parameters
) {
6183 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6184 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6185 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6186 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6190 struct ndr_push
*_ndr_secdesc
;
6191 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
6192 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
6193 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
6197 return NDR_ERR_SUCCESS
;
6200 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo2
*r
)
6202 uint32_t _ptr_servername
;
6203 TALLOC_CTX
*_mem_save_servername_0
;
6204 uint32_t _ptr_printername
;
6205 TALLOC_CTX
*_mem_save_printername_0
;
6206 uint32_t _ptr_sharename
;
6207 TALLOC_CTX
*_mem_save_sharename_0
;
6208 uint32_t _ptr_portname
;
6209 TALLOC_CTX
*_mem_save_portname_0
;
6210 uint32_t _ptr_drivername
;
6211 TALLOC_CTX
*_mem_save_drivername_0
;
6212 uint32_t _ptr_comment
;
6213 TALLOC_CTX
*_mem_save_comment_0
;
6214 uint32_t _ptr_location
;
6215 TALLOC_CTX
*_mem_save_location_0
;
6216 uint32_t _ptr_devmode
;
6217 TALLOC_CTX
*_mem_save_devmode_0
;
6218 uint32_t _ptr_sepfile
;
6219 TALLOC_CTX
*_mem_save_sepfile_0
;
6220 uint32_t _ptr_printprocessor
;
6221 TALLOC_CTX
*_mem_save_printprocessor_0
;
6222 uint32_t _ptr_datatype
;
6223 TALLOC_CTX
*_mem_save_datatype_0
;
6224 uint32_t _ptr_parameters
;
6225 TALLOC_CTX
*_mem_save_parameters_0
;
6226 uint32_t _ptr_secdesc
;
6227 TALLOC_CTX
*_mem_save_secdesc_0
;
6228 if (ndr_flags
& NDR_SCALARS
) {
6229 NDR_CHECK(ndr_pull_align(ndr
, 4));
6230 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6231 if (_ptr_servername
) {
6232 NDR_PULL_ALLOC(ndr
, r
->servername
);
6234 r
->servername
= NULL
;
6236 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6237 if (_ptr_printername
) {
6238 NDR_PULL_ALLOC(ndr
, r
->printername
);
6240 r
->printername
= NULL
;
6242 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
6243 if (_ptr_sharename
) {
6244 NDR_PULL_ALLOC(ndr
, r
->sharename
);
6246 r
->sharename
= NULL
;
6248 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
6249 if (_ptr_portname
) {
6250 NDR_PULL_ALLOC(ndr
, r
->portname
);
6254 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
6255 if (_ptr_drivername
) {
6256 NDR_PULL_ALLOC(ndr
, r
->drivername
);
6258 r
->drivername
= NULL
;
6260 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
6262 NDR_PULL_ALLOC(ndr
, r
->comment
);
6266 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
6267 if (_ptr_location
) {
6268 NDR_PULL_ALLOC(ndr
, r
->location
);
6272 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
6274 NDR_PULL_ALLOC(ndr
, r
->devmode
);
6278 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
6280 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
6284 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
6285 if (_ptr_printprocessor
) {
6286 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
6288 r
->printprocessor
= NULL
;
6290 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
6291 if (_ptr_datatype
) {
6292 NDR_PULL_ALLOC(ndr
, r
->datatype
);
6296 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
6297 if (_ptr_parameters
) {
6298 NDR_PULL_ALLOC(ndr
, r
->parameters
);
6300 r
->parameters
= NULL
;
6302 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
6304 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
6308 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6309 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
6310 if (r
->priority
> 99) {
6311 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
6313 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
6314 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
6315 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
6316 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
6317 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
6318 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
6320 if (ndr_flags
& NDR_BUFFERS
) {
6321 if (r
->servername
) {
6322 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6323 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6324 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6325 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6326 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
6327 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
));
6329 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
6330 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
6331 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6333 if (r
->printername
) {
6334 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6335 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6336 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6337 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6338 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6339 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
));
6341 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6342 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6343 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6346 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6347 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
6348 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sharename
));
6349 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sharename
));
6350 if (ndr_get_array_length(ndr
, &r
->sharename
) > ndr_get_array_size(ndr
, &r
->sharename
)) {
6351 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
));
6353 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t)));
6354 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sharename
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t), CH_UTF16
));
6355 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
6358 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6359 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
6360 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
6361 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
6362 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
6363 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
));
6365 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
6366 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
6367 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
6369 if (r
->drivername
) {
6370 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6371 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
6372 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->drivername
));
6373 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->drivername
));
6374 if (ndr_get_array_length(ndr
, &r
->drivername
) > ndr_get_array_size(ndr
, &r
->drivername
)) {
6375 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
));
6377 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t)));
6378 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->drivername
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t), CH_UTF16
));
6379 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
6382 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6383 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
6384 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
6385 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
6386 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
6387 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
));
6389 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
6390 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
6391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
6394 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6395 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
6396 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->location
));
6397 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->location
));
6398 if (ndr_get_array_length(ndr
, &r
->location
) > ndr_get_array_size(ndr
, &r
->location
)) {
6399 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
));
6401 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t)));
6402 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->location
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t), CH_UTF16
));
6403 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
6406 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6407 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
6409 struct ndr_pull
*_ndr_devmode
;
6410 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
6411 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
6412 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
6414 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
6417 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6418 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
6419 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sepfile
));
6420 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sepfile
));
6421 if (ndr_get_array_length(ndr
, &r
->sepfile
) > ndr_get_array_size(ndr
, &r
->sepfile
)) {
6422 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
));
6424 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t)));
6425 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sepfile
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t), CH_UTF16
));
6426 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
6428 if (r
->printprocessor
) {
6429 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6430 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
6431 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printprocessor
));
6432 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printprocessor
));
6433 if (ndr_get_array_length(ndr
, &r
->printprocessor
) > ndr_get_array_size(ndr
, &r
->printprocessor
)) {
6434 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
));
6436 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t)));
6437 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printprocessor
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t), CH_UTF16
));
6438 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
6441 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6442 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
6443 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
6444 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
6445 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
6446 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
));
6448 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
6449 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
6450 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
6452 if (r
->parameters
) {
6453 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6454 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
6455 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
6456 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
6457 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
6458 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
));
6460 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
6461 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
6462 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
6465 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6466 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
6468 struct ndr_pull
*_ndr_secdesc
;
6469 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
6470 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
6471 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
6473 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
6476 return NDR_ERR_SUCCESS
;
6479 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo2
*r
)
6481 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo2");
6483 ndr_print_ptr(ndr
, "servername", r
->servername
);
6485 if (r
->servername
) {
6486 ndr_print_string(ndr
, "servername", r
->servername
);
6489 ndr_print_ptr(ndr
, "printername", r
->printername
);
6491 if (r
->printername
) {
6492 ndr_print_string(ndr
, "printername", r
->printername
);
6495 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
6498 ndr_print_string(ndr
, "sharename", r
->sharename
);
6501 ndr_print_ptr(ndr
, "portname", r
->portname
);
6504 ndr_print_string(ndr
, "portname", r
->portname
);
6507 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
6509 if (r
->drivername
) {
6510 ndr_print_string(ndr
, "drivername", r
->drivername
);
6513 ndr_print_ptr(ndr
, "comment", r
->comment
);
6516 ndr_print_string(ndr
, "comment", r
->comment
);
6519 ndr_print_ptr(ndr
, "location", r
->location
);
6522 ndr_print_string(ndr
, "location", r
->location
);
6525 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
6528 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
6531 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
6534 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
6537 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
6539 if (r
->printprocessor
) {
6540 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
6543 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
6546 ndr_print_string(ndr
, "datatype", r
->datatype
);
6549 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
6551 if (r
->parameters
) {
6552 ndr_print_string(ndr
, "parameters", r
->parameters
);
6555 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
6558 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
6561 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
6562 ndr_print_uint32(ndr
, "priority", r
->priority
);
6563 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
6564 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
6565 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
6566 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
6567 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
6568 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
6572 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo3
*r
)
6574 if (ndr_flags
& NDR_SCALARS
) {
6575 NDR_CHECK(ndr_push_align(ndr
, 4));
6576 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sec_desc_ptr
));
6578 if (ndr_flags
& NDR_BUFFERS
) {
6580 return NDR_ERR_SUCCESS
;
6583 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo3
*r
)
6585 if (ndr_flags
& NDR_SCALARS
) {
6586 NDR_CHECK(ndr_pull_align(ndr
, 4));
6587 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sec_desc_ptr
));
6589 if (ndr_flags
& NDR_BUFFERS
) {
6591 return NDR_ERR_SUCCESS
;
6594 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo3
*r
)
6596 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo3");
6598 ndr_print_uint32(ndr
, "sec_desc_ptr", r
->sec_desc_ptr
);
6602 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo4
*r
)
6604 if (ndr_flags
& NDR_SCALARS
) {
6605 NDR_CHECK(ndr_push_align(ndr
, 4));
6606 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6607 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6608 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6610 if (ndr_flags
& NDR_BUFFERS
) {
6611 if (r
->printername
) {
6612 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6613 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6615 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6617 if (r
->servername
) {
6618 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6619 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6620 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6621 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6624 return NDR_ERR_SUCCESS
;
6627 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo4
*r
)
6629 uint32_t _ptr_printername
;
6630 TALLOC_CTX
*_mem_save_printername_0
;
6631 uint32_t _ptr_servername
;
6632 TALLOC_CTX
*_mem_save_servername_0
;
6633 if (ndr_flags
& NDR_SCALARS
) {
6634 NDR_CHECK(ndr_pull_align(ndr
, 4));
6635 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6636 if (_ptr_printername
) {
6637 NDR_PULL_ALLOC(ndr
, r
->printername
);
6639 r
->printername
= NULL
;
6641 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6642 if (_ptr_servername
) {
6643 NDR_PULL_ALLOC(ndr
, r
->servername
);
6645 r
->servername
= NULL
;
6647 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6649 if (ndr_flags
& NDR_BUFFERS
) {
6650 if (r
->printername
) {
6651 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6652 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6653 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6654 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6655 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6656 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
));
6658 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6659 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6660 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6662 if (r
->servername
) {
6663 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6664 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6665 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6666 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6667 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
6668 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
));
6670 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
6671 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
6672 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6675 return NDR_ERR_SUCCESS
;
6678 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo4
*r
)
6680 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo4");
6682 ndr_print_ptr(ndr
, "printername", r
->printername
);
6684 if (r
->printername
) {
6685 ndr_print_string(ndr
, "printername", r
->printername
);
6688 ndr_print_ptr(ndr
, "servername", r
->servername
);
6690 if (r
->servername
) {
6691 ndr_print_string(ndr
, "servername", r
->servername
);
6694 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
6698 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo5
*r
)
6700 if (ndr_flags
& NDR_SCALARS
) {
6701 NDR_CHECK(ndr_push_align(ndr
, 4));
6702 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6703 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
6704 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6705 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
6706 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
6708 if (ndr_flags
& NDR_BUFFERS
) {
6709 if (r
->printername
) {
6710 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6711 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6712 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6713 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6716 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6717 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6718 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6719 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6722 return NDR_ERR_SUCCESS
;
6725 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo5
*r
)
6727 uint32_t _ptr_printername
;
6728 TALLOC_CTX
*_mem_save_printername_0
;
6729 uint32_t _ptr_portname
;
6730 TALLOC_CTX
*_mem_save_portname_0
;
6731 if (ndr_flags
& NDR_SCALARS
) {
6732 NDR_CHECK(ndr_pull_align(ndr
, 4));
6733 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6734 if (_ptr_printername
) {
6735 NDR_PULL_ALLOC(ndr
, r
->printername
);
6737 r
->printername
= NULL
;
6739 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
6740 if (_ptr_portname
) {
6741 NDR_PULL_ALLOC(ndr
, r
->portname
);
6745 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6746 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
6747 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
6749 if (ndr_flags
& NDR_BUFFERS
) {
6750 if (r
->printername
) {
6751 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6752 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6753 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6754 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6755 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6756 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
));
6758 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6759 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6760 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6763 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6764 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
6765 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
6766 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
6767 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
6768 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
));
6770 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
6771 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
6772 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
6775 return NDR_ERR_SUCCESS
;
6778 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo5
*r
)
6780 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo5");
6782 ndr_print_ptr(ndr
, "printername", r
->printername
);
6784 if (r
->printername
) {
6785 ndr_print_string(ndr
, "printername", r
->printername
);
6788 ndr_print_ptr(ndr
, "portname", r
->portname
);
6791 ndr_print_string(ndr
, "portname", r
->portname
);
6794 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
6795 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
6796 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
6800 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo6
*r
)
6802 if (ndr_flags
& NDR_SCALARS
) {
6803 NDR_CHECK(ndr_push_align(ndr
, 4));
6804 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
6806 if (ndr_flags
& NDR_BUFFERS
) {
6808 return NDR_ERR_SUCCESS
;
6811 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo6
*r
)
6813 if (ndr_flags
& NDR_SCALARS
) {
6814 NDR_CHECK(ndr_pull_align(ndr
, 4));
6815 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
6817 if (ndr_flags
& NDR_BUFFERS
) {
6819 return NDR_ERR_SUCCESS
;
6822 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo6
*r
)
6824 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo6");
6826 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
6830 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo7
*r
)
6832 if (ndr_flags
& NDR_SCALARS
) {
6833 NDR_CHECK(ndr_push_align(ndr
, 4));
6834 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->guid
));
6835 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
6837 if (ndr_flags
& NDR_BUFFERS
) {
6839 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
6840 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6841 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
6842 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->guid
, ndr_charset_length(r
->guid
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6845 return NDR_ERR_SUCCESS
;
6848 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo7
*r
)
6851 TALLOC_CTX
*_mem_save_guid_0
;
6852 if (ndr_flags
& NDR_SCALARS
) {
6853 NDR_CHECK(ndr_pull_align(ndr
, 4));
6854 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
6856 NDR_PULL_ALLOC(ndr
, r
->guid
);
6860 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
6862 if (ndr_flags
& NDR_BUFFERS
) {
6864 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6865 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
6866 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->guid
));
6867 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->guid
));
6868 if (ndr_get_array_length(ndr
, &r
->guid
) > ndr_get_array_size(ndr
, &r
->guid
)) {
6869 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
));
6871 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t)));
6872 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->guid
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t), CH_UTF16
));
6873 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
6876 return NDR_ERR_SUCCESS
;
6879 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo7
*r
)
6881 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo7");
6883 ndr_print_ptr(ndr
, "guid", r
->guid
);
6886 ndr_print_string(ndr
, "guid", r
->guid
);
6889 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
6893 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetPrinterInfo
*r
)
6895 if (ndr_flags
& NDR_SCALARS
) {
6896 int level
= ndr_push_get_switch_value(ndr
, r
);
6897 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6900 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
6904 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
6908 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
6912 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
6916 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
6920 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info5
));
6924 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
6928 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info7
));
6932 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
6936 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info9
));
6944 if (ndr_flags
& NDR_BUFFERS
) {
6945 int level
= ndr_push_get_switch_value(ndr
, r
);
6949 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
6955 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
6961 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6967 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
6973 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6979 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
6985 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
6991 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
6997 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
7003 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info9
));
7012 return NDR_ERR_SUCCESS
;
7015 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetPrinterInfo
*r
)
7019 TALLOC_CTX
*_mem_save_info0_0
;
7020 TALLOC_CTX
*_mem_save_info1_0
;
7021 TALLOC_CTX
*_mem_save_info2_0
;
7022 TALLOC_CTX
*_mem_save_info3_0
;
7023 TALLOC_CTX
*_mem_save_info4_0
;
7024 TALLOC_CTX
*_mem_save_info5_0
;
7025 TALLOC_CTX
*_mem_save_info6_0
;
7026 TALLOC_CTX
*_mem_save_info7_0
;
7027 TALLOC_CTX
*_mem_save_info8_0
;
7028 TALLOC_CTX
*_mem_save_info9_0
;
7029 level
= ndr_pull_get_switch_value(ndr
, r
);
7030 if (ndr_flags
& NDR_SCALARS
) {
7031 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
7032 if (_level
!= level
) {
7033 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
7037 uint32_t _ptr_info0
;
7038 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
7040 NDR_PULL_ALLOC(ndr
, r
->info0
);
7047 uint32_t _ptr_info1
;
7048 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
7050 NDR_PULL_ALLOC(ndr
, r
->info1
);
7057 uint32_t _ptr_info2
;
7058 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
7060 NDR_PULL_ALLOC(ndr
, r
->info2
);
7067 uint32_t _ptr_info3
;
7068 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
7070 NDR_PULL_ALLOC(ndr
, r
->info3
);
7077 uint32_t _ptr_info4
;
7078 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
7080 NDR_PULL_ALLOC(ndr
, r
->info4
);
7087 uint32_t _ptr_info5
;
7088 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info5
));
7090 NDR_PULL_ALLOC(ndr
, r
->info5
);
7097 uint32_t _ptr_info6
;
7098 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
7100 NDR_PULL_ALLOC(ndr
, r
->info6
);
7107 uint32_t _ptr_info7
;
7108 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info7
));
7110 NDR_PULL_ALLOC(ndr
, r
->info7
);
7117 uint32_t _ptr_info8
;
7118 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
7120 NDR_PULL_ALLOC(ndr
, r
->info8
);
7127 uint32_t _ptr_info9
;
7128 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info9
));
7130 NDR_PULL_ALLOC(ndr
, r
->info9
);
7141 if (ndr_flags
& NDR_BUFFERS
) {
7145 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7146 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
7147 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
7148 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
7154 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7155 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
7156 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7157 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
7163 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7164 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
7165 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
7166 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
7172 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7173 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
7174 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
7175 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
7181 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7182 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
7183 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
7184 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
7190 _mem_save_info5_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7191 NDR_PULL_SET_MEM_CTX(ndr
, r
->info5
, 0);
7192 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
7193 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info5_0
, 0);
7199 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7200 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
7201 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
7202 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
7208 _mem_save_info7_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7209 NDR_PULL_SET_MEM_CTX(ndr
, r
->info7
, 0);
7210 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
7211 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info7_0
, 0);
7217 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7218 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
7219 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
7220 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
7226 _mem_save_info9_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7227 NDR_PULL_SET_MEM_CTX(ndr
, r
->info9
, 0);
7228 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info9
));
7229 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info9_0
, 0);
7238 return NDR_ERR_SUCCESS
;
7241 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetPrinterInfo
*r
)
7244 level
= ndr_print_get_switch_value(ndr
, r
);
7245 ndr_print_union(ndr
, name
, level
, "spoolss_SetPrinterInfo");
7248 ndr_print_ptr(ndr
, "info0", r
->info0
);
7251 ndr_print_spoolss_SetPrinterInfo0(ndr
, "info0", r
->info0
);
7257 ndr_print_ptr(ndr
, "info1", r
->info1
);
7260 ndr_print_spoolss_SetPrinterInfo1(ndr
, "info1", r
->info1
);
7266 ndr_print_ptr(ndr
, "info2", r
->info2
);
7269 ndr_print_spoolss_SetPrinterInfo2(ndr
, "info2", r
->info2
);
7275 ndr_print_ptr(ndr
, "info3", r
->info3
);
7278 ndr_print_spoolss_SetPrinterInfo3(ndr
, "info3", r
->info3
);
7284 ndr_print_ptr(ndr
, "info4", r
->info4
);
7287 ndr_print_spoolss_SetPrinterInfo4(ndr
, "info4", r
->info4
);
7293 ndr_print_ptr(ndr
, "info5", r
->info5
);
7296 ndr_print_spoolss_SetPrinterInfo5(ndr
, "info5", r
->info5
);
7302 ndr_print_ptr(ndr
, "info6", r
->info6
);
7305 ndr_print_spoolss_SetPrinterInfo6(ndr
, "info6", r
->info6
);
7311 ndr_print_ptr(ndr
, "info7", r
->info7
);
7314 ndr_print_spoolss_SetPrinterInfo7(ndr
, "info7", r
->info7
);
7320 ndr_print_ptr(ndr
, "info8", r
->info8
);
7323 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", r
->info8
);
7329 ndr_print_ptr(ndr
, "info9", r
->info9
);
7332 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", r
->info9
);
7343 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfoCtr
*r
)
7345 if (ndr_flags
& NDR_SCALARS
) {
7346 NDR_CHECK(ndr_push_align(ndr
, 4));
7347 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
7348 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
7349 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
7351 if (ndr_flags
& NDR_BUFFERS
) {
7352 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
7354 return NDR_ERR_SUCCESS
;
7357 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfoCtr
*r
)
7359 if (ndr_flags
& NDR_SCALARS
) {
7360 NDR_CHECK(ndr_pull_align(ndr
, 4));
7361 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
7362 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
7363 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
7365 if (ndr_flags
& NDR_BUFFERS
) {
7366 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
7368 return NDR_ERR_SUCCESS
;
7371 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfoCtr
*r
)
7373 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfoCtr");
7375 ndr_print_uint32(ndr
, "level", r
->level
);
7376 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
7377 ndr_print_spoolss_SetPrinterInfo(ndr
, "info", &r
->info
);
7381 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_StringArray(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_StringArray
*r
)
7383 if (ndr_flags
& NDR_SCALARS
) {
7384 NDR_CHECK(ndr_push_align(ndr
, 4));
7385 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, (ndr_size_spoolss_StringArray(r
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2));
7387 uint32_t _flags_save_string_array
= ndr
->flags
;
7388 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7389 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string
));
7390 ndr
->flags
= _flags_save_string_array
;
7393 if (ndr_flags
& NDR_BUFFERS
) {
7395 return NDR_ERR_SUCCESS
;
7398 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_StringArray(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_StringArray
*r
)
7400 if (ndr_flags
& NDR_SCALARS
) {
7401 NDR_CHECK(ndr_pull_align(ndr
, 4));
7402 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
7404 uint32_t _flags_save_string_array
= ndr
->flags
;
7405 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7406 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string
));
7407 ndr
->flags
= _flags_save_string_array
;
7410 if (ndr_flags
& NDR_BUFFERS
) {
7412 return NDR_ERR_SUCCESS
;
7415 _PUBLIC_
void ndr_print_spoolss_StringArray(struct ndr_print
*ndr
, const char *name
, const struct spoolss_StringArray
*r
)
7417 ndr_print_struct(ndr
, name
, "spoolss_StringArray");
7419 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
);
7420 ndr_print_string_array(ndr
, "string", r
->string
);
7424 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo1
*r
)
7426 if (ndr_flags
& NDR_SCALARS
) {
7427 NDR_CHECK(ndr_push_align(ndr
, 4));
7428 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7430 if (ndr_flags
& NDR_BUFFERS
) {
7431 if (r
->driver_name
) {
7432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7433 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7435 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7438 return NDR_ERR_SUCCESS
;
7441 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo1
*r
)
7443 uint32_t _ptr_driver_name
;
7444 TALLOC_CTX
*_mem_save_driver_name_0
;
7445 if (ndr_flags
& NDR_SCALARS
) {
7446 NDR_CHECK(ndr_pull_align(ndr
, 4));
7447 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7448 if (_ptr_driver_name
) {
7449 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7451 r
->driver_name
= NULL
;
7454 if (ndr_flags
& NDR_BUFFERS
) {
7455 if (r
->driver_name
) {
7456 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7457 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7458 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
7459 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
7460 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
7461 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
));
7463 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
7464 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
7465 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
7468 return NDR_ERR_SUCCESS
;
7471 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo1
*r
)
7473 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo1");
7475 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
7477 if (r
->driver_name
) {
7478 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
7484 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverOSVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion r
)
7486 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7487 return NDR_ERR_SUCCESS
;
7490 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverOSVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion
*r
)
7493 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7495 return NDR_ERR_SUCCESS
;
7498 _PUBLIC_
void ndr_print_spoolss_DriverOSVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverOSVersion r
)
7500 const char *val
= NULL
;
7503 case SPOOLSS_DRIVER_VERSION_9X
: val
= "SPOOLSS_DRIVER_VERSION_9X"; break;
7504 case SPOOLSS_DRIVER_VERSION_NT35
: val
= "SPOOLSS_DRIVER_VERSION_NT35"; break;
7505 case SPOOLSS_DRIVER_VERSION_NT4
: val
= "SPOOLSS_DRIVER_VERSION_NT4"; break;
7506 case SPOOLSS_DRIVER_VERSION_200X
: val
= "SPOOLSS_DRIVER_VERSION_200X"; break;
7508 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
7511 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo2
*r
)
7513 if (ndr_flags
& NDR_SCALARS
) {
7514 NDR_CHECK(ndr_push_align(ndr
, 4));
7515 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
7516 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7517 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
7518 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
7519 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
7520 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
7522 if (ndr_flags
& NDR_BUFFERS
) {
7523 if (r
->driver_name
) {
7524 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7525 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7526 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7527 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7529 if (r
->architecture
) {
7530 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7532 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7533 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7535 if (r
->driver_path
) {
7536 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7537 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7538 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7539 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7542 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7543 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7544 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7545 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7547 if (r
->config_file
) {
7548 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7549 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7550 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7551 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7554 return NDR_ERR_SUCCESS
;
7557 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo2
*r
)
7559 uint32_t _ptr_driver_name
;
7560 TALLOC_CTX
*_mem_save_driver_name_0
;
7561 uint32_t _ptr_architecture
;
7562 TALLOC_CTX
*_mem_save_architecture_0
;
7563 uint32_t _ptr_driver_path
;
7564 TALLOC_CTX
*_mem_save_driver_path_0
;
7565 uint32_t _ptr_data_file
;
7566 TALLOC_CTX
*_mem_save_data_file_0
;
7567 uint32_t _ptr_config_file
;
7568 TALLOC_CTX
*_mem_save_config_file_0
;
7569 if (ndr_flags
& NDR_SCALARS
) {
7570 NDR_CHECK(ndr_pull_align(ndr
, 4));
7571 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
7572 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7573 if (_ptr_driver_name
) {
7574 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7576 r
->driver_name
= NULL
;
7578 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
7579 if (_ptr_architecture
) {
7580 NDR_PULL_ALLOC(ndr
, r
->architecture
);
7582 r
->architecture
= NULL
;
7584 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
7585 if (_ptr_driver_path
) {
7586 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
7588 r
->driver_path
= NULL
;
7590 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
7591 if (_ptr_data_file
) {
7592 NDR_PULL_ALLOC(ndr
, r
->data_file
);
7594 r
->data_file
= NULL
;
7596 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
7597 if (_ptr_config_file
) {
7598 NDR_PULL_ALLOC(ndr
, r
->config_file
);
7600 r
->config_file
= NULL
;
7603 if (ndr_flags
& NDR_BUFFERS
) {
7604 if (r
->driver_name
) {
7605 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7606 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7607 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
7608 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
7609 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
7610 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
));
7612 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
7613 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
7614 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
7616 if (r
->architecture
) {
7617 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7618 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
7619 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
7620 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
7621 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
7622 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
));
7624 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
7625 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
7626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
7628 if (r
->driver_path
) {
7629 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7630 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
7631 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
7632 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
7633 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
7634 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
));
7636 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
7637 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
7638 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
7641 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7642 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
7643 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
7644 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
7645 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
7646 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
));
7648 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
7649 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
7650 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
7652 if (r
->config_file
) {
7653 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7654 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
7655 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
7656 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
7657 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
7658 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
));
7660 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
7661 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
7662 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
7665 return NDR_ERR_SUCCESS
;
7668 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo2
*r
)
7670 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo2");
7672 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
7673 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
7675 if (r
->driver_name
) {
7676 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
7679 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
7681 if (r
->architecture
) {
7682 ndr_print_string(ndr
, "architecture", r
->architecture
);
7685 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
7687 if (r
->driver_path
) {
7688 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
7691 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
7694 ndr_print_string(ndr
, "data_file", r
->data_file
);
7697 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
7699 if (r
->config_file
) {
7700 ndr_print_string(ndr
, "config_file", r
->config_file
);
7706 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo3
*r
)
7708 if (ndr_flags
& NDR_SCALARS
) {
7709 NDR_CHECK(ndr_push_align(ndr
, 4));
7710 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
7711 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7712 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
7713 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
7714 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
7715 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
7716 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
7717 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
7718 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
7719 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
7720 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
7722 if (ndr_flags
& NDR_BUFFERS
) {
7723 if (r
->driver_name
) {
7724 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7725 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7727 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7729 if (r
->architecture
) {
7730 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7732 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7733 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7735 if (r
->driver_path
) {
7736 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7737 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7738 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7739 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7742 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7743 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7744 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7745 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7747 if (r
->config_file
) {
7748 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7749 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7750 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7751 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7754 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
7755 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7756 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
7757 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7759 if (r
->monitor_name
) {
7760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
7761 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7762 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
7763 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7765 if (r
->default_datatype
) {
7766 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
7767 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7768 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
7769 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7771 if (r
->dependent_files
) {
7772 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
7775 return NDR_ERR_SUCCESS
;
7778 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo3
*r
)
7780 uint32_t _ptr_driver_name
;
7781 TALLOC_CTX
*_mem_save_driver_name_0
;
7782 uint32_t _ptr_architecture
;
7783 TALLOC_CTX
*_mem_save_architecture_0
;
7784 uint32_t _ptr_driver_path
;
7785 TALLOC_CTX
*_mem_save_driver_path_0
;
7786 uint32_t _ptr_data_file
;
7787 TALLOC_CTX
*_mem_save_data_file_0
;
7788 uint32_t _ptr_config_file
;
7789 TALLOC_CTX
*_mem_save_config_file_0
;
7790 uint32_t _ptr_help_file
;
7791 TALLOC_CTX
*_mem_save_help_file_0
;
7792 uint32_t _ptr_monitor_name
;
7793 TALLOC_CTX
*_mem_save_monitor_name_0
;
7794 uint32_t _ptr_default_datatype
;
7795 TALLOC_CTX
*_mem_save_default_datatype_0
;
7796 uint32_t _ptr_dependent_files
;
7797 TALLOC_CTX
*_mem_save_dependent_files_0
;
7798 if (ndr_flags
& NDR_SCALARS
) {
7799 NDR_CHECK(ndr_pull_align(ndr
, 4));
7800 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
7801 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7802 if (_ptr_driver_name
) {
7803 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7805 r
->driver_name
= NULL
;
7807 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
7808 if (_ptr_architecture
) {
7809 NDR_PULL_ALLOC(ndr
, r
->architecture
);
7811 r
->architecture
= NULL
;
7813 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
7814 if (_ptr_driver_path
) {
7815 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
7817 r
->driver_path
= NULL
;
7819 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
7820 if (_ptr_data_file
) {
7821 NDR_PULL_ALLOC(ndr
, r
->data_file
);
7823 r
->data_file
= NULL
;
7825 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
7826 if (_ptr_config_file
) {
7827 NDR_PULL_ALLOC(ndr
, r
->config_file
);
7829 r
->config_file
= NULL
;
7831 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
7832 if (_ptr_help_file
) {
7833 NDR_PULL_ALLOC(ndr
, r
->help_file
);
7835 r
->help_file
= NULL
;
7837 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
7838 if (_ptr_monitor_name
) {
7839 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
7841 r
->monitor_name
= NULL
;
7843 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
7844 if (_ptr_default_datatype
) {
7845 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
7847 r
->default_datatype
= NULL
;
7849 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
7850 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
7851 if (_ptr_dependent_files
) {
7852 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
7854 r
->dependent_files
= NULL
;
7857 if (ndr_flags
& NDR_BUFFERS
) {
7858 if (r
->driver_name
) {
7859 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7860 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7861 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
7862 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
7863 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
7864 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
));
7866 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
7867 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
7868 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
7870 if (r
->architecture
) {
7871 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7872 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
7873 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
7874 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
7875 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
7876 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
));
7878 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
7879 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
7880 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
7882 if (r
->driver_path
) {
7883 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7884 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
7885 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
7886 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
7887 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
7888 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
));
7890 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
7891 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
7892 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
7895 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7896 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
7897 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
7898 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
7899 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
7900 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
));
7902 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
7903 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
7904 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
7906 if (r
->config_file
) {
7907 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7908 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
7909 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
7910 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
7911 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
7912 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
));
7914 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
7915 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
7916 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
7919 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7920 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
7921 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
7922 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
7923 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
7924 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
));
7926 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
7927 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
7928 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
7930 if (r
->monitor_name
) {
7931 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7932 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
7933 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
7934 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
7935 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
7936 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
));
7938 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
7939 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
7940 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
7942 if (r
->default_datatype
) {
7943 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7944 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
7945 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
7946 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
7947 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
7948 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
));
7950 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
7951 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
7952 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
7954 if (r
->dependent_files
) {
7955 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7956 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
7957 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
7958 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
7961 return NDR_ERR_SUCCESS
;
7964 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo3
*r
)
7966 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo3");
7968 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
7969 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
7971 if (r
->driver_name
) {
7972 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
7975 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
7977 if (r
->architecture
) {
7978 ndr_print_string(ndr
, "architecture", r
->architecture
);
7981 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
7983 if (r
->driver_path
) {
7984 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
7987 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
7990 ndr_print_string(ndr
, "data_file", r
->data_file
);
7993 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
7995 if (r
->config_file
) {
7996 ndr_print_string(ndr
, "config_file", r
->config_file
);
7999 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8002 ndr_print_string(ndr
, "help_file", r
->help_file
);
8005 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8007 if (r
->monitor_name
) {
8008 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8011 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8013 if (r
->default_datatype
) {
8014 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8017 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
);
8018 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8020 if (r
->dependent_files
) {
8021 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8027 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo4
*r
)
8029 if (ndr_flags
& NDR_SCALARS
) {
8030 NDR_CHECK(ndr_push_align(ndr
, 4));
8031 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8032 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8033 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8034 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8035 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8036 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8037 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8038 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8039 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8040 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8041 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8042 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8043 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8045 if (ndr_flags
& NDR_BUFFERS
) {
8046 if (r
->driver_name
) {
8047 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8048 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8049 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8050 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8052 if (r
->architecture
) {
8053 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8054 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8055 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8056 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8058 if (r
->driver_path
) {
8059 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8060 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8062 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8065 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8066 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8068 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8070 if (r
->config_file
) {
8071 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8072 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8073 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8074 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8077 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8078 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8079 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8080 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8082 if (r
->monitor_name
) {
8083 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8084 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8086 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8088 if (r
->default_datatype
) {
8089 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8090 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8091 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8092 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8094 if (r
->dependent_files
) {
8095 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8097 if (r
->previous_names
) {
8098 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8101 return NDR_ERR_SUCCESS
;
8104 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo4
*r
)
8106 uint32_t _ptr_driver_name
;
8107 TALLOC_CTX
*_mem_save_driver_name_0
;
8108 uint32_t _ptr_architecture
;
8109 TALLOC_CTX
*_mem_save_architecture_0
;
8110 uint32_t _ptr_driver_path
;
8111 TALLOC_CTX
*_mem_save_driver_path_0
;
8112 uint32_t _ptr_data_file
;
8113 TALLOC_CTX
*_mem_save_data_file_0
;
8114 uint32_t _ptr_config_file
;
8115 TALLOC_CTX
*_mem_save_config_file_0
;
8116 uint32_t _ptr_help_file
;
8117 TALLOC_CTX
*_mem_save_help_file_0
;
8118 uint32_t _ptr_monitor_name
;
8119 TALLOC_CTX
*_mem_save_monitor_name_0
;
8120 uint32_t _ptr_default_datatype
;
8121 TALLOC_CTX
*_mem_save_default_datatype_0
;
8122 uint32_t _ptr_dependent_files
;
8123 TALLOC_CTX
*_mem_save_dependent_files_0
;
8124 uint32_t _ptr_previous_names
;
8125 TALLOC_CTX
*_mem_save_previous_names_0
;
8126 if (ndr_flags
& NDR_SCALARS
) {
8127 NDR_CHECK(ndr_pull_align(ndr
, 4));
8128 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8129 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8130 if (_ptr_driver_name
) {
8131 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8133 r
->driver_name
= NULL
;
8135 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8136 if (_ptr_architecture
) {
8137 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8139 r
->architecture
= NULL
;
8141 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8142 if (_ptr_driver_path
) {
8143 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8145 r
->driver_path
= NULL
;
8147 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8148 if (_ptr_data_file
) {
8149 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8151 r
->data_file
= NULL
;
8153 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8154 if (_ptr_config_file
) {
8155 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8157 r
->config_file
= NULL
;
8159 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8160 if (_ptr_help_file
) {
8161 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8163 r
->help_file
= NULL
;
8165 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8166 if (_ptr_monitor_name
) {
8167 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8169 r
->monitor_name
= NULL
;
8171 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8172 if (_ptr_default_datatype
) {
8173 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8175 r
->default_datatype
= NULL
;
8177 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8178 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8179 if (_ptr_dependent_files
) {
8180 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8182 r
->dependent_files
= NULL
;
8184 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
8185 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
8186 if (_ptr_previous_names
) {
8187 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
8189 r
->previous_names
= NULL
;
8192 if (ndr_flags
& NDR_BUFFERS
) {
8193 if (r
->driver_name
) {
8194 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8195 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8196 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8197 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8198 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8199 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
));
8201 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8202 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8203 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8205 if (r
->architecture
) {
8206 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8207 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8208 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8209 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8210 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8211 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
));
8213 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8214 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8215 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8217 if (r
->driver_path
) {
8218 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8219 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8220 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8221 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8222 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8223 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
));
8225 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8226 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8227 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8230 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8231 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8232 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8233 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8234 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8235 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
));
8237 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8238 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8239 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8241 if (r
->config_file
) {
8242 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8243 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8244 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8245 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8246 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8247 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
));
8249 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8250 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8251 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8254 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8255 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8256 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8257 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8258 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
8259 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
));
8261 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
8262 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
8263 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8265 if (r
->monitor_name
) {
8266 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8267 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8268 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8269 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8270 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
8271 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
));
8273 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
8274 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
8275 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8277 if (r
->default_datatype
) {
8278 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8279 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8280 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8281 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8282 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
8283 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
));
8285 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
8286 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
8287 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8289 if (r
->dependent_files
) {
8290 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8291 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8292 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8293 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8295 if (r
->previous_names
) {
8296 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8297 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
8298 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8299 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
8302 return NDR_ERR_SUCCESS
;
8305 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo4
*r
)
8307 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo4");
8309 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8310 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8312 if (r
->driver_name
) {
8313 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8316 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8318 if (r
->architecture
) {
8319 ndr_print_string(ndr
, "architecture", r
->architecture
);
8322 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8324 if (r
->driver_path
) {
8325 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8328 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8331 ndr_print_string(ndr
, "data_file", r
->data_file
);
8334 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8336 if (r
->config_file
) {
8337 ndr_print_string(ndr
, "config_file", r
->config_file
);
8340 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8343 ndr_print_string(ndr
, "help_file", r
->help_file
);
8346 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8348 if (r
->monitor_name
) {
8349 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8352 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8354 if (r
->default_datatype
) {
8355 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8358 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
);
8359 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8361 if (r
->dependent_files
) {
8362 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8365 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
);
8366 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
8368 if (r
->previous_names
) {
8369 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
8375 static enum ndr_err_code
ndr_push_spoolss_DriverAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
8377 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
8378 return NDR_ERR_SUCCESS
;
8381 static enum ndr_err_code
ndr_pull_spoolss_DriverAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
8384 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
8386 return NDR_ERR_SUCCESS
;
8389 _PUBLIC_
void ndr_print_spoolss_DriverAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
8391 ndr_print_uint32(ndr
, name
, r
);
8393 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE
, r
);
8397 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo6
*r
)
8399 if (ndr_flags
& NDR_SCALARS
) {
8400 NDR_CHECK(ndr_push_align(ndr
, 8));
8401 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8402 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8403 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8404 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8405 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8406 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8407 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8408 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8409 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8411 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8412 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8413 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8414 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
8415 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
8416 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
8417 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
8418 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
8419 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
8421 if (ndr_flags
& NDR_BUFFERS
) {
8422 if (r
->driver_name
) {
8423 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8424 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8425 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8426 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8428 if (r
->architecture
) {
8429 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8430 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8431 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8432 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8434 if (r
->driver_path
) {
8435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8436 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8437 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8438 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8444 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8446 if (r
->config_file
) {
8447 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8448 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8449 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8450 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8453 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8454 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8455 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8456 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8458 if (r
->monitor_name
) {
8459 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8460 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8461 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8462 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8464 if (r
->default_datatype
) {
8465 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8466 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8467 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8468 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8470 if (r
->dependent_files
) {
8471 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8473 if (r
->previous_names
) {
8474 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8476 if (r
->manufacturer_name
) {
8477 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8478 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8479 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8480 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8482 if (r
->manufacturer_url
) {
8483 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8484 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8485 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8486 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8488 if (r
->hardware_id
) {
8489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8490 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8491 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8492 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8495 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8496 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8497 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8498 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8501 return NDR_ERR_SUCCESS
;
8504 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo6
*r
)
8506 uint32_t _ptr_driver_name
;
8507 TALLOC_CTX
*_mem_save_driver_name_0
;
8508 uint32_t _ptr_architecture
;
8509 TALLOC_CTX
*_mem_save_architecture_0
;
8510 uint32_t _ptr_driver_path
;
8511 TALLOC_CTX
*_mem_save_driver_path_0
;
8512 uint32_t _ptr_data_file
;
8513 TALLOC_CTX
*_mem_save_data_file_0
;
8514 uint32_t _ptr_config_file
;
8515 TALLOC_CTX
*_mem_save_config_file_0
;
8516 uint32_t _ptr_help_file
;
8517 TALLOC_CTX
*_mem_save_help_file_0
;
8518 uint32_t _ptr_monitor_name
;
8519 TALLOC_CTX
*_mem_save_monitor_name_0
;
8520 uint32_t _ptr_default_datatype
;
8521 TALLOC_CTX
*_mem_save_default_datatype_0
;
8522 uint32_t _ptr_dependent_files
;
8523 TALLOC_CTX
*_mem_save_dependent_files_0
;
8524 uint32_t _ptr_previous_names
;
8525 TALLOC_CTX
*_mem_save_previous_names_0
;
8526 uint32_t _ptr_manufacturer_name
;
8527 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
8528 uint32_t _ptr_manufacturer_url
;
8529 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
8530 uint32_t _ptr_hardware_id
;
8531 TALLOC_CTX
*_mem_save_hardware_id_0
;
8532 uint32_t _ptr_provider
;
8533 TALLOC_CTX
*_mem_save_provider_0
;
8534 if (ndr_flags
& NDR_SCALARS
) {
8535 NDR_CHECK(ndr_pull_align(ndr
, 8));
8536 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8537 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8538 if (_ptr_driver_name
) {
8539 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8541 r
->driver_name
= NULL
;
8543 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8544 if (_ptr_architecture
) {
8545 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8547 r
->architecture
= NULL
;
8549 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8550 if (_ptr_driver_path
) {
8551 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8553 r
->driver_path
= NULL
;
8555 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8556 if (_ptr_data_file
) {
8557 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8559 r
->data_file
= NULL
;
8561 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8562 if (_ptr_config_file
) {
8563 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8565 r
->config_file
= NULL
;
8567 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8568 if (_ptr_help_file
) {
8569 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8571 r
->help_file
= NULL
;
8573 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8574 if (_ptr_monitor_name
) {
8575 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8577 r
->monitor_name
= NULL
;
8579 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8580 if (_ptr_default_datatype
) {
8581 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8583 r
->default_datatype
= NULL
;
8585 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8586 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8587 if (_ptr_dependent_files
) {
8588 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8590 r
->dependent_files
= NULL
;
8592 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
8593 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
8594 if (_ptr_previous_names
) {
8595 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
8597 r
->previous_names
= NULL
;
8599 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
8600 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
8601 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
8602 if (_ptr_manufacturer_name
) {
8603 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
8605 r
->manufacturer_name
= NULL
;
8607 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
8608 if (_ptr_manufacturer_url
) {
8609 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
8611 r
->manufacturer_url
= NULL
;
8613 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
8614 if (_ptr_hardware_id
) {
8615 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
8617 r
->hardware_id
= NULL
;
8619 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
8620 if (_ptr_provider
) {
8621 NDR_PULL_ALLOC(ndr
, r
->provider
);
8626 if (ndr_flags
& NDR_BUFFERS
) {
8627 if (r
->driver_name
) {
8628 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8629 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8630 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8631 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8632 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8633 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
));
8635 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8636 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8637 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8639 if (r
->architecture
) {
8640 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8641 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8642 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8643 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8644 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8645 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
));
8647 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8648 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8649 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8651 if (r
->driver_path
) {
8652 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8653 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8654 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8655 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8656 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8657 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
));
8659 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8660 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8661 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8664 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8665 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8666 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8667 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8668 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8669 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
));
8671 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8672 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8673 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8675 if (r
->config_file
) {
8676 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8677 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8678 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8679 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8680 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8681 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
));
8683 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8684 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8685 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8688 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8689 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8690 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8691 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8692 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
8693 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
));
8695 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
8696 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
8697 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8699 if (r
->monitor_name
) {
8700 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8701 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8702 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8703 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8704 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
8705 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
));
8707 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
8708 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
8709 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8711 if (r
->default_datatype
) {
8712 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8713 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8714 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8715 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8716 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
8717 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
));
8719 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
8720 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
8721 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8723 if (r
->dependent_files
) {
8724 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8725 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8726 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8727 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8729 if (r
->previous_names
) {
8730 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8731 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
8732 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8733 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
8735 if (r
->manufacturer_name
) {
8736 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8737 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
8738 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
8739 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
8740 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
8741 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
));
8743 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
8744 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
8745 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
8747 if (r
->manufacturer_url
) {
8748 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8749 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
8750 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
8751 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
8752 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
8753 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
));
8755 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
8756 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
8757 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
8759 if (r
->hardware_id
) {
8760 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8761 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
8762 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
8763 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
8764 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
8765 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
));
8767 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
8768 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
8769 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
8772 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8773 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
8774 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
8775 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
8776 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
8777 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
));
8779 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
8780 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
8781 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
8784 return NDR_ERR_SUCCESS
;
8787 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo6
*r
)
8789 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo6");
8791 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8792 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8794 if (r
->driver_name
) {
8795 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8798 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8800 if (r
->architecture
) {
8801 ndr_print_string(ndr
, "architecture", r
->architecture
);
8804 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8806 if (r
->driver_path
) {
8807 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8810 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8813 ndr_print_string(ndr
, "data_file", r
->data_file
);
8816 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8818 if (r
->config_file
) {
8819 ndr_print_string(ndr
, "config_file", r
->config_file
);
8822 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8825 ndr_print_string(ndr
, "help_file", r
->help_file
);
8828 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8830 if (r
->monitor_name
) {
8831 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8834 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8836 if (r
->default_datatype
) {
8837 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8840 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
);
8841 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8843 if (r
->dependent_files
) {
8844 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8847 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
);
8848 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
8850 if (r
->previous_names
) {
8851 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
8854 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
8855 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
8856 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
8858 if (r
->manufacturer_name
) {
8859 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
8862 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
8864 if (r
->manufacturer_url
) {
8865 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
8868 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
8870 if (r
->hardware_id
) {
8871 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
8874 ndr_print_ptr(ndr
, "provider", r
->provider
);
8877 ndr_print_string(ndr
, "provider", r
->provider
);
8883 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo8
*r
)
8885 if (ndr_flags
& NDR_SCALARS
) {
8886 NDR_CHECK(ndr_push_align(ndr
, 8));
8887 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8888 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8889 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8890 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8891 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8892 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8893 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8894 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8895 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8896 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8897 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8898 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8899 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8900 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
8901 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
8902 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
8903 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
8904 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
8905 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
8906 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
8907 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->vendor_setup
));
8908 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->color_profiles
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8909 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->color_profiles
));
8910 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->inf_path
));
8911 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
8912 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->core_driver_dependencies
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8913 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->core_driver_dependencies
));
8914 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
8915 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
8917 if (ndr_flags
& NDR_BUFFERS
) {
8918 if (r
->driver_name
) {
8919 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8920 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8921 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8922 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8924 if (r
->architecture
) {
8925 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8926 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8928 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8930 if (r
->driver_path
) {
8931 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8932 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8933 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8934 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8937 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8938 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8939 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8940 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8942 if (r
->config_file
) {
8943 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8944 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8945 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8946 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8949 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8950 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8951 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8952 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8954 if (r
->monitor_name
) {
8955 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8956 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8957 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8958 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8960 if (r
->default_datatype
) {
8961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8962 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8963 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8964 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8966 if (r
->dependent_files
) {
8967 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8969 if (r
->previous_names
) {
8970 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8972 if (r
->manufacturer_name
) {
8973 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8974 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8975 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8976 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8978 if (r
->manufacturer_url
) {
8979 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8982 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8984 if (r
->hardware_id
) {
8985 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8986 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8987 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8988 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8992 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8993 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8994 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8996 if (r
->print_processor
) {
8997 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
8998 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8999 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
9000 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9002 if (r
->vendor_setup
) {
9003 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
9004 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9005 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
9006 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->vendor_setup
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9008 if (r
->color_profiles
) {
9009 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
9012 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
9013 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
9014 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
9015 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->inf_path
, ndr_charset_length(r
->inf_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
9017 if (r
->core_driver_dependencies
) {
9018 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
9021 return NDR_ERR_SUCCESS
;
9024 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo8
*r
)
9026 uint32_t _ptr_driver_name
;
9027 TALLOC_CTX
*_mem_save_driver_name_0
;
9028 uint32_t _ptr_architecture
;
9029 TALLOC_CTX
*_mem_save_architecture_0
;
9030 uint32_t _ptr_driver_path
;
9031 TALLOC_CTX
*_mem_save_driver_path_0
;
9032 uint32_t _ptr_data_file
;
9033 TALLOC_CTX
*_mem_save_data_file_0
;
9034 uint32_t _ptr_config_file
;
9035 TALLOC_CTX
*_mem_save_config_file_0
;
9036 uint32_t _ptr_help_file
;
9037 TALLOC_CTX
*_mem_save_help_file_0
;
9038 uint32_t _ptr_monitor_name
;
9039 TALLOC_CTX
*_mem_save_monitor_name_0
;
9040 uint32_t _ptr_default_datatype
;
9041 TALLOC_CTX
*_mem_save_default_datatype_0
;
9042 uint32_t _ptr_dependent_files
;
9043 TALLOC_CTX
*_mem_save_dependent_files_0
;
9044 uint32_t _ptr_previous_names
;
9045 TALLOC_CTX
*_mem_save_previous_names_0
;
9046 uint32_t _ptr_manufacturer_name
;
9047 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
9048 uint32_t _ptr_manufacturer_url
;
9049 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
9050 uint32_t _ptr_hardware_id
;
9051 TALLOC_CTX
*_mem_save_hardware_id_0
;
9052 uint32_t _ptr_provider
;
9053 TALLOC_CTX
*_mem_save_provider_0
;
9054 uint32_t _ptr_print_processor
;
9055 TALLOC_CTX
*_mem_save_print_processor_0
;
9056 uint32_t _ptr_vendor_setup
;
9057 TALLOC_CTX
*_mem_save_vendor_setup_0
;
9058 uint32_t _ptr_color_profiles
;
9059 TALLOC_CTX
*_mem_save_color_profiles_0
;
9060 uint32_t _ptr_inf_path
;
9061 TALLOC_CTX
*_mem_save_inf_path_0
;
9062 uint32_t _ptr_core_driver_dependencies
;
9063 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
9064 if (ndr_flags
& NDR_SCALARS
) {
9065 NDR_CHECK(ndr_pull_align(ndr
, 8));
9066 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9067 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9068 if (_ptr_driver_name
) {
9069 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9071 r
->driver_name
= NULL
;
9073 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9074 if (_ptr_architecture
) {
9075 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9077 r
->architecture
= NULL
;
9079 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9080 if (_ptr_driver_path
) {
9081 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9083 r
->driver_path
= NULL
;
9085 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9086 if (_ptr_data_file
) {
9087 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9089 r
->data_file
= NULL
;
9091 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9092 if (_ptr_config_file
) {
9093 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9095 r
->config_file
= NULL
;
9097 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9098 if (_ptr_help_file
) {
9099 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9101 r
->help_file
= NULL
;
9103 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9104 if (_ptr_monitor_name
) {
9105 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9107 r
->monitor_name
= NULL
;
9109 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9110 if (_ptr_default_datatype
) {
9111 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9113 r
->default_datatype
= NULL
;
9115 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9116 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9117 if (_ptr_dependent_files
) {
9118 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9120 r
->dependent_files
= NULL
;
9122 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9123 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9124 if (_ptr_previous_names
) {
9125 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9127 r
->previous_names
= NULL
;
9129 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
9130 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
9131 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
9132 if (_ptr_manufacturer_name
) {
9133 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
9135 r
->manufacturer_name
= NULL
;
9137 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
9138 if (_ptr_manufacturer_url
) {
9139 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
9141 r
->manufacturer_url
= NULL
;
9143 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
9144 if (_ptr_hardware_id
) {
9145 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
9147 r
->hardware_id
= NULL
;
9149 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
9150 if (_ptr_provider
) {
9151 NDR_PULL_ALLOC(ndr
, r
->provider
);
9155 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
9156 if (_ptr_print_processor
) {
9157 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
9159 r
->print_processor
= NULL
;
9161 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
9162 if (_ptr_vendor_setup
) {
9163 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
9165 r
->vendor_setup
= NULL
;
9167 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_color_profiles
));
9168 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
9169 if (_ptr_color_profiles
) {
9170 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
9172 r
->color_profiles
= NULL
;
9174 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
9175 if (_ptr_inf_path
) {
9176 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
9180 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
9181 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_core_driver_dependencies
));
9182 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
9183 if (_ptr_core_driver_dependencies
) {
9184 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
9186 r
->core_driver_dependencies
= NULL
;
9188 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
9189 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
9191 if (ndr_flags
& NDR_BUFFERS
) {
9192 if (r
->driver_name
) {
9193 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9194 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9195 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9196 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9197 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
9198 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
));
9200 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
9201 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
9202 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9204 if (r
->architecture
) {
9205 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9206 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9207 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9208 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9209 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
9210 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
));
9212 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
9213 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
9214 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9216 if (r
->driver_path
) {
9217 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9218 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9219 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9220 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9221 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
9222 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
));
9224 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
9225 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
9226 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9229 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9230 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9231 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9232 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9233 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
9234 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
));
9236 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
9237 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
9238 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9240 if (r
->config_file
) {
9241 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9242 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9243 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9244 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9245 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
9246 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
));
9248 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
9249 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
9250 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9253 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9254 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9255 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9256 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9257 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
9258 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
));
9260 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
9261 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
9262 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9264 if (r
->monitor_name
) {
9265 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9266 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9267 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9268 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9269 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
9270 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
));
9272 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
9273 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
9274 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9276 if (r
->default_datatype
) {
9277 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9278 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9279 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9280 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9281 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
9282 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
));
9284 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
9285 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
9286 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9288 if (r
->dependent_files
) {
9289 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9290 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9291 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9292 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9294 if (r
->previous_names
) {
9295 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9296 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9297 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9298 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9300 if (r
->manufacturer_name
) {
9301 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9302 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
9303 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
9304 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
9305 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
9306 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
));
9308 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
9309 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
9310 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
9312 if (r
->manufacturer_url
) {
9313 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9314 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
9315 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
9316 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
9317 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
9318 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
));
9320 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
9321 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
9322 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
9324 if (r
->hardware_id
) {
9325 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9326 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
9327 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
9328 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
9329 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
9330 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
));
9332 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
9333 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
9334 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
9337 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9338 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
9339 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
9340 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
9341 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
9342 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
));
9344 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
9345 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
9346 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
9348 if (r
->print_processor
) {
9349 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9350 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
9351 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
9352 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
9353 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
9354 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
));
9356 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
9357 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
9358 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
9360 if (r
->vendor_setup
) {
9361 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9362 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
9363 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->vendor_setup
));
9364 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->vendor_setup
));
9365 if (ndr_get_array_length(ndr
, &r
->vendor_setup
) > ndr_get_array_size(ndr
, &r
->vendor_setup
)) {
9366 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
));
9368 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t)));
9369 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->vendor_setup
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t), CH_UTF16
));
9370 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
9372 if (r
->color_profiles
) {
9373 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9374 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
9375 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
9376 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
9379 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9380 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
9381 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->inf_path
));
9382 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->inf_path
));
9383 if (ndr_get_array_length(ndr
, &r
->inf_path
) > ndr_get_array_size(ndr
, &r
->inf_path
)) {
9384 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
));
9386 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t)));
9387 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->inf_path
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t), CH_UTF16
));
9388 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
9390 if (r
->core_driver_dependencies
) {
9391 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9392 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
9393 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
9394 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
9397 return NDR_ERR_SUCCESS
;
9400 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo8
*r
)
9402 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo8");
9404 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9405 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9407 if (r
->driver_name
) {
9408 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9411 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9413 if (r
->architecture
) {
9414 ndr_print_string(ndr
, "architecture", r
->architecture
);
9417 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9419 if (r
->driver_path
) {
9420 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9423 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9426 ndr_print_string(ndr
, "data_file", r
->data_file
);
9429 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9431 if (r
->config_file
) {
9432 ndr_print_string(ndr
, "config_file", r
->config_file
);
9435 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9438 ndr_print_string(ndr
, "help_file", r
->help_file
);
9441 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9443 if (r
->monitor_name
) {
9444 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9447 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9449 if (r
->default_datatype
) {
9450 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9453 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
);
9454 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9456 if (r
->dependent_files
) {
9457 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9460 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
);
9461 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
9463 if (r
->previous_names
) {
9464 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
9467 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
9468 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
9469 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
9471 if (r
->manufacturer_name
) {
9472 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
9475 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
9477 if (r
->manufacturer_url
) {
9478 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
9481 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
9483 if (r
->hardware_id
) {
9484 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
9487 ndr_print_ptr(ndr
, "provider", r
->provider
);
9490 ndr_print_string(ndr
, "provider", r
->provider
);
9493 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
9495 if (r
->print_processor
) {
9496 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
9499 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
9501 if (r
->vendor_setup
) {
9502 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
9505 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
);
9506 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
9508 if (r
->color_profiles
) {
9509 ndr_print_spoolss_StringArray(ndr
, "color_profiles", r
->color_profiles
);
9512 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
9515 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
9518 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
9519 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
);
9520 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
9522 if (r
->core_driver_dependencies
) {
9523 ndr_print_spoolss_StringArray(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
9526 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
9527 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
9531 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddDriverInfo
*r
)
9533 if (ndr_flags
& NDR_SCALARS
) {
9534 int level
= ndr_push_get_switch_value(ndr
, r
);
9535 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
9538 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
9542 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
9546 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
9550 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
9554 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
9558 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
9562 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
9565 if (ndr_flags
& NDR_BUFFERS
) {
9566 int level
= ndr_push_get_switch_value(ndr
, r
);
9570 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
9576 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
9582 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
9588 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
9594 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
9600 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
9605 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
9608 return NDR_ERR_SUCCESS
;
9611 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddDriverInfo
*r
)
9615 TALLOC_CTX
*_mem_save_info1_0
;
9616 TALLOC_CTX
*_mem_save_info2_0
;
9617 TALLOC_CTX
*_mem_save_info3_0
;
9618 TALLOC_CTX
*_mem_save_info4_0
;
9619 TALLOC_CTX
*_mem_save_info6_0
;
9620 TALLOC_CTX
*_mem_save_info8_0
;
9621 level
= ndr_pull_get_switch_value(ndr
, r
);
9622 if (ndr_flags
& NDR_SCALARS
) {
9623 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
9624 if (_level
!= level
) {
9625 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
9629 uint32_t _ptr_info1
;
9630 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
9632 NDR_PULL_ALLOC(ndr
, r
->info1
);
9639 uint32_t _ptr_info2
;
9640 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
9642 NDR_PULL_ALLOC(ndr
, r
->info2
);
9649 uint32_t _ptr_info3
;
9650 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
9652 NDR_PULL_ALLOC(ndr
, r
->info3
);
9659 uint32_t _ptr_info4
;
9660 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
9662 NDR_PULL_ALLOC(ndr
, r
->info4
);
9669 uint32_t _ptr_info6
;
9670 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
9672 NDR_PULL_ALLOC(ndr
, r
->info6
);
9679 uint32_t _ptr_info8
;
9680 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
9682 NDR_PULL_ALLOC(ndr
, r
->info8
);
9689 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
9692 if (ndr_flags
& NDR_BUFFERS
) {
9696 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9697 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
9698 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
9699 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
9705 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9706 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
9707 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
9708 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
9714 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9715 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
9716 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
9717 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
9723 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9724 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
9725 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
9726 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
9732 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9733 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
9734 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
9735 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
9741 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9742 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
9743 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
9744 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
9749 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
9752 return NDR_ERR_SUCCESS
;
9755 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddDriverInfo
*r
)
9758 level
= ndr_print_get_switch_value(ndr
, r
);
9759 ndr_print_union(ndr
, name
, level
, "spoolss_AddDriverInfo");
9762 ndr_print_ptr(ndr
, "info1", r
->info1
);
9765 ndr_print_spoolss_AddDriverInfo1(ndr
, "info1", r
->info1
);
9771 ndr_print_ptr(ndr
, "info2", r
->info2
);
9774 ndr_print_spoolss_AddDriverInfo2(ndr
, "info2", r
->info2
);
9780 ndr_print_ptr(ndr
, "info3", r
->info3
);
9783 ndr_print_spoolss_AddDriverInfo3(ndr
, "info3", r
->info3
);
9789 ndr_print_ptr(ndr
, "info4", r
->info4
);
9792 ndr_print_spoolss_AddDriverInfo4(ndr
, "info4", r
->info4
);
9798 ndr_print_ptr(ndr
, "info6", r
->info6
);
9801 ndr_print_spoolss_AddDriverInfo6(ndr
, "info6", r
->info6
);
9807 ndr_print_ptr(ndr
, "info8", r
->info8
);
9810 ndr_print_spoolss_AddDriverInfo8(ndr
, "info8", r
->info8
);
9816 ndr_print_bad_level(ndr
, name
, level
);
9820 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfoCtr
*r
)
9822 if (ndr_flags
& NDR_SCALARS
) {
9823 NDR_CHECK(ndr_push_align(ndr
, 4));
9824 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
9825 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
9826 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
9828 if (ndr_flags
& NDR_BUFFERS
) {
9829 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
9831 return NDR_ERR_SUCCESS
;
9834 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfoCtr
*r
)
9836 if (ndr_flags
& NDR_SCALARS
) {
9837 NDR_CHECK(ndr_pull_align(ndr
, 4));
9838 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
9839 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
9840 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
9842 if (ndr_flags
& NDR_BUFFERS
) {
9843 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
9845 return NDR_ERR_SUCCESS
;
9848 _PUBLIC_
void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfoCtr
*r
)
9850 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfoCtr");
9852 ndr_print_uint32(ndr
, "level", r
->level
);
9853 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
9854 ndr_print_spoolss_AddDriverInfo(ndr
, "info", &r
->info
);
9858 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo1
*r
)
9860 if (ndr_flags
& NDR_SCALARS
) {
9861 NDR_CHECK(ndr_push_align(ndr
, 4));
9863 uint32_t _flags_save_string
= ndr
->flags
;
9864 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9865 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
9866 ndr
->flags
= _flags_save_string
;
9869 if (ndr_flags
& NDR_BUFFERS
) {
9871 uint32_t _flags_save_string
= ndr
->flags
;
9872 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9873 if (r
->driver_name
) {
9874 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
9875 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
9877 ndr
->flags
= _flags_save_string
;
9880 return NDR_ERR_SUCCESS
;
9883 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo1
*r
)
9885 uint32_t _ptr_driver_name
;
9886 TALLOC_CTX
*_mem_save_driver_name_0
;
9887 if (ndr_flags
& NDR_SCALARS
) {
9888 NDR_CHECK(ndr_pull_align(ndr
, 4));
9890 uint32_t _flags_save_string
= ndr
->flags
;
9891 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9892 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9893 if (_ptr_driver_name
) {
9894 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9895 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
9897 r
->driver_name
= NULL
;
9899 ndr
->flags
= _flags_save_string
;
9902 if (ndr_flags
& NDR_BUFFERS
) {
9904 uint32_t _flags_save_string
= ndr
->flags
;
9905 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9906 if (r
->driver_name
) {
9907 uint32_t _relative_save_offset
;
9908 _relative_save_offset
= ndr
->offset
;
9909 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
9910 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9911 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9912 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
9913 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9914 ndr
->offset
= _relative_save_offset
;
9916 ndr
->flags
= _flags_save_string
;
9919 return NDR_ERR_SUCCESS
;
9922 _PUBLIC_
void ndr_print_spoolss_DriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo1
*r
)
9924 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo1");
9926 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9928 if (r
->driver_name
) {
9929 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9935 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
9937 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo1
, ic
);
9940 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo2
*r
)
9942 if (ndr_flags
& NDR_SCALARS
) {
9943 NDR_CHECK(ndr_push_align(ndr
, 4));
9944 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9946 uint32_t _flags_save_string
= ndr
->flags
;
9947 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9948 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
9949 ndr
->flags
= _flags_save_string
;
9952 uint32_t _flags_save_string
= ndr
->flags
;
9953 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9954 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
9955 ndr
->flags
= _flags_save_string
;
9958 uint32_t _flags_save_string
= ndr
->flags
;
9959 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9960 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
9961 ndr
->flags
= _flags_save_string
;
9964 uint32_t _flags_save_string
= ndr
->flags
;
9965 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9966 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
9967 ndr
->flags
= _flags_save_string
;
9970 uint32_t _flags_save_string
= ndr
->flags
;
9971 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9972 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
9973 ndr
->flags
= _flags_save_string
;
9976 if (ndr_flags
& NDR_BUFFERS
) {
9978 uint32_t _flags_save_string
= ndr
->flags
;
9979 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9980 if (r
->driver_name
) {
9981 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
9982 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
9984 ndr
->flags
= _flags_save_string
;
9987 uint32_t _flags_save_string
= ndr
->flags
;
9988 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9989 if (r
->architecture
) {
9990 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
9991 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
9993 ndr
->flags
= _flags_save_string
;
9996 uint32_t _flags_save_string
= ndr
->flags
;
9997 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9998 if (r
->driver_path
) {
9999 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
10000 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10002 ndr
->flags
= _flags_save_string
;
10005 uint32_t _flags_save_string
= ndr
->flags
;
10006 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10007 if (r
->data_file
) {
10008 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
10009 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10011 ndr
->flags
= _flags_save_string
;
10014 uint32_t _flags_save_string
= ndr
->flags
;
10015 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10016 if (r
->config_file
) {
10017 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
10018 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10020 ndr
->flags
= _flags_save_string
;
10023 return NDR_ERR_SUCCESS
;
10026 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo2
*r
)
10028 uint32_t _ptr_driver_name
;
10029 TALLOC_CTX
*_mem_save_driver_name_0
;
10030 uint32_t _ptr_architecture
;
10031 TALLOC_CTX
*_mem_save_architecture_0
;
10032 uint32_t _ptr_driver_path
;
10033 TALLOC_CTX
*_mem_save_driver_path_0
;
10034 uint32_t _ptr_data_file
;
10035 TALLOC_CTX
*_mem_save_data_file_0
;
10036 uint32_t _ptr_config_file
;
10037 TALLOC_CTX
*_mem_save_config_file_0
;
10038 if (ndr_flags
& NDR_SCALARS
) {
10039 NDR_CHECK(ndr_pull_align(ndr
, 4));
10040 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10042 uint32_t _flags_save_string
= ndr
->flags
;
10043 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10044 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10045 if (_ptr_driver_name
) {
10046 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10047 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10049 r
->driver_name
= NULL
;
10051 ndr
->flags
= _flags_save_string
;
10054 uint32_t _flags_save_string
= ndr
->flags
;
10055 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10056 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10057 if (_ptr_architecture
) {
10058 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10059 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10061 r
->architecture
= NULL
;
10063 ndr
->flags
= _flags_save_string
;
10066 uint32_t _flags_save_string
= ndr
->flags
;
10067 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10068 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10069 if (_ptr_driver_path
) {
10070 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10071 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10073 r
->driver_path
= NULL
;
10075 ndr
->flags
= _flags_save_string
;
10078 uint32_t _flags_save_string
= ndr
->flags
;
10079 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10080 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10081 if (_ptr_data_file
) {
10082 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10083 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10085 r
->data_file
= NULL
;
10087 ndr
->flags
= _flags_save_string
;
10090 uint32_t _flags_save_string
= ndr
->flags
;
10091 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10092 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10093 if (_ptr_config_file
) {
10094 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10095 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10097 r
->config_file
= NULL
;
10099 ndr
->flags
= _flags_save_string
;
10102 if (ndr_flags
& NDR_BUFFERS
) {
10104 uint32_t _flags_save_string
= ndr
->flags
;
10105 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10106 if (r
->driver_name
) {
10107 uint32_t _relative_save_offset
;
10108 _relative_save_offset
= ndr
->offset
;
10109 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10110 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10111 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10112 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10113 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10114 ndr
->offset
= _relative_save_offset
;
10116 ndr
->flags
= _flags_save_string
;
10119 uint32_t _flags_save_string
= ndr
->flags
;
10120 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10121 if (r
->architecture
) {
10122 uint32_t _relative_save_offset
;
10123 _relative_save_offset
= ndr
->offset
;
10124 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
10125 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10126 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10127 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
10128 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10129 ndr
->offset
= _relative_save_offset
;
10131 ndr
->flags
= _flags_save_string
;
10134 uint32_t _flags_save_string
= ndr
->flags
;
10135 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10136 if (r
->driver_path
) {
10137 uint32_t _relative_save_offset
;
10138 _relative_save_offset
= ndr
->offset
;
10139 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
10140 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10141 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10142 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
10143 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10144 ndr
->offset
= _relative_save_offset
;
10146 ndr
->flags
= _flags_save_string
;
10149 uint32_t _flags_save_string
= ndr
->flags
;
10150 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10151 if (r
->data_file
) {
10152 uint32_t _relative_save_offset
;
10153 _relative_save_offset
= ndr
->offset
;
10154 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
10155 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10156 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10157 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
10158 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10159 ndr
->offset
= _relative_save_offset
;
10161 ndr
->flags
= _flags_save_string
;
10164 uint32_t _flags_save_string
= ndr
->flags
;
10165 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10166 if (r
->config_file
) {
10167 uint32_t _relative_save_offset
;
10168 _relative_save_offset
= ndr
->offset
;
10169 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
10170 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10171 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10172 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
10173 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10174 ndr
->offset
= _relative_save_offset
;
10176 ndr
->flags
= _flags_save_string
;
10179 return NDR_ERR_SUCCESS
;
10182 _PUBLIC_
void ndr_print_spoolss_DriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo2
*r
)
10184 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo2");
10186 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10187 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10189 if (r
->driver_name
) {
10190 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10193 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10195 if (r
->architecture
) {
10196 ndr_print_string(ndr
, "architecture", r
->architecture
);
10199 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10201 if (r
->driver_path
) {
10202 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10205 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10207 if (r
->data_file
) {
10208 ndr_print_string(ndr
, "data_file", r
->data_file
);
10211 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10213 if (r
->config_file
) {
10214 ndr_print_string(ndr
, "config_file", r
->config_file
);
10220 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10222 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo2
, ic
);
10225 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo3
*r
)
10227 if (ndr_flags
& NDR_SCALARS
) {
10228 NDR_CHECK(ndr_push_align(ndr
, 4));
10229 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10231 uint32_t _flags_save_string
= ndr
->flags
;
10232 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10233 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10234 ndr
->flags
= _flags_save_string
;
10237 uint32_t _flags_save_string
= ndr
->flags
;
10238 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10239 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10240 ndr
->flags
= _flags_save_string
;
10243 uint32_t _flags_save_string
= ndr
->flags
;
10244 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10245 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10246 ndr
->flags
= _flags_save_string
;
10249 uint32_t _flags_save_string
= ndr
->flags
;
10250 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10251 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10252 ndr
->flags
= _flags_save_string
;
10255 uint32_t _flags_save_string
= ndr
->flags
;
10256 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10257 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10258 ndr
->flags
= _flags_save_string
;
10261 uint32_t _flags_save_string
= ndr
->flags
;
10262 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10263 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
10264 ndr
->flags
= _flags_save_string
;
10267 uint32_t _flags_save_string_array
= ndr
->flags
;
10268 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10269 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
10270 ndr
->flags
= _flags_save_string_array
;
10273 uint32_t _flags_save_string
= ndr
->flags
;
10274 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10275 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
10276 ndr
->flags
= _flags_save_string
;
10279 uint32_t _flags_save_string
= ndr
->flags
;
10280 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10281 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
10282 ndr
->flags
= _flags_save_string
;
10285 if (ndr_flags
& NDR_BUFFERS
) {
10287 uint32_t _flags_save_string
= ndr
->flags
;
10288 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10289 if (r
->driver_name
) {
10290 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10291 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10293 ndr
->flags
= _flags_save_string
;
10296 uint32_t _flags_save_string
= ndr
->flags
;
10297 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10298 if (r
->architecture
) {
10299 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
10300 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10302 ndr
->flags
= _flags_save_string
;
10305 uint32_t _flags_save_string
= ndr
->flags
;
10306 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10307 if (r
->driver_path
) {
10308 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
10309 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10311 ndr
->flags
= _flags_save_string
;
10314 uint32_t _flags_save_string
= ndr
->flags
;
10315 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10316 if (r
->data_file
) {
10317 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
10318 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10320 ndr
->flags
= _flags_save_string
;
10323 uint32_t _flags_save_string
= ndr
->flags
;
10324 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10325 if (r
->config_file
) {
10326 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
10327 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10329 ndr
->flags
= _flags_save_string
;
10332 uint32_t _flags_save_string
= ndr
->flags
;
10333 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10334 if (r
->help_file
) {
10335 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
10336 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
10338 ndr
->flags
= _flags_save_string
;
10341 uint32_t _flags_save_string_array
= ndr
->flags
;
10342 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10343 if (r
->dependent_files
) {
10344 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
10345 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
10347 ndr
->flags
= _flags_save_string_array
;
10350 uint32_t _flags_save_string
= ndr
->flags
;
10351 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10352 if (r
->monitor_name
) {
10353 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
10354 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
10356 ndr
->flags
= _flags_save_string
;
10359 uint32_t _flags_save_string
= ndr
->flags
;
10360 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10361 if (r
->default_datatype
) {
10362 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
10363 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
10365 ndr
->flags
= _flags_save_string
;
10368 return NDR_ERR_SUCCESS
;
10371 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo3
*r
)
10373 uint32_t _ptr_driver_name
;
10374 TALLOC_CTX
*_mem_save_driver_name_0
;
10375 uint32_t _ptr_architecture
;
10376 TALLOC_CTX
*_mem_save_architecture_0
;
10377 uint32_t _ptr_driver_path
;
10378 TALLOC_CTX
*_mem_save_driver_path_0
;
10379 uint32_t _ptr_data_file
;
10380 TALLOC_CTX
*_mem_save_data_file_0
;
10381 uint32_t _ptr_config_file
;
10382 TALLOC_CTX
*_mem_save_config_file_0
;
10383 uint32_t _ptr_help_file
;
10384 TALLOC_CTX
*_mem_save_help_file_0
;
10385 uint32_t _ptr_dependent_files
;
10386 TALLOC_CTX
*_mem_save_dependent_files_0
;
10387 uint32_t _ptr_monitor_name
;
10388 TALLOC_CTX
*_mem_save_monitor_name_0
;
10389 uint32_t _ptr_default_datatype
;
10390 TALLOC_CTX
*_mem_save_default_datatype_0
;
10391 if (ndr_flags
& NDR_SCALARS
) {
10392 NDR_CHECK(ndr_pull_align(ndr
, 4));
10393 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10395 uint32_t _flags_save_string
= ndr
->flags
;
10396 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10397 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10398 if (_ptr_driver_name
) {
10399 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10400 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10402 r
->driver_name
= NULL
;
10404 ndr
->flags
= _flags_save_string
;
10407 uint32_t _flags_save_string
= ndr
->flags
;
10408 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10409 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10410 if (_ptr_architecture
) {
10411 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10412 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10414 r
->architecture
= NULL
;
10416 ndr
->flags
= _flags_save_string
;
10419 uint32_t _flags_save_string
= ndr
->flags
;
10420 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10421 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10422 if (_ptr_driver_path
) {
10423 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10424 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10426 r
->driver_path
= NULL
;
10428 ndr
->flags
= _flags_save_string
;
10431 uint32_t _flags_save_string
= ndr
->flags
;
10432 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10433 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10434 if (_ptr_data_file
) {
10435 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10436 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10438 r
->data_file
= NULL
;
10440 ndr
->flags
= _flags_save_string
;
10443 uint32_t _flags_save_string
= ndr
->flags
;
10444 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10445 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10446 if (_ptr_config_file
) {
10447 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10448 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10450 r
->config_file
= NULL
;
10452 ndr
->flags
= _flags_save_string
;
10455 uint32_t _flags_save_string
= ndr
->flags
;
10456 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10457 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
10458 if (_ptr_help_file
) {
10459 NDR_PULL_ALLOC(ndr
, r
->help_file
);
10460 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
10462 r
->help_file
= NULL
;
10464 ndr
->flags
= _flags_save_string
;
10467 uint32_t _flags_save_string_array
= ndr
->flags
;
10468 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10469 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
10470 if (_ptr_dependent_files
) {
10471 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
10472 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
10474 r
->dependent_files
= NULL
;
10476 ndr
->flags
= _flags_save_string_array
;
10479 uint32_t _flags_save_string
= ndr
->flags
;
10480 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10481 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
10482 if (_ptr_monitor_name
) {
10483 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
10484 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
10486 r
->monitor_name
= NULL
;
10488 ndr
->flags
= _flags_save_string
;
10491 uint32_t _flags_save_string
= ndr
->flags
;
10492 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10493 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
10494 if (_ptr_default_datatype
) {
10495 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
10496 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
10498 r
->default_datatype
= NULL
;
10500 ndr
->flags
= _flags_save_string
;
10503 if (ndr_flags
& NDR_BUFFERS
) {
10505 uint32_t _flags_save_string
= ndr
->flags
;
10506 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10507 if (r
->driver_name
) {
10508 uint32_t _relative_save_offset
;
10509 _relative_save_offset
= ndr
->offset
;
10510 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10511 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10512 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10513 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10514 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10515 ndr
->offset
= _relative_save_offset
;
10517 ndr
->flags
= _flags_save_string
;
10520 uint32_t _flags_save_string
= ndr
->flags
;
10521 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10522 if (r
->architecture
) {
10523 uint32_t _relative_save_offset
;
10524 _relative_save_offset
= ndr
->offset
;
10525 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
10526 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10527 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10528 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
10529 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10530 ndr
->offset
= _relative_save_offset
;
10532 ndr
->flags
= _flags_save_string
;
10535 uint32_t _flags_save_string
= ndr
->flags
;
10536 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10537 if (r
->driver_path
) {
10538 uint32_t _relative_save_offset
;
10539 _relative_save_offset
= ndr
->offset
;
10540 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
10541 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10542 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10543 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
10544 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10545 ndr
->offset
= _relative_save_offset
;
10547 ndr
->flags
= _flags_save_string
;
10550 uint32_t _flags_save_string
= ndr
->flags
;
10551 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10552 if (r
->data_file
) {
10553 uint32_t _relative_save_offset
;
10554 _relative_save_offset
= ndr
->offset
;
10555 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
10556 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10557 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10558 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
10559 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10560 ndr
->offset
= _relative_save_offset
;
10562 ndr
->flags
= _flags_save_string
;
10565 uint32_t _flags_save_string
= ndr
->flags
;
10566 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10567 if (r
->config_file
) {
10568 uint32_t _relative_save_offset
;
10569 _relative_save_offset
= ndr
->offset
;
10570 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
10571 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10572 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10573 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
10574 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10575 ndr
->offset
= _relative_save_offset
;
10577 ndr
->flags
= _flags_save_string
;
10580 uint32_t _flags_save_string
= ndr
->flags
;
10581 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10582 if (r
->help_file
) {
10583 uint32_t _relative_save_offset
;
10584 _relative_save_offset
= ndr
->offset
;
10585 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
10586 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10587 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
10588 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
10589 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
10590 ndr
->offset
= _relative_save_offset
;
10592 ndr
->flags
= _flags_save_string
;
10595 uint32_t _flags_save_string_array
= ndr
->flags
;
10596 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10597 if (r
->dependent_files
) {
10598 uint32_t _relative_save_offset
;
10599 _relative_save_offset
= ndr
->offset
;
10600 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
10601 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10602 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
10603 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
10604 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
10605 ndr
->offset
= _relative_save_offset
;
10607 ndr
->flags
= _flags_save_string_array
;
10610 uint32_t _flags_save_string
= ndr
->flags
;
10611 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10612 if (r
->monitor_name
) {
10613 uint32_t _relative_save_offset
;
10614 _relative_save_offset
= ndr
->offset
;
10615 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
10616 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10617 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
10618 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
10619 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
10620 ndr
->offset
= _relative_save_offset
;
10622 ndr
->flags
= _flags_save_string
;
10625 uint32_t _flags_save_string
= ndr
->flags
;
10626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10627 if (r
->default_datatype
) {
10628 uint32_t _relative_save_offset
;
10629 _relative_save_offset
= ndr
->offset
;
10630 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
10631 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10632 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
10633 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
10634 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
10635 ndr
->offset
= _relative_save_offset
;
10637 ndr
->flags
= _flags_save_string
;
10640 return NDR_ERR_SUCCESS
;
10643 _PUBLIC_
void ndr_print_spoolss_DriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo3
*r
)
10645 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo3");
10647 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10648 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10650 if (r
->driver_name
) {
10651 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10654 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10656 if (r
->architecture
) {
10657 ndr_print_string(ndr
, "architecture", r
->architecture
);
10660 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10662 if (r
->driver_path
) {
10663 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10666 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10668 if (r
->data_file
) {
10669 ndr_print_string(ndr
, "data_file", r
->data_file
);
10672 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10674 if (r
->config_file
) {
10675 ndr_print_string(ndr
, "config_file", r
->config_file
);
10678 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
10680 if (r
->help_file
) {
10681 ndr_print_string(ndr
, "help_file", r
->help_file
);
10684 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
10686 if (r
->dependent_files
) {
10687 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
10690 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
10692 if (r
->monitor_name
) {
10693 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
10696 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
10698 if (r
->default_datatype
) {
10699 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
10705 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10707 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo3
, ic
);
10710 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo4
*r
)
10712 if (ndr_flags
& NDR_SCALARS
) {
10713 NDR_CHECK(ndr_push_align(ndr
, 4));
10714 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10716 uint32_t _flags_save_string
= ndr
->flags
;
10717 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10718 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10719 ndr
->flags
= _flags_save_string
;
10722 uint32_t _flags_save_string
= ndr
->flags
;
10723 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10724 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10725 ndr
->flags
= _flags_save_string
;
10728 uint32_t _flags_save_string
= ndr
->flags
;
10729 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10730 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10731 ndr
->flags
= _flags_save_string
;
10734 uint32_t _flags_save_string
= ndr
->flags
;
10735 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10736 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10737 ndr
->flags
= _flags_save_string
;
10740 uint32_t _flags_save_string
= ndr
->flags
;
10741 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10742 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10743 ndr
->flags
= _flags_save_string
;
10746 uint32_t _flags_save_string
= ndr
->flags
;
10747 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10748 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
10749 ndr
->flags
= _flags_save_string
;
10752 uint32_t _flags_save_string_array
= ndr
->flags
;
10753 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10754 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
10755 ndr
->flags
= _flags_save_string_array
;
10758 uint32_t _flags_save_string
= ndr
->flags
;
10759 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10760 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
10761 ndr
->flags
= _flags_save_string
;
10764 uint32_t _flags_save_string
= ndr
->flags
;
10765 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10766 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
10767 ndr
->flags
= _flags_save_string
;
10770 uint32_t _flags_save_string_array
= ndr
->flags
;
10771 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10772 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
10773 ndr
->flags
= _flags_save_string_array
;
10776 if (ndr_flags
& NDR_BUFFERS
) {
10778 uint32_t _flags_save_string
= ndr
->flags
;
10779 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10780 if (r
->driver_name
) {
10781 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10782 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10784 ndr
->flags
= _flags_save_string
;
10787 uint32_t _flags_save_string
= ndr
->flags
;
10788 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10789 if (r
->architecture
) {
10790 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
10791 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
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 if (r
->driver_path
) {
10799 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
10800 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10802 ndr
->flags
= _flags_save_string
;
10805 uint32_t _flags_save_string
= ndr
->flags
;
10806 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10807 if (r
->data_file
) {
10808 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
10809 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, 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 if (r
->config_file
) {
10817 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
10818 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10820 ndr
->flags
= _flags_save_string
;
10823 uint32_t _flags_save_string
= ndr
->flags
;
10824 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10825 if (r
->help_file
) {
10826 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
10827 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
10829 ndr
->flags
= _flags_save_string
;
10832 uint32_t _flags_save_string_array
= ndr
->flags
;
10833 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10834 if (r
->dependent_files
) {
10835 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
10836 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
10838 ndr
->flags
= _flags_save_string_array
;
10841 uint32_t _flags_save_string
= ndr
->flags
;
10842 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10843 if (r
->monitor_name
) {
10844 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
10845 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
10847 ndr
->flags
= _flags_save_string
;
10850 uint32_t _flags_save_string
= ndr
->flags
;
10851 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10852 if (r
->default_datatype
) {
10853 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
10854 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
10856 ndr
->flags
= _flags_save_string
;
10859 uint32_t _flags_save_string_array
= ndr
->flags
;
10860 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10861 if (r
->previous_names
) {
10862 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
10863 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
10865 ndr
->flags
= _flags_save_string_array
;
10868 return NDR_ERR_SUCCESS
;
10871 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo4
*r
)
10873 uint32_t _ptr_driver_name
;
10874 TALLOC_CTX
*_mem_save_driver_name_0
;
10875 uint32_t _ptr_architecture
;
10876 TALLOC_CTX
*_mem_save_architecture_0
;
10877 uint32_t _ptr_driver_path
;
10878 TALLOC_CTX
*_mem_save_driver_path_0
;
10879 uint32_t _ptr_data_file
;
10880 TALLOC_CTX
*_mem_save_data_file_0
;
10881 uint32_t _ptr_config_file
;
10882 TALLOC_CTX
*_mem_save_config_file_0
;
10883 uint32_t _ptr_help_file
;
10884 TALLOC_CTX
*_mem_save_help_file_0
;
10885 uint32_t _ptr_dependent_files
;
10886 TALLOC_CTX
*_mem_save_dependent_files_0
;
10887 uint32_t _ptr_monitor_name
;
10888 TALLOC_CTX
*_mem_save_monitor_name_0
;
10889 uint32_t _ptr_default_datatype
;
10890 TALLOC_CTX
*_mem_save_default_datatype_0
;
10891 uint32_t _ptr_previous_names
;
10892 TALLOC_CTX
*_mem_save_previous_names_0
;
10893 if (ndr_flags
& NDR_SCALARS
) {
10894 NDR_CHECK(ndr_pull_align(ndr
, 4));
10895 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10897 uint32_t _flags_save_string
= ndr
->flags
;
10898 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10899 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10900 if (_ptr_driver_name
) {
10901 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10902 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10904 r
->driver_name
= NULL
;
10906 ndr
->flags
= _flags_save_string
;
10909 uint32_t _flags_save_string
= ndr
->flags
;
10910 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10911 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10912 if (_ptr_architecture
) {
10913 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10914 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10916 r
->architecture
= NULL
;
10918 ndr
->flags
= _flags_save_string
;
10921 uint32_t _flags_save_string
= ndr
->flags
;
10922 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10923 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10924 if (_ptr_driver_path
) {
10925 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10926 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10928 r
->driver_path
= NULL
;
10930 ndr
->flags
= _flags_save_string
;
10933 uint32_t _flags_save_string
= ndr
->flags
;
10934 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10935 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10936 if (_ptr_data_file
) {
10937 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10938 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10940 r
->data_file
= NULL
;
10942 ndr
->flags
= _flags_save_string
;
10945 uint32_t _flags_save_string
= ndr
->flags
;
10946 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10947 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10948 if (_ptr_config_file
) {
10949 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10950 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10952 r
->config_file
= NULL
;
10954 ndr
->flags
= _flags_save_string
;
10957 uint32_t _flags_save_string
= ndr
->flags
;
10958 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10959 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
10960 if (_ptr_help_file
) {
10961 NDR_PULL_ALLOC(ndr
, r
->help_file
);
10962 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
10964 r
->help_file
= NULL
;
10966 ndr
->flags
= _flags_save_string
;
10969 uint32_t _flags_save_string_array
= ndr
->flags
;
10970 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10971 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
10972 if (_ptr_dependent_files
) {
10973 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
10974 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
10976 r
->dependent_files
= NULL
;
10978 ndr
->flags
= _flags_save_string_array
;
10981 uint32_t _flags_save_string
= ndr
->flags
;
10982 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10983 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
10984 if (_ptr_monitor_name
) {
10985 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
10986 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
10988 r
->monitor_name
= NULL
;
10990 ndr
->flags
= _flags_save_string
;
10993 uint32_t _flags_save_string
= ndr
->flags
;
10994 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10995 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
10996 if (_ptr_default_datatype
) {
10997 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
10998 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
11000 r
->default_datatype
= NULL
;
11002 ndr
->flags
= _flags_save_string
;
11005 uint32_t _flags_save_string_array
= ndr
->flags
;
11006 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11007 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
11008 if (_ptr_previous_names
) {
11009 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
11010 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
11012 r
->previous_names
= NULL
;
11014 ndr
->flags
= _flags_save_string_array
;
11017 if (ndr_flags
& NDR_BUFFERS
) {
11019 uint32_t _flags_save_string
= ndr
->flags
;
11020 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11021 if (r
->driver_name
) {
11022 uint32_t _relative_save_offset
;
11023 _relative_save_offset
= ndr
->offset
;
11024 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11025 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11026 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11027 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11028 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11029 ndr
->offset
= _relative_save_offset
;
11031 ndr
->flags
= _flags_save_string
;
11034 uint32_t _flags_save_string
= ndr
->flags
;
11035 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11036 if (r
->architecture
) {
11037 uint32_t _relative_save_offset
;
11038 _relative_save_offset
= ndr
->offset
;
11039 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11040 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11041 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11042 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11043 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11044 ndr
->offset
= _relative_save_offset
;
11046 ndr
->flags
= _flags_save_string
;
11049 uint32_t _flags_save_string
= ndr
->flags
;
11050 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11051 if (r
->driver_path
) {
11052 uint32_t _relative_save_offset
;
11053 _relative_save_offset
= ndr
->offset
;
11054 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11055 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11056 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11057 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11058 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11059 ndr
->offset
= _relative_save_offset
;
11061 ndr
->flags
= _flags_save_string
;
11064 uint32_t _flags_save_string
= ndr
->flags
;
11065 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11066 if (r
->data_file
) {
11067 uint32_t _relative_save_offset
;
11068 _relative_save_offset
= ndr
->offset
;
11069 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11070 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11071 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11072 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11073 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11074 ndr
->offset
= _relative_save_offset
;
11076 ndr
->flags
= _flags_save_string
;
11079 uint32_t _flags_save_string
= ndr
->flags
;
11080 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11081 if (r
->config_file
) {
11082 uint32_t _relative_save_offset
;
11083 _relative_save_offset
= ndr
->offset
;
11084 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11085 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11086 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11087 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11088 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11089 ndr
->offset
= _relative_save_offset
;
11091 ndr
->flags
= _flags_save_string
;
11094 uint32_t _flags_save_string
= ndr
->flags
;
11095 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11096 if (r
->help_file
) {
11097 uint32_t _relative_save_offset
;
11098 _relative_save_offset
= ndr
->offset
;
11099 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11100 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11101 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11102 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11103 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11104 ndr
->offset
= _relative_save_offset
;
11106 ndr
->flags
= _flags_save_string
;
11109 uint32_t _flags_save_string_array
= ndr
->flags
;
11110 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11111 if (r
->dependent_files
) {
11112 uint32_t _relative_save_offset
;
11113 _relative_save_offset
= ndr
->offset
;
11114 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11115 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11116 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11117 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11118 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11119 ndr
->offset
= _relative_save_offset
;
11121 ndr
->flags
= _flags_save_string_array
;
11124 uint32_t _flags_save_string
= ndr
->flags
;
11125 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11126 if (r
->monitor_name
) {
11127 uint32_t _relative_save_offset
;
11128 _relative_save_offset
= ndr
->offset
;
11129 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11130 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11131 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11132 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11133 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11134 ndr
->offset
= _relative_save_offset
;
11136 ndr
->flags
= _flags_save_string
;
11139 uint32_t _flags_save_string
= ndr
->flags
;
11140 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11141 if (r
->default_datatype
) {
11142 uint32_t _relative_save_offset
;
11143 _relative_save_offset
= ndr
->offset
;
11144 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
11145 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11146 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
11147 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
11148 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
11149 ndr
->offset
= _relative_save_offset
;
11151 ndr
->flags
= _flags_save_string
;
11154 uint32_t _flags_save_string_array
= ndr
->flags
;
11155 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11156 if (r
->previous_names
) {
11157 uint32_t _relative_save_offset
;
11158 _relative_save_offset
= ndr
->offset
;
11159 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
11160 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11161 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
11162 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
11163 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
11164 ndr
->offset
= _relative_save_offset
;
11166 ndr
->flags
= _flags_save_string_array
;
11169 return NDR_ERR_SUCCESS
;
11172 _PUBLIC_
void ndr_print_spoolss_DriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo4
*r
)
11174 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo4");
11176 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11177 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11179 if (r
->driver_name
) {
11180 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11183 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11185 if (r
->architecture
) {
11186 ndr_print_string(ndr
, "architecture", r
->architecture
);
11189 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11191 if (r
->driver_path
) {
11192 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11195 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11197 if (r
->data_file
) {
11198 ndr_print_string(ndr
, "data_file", r
->data_file
);
11201 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11203 if (r
->config_file
) {
11204 ndr_print_string(ndr
, "config_file", r
->config_file
);
11207 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
11209 if (r
->help_file
) {
11210 ndr_print_string(ndr
, "help_file", r
->help_file
);
11213 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
11215 if (r
->dependent_files
) {
11216 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
11219 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
11221 if (r
->monitor_name
) {
11222 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
11225 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
11227 if (r
->default_datatype
) {
11228 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
11231 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
11233 if (r
->previous_names
) {
11234 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
11240 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11242 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo4
, ic
);
11245 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo5
*r
)
11247 if (ndr_flags
& NDR_SCALARS
) {
11248 NDR_CHECK(ndr_push_align(ndr
, 4));
11249 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11251 uint32_t _flags_save_string
= ndr
->flags
;
11252 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11253 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11254 ndr
->flags
= _flags_save_string
;
11257 uint32_t _flags_save_string
= ndr
->flags
;
11258 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11259 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11260 ndr
->flags
= _flags_save_string
;
11263 uint32_t _flags_save_string
= ndr
->flags
;
11264 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11265 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11266 ndr
->flags
= _flags_save_string
;
11269 uint32_t _flags_save_string
= ndr
->flags
;
11270 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11271 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11272 ndr
->flags
= _flags_save_string
;
11275 uint32_t _flags_save_string
= ndr
->flags
;
11276 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11277 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11278 ndr
->flags
= _flags_save_string
;
11280 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr
, NDR_SCALARS
, r
->driver_attributes
));
11281 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->config_version
));
11282 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->driver_version
));
11284 if (ndr_flags
& NDR_BUFFERS
) {
11286 uint32_t _flags_save_string
= ndr
->flags
;
11287 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11288 if (r
->driver_name
) {
11289 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
11290 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
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 if (r
->architecture
) {
11298 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
11299 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11301 ndr
->flags
= _flags_save_string
;
11304 uint32_t _flags_save_string
= ndr
->flags
;
11305 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11306 if (r
->driver_path
) {
11307 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
11308 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11310 ndr
->flags
= _flags_save_string
;
11313 uint32_t _flags_save_string
= ndr
->flags
;
11314 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11315 if (r
->data_file
) {
11316 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
11317 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11319 ndr
->flags
= _flags_save_string
;
11322 uint32_t _flags_save_string
= ndr
->flags
;
11323 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11324 if (r
->config_file
) {
11325 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
11326 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11328 ndr
->flags
= _flags_save_string
;
11331 return NDR_ERR_SUCCESS
;
11334 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo5
*r
)
11336 uint32_t _ptr_driver_name
;
11337 TALLOC_CTX
*_mem_save_driver_name_0
;
11338 uint32_t _ptr_architecture
;
11339 TALLOC_CTX
*_mem_save_architecture_0
;
11340 uint32_t _ptr_driver_path
;
11341 TALLOC_CTX
*_mem_save_driver_path_0
;
11342 uint32_t _ptr_data_file
;
11343 TALLOC_CTX
*_mem_save_data_file_0
;
11344 uint32_t _ptr_config_file
;
11345 TALLOC_CTX
*_mem_save_config_file_0
;
11346 if (ndr_flags
& NDR_SCALARS
) {
11347 NDR_CHECK(ndr_pull_align(ndr
, 4));
11348 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11350 uint32_t _flags_save_string
= ndr
->flags
;
11351 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11352 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11353 if (_ptr_driver_name
) {
11354 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11355 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11357 r
->driver_name
= NULL
;
11359 ndr
->flags
= _flags_save_string
;
11362 uint32_t _flags_save_string
= ndr
->flags
;
11363 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11364 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11365 if (_ptr_architecture
) {
11366 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11367 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11369 r
->architecture
= NULL
;
11371 ndr
->flags
= _flags_save_string
;
11374 uint32_t _flags_save_string
= ndr
->flags
;
11375 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11376 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11377 if (_ptr_driver_path
) {
11378 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11379 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11381 r
->driver_path
= NULL
;
11383 ndr
->flags
= _flags_save_string
;
11386 uint32_t _flags_save_string
= ndr
->flags
;
11387 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11388 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11389 if (_ptr_data_file
) {
11390 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11391 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11393 r
->data_file
= NULL
;
11395 ndr
->flags
= _flags_save_string
;
11398 uint32_t _flags_save_string
= ndr
->flags
;
11399 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11400 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11401 if (_ptr_config_file
) {
11402 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11403 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11405 r
->config_file
= NULL
;
11407 ndr
->flags
= _flags_save_string
;
11409 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr
, NDR_SCALARS
, &r
->driver_attributes
));
11410 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->config_version
));
11411 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->driver_version
));
11413 if (ndr_flags
& NDR_BUFFERS
) {
11415 uint32_t _flags_save_string
= ndr
->flags
;
11416 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11417 if (r
->driver_name
) {
11418 uint32_t _relative_save_offset
;
11419 _relative_save_offset
= ndr
->offset
;
11420 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11421 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11422 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11423 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11424 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11425 ndr
->offset
= _relative_save_offset
;
11427 ndr
->flags
= _flags_save_string
;
11430 uint32_t _flags_save_string
= ndr
->flags
;
11431 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11432 if (r
->architecture
) {
11433 uint32_t _relative_save_offset
;
11434 _relative_save_offset
= ndr
->offset
;
11435 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11436 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11437 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11438 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11439 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11440 ndr
->offset
= _relative_save_offset
;
11442 ndr
->flags
= _flags_save_string
;
11445 uint32_t _flags_save_string
= ndr
->flags
;
11446 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11447 if (r
->driver_path
) {
11448 uint32_t _relative_save_offset
;
11449 _relative_save_offset
= ndr
->offset
;
11450 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11451 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11452 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11453 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11454 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11455 ndr
->offset
= _relative_save_offset
;
11457 ndr
->flags
= _flags_save_string
;
11460 uint32_t _flags_save_string
= ndr
->flags
;
11461 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11462 if (r
->data_file
) {
11463 uint32_t _relative_save_offset
;
11464 _relative_save_offset
= ndr
->offset
;
11465 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11466 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11467 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11468 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11469 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11470 ndr
->offset
= _relative_save_offset
;
11472 ndr
->flags
= _flags_save_string
;
11475 uint32_t _flags_save_string
= ndr
->flags
;
11476 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11477 if (r
->config_file
) {
11478 uint32_t _relative_save_offset
;
11479 _relative_save_offset
= ndr
->offset
;
11480 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11481 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11482 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11483 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11484 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11485 ndr
->offset
= _relative_save_offset
;
11487 ndr
->flags
= _flags_save_string
;
11490 return NDR_ERR_SUCCESS
;
11493 _PUBLIC_
void ndr_print_spoolss_DriverInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo5
*r
)
11495 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo5");
11497 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11498 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11500 if (r
->driver_name
) {
11501 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11504 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11506 if (r
->architecture
) {
11507 ndr_print_string(ndr
, "architecture", r
->architecture
);
11510 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11512 if (r
->driver_path
) {
11513 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11516 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11518 if (r
->data_file
) {
11519 ndr_print_string(ndr
, "data_file", r
->data_file
);
11522 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11524 if (r
->config_file
) {
11525 ndr_print_string(ndr
, "config_file", r
->config_file
);
11528 ndr_print_spoolss_DriverAttributes(ndr
, "driver_attributes", r
->driver_attributes
);
11529 ndr_print_uint32(ndr
, "config_version", r
->config_version
);
11530 ndr_print_uint32(ndr
, "driver_version", r
->driver_version
);
11534 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11536 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo5
, ic
);
11539 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo6
*r
)
11541 if (ndr_flags
& NDR_SCALARS
) {
11542 NDR_CHECK(ndr_push_align(ndr
, 8));
11543 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11545 uint32_t _flags_save_string
= ndr
->flags
;
11546 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11547 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11548 ndr
->flags
= _flags_save_string
;
11551 uint32_t _flags_save_string
= ndr
->flags
;
11552 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11553 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11554 ndr
->flags
= _flags_save_string
;
11557 uint32_t _flags_save_string
= ndr
->flags
;
11558 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11559 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11560 ndr
->flags
= _flags_save_string
;
11563 uint32_t _flags_save_string
= ndr
->flags
;
11564 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11565 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11566 ndr
->flags
= _flags_save_string
;
11569 uint32_t _flags_save_string
= ndr
->flags
;
11570 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11571 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11572 ndr
->flags
= _flags_save_string
;
11575 uint32_t _flags_save_string
= ndr
->flags
;
11576 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11577 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
11578 ndr
->flags
= _flags_save_string
;
11581 uint32_t _flags_save_string_array
= ndr
->flags
;
11582 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11583 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
11584 ndr
->flags
= _flags_save_string_array
;
11587 uint32_t _flags_save_string
= ndr
->flags
;
11588 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11589 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
11590 ndr
->flags
= _flags_save_string
;
11593 uint32_t _flags_save_string
= ndr
->flags
;
11594 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11595 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
11596 ndr
->flags
= _flags_save_string
;
11599 uint32_t _flags_save_string_array
= ndr
->flags
;
11600 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11601 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
11602 ndr
->flags
= _flags_save_string_array
;
11604 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
11605 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
11607 uint32_t _flags_save_string
= ndr
->flags
;
11608 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11609 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
11610 ndr
->flags
= _flags_save_string
;
11613 uint32_t _flags_save_string
= ndr
->flags
;
11614 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11615 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
11616 ndr
->flags
= _flags_save_string
;
11619 uint32_t _flags_save_string
= ndr
->flags
;
11620 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11621 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
11622 ndr
->flags
= _flags_save_string
;
11625 uint32_t _flags_save_string
= ndr
->flags
;
11626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11627 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
11628 ndr
->flags
= _flags_save_string
;
11631 if (ndr_flags
& NDR_BUFFERS
) {
11633 uint32_t _flags_save_string
= ndr
->flags
;
11634 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11635 if (r
->driver_name
) {
11636 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
11637 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
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
->architecture
) {
11645 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
11646 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11648 ndr
->flags
= _flags_save_string
;
11651 uint32_t _flags_save_string
= ndr
->flags
;
11652 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11653 if (r
->driver_path
) {
11654 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
11655 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11657 ndr
->flags
= _flags_save_string
;
11660 uint32_t _flags_save_string
= ndr
->flags
;
11661 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11662 if (r
->data_file
) {
11663 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
11664 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11666 ndr
->flags
= _flags_save_string
;
11669 uint32_t _flags_save_string
= ndr
->flags
;
11670 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11671 if (r
->config_file
) {
11672 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
11673 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11675 ndr
->flags
= _flags_save_string
;
11678 uint32_t _flags_save_string
= ndr
->flags
;
11679 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11680 if (r
->help_file
) {
11681 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
11682 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
11684 ndr
->flags
= _flags_save_string
;
11687 uint32_t _flags_save_string_array
= ndr
->flags
;
11688 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11689 if (r
->dependent_files
) {
11690 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
11691 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
11693 ndr
->flags
= _flags_save_string_array
;
11696 uint32_t _flags_save_string
= ndr
->flags
;
11697 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11698 if (r
->monitor_name
) {
11699 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
11700 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
11702 ndr
->flags
= _flags_save_string
;
11705 uint32_t _flags_save_string
= ndr
->flags
;
11706 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11707 if (r
->default_datatype
) {
11708 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
11709 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
11711 ndr
->flags
= _flags_save_string
;
11714 uint32_t _flags_save_string_array
= ndr
->flags
;
11715 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11716 if (r
->previous_names
) {
11717 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
11718 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
11720 ndr
->flags
= _flags_save_string_array
;
11723 uint32_t _flags_save_string
= ndr
->flags
;
11724 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11725 if (r
->manufacturer_name
) {
11726 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_name
));
11727 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
11729 ndr
->flags
= _flags_save_string
;
11732 uint32_t _flags_save_string
= ndr
->flags
;
11733 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11734 if (r
->manufacturer_url
) {
11735 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_url
));
11736 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
11738 ndr
->flags
= _flags_save_string
;
11741 uint32_t _flags_save_string
= ndr
->flags
;
11742 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11743 if (r
->hardware_id
) {
11744 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->hardware_id
));
11745 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
11747 ndr
->flags
= _flags_save_string
;
11750 uint32_t _flags_save_string
= ndr
->flags
;
11751 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11753 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->provider
));
11754 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
11756 ndr
->flags
= _flags_save_string
;
11759 return NDR_ERR_SUCCESS
;
11762 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo6
*r
)
11764 uint32_t _ptr_driver_name
;
11765 TALLOC_CTX
*_mem_save_driver_name_0
;
11766 uint32_t _ptr_architecture
;
11767 TALLOC_CTX
*_mem_save_architecture_0
;
11768 uint32_t _ptr_driver_path
;
11769 TALLOC_CTX
*_mem_save_driver_path_0
;
11770 uint32_t _ptr_data_file
;
11771 TALLOC_CTX
*_mem_save_data_file_0
;
11772 uint32_t _ptr_config_file
;
11773 TALLOC_CTX
*_mem_save_config_file_0
;
11774 uint32_t _ptr_help_file
;
11775 TALLOC_CTX
*_mem_save_help_file_0
;
11776 uint32_t _ptr_dependent_files
;
11777 TALLOC_CTX
*_mem_save_dependent_files_0
;
11778 uint32_t _ptr_monitor_name
;
11779 TALLOC_CTX
*_mem_save_monitor_name_0
;
11780 uint32_t _ptr_default_datatype
;
11781 TALLOC_CTX
*_mem_save_default_datatype_0
;
11782 uint32_t _ptr_previous_names
;
11783 TALLOC_CTX
*_mem_save_previous_names_0
;
11784 uint32_t _ptr_manufacturer_name
;
11785 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
11786 uint32_t _ptr_manufacturer_url
;
11787 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
11788 uint32_t _ptr_hardware_id
;
11789 TALLOC_CTX
*_mem_save_hardware_id_0
;
11790 uint32_t _ptr_provider
;
11791 TALLOC_CTX
*_mem_save_provider_0
;
11792 if (ndr_flags
& NDR_SCALARS
) {
11793 NDR_CHECK(ndr_pull_align(ndr
, 8));
11794 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11796 uint32_t _flags_save_string
= ndr
->flags
;
11797 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11798 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11799 if (_ptr_driver_name
) {
11800 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11801 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11803 r
->driver_name
= NULL
;
11805 ndr
->flags
= _flags_save_string
;
11808 uint32_t _flags_save_string
= ndr
->flags
;
11809 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11810 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11811 if (_ptr_architecture
) {
11812 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11813 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11815 r
->architecture
= NULL
;
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_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11823 if (_ptr_driver_path
) {
11824 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11825 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11827 r
->driver_path
= NULL
;
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_pull_generic_ptr(ndr
, &_ptr_data_file
));
11835 if (_ptr_data_file
) {
11836 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11837 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11839 r
->data_file
= NULL
;
11841 ndr
->flags
= _flags_save_string
;
11844 uint32_t _flags_save_string
= ndr
->flags
;
11845 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11846 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11847 if (_ptr_config_file
) {
11848 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11849 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11851 r
->config_file
= NULL
;
11853 ndr
->flags
= _flags_save_string
;
11856 uint32_t _flags_save_string
= ndr
->flags
;
11857 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11858 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
11859 if (_ptr_help_file
) {
11860 NDR_PULL_ALLOC(ndr
, r
->help_file
);
11861 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
11863 r
->help_file
= NULL
;
11865 ndr
->flags
= _flags_save_string
;
11868 uint32_t _flags_save_string_array
= ndr
->flags
;
11869 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11870 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
11871 if (_ptr_dependent_files
) {
11872 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
11873 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
11875 r
->dependent_files
= NULL
;
11877 ndr
->flags
= _flags_save_string_array
;
11880 uint32_t _flags_save_string
= ndr
->flags
;
11881 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11882 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
11883 if (_ptr_monitor_name
) {
11884 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
11885 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
11887 r
->monitor_name
= NULL
;
11889 ndr
->flags
= _flags_save_string
;
11892 uint32_t _flags_save_string
= ndr
->flags
;
11893 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11894 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
11895 if (_ptr_default_datatype
) {
11896 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
11897 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
11899 r
->default_datatype
= NULL
;
11901 ndr
->flags
= _flags_save_string
;
11904 uint32_t _flags_save_string_array
= ndr
->flags
;
11905 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11906 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
11907 if (_ptr_previous_names
) {
11908 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
11909 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
11911 r
->previous_names
= NULL
;
11913 ndr
->flags
= _flags_save_string_array
;
11915 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
11916 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
11918 uint32_t _flags_save_string
= ndr
->flags
;
11919 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11920 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
11921 if (_ptr_manufacturer_name
) {
11922 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
11923 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
11925 r
->manufacturer_name
= NULL
;
11927 ndr
->flags
= _flags_save_string
;
11930 uint32_t _flags_save_string
= ndr
->flags
;
11931 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11932 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
11933 if (_ptr_manufacturer_url
) {
11934 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
11935 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
11937 r
->manufacturer_url
= NULL
;
11939 ndr
->flags
= _flags_save_string
;
11942 uint32_t _flags_save_string
= ndr
->flags
;
11943 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11944 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
11945 if (_ptr_hardware_id
) {
11946 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
11947 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
11949 r
->hardware_id
= NULL
;
11951 ndr
->flags
= _flags_save_string
;
11954 uint32_t _flags_save_string
= ndr
->flags
;
11955 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11956 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
11957 if (_ptr_provider
) {
11958 NDR_PULL_ALLOC(ndr
, r
->provider
);
11959 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
11961 r
->provider
= NULL
;
11963 ndr
->flags
= _flags_save_string
;
11966 if (ndr_flags
& NDR_BUFFERS
) {
11968 uint32_t _flags_save_string
= ndr
->flags
;
11969 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11970 if (r
->driver_name
) {
11971 uint32_t _relative_save_offset
;
11972 _relative_save_offset
= ndr
->offset
;
11973 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11974 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11975 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11976 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11977 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11978 ndr
->offset
= _relative_save_offset
;
11980 ndr
->flags
= _flags_save_string
;
11983 uint32_t _flags_save_string
= ndr
->flags
;
11984 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11985 if (r
->architecture
) {
11986 uint32_t _relative_save_offset
;
11987 _relative_save_offset
= ndr
->offset
;
11988 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11989 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11990 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11991 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11992 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11993 ndr
->offset
= _relative_save_offset
;
11995 ndr
->flags
= _flags_save_string
;
11998 uint32_t _flags_save_string
= ndr
->flags
;
11999 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12000 if (r
->driver_path
) {
12001 uint32_t _relative_save_offset
;
12002 _relative_save_offset
= ndr
->offset
;
12003 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12004 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12005 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12006 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12007 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12008 ndr
->offset
= _relative_save_offset
;
12010 ndr
->flags
= _flags_save_string
;
12013 uint32_t _flags_save_string
= ndr
->flags
;
12014 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12015 if (r
->data_file
) {
12016 uint32_t _relative_save_offset
;
12017 _relative_save_offset
= ndr
->offset
;
12018 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12019 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12020 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12021 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12022 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12023 ndr
->offset
= _relative_save_offset
;
12025 ndr
->flags
= _flags_save_string
;
12028 uint32_t _flags_save_string
= ndr
->flags
;
12029 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12030 if (r
->config_file
) {
12031 uint32_t _relative_save_offset
;
12032 _relative_save_offset
= ndr
->offset
;
12033 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12034 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12035 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12036 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12037 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12038 ndr
->offset
= _relative_save_offset
;
12040 ndr
->flags
= _flags_save_string
;
12043 uint32_t _flags_save_string
= ndr
->flags
;
12044 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12045 if (r
->help_file
) {
12046 uint32_t _relative_save_offset
;
12047 _relative_save_offset
= ndr
->offset
;
12048 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
12049 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12050 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
12051 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
12052 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
12053 ndr
->offset
= _relative_save_offset
;
12055 ndr
->flags
= _flags_save_string
;
12058 uint32_t _flags_save_string_array
= ndr
->flags
;
12059 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12060 if (r
->dependent_files
) {
12061 uint32_t _relative_save_offset
;
12062 _relative_save_offset
= ndr
->offset
;
12063 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
12064 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12065 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
12066 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
12067 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
12068 ndr
->offset
= _relative_save_offset
;
12070 ndr
->flags
= _flags_save_string_array
;
12073 uint32_t _flags_save_string
= ndr
->flags
;
12074 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12075 if (r
->monitor_name
) {
12076 uint32_t _relative_save_offset
;
12077 _relative_save_offset
= ndr
->offset
;
12078 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
12079 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12080 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
12081 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
12082 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
12083 ndr
->offset
= _relative_save_offset
;
12085 ndr
->flags
= _flags_save_string
;
12088 uint32_t _flags_save_string
= ndr
->flags
;
12089 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12090 if (r
->default_datatype
) {
12091 uint32_t _relative_save_offset
;
12092 _relative_save_offset
= ndr
->offset
;
12093 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
12094 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12095 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
12096 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
12097 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
12098 ndr
->offset
= _relative_save_offset
;
12100 ndr
->flags
= _flags_save_string
;
12103 uint32_t _flags_save_string_array
= ndr
->flags
;
12104 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12105 if (r
->previous_names
) {
12106 uint32_t _relative_save_offset
;
12107 _relative_save_offset
= ndr
->offset
;
12108 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
12109 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12110 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
12111 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
12112 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
12113 ndr
->offset
= _relative_save_offset
;
12115 ndr
->flags
= _flags_save_string_array
;
12118 uint32_t _flags_save_string
= ndr
->flags
;
12119 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12120 if (r
->manufacturer_name
) {
12121 uint32_t _relative_save_offset
;
12122 _relative_save_offset
= ndr
->offset
;
12123 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
12124 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12125 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
12126 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
12127 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
12128 ndr
->offset
= _relative_save_offset
;
12130 ndr
->flags
= _flags_save_string
;
12133 uint32_t _flags_save_string
= ndr
->flags
;
12134 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12135 if (r
->manufacturer_url
) {
12136 uint32_t _relative_save_offset
;
12137 _relative_save_offset
= ndr
->offset
;
12138 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
12139 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12140 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
12141 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
12142 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
12143 ndr
->offset
= _relative_save_offset
;
12145 ndr
->flags
= _flags_save_string
;
12148 uint32_t _flags_save_string
= ndr
->flags
;
12149 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12150 if (r
->hardware_id
) {
12151 uint32_t _relative_save_offset
;
12152 _relative_save_offset
= ndr
->offset
;
12153 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
12154 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12155 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
12156 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
12157 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
12158 ndr
->offset
= _relative_save_offset
;
12160 ndr
->flags
= _flags_save_string
;
12163 uint32_t _flags_save_string
= ndr
->flags
;
12164 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12166 uint32_t _relative_save_offset
;
12167 _relative_save_offset
= ndr
->offset
;
12168 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
12169 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12170 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
12171 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
12172 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
12173 ndr
->offset
= _relative_save_offset
;
12175 ndr
->flags
= _flags_save_string
;
12178 return NDR_ERR_SUCCESS
;
12181 _PUBLIC_
void ndr_print_spoolss_DriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo6
*r
)
12183 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo6");
12185 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12186 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12188 if (r
->driver_name
) {
12189 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12192 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12194 if (r
->architecture
) {
12195 ndr_print_string(ndr
, "architecture", r
->architecture
);
12198 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12200 if (r
->driver_path
) {
12201 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12204 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12206 if (r
->data_file
) {
12207 ndr_print_string(ndr
, "data_file", r
->data_file
);
12210 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12212 if (r
->config_file
) {
12213 ndr_print_string(ndr
, "config_file", r
->config_file
);
12216 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
12218 if (r
->help_file
) {
12219 ndr_print_string(ndr
, "help_file", r
->help_file
);
12222 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
12224 if (r
->dependent_files
) {
12225 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
12228 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
12230 if (r
->monitor_name
) {
12231 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
12234 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
12236 if (r
->default_datatype
) {
12237 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
12240 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
12242 if (r
->previous_names
) {
12243 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
12246 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
12247 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
12248 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
12250 if (r
->manufacturer_name
) {
12251 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
12254 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
12256 if (r
->manufacturer_url
) {
12257 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
12260 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
12262 if (r
->hardware_id
) {
12263 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
12266 ndr_print_ptr(ndr
, "provider", r
->provider
);
12269 ndr_print_string(ndr
, "provider", r
->provider
);
12275 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12277 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo6
, ic
);
12280 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo8
*r
)
12282 if (ndr_flags
& NDR_SCALARS
) {
12283 NDR_CHECK(ndr_push_align(ndr
, 8));
12284 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12286 uint32_t _flags_save_string
= ndr
->flags
;
12287 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12288 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12289 ndr
->flags
= _flags_save_string
;
12292 uint32_t _flags_save_string
= ndr
->flags
;
12293 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12294 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
12301 ndr
->flags
= _flags_save_string
;
12304 uint32_t _flags_save_string
= ndr
->flags
;
12305 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12306 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
12307 ndr
->flags
= _flags_save_string
;
12310 uint32_t _flags_save_string
= ndr
->flags
;
12311 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12312 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
12313 ndr
->flags
= _flags_save_string
;
12316 uint32_t _flags_save_string
= ndr
->flags
;
12317 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12318 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
12319 ndr
->flags
= _flags_save_string
;
12322 uint32_t _flags_save_string
= ndr
->flags
;
12323 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12324 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
12325 ndr
->flags
= _flags_save_string
;
12328 uint32_t _flags_save_string
= ndr
->flags
;
12329 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12330 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
12331 ndr
->flags
= _flags_save_string
;
12334 uint32_t _flags_save_string_array
= ndr
->flags
;
12335 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12336 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
12337 ndr
->flags
= _flags_save_string_array
;
12340 uint32_t _flags_save_string_array
= ndr
->flags
;
12341 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12342 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
12343 ndr
->flags
= _flags_save_string_array
;
12345 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
12346 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
12348 uint32_t _flags_save_string
= ndr
->flags
;
12349 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12350 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
12351 ndr
->flags
= _flags_save_string
;
12354 uint32_t _flags_save_string
= ndr
->flags
;
12355 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12356 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
12357 ndr
->flags
= _flags_save_string
;
12360 uint32_t _flags_save_string
= ndr
->flags
;
12361 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12362 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
12363 ndr
->flags
= _flags_save_string
;
12366 uint32_t _flags_save_string
= ndr
->flags
;
12367 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12368 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
12369 ndr
->flags
= _flags_save_string
;
12372 uint32_t _flags_save_string
= ndr
->flags
;
12373 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12374 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
12375 ndr
->flags
= _flags_save_string
;
12378 uint32_t _flags_save_string
= ndr
->flags
;
12379 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12380 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->vendor_setup
));
12381 ndr
->flags
= _flags_save_string
;
12384 uint32_t _flags_save_string_array
= ndr
->flags
;
12385 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12386 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->color_profiles
));
12387 ndr
->flags
= _flags_save_string_array
;
12390 uint32_t _flags_save_string
= ndr
->flags
;
12391 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12392 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->inf_path
));
12393 ndr
->flags
= _flags_save_string
;
12395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
12397 uint32_t _flags_save_string_array
= ndr
->flags
;
12398 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12399 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->core_driver_dependencies
));
12400 ndr
->flags
= _flags_save_string_array
;
12402 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
12403 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
12405 if (ndr_flags
& NDR_BUFFERS
) {
12407 uint32_t _flags_save_string
= ndr
->flags
;
12408 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12409 if (r
->driver_name
) {
12410 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
12411 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12413 ndr
->flags
= _flags_save_string
;
12416 uint32_t _flags_save_string
= ndr
->flags
;
12417 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12418 if (r
->architecture
) {
12419 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
12420 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12422 ndr
->flags
= _flags_save_string
;
12425 uint32_t _flags_save_string
= ndr
->flags
;
12426 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12427 if (r
->driver_path
) {
12428 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
12429 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
12431 ndr
->flags
= _flags_save_string
;
12434 uint32_t _flags_save_string
= ndr
->flags
;
12435 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12436 if (r
->data_file
) {
12437 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
12438 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
12440 ndr
->flags
= _flags_save_string
;
12443 uint32_t _flags_save_string
= ndr
->flags
;
12444 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12445 if (r
->config_file
) {
12446 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
12447 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
12449 ndr
->flags
= _flags_save_string
;
12452 uint32_t _flags_save_string
= ndr
->flags
;
12453 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12454 if (r
->help_file
) {
12455 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
12456 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
12458 ndr
->flags
= _flags_save_string
;
12461 uint32_t _flags_save_string
= ndr
->flags
;
12462 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12463 if (r
->monitor_name
) {
12464 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
12465 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
12467 ndr
->flags
= _flags_save_string
;
12470 uint32_t _flags_save_string
= ndr
->flags
;
12471 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12472 if (r
->default_datatype
) {
12473 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
12474 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
12476 ndr
->flags
= _flags_save_string
;
12479 uint32_t _flags_save_string_array
= ndr
->flags
;
12480 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12481 if (r
->dependent_files
) {
12482 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
12483 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
12485 ndr
->flags
= _flags_save_string_array
;
12488 uint32_t _flags_save_string_array
= ndr
->flags
;
12489 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12490 if (r
->previous_names
) {
12491 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
12492 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
12494 ndr
->flags
= _flags_save_string_array
;
12497 uint32_t _flags_save_string
= ndr
->flags
;
12498 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12499 if (r
->manufacturer_name
) {
12500 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_name
));
12501 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
12503 ndr
->flags
= _flags_save_string
;
12506 uint32_t _flags_save_string
= ndr
->flags
;
12507 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12508 if (r
->manufacturer_url
) {
12509 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_url
));
12510 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
12512 ndr
->flags
= _flags_save_string
;
12515 uint32_t _flags_save_string
= ndr
->flags
;
12516 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12517 if (r
->hardware_id
) {
12518 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->hardware_id
));
12519 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
12521 ndr
->flags
= _flags_save_string
;
12524 uint32_t _flags_save_string
= ndr
->flags
;
12525 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12527 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->provider
));
12528 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
12530 ndr
->flags
= _flags_save_string
;
12533 uint32_t _flags_save_string
= ndr
->flags
;
12534 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12535 if (r
->print_processor
) {
12536 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
12537 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
12539 ndr
->flags
= _flags_save_string
;
12542 uint32_t _flags_save_string
= ndr
->flags
;
12543 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12544 if (r
->vendor_setup
) {
12545 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->vendor_setup
));
12546 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->vendor_setup
));
12548 ndr
->flags
= _flags_save_string
;
12551 uint32_t _flags_save_string_array
= ndr
->flags
;
12552 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12553 if (r
->color_profiles
) {
12554 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->color_profiles
));
12555 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->color_profiles
));
12557 ndr
->flags
= _flags_save_string_array
;
12560 uint32_t _flags_save_string
= ndr
->flags
;
12561 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12563 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->inf_path
));
12564 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->inf_path
));
12566 ndr
->flags
= _flags_save_string
;
12569 uint32_t _flags_save_string_array
= ndr
->flags
;
12570 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12571 if (r
->core_driver_dependencies
) {
12572 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->core_driver_dependencies
));
12573 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
12575 ndr
->flags
= _flags_save_string_array
;
12578 return NDR_ERR_SUCCESS
;
12581 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo8
*r
)
12583 uint32_t _ptr_driver_name
;
12584 TALLOC_CTX
*_mem_save_driver_name_0
;
12585 uint32_t _ptr_architecture
;
12586 TALLOC_CTX
*_mem_save_architecture_0
;
12587 uint32_t _ptr_driver_path
;
12588 TALLOC_CTX
*_mem_save_driver_path_0
;
12589 uint32_t _ptr_data_file
;
12590 TALLOC_CTX
*_mem_save_data_file_0
;
12591 uint32_t _ptr_config_file
;
12592 TALLOC_CTX
*_mem_save_config_file_0
;
12593 uint32_t _ptr_help_file
;
12594 TALLOC_CTX
*_mem_save_help_file_0
;
12595 uint32_t _ptr_monitor_name
;
12596 TALLOC_CTX
*_mem_save_monitor_name_0
;
12597 uint32_t _ptr_default_datatype
;
12598 TALLOC_CTX
*_mem_save_default_datatype_0
;
12599 uint32_t _ptr_dependent_files
;
12600 TALLOC_CTX
*_mem_save_dependent_files_0
;
12601 uint32_t _ptr_previous_names
;
12602 TALLOC_CTX
*_mem_save_previous_names_0
;
12603 uint32_t _ptr_manufacturer_name
;
12604 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
12605 uint32_t _ptr_manufacturer_url
;
12606 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
12607 uint32_t _ptr_hardware_id
;
12608 TALLOC_CTX
*_mem_save_hardware_id_0
;
12609 uint32_t _ptr_provider
;
12610 TALLOC_CTX
*_mem_save_provider_0
;
12611 uint32_t _ptr_print_processor
;
12612 TALLOC_CTX
*_mem_save_print_processor_0
;
12613 uint32_t _ptr_vendor_setup
;
12614 TALLOC_CTX
*_mem_save_vendor_setup_0
;
12615 uint32_t _ptr_color_profiles
;
12616 TALLOC_CTX
*_mem_save_color_profiles_0
;
12617 uint32_t _ptr_inf_path
;
12618 TALLOC_CTX
*_mem_save_inf_path_0
;
12619 uint32_t _ptr_core_driver_dependencies
;
12620 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
12621 if (ndr_flags
& NDR_SCALARS
) {
12622 NDR_CHECK(ndr_pull_align(ndr
, 8));
12623 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
12625 uint32_t _flags_save_string
= ndr
->flags
;
12626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12627 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
12628 if (_ptr_driver_name
) {
12629 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
12630 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
12632 r
->driver_name
= NULL
;
12634 ndr
->flags
= _flags_save_string
;
12637 uint32_t _flags_save_string
= ndr
->flags
;
12638 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12639 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
12640 if (_ptr_architecture
) {
12641 NDR_PULL_ALLOC(ndr
, r
->architecture
);
12642 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
12644 r
->architecture
= NULL
;
12646 ndr
->flags
= _flags_save_string
;
12649 uint32_t _flags_save_string
= ndr
->flags
;
12650 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12651 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
12652 if (_ptr_driver_path
) {
12653 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
12654 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
12656 r
->driver_path
= NULL
;
12658 ndr
->flags
= _flags_save_string
;
12661 uint32_t _flags_save_string
= ndr
->flags
;
12662 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12663 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
12664 if (_ptr_data_file
) {
12665 NDR_PULL_ALLOC(ndr
, r
->data_file
);
12666 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
12668 r
->data_file
= NULL
;
12670 ndr
->flags
= _flags_save_string
;
12673 uint32_t _flags_save_string
= ndr
->flags
;
12674 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12675 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
12676 if (_ptr_config_file
) {
12677 NDR_PULL_ALLOC(ndr
, r
->config_file
);
12678 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
12680 r
->config_file
= NULL
;
12682 ndr
->flags
= _flags_save_string
;
12685 uint32_t _flags_save_string
= ndr
->flags
;
12686 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12687 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
12688 if (_ptr_help_file
) {
12689 NDR_PULL_ALLOC(ndr
, r
->help_file
);
12690 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
12692 r
->help_file
= NULL
;
12694 ndr
->flags
= _flags_save_string
;
12697 uint32_t _flags_save_string
= ndr
->flags
;
12698 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12699 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
12700 if (_ptr_monitor_name
) {
12701 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
12702 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
12704 r
->monitor_name
= NULL
;
12706 ndr
->flags
= _flags_save_string
;
12709 uint32_t _flags_save_string
= ndr
->flags
;
12710 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12711 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
12712 if (_ptr_default_datatype
) {
12713 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
12714 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
12716 r
->default_datatype
= NULL
;
12718 ndr
->flags
= _flags_save_string
;
12721 uint32_t _flags_save_string_array
= ndr
->flags
;
12722 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12723 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
12724 if (_ptr_dependent_files
) {
12725 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
12726 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
12728 r
->dependent_files
= NULL
;
12730 ndr
->flags
= _flags_save_string_array
;
12733 uint32_t _flags_save_string_array
= ndr
->flags
;
12734 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12735 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
12736 if (_ptr_previous_names
) {
12737 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
12738 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
12740 r
->previous_names
= NULL
;
12742 ndr
->flags
= _flags_save_string_array
;
12744 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
12745 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
12747 uint32_t _flags_save_string
= ndr
->flags
;
12748 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12749 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
12750 if (_ptr_manufacturer_name
) {
12751 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
12752 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
12754 r
->manufacturer_name
= NULL
;
12756 ndr
->flags
= _flags_save_string
;
12759 uint32_t _flags_save_string
= ndr
->flags
;
12760 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12761 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
12762 if (_ptr_manufacturer_url
) {
12763 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
12764 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
12766 r
->manufacturer_url
= NULL
;
12768 ndr
->flags
= _flags_save_string
;
12771 uint32_t _flags_save_string
= ndr
->flags
;
12772 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12773 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
12774 if (_ptr_hardware_id
) {
12775 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
12776 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
12778 r
->hardware_id
= NULL
;
12780 ndr
->flags
= _flags_save_string
;
12783 uint32_t _flags_save_string
= ndr
->flags
;
12784 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12785 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
12786 if (_ptr_provider
) {
12787 NDR_PULL_ALLOC(ndr
, r
->provider
);
12788 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
12790 r
->provider
= NULL
;
12792 ndr
->flags
= _flags_save_string
;
12795 uint32_t _flags_save_string
= ndr
->flags
;
12796 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12797 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
12798 if (_ptr_print_processor
) {
12799 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
12800 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
12802 r
->print_processor
= NULL
;
12804 ndr
->flags
= _flags_save_string
;
12807 uint32_t _flags_save_string
= ndr
->flags
;
12808 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12809 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
12810 if (_ptr_vendor_setup
) {
12811 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
12812 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->vendor_setup
, _ptr_vendor_setup
));
12814 r
->vendor_setup
= NULL
;
12816 ndr
->flags
= _flags_save_string
;
12819 uint32_t _flags_save_string_array
= ndr
->flags
;
12820 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12821 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
12822 if (_ptr_color_profiles
) {
12823 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
12824 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->color_profiles
, _ptr_color_profiles
));
12826 r
->color_profiles
= NULL
;
12828 ndr
->flags
= _flags_save_string_array
;
12831 uint32_t _flags_save_string
= ndr
->flags
;
12832 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12833 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
12834 if (_ptr_inf_path
) {
12835 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
12836 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->inf_path
, _ptr_inf_path
));
12838 r
->inf_path
= NULL
;
12840 ndr
->flags
= _flags_save_string
;
12842 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
12844 uint32_t _flags_save_string_array
= ndr
->flags
;
12845 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12846 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
12847 if (_ptr_core_driver_dependencies
) {
12848 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
12849 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->core_driver_dependencies
, _ptr_core_driver_dependencies
));
12851 r
->core_driver_dependencies
= NULL
;
12853 ndr
->flags
= _flags_save_string_array
;
12855 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
12856 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
12858 if (ndr_flags
& NDR_BUFFERS
) {
12860 uint32_t _flags_save_string
= ndr
->flags
;
12861 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12862 if (r
->driver_name
) {
12863 uint32_t _relative_save_offset
;
12864 _relative_save_offset
= ndr
->offset
;
12865 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
12866 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12867 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
12868 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
12869 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
12870 ndr
->offset
= _relative_save_offset
;
12872 ndr
->flags
= _flags_save_string
;
12875 uint32_t _flags_save_string
= ndr
->flags
;
12876 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12877 if (r
->architecture
) {
12878 uint32_t _relative_save_offset
;
12879 _relative_save_offset
= ndr
->offset
;
12880 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12881 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12882 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12883 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12884 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12885 ndr
->offset
= _relative_save_offset
;
12887 ndr
->flags
= _flags_save_string
;
12890 uint32_t _flags_save_string
= ndr
->flags
;
12891 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12892 if (r
->driver_path
) {
12893 uint32_t _relative_save_offset
;
12894 _relative_save_offset
= ndr
->offset
;
12895 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12896 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12897 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12898 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12899 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12900 ndr
->offset
= _relative_save_offset
;
12902 ndr
->flags
= _flags_save_string
;
12905 uint32_t _flags_save_string
= ndr
->flags
;
12906 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12907 if (r
->data_file
) {
12908 uint32_t _relative_save_offset
;
12909 _relative_save_offset
= ndr
->offset
;
12910 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12911 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12912 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12913 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12914 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12915 ndr
->offset
= _relative_save_offset
;
12917 ndr
->flags
= _flags_save_string
;
12920 uint32_t _flags_save_string
= ndr
->flags
;
12921 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12922 if (r
->config_file
) {
12923 uint32_t _relative_save_offset
;
12924 _relative_save_offset
= ndr
->offset
;
12925 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12926 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12927 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12928 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12929 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12930 ndr
->offset
= _relative_save_offset
;
12932 ndr
->flags
= _flags_save_string
;
12935 uint32_t _flags_save_string
= ndr
->flags
;
12936 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12937 if (r
->help_file
) {
12938 uint32_t _relative_save_offset
;
12939 _relative_save_offset
= ndr
->offset
;
12940 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
12941 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12942 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
12943 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
12944 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
12945 ndr
->offset
= _relative_save_offset
;
12947 ndr
->flags
= _flags_save_string
;
12950 uint32_t _flags_save_string
= ndr
->flags
;
12951 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12952 if (r
->monitor_name
) {
12953 uint32_t _relative_save_offset
;
12954 _relative_save_offset
= ndr
->offset
;
12955 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
12956 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12957 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
12958 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
12959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
12960 ndr
->offset
= _relative_save_offset
;
12962 ndr
->flags
= _flags_save_string
;
12965 uint32_t _flags_save_string
= ndr
->flags
;
12966 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12967 if (r
->default_datatype
) {
12968 uint32_t _relative_save_offset
;
12969 _relative_save_offset
= ndr
->offset
;
12970 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
12971 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12972 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
12973 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
12974 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
12975 ndr
->offset
= _relative_save_offset
;
12977 ndr
->flags
= _flags_save_string
;
12980 uint32_t _flags_save_string_array
= ndr
->flags
;
12981 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12982 if (r
->dependent_files
) {
12983 uint32_t _relative_save_offset
;
12984 _relative_save_offset
= ndr
->offset
;
12985 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
12986 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12987 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
12988 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
12989 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
12990 ndr
->offset
= _relative_save_offset
;
12992 ndr
->flags
= _flags_save_string_array
;
12995 uint32_t _flags_save_string_array
= ndr
->flags
;
12996 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12997 if (r
->previous_names
) {
12998 uint32_t _relative_save_offset
;
12999 _relative_save_offset
= ndr
->offset
;
13000 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
13001 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13002 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
13003 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
13004 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
13005 ndr
->offset
= _relative_save_offset
;
13007 ndr
->flags
= _flags_save_string_array
;
13010 uint32_t _flags_save_string
= ndr
->flags
;
13011 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13012 if (r
->manufacturer_name
) {
13013 uint32_t _relative_save_offset
;
13014 _relative_save_offset
= ndr
->offset
;
13015 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
13016 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13017 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
13018 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
13019 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
13020 ndr
->offset
= _relative_save_offset
;
13022 ndr
->flags
= _flags_save_string
;
13025 uint32_t _flags_save_string
= ndr
->flags
;
13026 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13027 if (r
->manufacturer_url
) {
13028 uint32_t _relative_save_offset
;
13029 _relative_save_offset
= ndr
->offset
;
13030 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
13031 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13032 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
13033 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
13034 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
13035 ndr
->offset
= _relative_save_offset
;
13037 ndr
->flags
= _flags_save_string
;
13040 uint32_t _flags_save_string
= ndr
->flags
;
13041 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13042 if (r
->hardware_id
) {
13043 uint32_t _relative_save_offset
;
13044 _relative_save_offset
= ndr
->offset
;
13045 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
13046 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13047 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
13048 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
13049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
13050 ndr
->offset
= _relative_save_offset
;
13052 ndr
->flags
= _flags_save_string
;
13055 uint32_t _flags_save_string
= ndr
->flags
;
13056 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13058 uint32_t _relative_save_offset
;
13059 _relative_save_offset
= ndr
->offset
;
13060 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
13061 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13062 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
13063 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
13064 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
13065 ndr
->offset
= _relative_save_offset
;
13067 ndr
->flags
= _flags_save_string
;
13070 uint32_t _flags_save_string
= ndr
->flags
;
13071 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13072 if (r
->print_processor
) {
13073 uint32_t _relative_save_offset
;
13074 _relative_save_offset
= ndr
->offset
;
13075 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
13076 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13077 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
13078 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
13079 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
13080 ndr
->offset
= _relative_save_offset
;
13082 ndr
->flags
= _flags_save_string
;
13085 uint32_t _flags_save_string
= ndr
->flags
;
13086 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13087 if (r
->vendor_setup
) {
13088 uint32_t _relative_save_offset
;
13089 _relative_save_offset
= ndr
->offset
;
13090 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->vendor_setup
));
13091 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13092 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
13093 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->vendor_setup
));
13094 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
13095 ndr
->offset
= _relative_save_offset
;
13097 ndr
->flags
= _flags_save_string
;
13100 uint32_t _flags_save_string_array
= ndr
->flags
;
13101 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13102 if (r
->color_profiles
) {
13103 uint32_t _relative_save_offset
;
13104 _relative_save_offset
= ndr
->offset
;
13105 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->color_profiles
));
13106 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13107 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
13108 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->color_profiles
));
13109 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
13110 ndr
->offset
= _relative_save_offset
;
13112 ndr
->flags
= _flags_save_string_array
;
13115 uint32_t _flags_save_string
= ndr
->flags
;
13116 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13118 uint32_t _relative_save_offset
;
13119 _relative_save_offset
= ndr
->offset
;
13120 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->inf_path
));
13121 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13122 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
13123 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->inf_path
));
13124 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
13125 ndr
->offset
= _relative_save_offset
;
13127 ndr
->flags
= _flags_save_string
;
13130 uint32_t _flags_save_string_array
= ndr
->flags
;
13131 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13132 if (r
->core_driver_dependencies
) {
13133 uint32_t _relative_save_offset
;
13134 _relative_save_offset
= ndr
->offset
;
13135 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->core_driver_dependencies
));
13136 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13137 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
13138 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->core_driver_dependencies
));
13139 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
13140 ndr
->offset
= _relative_save_offset
;
13142 ndr
->flags
= _flags_save_string_array
;
13145 return NDR_ERR_SUCCESS
;
13148 _PUBLIC_
void ndr_print_spoolss_DriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo8
*r
)
13150 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo8");
13152 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13153 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13155 if (r
->driver_name
) {
13156 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13159 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13161 if (r
->architecture
) {
13162 ndr_print_string(ndr
, "architecture", r
->architecture
);
13165 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
13167 if (r
->driver_path
) {
13168 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
13171 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
13173 if (r
->data_file
) {
13174 ndr_print_string(ndr
, "data_file", r
->data_file
);
13177 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
13179 if (r
->config_file
) {
13180 ndr_print_string(ndr
, "config_file", r
->config_file
);
13183 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
13185 if (r
->help_file
) {
13186 ndr_print_string(ndr
, "help_file", r
->help_file
);
13189 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13191 if (r
->monitor_name
) {
13192 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
13195 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
13197 if (r
->default_datatype
) {
13198 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
13201 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
13203 if (r
->dependent_files
) {
13204 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
13207 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
13209 if (r
->previous_names
) {
13210 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
13213 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
13214 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
13215 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
13217 if (r
->manufacturer_name
) {
13218 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
13221 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
13223 if (r
->manufacturer_url
) {
13224 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
13227 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
13229 if (r
->hardware_id
) {
13230 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
13233 ndr_print_ptr(ndr
, "provider", r
->provider
);
13236 ndr_print_string(ndr
, "provider", r
->provider
);
13239 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
13241 if (r
->print_processor
) {
13242 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
13245 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
13247 if (r
->vendor_setup
) {
13248 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
13251 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
13253 if (r
->color_profiles
) {
13254 ndr_print_string_array(ndr
, "color_profiles", r
->color_profiles
);
13257 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
13260 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
13263 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
13264 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
13266 if (r
->core_driver_dependencies
) {
13267 ndr_print_string_array(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
13270 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
13271 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
13275 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13277 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo8
, ic
);
13280 static enum ndr_err_code
ndr_push_spoolss_DriverFileType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverFileType r
)
13282 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
13283 return NDR_ERR_SUCCESS
;
13286 static enum ndr_err_code
ndr_pull_spoolss_DriverFileType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverFileType
*r
)
13289 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
13291 return NDR_ERR_SUCCESS
;
13294 _PUBLIC_
void ndr_print_spoolss_DriverFileType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverFileType r
)
13296 const char *val
= NULL
;
13299 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING
: val
= "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13300 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION
: val
= "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13301 case SPOOLSS_DRIVER_FILE_TYPE_DATA
: val
= "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13302 case SPOOLSS_DRIVER_FILE_TYPE_HELP
: val
= "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13303 case SPOOLSS_DRIVER_FILE_TYPE_OTHER
: val
= "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13305 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
13308 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverFileInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverFileInfo
*r
)
13310 if (ndr_flags
& NDR_SCALARS
) {
13311 NDR_CHECK(ndr_push_align(ndr
, 4));
13313 uint32_t _flags_save_string
= ndr
->flags
;
13314 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13315 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->file_name
));
13316 ndr
->flags
= _flags_save_string
;
13318 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr
, NDR_SCALARS
, r
->file_type
));
13319 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->file_version
));
13321 if (ndr_flags
& NDR_BUFFERS
) {
13323 uint32_t _flags_save_string
= ndr
->flags
;
13324 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13325 if (r
->file_name
) {
13326 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->file_name
));
13327 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->file_name
));
13329 ndr
->flags
= _flags_save_string
;
13332 return NDR_ERR_SUCCESS
;
13335 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverFileInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverFileInfo
*r
)
13337 uint32_t _ptr_file_name
;
13338 TALLOC_CTX
*_mem_save_file_name_0
;
13339 if (ndr_flags
& NDR_SCALARS
) {
13340 NDR_CHECK(ndr_pull_align(ndr
, 4));
13342 uint32_t _flags_save_string
= ndr
->flags
;
13343 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13344 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_file_name
));
13345 if (_ptr_file_name
) {
13346 NDR_PULL_ALLOC(ndr
, r
->file_name
);
13347 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->file_name
, _ptr_file_name
));
13349 r
->file_name
= NULL
;
13351 ndr
->flags
= _flags_save_string
;
13353 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr
, NDR_SCALARS
, &r
->file_type
));
13354 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->file_version
));
13356 if (ndr_flags
& NDR_BUFFERS
) {
13358 uint32_t _flags_save_string
= ndr
->flags
;
13359 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13360 if (r
->file_name
) {
13361 uint32_t _relative_save_offset
;
13362 _relative_save_offset
= ndr
->offset
;
13363 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->file_name
));
13364 _mem_save_file_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13365 NDR_PULL_SET_MEM_CTX(ndr
, r
->file_name
, 0);
13366 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->file_name
));
13367 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_file_name_0
, 0);
13368 ndr
->offset
= _relative_save_offset
;
13370 ndr
->flags
= _flags_save_string
;
13373 return NDR_ERR_SUCCESS
;
13376 _PUBLIC_
void ndr_print_spoolss_DriverFileInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverFileInfo
*r
)
13378 ndr_print_struct(ndr
, name
, "spoolss_DriverFileInfo");
13380 ndr_print_ptr(ndr
, "file_name", r
->file_name
);
13382 if (r
->file_name
) {
13383 ndr_print_string(ndr
, "file_name", r
->file_name
);
13386 ndr_print_spoolss_DriverFileType(ndr
, "file_type", r
->file_type
);
13387 ndr_print_uint32(ndr
, "file_version", r
->file_version
);
13391 _PUBLIC_
void ndr_print_spoolss_DriverInfo101(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo101
*r
)
13393 uint32_t cntr_file_info_1
;
13394 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo101");
13396 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13397 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13399 if (r
->driver_name
) {
13400 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13403 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13405 if (r
->architecture
) {
13406 ndr_print_string(ndr
, "architecture", r
->architecture
);
13409 ndr_print_ptr(ndr
, "file_info", r
->file_info
);
13411 if (r
->file_info
) {
13412 ndr
->print(ndr
, "%s: ARRAY(%d)", "file_info", (int)r
->file_count
);
13414 for (cntr_file_info_1
=0;cntr_file_info_1
<r
->file_count
;cntr_file_info_1
++) {
13416 if (asprintf(&idx_1
, "[%d]", cntr_file_info_1
) != -1) {
13417 ndr_print_spoolss_DriverFileInfo(ndr
, "file_info", &r
->file_info
[cntr_file_info_1
]);
13424 ndr_print_uint32(ndr
, "file_count", r
->file_count
);
13425 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13427 if (r
->monitor_name
) {
13428 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
13431 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
13433 if (r
->default_datatype
) {
13434 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
13437 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
13439 if (r
->previous_names
) {
13440 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
13443 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
13444 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
13445 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
13447 if (r
->manufacturer_name
) {
13448 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
13451 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
13453 if (r
->manufacturer_url
) {
13454 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
13457 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
13459 if (r
->hardware_id
) {
13460 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
13463 ndr_print_ptr(ndr
, "provider", r
->provider
);
13466 ndr_print_string(ndr
, "provider", r
->provider
);
13472 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13474 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo101
, ic
);
13477 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverInfo
*r
)
13479 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
13480 if (ndr_flags
& NDR_SCALARS
) {
13481 int level
= ndr_push_get_switch_value(ndr
, r
);
13484 NDR_CHECK(ndr_push_align(ndr
, 4));
13485 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13486 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13490 NDR_CHECK(ndr_push_align(ndr
, 4));
13491 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13492 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
13496 NDR_CHECK(ndr_push_align(ndr
, 4));
13497 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13498 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
13502 NDR_CHECK(ndr_push_align(ndr
, 4));
13503 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13504 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
13508 NDR_CHECK(ndr_push_align(ndr
, 4));
13509 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13510 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
13514 NDR_CHECK(ndr_push_align(ndr
, 8));
13515 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13516 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
13520 NDR_CHECK(ndr_push_align(ndr
, 8));
13521 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13522 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
13526 NDR_CHECK(ndr_push_align(ndr
, 8));
13527 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13528 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
13536 if (ndr_flags
& NDR_BUFFERS
) {
13537 int level
= ndr_push_get_switch_value(ndr
, r
);
13538 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
13541 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13545 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
13549 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
13553 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
13557 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
13561 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
13565 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
13569 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
13577 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13578 return NDR_ERR_SUCCESS
;
13581 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverInfo
*r
)
13583 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
13585 level
= ndr_pull_get_switch_value(ndr
, r
);
13586 if (ndr_flags
& NDR_SCALARS
) {
13589 NDR_CHECK(ndr_pull_align(ndr
, 4));
13590 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13591 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13595 NDR_CHECK(ndr_pull_align(ndr
, 4));
13596 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13597 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
13601 NDR_CHECK(ndr_pull_align(ndr
, 4));
13602 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13603 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
13607 NDR_CHECK(ndr_pull_align(ndr
, 4));
13608 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13609 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
13613 NDR_CHECK(ndr_pull_align(ndr
, 4));
13614 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13615 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
13619 NDR_CHECK(ndr_pull_align(ndr
, 8));
13620 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13621 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
13625 NDR_CHECK(ndr_pull_align(ndr
, 8));
13626 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13627 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
13631 NDR_CHECK(ndr_pull_align(ndr
, 8));
13632 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13633 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
13641 if (ndr_flags
& NDR_BUFFERS
) {
13642 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
13645 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13649 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
13653 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
13657 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
13661 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
13665 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
13669 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
13673 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
13681 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13682 return NDR_ERR_SUCCESS
;
13685 _PUBLIC_
void ndr_print_spoolss_DriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverInfo
*r
)
13688 level
= ndr_print_get_switch_value(ndr
, r
);
13689 ndr_print_union(ndr
, name
, level
, "spoolss_DriverInfo");
13692 ndr_print_spoolss_DriverInfo1(ndr
, "info1", &r
->info1
);
13696 ndr_print_spoolss_DriverInfo2(ndr
, "info2", &r
->info2
);
13700 ndr_print_spoolss_DriverInfo3(ndr
, "info3", &r
->info3
);
13704 ndr_print_spoolss_DriverInfo4(ndr
, "info4", &r
->info4
);
13708 ndr_print_spoolss_DriverInfo5(ndr
, "info5", &r
->info5
);
13712 ndr_print_spoolss_DriverInfo6(ndr
, "info6", &r
->info6
);
13716 ndr_print_spoolss_DriverInfo8(ndr
, "info8", &r
->info8
);
13720 ndr_print_spoolss_DriverInfo101(ndr
, "info101", &r
->info101
);
13729 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
13731 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo
, ic
);
13734 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverDirectoryInfo1
*r
)
13736 if (ndr_flags
& NDR_SCALARS
) {
13737 NDR_CHECK(ndr_push_align(ndr
, 4));
13739 uint32_t _flags_save_string
= ndr
->flags
;
13740 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13741 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
13742 ndr
->flags
= _flags_save_string
;
13745 if (ndr_flags
& NDR_BUFFERS
) {
13747 return NDR_ERR_SUCCESS
;
13750 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverDirectoryInfo1
*r
)
13752 if (ndr_flags
& NDR_SCALARS
) {
13753 NDR_CHECK(ndr_pull_align(ndr
, 4));
13755 uint32_t _flags_save_string
= ndr
->flags
;
13756 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13757 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
13758 ndr
->flags
= _flags_save_string
;
13761 if (ndr_flags
& NDR_BUFFERS
) {
13763 return NDR_ERR_SUCCESS
;
13766 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverDirectoryInfo1
*r
)
13768 ndr_print_struct(ndr
, name
, "spoolss_DriverDirectoryInfo1");
13770 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
13774 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13776 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo1
, ic
);
13779 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverDirectoryInfo
*r
)
13781 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
13782 if (ndr_flags
& NDR_SCALARS
) {
13783 int level
= ndr_push_get_switch_value(ndr
, r
);
13786 NDR_CHECK(ndr_push_align(ndr
, 4));
13787 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13788 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13792 NDR_CHECK(ndr_push_align(ndr
, 4));
13793 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13794 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13799 if (ndr_flags
& NDR_BUFFERS
) {
13800 int level
= ndr_push_get_switch_value(ndr
, r
);
13801 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
13811 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13812 return NDR_ERR_SUCCESS
;
13815 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverDirectoryInfo
*r
)
13817 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
13819 level
= ndr_pull_get_switch_value(ndr
, r
);
13820 if (ndr_flags
& NDR_SCALARS
) {
13823 NDR_CHECK(ndr_pull_align(ndr
, 4));
13824 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13825 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13829 NDR_CHECK(ndr_pull_align(ndr
, 4));
13830 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13831 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13836 if (ndr_flags
& NDR_BUFFERS
) {
13837 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
13847 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13848 return NDR_ERR_SUCCESS
;
13851 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverDirectoryInfo
*r
)
13854 level
= ndr_print_get_switch_value(ndr
, r
);
13855 ndr_print_union(ndr
, name
, level
, "spoolss_DriverDirectoryInfo");
13858 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
13862 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
13868 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
13870 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo
, ic
);
13873 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorInfo1
*r
)
13875 if (ndr_flags
& NDR_SCALARS
) {
13876 NDR_CHECK(ndr_push_align(ndr
, 4));
13878 uint32_t _flags_save_string
= ndr
->flags
;
13879 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13880 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor_name
));
13881 ndr
->flags
= _flags_save_string
;
13884 if (ndr_flags
& NDR_BUFFERS
) {
13886 uint32_t _flags_save_string
= ndr
->flags
;
13887 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13888 if (r
->print_processor_name
) {
13889 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor_name
));
13890 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor_name
));
13892 ndr
->flags
= _flags_save_string
;
13895 return NDR_ERR_SUCCESS
;
13898 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorInfo1
*r
)
13900 uint32_t _ptr_print_processor_name
;
13901 TALLOC_CTX
*_mem_save_print_processor_name_0
;
13902 if (ndr_flags
& NDR_SCALARS
) {
13903 NDR_CHECK(ndr_pull_align(ndr
, 4));
13905 uint32_t _flags_save_string
= ndr
->flags
;
13906 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13907 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
13908 if (_ptr_print_processor_name
) {
13909 NDR_PULL_ALLOC(ndr
, r
->print_processor_name
);
13910 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor_name
, _ptr_print_processor_name
));
13912 r
->print_processor_name
= NULL
;
13914 ndr
->flags
= _flags_save_string
;
13917 if (ndr_flags
& NDR_BUFFERS
) {
13919 uint32_t _flags_save_string
= ndr
->flags
;
13920 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13921 if (r
->print_processor_name
) {
13922 uint32_t _relative_save_offset
;
13923 _relative_save_offset
= ndr
->offset
;
13924 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor_name
));
13925 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13926 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor_name
, 0);
13927 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor_name
));
13928 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
13929 ndr
->offset
= _relative_save_offset
;
13931 ndr
->flags
= _flags_save_string
;
13934 return NDR_ERR_SUCCESS
;
13937 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorInfo1
*r
)
13939 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorInfo1");
13941 ndr_print_ptr(ndr
, "print_processor_name", r
->print_processor_name
);
13943 if (r
->print_processor_name
) {
13944 ndr_print_string(ndr
, "print_processor_name", r
->print_processor_name
);
13950 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13952 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorInfo1
, ic
);
13955 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorInfo
*r
)
13957 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
13958 if (ndr_flags
& NDR_SCALARS
) {
13959 int level
= ndr_push_get_switch_value(ndr
, r
);
13962 NDR_CHECK(ndr_push_align(ndr
, 4));
13963 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13964 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13972 if (ndr_flags
& NDR_BUFFERS
) {
13973 int level
= ndr_push_get_switch_value(ndr
, r
);
13974 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
13977 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13985 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13986 return NDR_ERR_SUCCESS
;
13989 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorInfo
*r
)
13991 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
13993 level
= ndr_pull_get_switch_value(ndr
, r
);
13994 if (ndr_flags
& NDR_SCALARS
) {
13997 NDR_CHECK(ndr_pull_align(ndr
, 4));
13998 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13999 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14007 if (ndr_flags
& NDR_BUFFERS
) {
14008 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14011 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
14019 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14020 return NDR_ERR_SUCCESS
;
14023 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorInfo
*r
)
14026 level
= ndr_print_get_switch_value(ndr
, r
);
14027 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorInfo");
14030 ndr_print_spoolss_PrintProcessorInfo1(ndr
, "info1", &r
->info1
);
14039 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14041 if (ndr_flags
& NDR_SCALARS
) {
14042 NDR_CHECK(ndr_push_align(ndr
, 4));
14044 uint32_t _flags_save_string
= ndr
->flags
;
14045 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14046 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
14047 ndr
->flags
= _flags_save_string
;
14050 if (ndr_flags
& NDR_BUFFERS
) {
14052 return NDR_ERR_SUCCESS
;
14055 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14057 if (ndr_flags
& NDR_SCALARS
) {
14058 NDR_CHECK(ndr_pull_align(ndr
, 4));
14060 uint32_t _flags_save_string
= ndr
->flags
;
14061 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14062 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
14063 ndr
->flags
= _flags_save_string
;
14066 if (ndr_flags
& NDR_BUFFERS
) {
14068 return NDR_ERR_SUCCESS
;
14071 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
14073 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorDirectoryInfo1");
14075 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
14079 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14081 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo1
, ic
);
14084 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
14086 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
14087 if (ndr_flags
& NDR_SCALARS
) {
14088 int level
= ndr_push_get_switch_value(ndr
, r
);
14091 NDR_CHECK(ndr_push_align(ndr
, 4));
14092 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14093 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14097 NDR_CHECK(ndr_push_align(ndr
, 4));
14098 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14099 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14104 if (ndr_flags
& NDR_BUFFERS
) {
14105 int level
= ndr_push_get_switch_value(ndr
, r
);
14106 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14116 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14117 return NDR_ERR_SUCCESS
;
14120 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorDirectoryInfo
*r
)
14122 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14124 level
= ndr_pull_get_switch_value(ndr
, r
);
14125 if (ndr_flags
& NDR_SCALARS
) {
14128 NDR_CHECK(ndr_pull_align(ndr
, 4));
14129 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14130 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14134 NDR_CHECK(ndr_pull_align(ndr
, 4));
14135 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14136 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14141 if (ndr_flags
& NDR_BUFFERS
) {
14142 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14152 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14153 return NDR_ERR_SUCCESS
;
14156 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
14159 level
= ndr_print_get_switch_value(ndr
, r
);
14160 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorDirectoryInfo");
14163 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
14167 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
14173 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14175 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo
, ic
);
14178 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DocumentInfo1
*r
)
14180 if (ndr_flags
& NDR_SCALARS
) {
14181 NDR_CHECK(ndr_push_align(ndr
, 4));
14182 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
14183 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->output_file
));
14184 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
14186 if (ndr_flags
& NDR_BUFFERS
) {
14187 if (r
->document_name
) {
14188 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
14189 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14190 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
14191 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14193 if (r
->output_file
) {
14194 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
14195 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14196 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
14197 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->output_file
, ndr_charset_length(r
->output_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14200 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
14201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14202 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
14203 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14206 return NDR_ERR_SUCCESS
;
14209 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DocumentInfo1
*r
)
14211 uint32_t _ptr_document_name
;
14212 TALLOC_CTX
*_mem_save_document_name_0
;
14213 uint32_t _ptr_output_file
;
14214 TALLOC_CTX
*_mem_save_output_file_0
;
14215 uint32_t _ptr_datatype
;
14216 TALLOC_CTX
*_mem_save_datatype_0
;
14217 if (ndr_flags
& NDR_SCALARS
) {
14218 NDR_CHECK(ndr_pull_align(ndr
, 4));
14219 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
14220 if (_ptr_document_name
) {
14221 NDR_PULL_ALLOC(ndr
, r
->document_name
);
14223 r
->document_name
= NULL
;
14225 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_output_file
));
14226 if (_ptr_output_file
) {
14227 NDR_PULL_ALLOC(ndr
, r
->output_file
);
14229 r
->output_file
= NULL
;
14231 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
14232 if (_ptr_datatype
) {
14233 NDR_PULL_ALLOC(ndr
, r
->datatype
);
14235 r
->datatype
= NULL
;
14238 if (ndr_flags
& NDR_BUFFERS
) {
14239 if (r
->document_name
) {
14240 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14241 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
14242 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
14243 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
14244 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
14245 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
));
14247 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
14248 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
14249 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
14251 if (r
->output_file
) {
14252 _mem_save_output_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14253 NDR_PULL_SET_MEM_CTX(ndr
, r
->output_file
, 0);
14254 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->output_file
));
14255 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->output_file
));
14256 if (ndr_get_array_length(ndr
, &r
->output_file
) > ndr_get_array_size(ndr
, &r
->output_file
)) {
14257 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
));
14259 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t)));
14260 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->output_file
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t), CH_UTF16
));
14261 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_output_file_0
, 0);
14264 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14265 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
14266 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
14267 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
14268 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
14269 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
));
14271 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
14272 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
14273 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
14276 return NDR_ERR_SUCCESS
;
14279 _PUBLIC_
void ndr_print_spoolss_DocumentInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DocumentInfo1
*r
)
14281 ndr_print_struct(ndr
, name
, "spoolss_DocumentInfo1");
14283 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
14285 if (r
->document_name
) {
14286 ndr_print_string(ndr
, "document_name", r
->document_name
);
14289 ndr_print_ptr(ndr
, "output_file", r
->output_file
);
14291 if (r
->output_file
) {
14292 ndr_print_string(ndr
, "output_file", r
->output_file
);
14295 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
14298 ndr_print_string(ndr
, "datatype", r
->datatype
);
14304 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DocumentInfo
*r
)
14306 if (ndr_flags
& NDR_SCALARS
) {
14307 int level
= ndr_push_get_switch_value(ndr
, r
);
14308 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
14311 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
14325 if (ndr_flags
& NDR_BUFFERS
) {
14326 int level
= ndr_push_get_switch_value(ndr
, r
);
14330 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
14345 return NDR_ERR_SUCCESS
;
14348 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DocumentInfo
*r
)
14352 TALLOC_CTX
*_mem_save_info1_0
;
14353 level
= ndr_pull_get_switch_value(ndr
, r
);
14354 if (ndr_flags
& NDR_SCALARS
) {
14355 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
14356 if (_level
!= level
) {
14357 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
14361 uint32_t _ptr_info1
;
14362 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
14364 NDR_PULL_ALLOC(ndr
, r
->info1
);
14381 if (ndr_flags
& NDR_BUFFERS
) {
14385 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14386 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
14387 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
14388 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
14403 return NDR_ERR_SUCCESS
;
14406 _PUBLIC_
void ndr_print_spoolss_DocumentInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DocumentInfo
*r
)
14409 level
= ndr_print_get_switch_value(ndr
, r
);
14410 ndr_print_union(ndr
, name
, level
, "spoolss_DocumentInfo");
14413 ndr_print_ptr(ndr
, "info1", r
->info1
);
14416 ndr_print_spoolss_DocumentInfo1(ndr
, "info1", r
->info1
);
14433 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersion(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersion
*r
)
14435 if (ndr_flags
& NDR_SCALARS
) {
14436 NDR_CHECK(ndr_push_align(ndr
, 4));
14437 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersion(r
, ndr
->iconv_convenience
, ndr
->flags
)));
14438 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
14439 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
14440 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
14441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
14443 uint32_t _flags_save_string
= ndr
->flags
;
14444 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14446 struct ndr_push
*_ndr_extra_string
;
14447 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
14448 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
14449 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
14451 ndr
->flags
= _flags_save_string
;
14454 if (ndr_flags
& NDR_BUFFERS
) {
14456 return NDR_ERR_SUCCESS
;
14459 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersion(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersion
*r
)
14461 if (ndr_flags
& NDR_SCALARS
) {
14462 NDR_CHECK(ndr_pull_align(ndr
, 4));
14463 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
14464 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
14465 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
14466 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
14467 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
));
14469 uint32_t _flags_save_string
= ndr
->flags
;
14470 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14472 struct ndr_pull
*_ndr_extra_string
;
14473 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
14474 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
14475 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
14477 ndr
->flags
= _flags_save_string
;
14480 if (ndr_flags
& NDR_BUFFERS
) {
14482 return NDR_ERR_SUCCESS
;
14485 _PUBLIC_
void ndr_print_spoolss_OSVersion(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersion
*r
)
14487 ndr_print_struct(ndr
, name
, "spoolss_OSVersion");
14489 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
);
14490 ndr_print_uint32(ndr
, "major", r
->major
);
14491 ndr_print_uint32(ndr
, "minor", r
->minor
);
14492 ndr_print_uint32(ndr
, "build", r
->build
);
14493 ndr_print_uint32(ndr
, "unknown", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->unknown
);
14494 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
14498 _PUBLIC_
size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14500 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersion
, ic
);
14503 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersionEx(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersionEx
*r
)
14505 if (ndr_flags
& NDR_SCALARS
) {
14506 NDR_CHECK(ndr_push_align(ndr
, 4));
14507 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersionEx(r
, ndr
->iconv_convenience
, ndr
->flags
)));
14508 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
14509 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
14510 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
14511 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
14513 uint32_t _flags_save_string
= ndr
->flags
;
14514 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14516 struct ndr_push
*_ndr_extra_string
;
14517 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
14518 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
14519 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
14521 ndr
->flags
= _flags_save_string
;
14523 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
14524 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
14526 if (ndr_flags
& NDR_BUFFERS
) {
14528 return NDR_ERR_SUCCESS
;
14531 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersionEx(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersionEx
*r
)
14533 if (ndr_flags
& NDR_SCALARS
) {
14534 NDR_CHECK(ndr_pull_align(ndr
, 4));
14535 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
14536 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
14537 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
14538 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
14539 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
14541 uint32_t _flags_save_string
= ndr
->flags
;
14542 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14544 struct ndr_pull
*_ndr_extra_string
;
14545 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
14546 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
14547 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
14549 ndr
->flags
= _flags_save_string
;
14551 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
14552 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
14554 if (ndr_flags
& NDR_BUFFERS
) {
14556 return NDR_ERR_SUCCESS
;
14559 _PUBLIC_
void ndr_print_spoolss_OSVersionEx(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersionEx
*r
)
14561 ndr_print_struct(ndr
, name
, "spoolss_OSVersionEx");
14563 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
);
14564 ndr_print_uint32(ndr
, "major", r
->major
);
14565 ndr_print_uint32(ndr
, "minor", r
->minor
);
14566 ndr_print_uint32(ndr
, "build", r
->build
);
14567 ndr_print_uint32(ndr
, "unknown1", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->unknown1
);
14568 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
14569 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
14570 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
14574 _PUBLIC_
size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14576 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersionEx
, ic
);
14579 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterData
*r
)
14581 if (ndr_flags
& NDR_SCALARS
) {
14582 int level
= ndr_push_get_switch_value(ndr
, r
);
14589 uint32_t _flags_save_string
= ndr
->flags
;
14590 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14591 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->string
));
14592 ndr
->flags
= _flags_save_string
;
14598 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
14599 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
14600 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->binary
));
14601 ndr
->flags
= _flags_save_DATA_BLOB
;
14606 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->value
));
14609 case REG_MULTI_SZ
: {
14611 uint32_t _flags_save_string_array
= ndr
->flags
;
14612 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14613 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
14614 ndr
->flags
= _flags_save_string_array
;
14620 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
14621 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
14622 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->data
));
14623 ndr
->flags
= _flags_save_DATA_BLOB
;
14629 if (ndr_flags
& NDR_BUFFERS
) {
14630 int level
= ndr_push_get_switch_value(ndr
, r
);
14652 return NDR_ERR_SUCCESS
;
14655 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterData
*r
)
14658 level
= ndr_pull_get_switch_value(ndr
, r
);
14659 if (ndr_flags
& NDR_SCALARS
) {
14666 uint32_t _flags_save_string
= ndr
->flags
;
14667 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14668 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->string
));
14669 ndr
->flags
= _flags_save_string
;
14675 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
14676 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
14677 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->binary
));
14678 ndr
->flags
= _flags_save_DATA_BLOB
;
14683 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value
));
14686 case REG_MULTI_SZ
: {
14688 uint32_t _flags_save_string_array
= ndr
->flags
;
14689 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14690 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
14691 ndr
->flags
= _flags_save_string_array
;
14697 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
14698 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
14699 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->data
));
14700 ndr
->flags
= _flags_save_DATA_BLOB
;
14706 if (ndr_flags
& NDR_BUFFERS
) {
14728 return NDR_ERR_SUCCESS
;
14731 _PUBLIC_
void ndr_print_spoolss_PrinterData(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterData
*r
)
14734 level
= ndr_print_get_switch_value(ndr
, r
);
14735 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterData");
14741 ndr_print_string(ndr
, "string", r
->string
);
14745 ndr_print_DATA_BLOB(ndr
, "binary", r
->binary
);
14749 ndr_print_uint32(ndr
, "value", r
->value
);
14753 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
14757 ndr_print_DATA_BLOB(ndr
, "data", r
->data
);
14763 _PUBLIC_
size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14765 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterData
, ic
);
14768 static enum ndr_err_code
ndr_push_spoolss_FormFlags(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_FormFlags r
)
14770 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
14771 return NDR_ERR_SUCCESS
;
14774 static enum ndr_err_code
ndr_pull_spoolss_FormFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_FormFlags
*r
)
14777 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
14779 return NDR_ERR_SUCCESS
;
14782 _PUBLIC_
void ndr_print_spoolss_FormFlags(struct ndr_print
*ndr
, const char *name
, enum spoolss_FormFlags r
)
14784 const char *val
= NULL
;
14787 case SPOOLSS_FORM_USER
: val
= "SPOOLSS_FORM_USER"; break;
14788 case SPOOLSS_FORM_BUILTIN
: val
= "SPOOLSS_FORM_BUILTIN"; break;
14789 case SPOOLSS_FORM_PRINTER
: val
= "SPOOLSS_FORM_PRINTER"; break;
14791 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
14794 static enum ndr_err_code
ndr_push_spoolss_FormSize(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormSize
*r
)
14796 if (ndr_flags
& NDR_SCALARS
) {
14797 NDR_CHECK(ndr_push_align(ndr
, 4));
14798 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->width
));
14799 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->height
));
14801 if (ndr_flags
& NDR_BUFFERS
) {
14803 return NDR_ERR_SUCCESS
;
14806 static enum ndr_err_code
ndr_pull_spoolss_FormSize(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormSize
*r
)
14808 if (ndr_flags
& NDR_SCALARS
) {
14809 NDR_CHECK(ndr_pull_align(ndr
, 4));
14810 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->width
));
14811 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->height
));
14813 if (ndr_flags
& NDR_BUFFERS
) {
14815 return NDR_ERR_SUCCESS
;
14818 _PUBLIC_
void ndr_print_spoolss_FormSize(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormSize
*r
)
14820 ndr_print_struct(ndr
, name
, "spoolss_FormSize");
14822 ndr_print_uint32(ndr
, "width", r
->width
);
14823 ndr_print_uint32(ndr
, "height", r
->height
);
14827 static enum ndr_err_code
ndr_push_spoolss_FormArea(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormArea
*r
)
14829 if (ndr_flags
& NDR_SCALARS
) {
14830 NDR_CHECK(ndr_push_align(ndr
, 4));
14831 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->left
));
14832 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->top
));
14833 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->right
));
14834 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bottom
));
14836 if (ndr_flags
& NDR_BUFFERS
) {
14838 return NDR_ERR_SUCCESS
;
14841 static enum ndr_err_code
ndr_pull_spoolss_FormArea(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormArea
*r
)
14843 if (ndr_flags
& NDR_SCALARS
) {
14844 NDR_CHECK(ndr_pull_align(ndr
, 4));
14845 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->left
));
14846 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->top
));
14847 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->right
));
14848 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bottom
));
14850 if (ndr_flags
& NDR_BUFFERS
) {
14852 return NDR_ERR_SUCCESS
;
14855 _PUBLIC_
void ndr_print_spoolss_FormArea(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormArea
*r
)
14857 ndr_print_struct(ndr
, name
, "spoolss_FormArea");
14859 ndr_print_uint32(ndr
, "left", r
->left
);
14860 ndr_print_uint32(ndr
, "top", r
->top
);
14861 ndr_print_uint32(ndr
, "right", r
->right
);
14862 ndr_print_uint32(ndr
, "bottom", r
->bottom
);
14866 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo1
*r
)
14868 if (ndr_flags
& NDR_SCALARS
) {
14869 NDR_CHECK(ndr_push_align(ndr
, 4));
14870 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
14872 uint32_t _flags_save_string
= ndr
->flags
;
14873 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14874 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
14875 ndr
->flags
= _flags_save_string
;
14877 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
14878 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
14880 if (ndr_flags
& NDR_BUFFERS
) {
14882 uint32_t _flags_save_string
= ndr
->flags
;
14883 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14884 if (r
->form_name
) {
14885 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->form_name
));
14886 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
14888 ndr
->flags
= _flags_save_string
;
14891 return NDR_ERR_SUCCESS
;
14894 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo1
*r
)
14896 uint32_t _ptr_form_name
;
14897 TALLOC_CTX
*_mem_save_form_name_0
;
14898 if (ndr_flags
& NDR_SCALARS
) {
14899 NDR_CHECK(ndr_pull_align(ndr
, 4));
14900 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
14902 uint32_t _flags_save_string
= ndr
->flags
;
14903 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14904 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
14905 if (_ptr_form_name
) {
14906 NDR_PULL_ALLOC(ndr
, r
->form_name
);
14907 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
14909 r
->form_name
= NULL
;
14911 ndr
->flags
= _flags_save_string
;
14913 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
14914 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
14916 if (ndr_flags
& NDR_BUFFERS
) {
14918 uint32_t _flags_save_string
= ndr
->flags
;
14919 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14920 if (r
->form_name
) {
14921 uint32_t _relative_save_offset
;
14922 _relative_save_offset
= ndr
->offset
;
14923 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
14924 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14925 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
14926 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
14927 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
14928 ndr
->offset
= _relative_save_offset
;
14930 ndr
->flags
= _flags_save_string
;
14933 return NDR_ERR_SUCCESS
;
14936 _PUBLIC_
void ndr_print_spoolss_FormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo1
*r
)
14938 ndr_print_struct(ndr
, name
, "spoolss_FormInfo1");
14940 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
14941 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
14943 if (r
->form_name
) {
14944 ndr_print_string(ndr
, "form_name", r
->form_name
);
14947 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
14948 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
14952 _PUBLIC_
size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14954 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo1
, ic
);
14957 static enum ndr_err_code
ndr_push_spoolss_FormStringType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
14959 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
14960 return NDR_ERR_SUCCESS
;
14963 static enum ndr_err_code
ndr_pull_spoolss_FormStringType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
14966 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
14968 return NDR_ERR_SUCCESS
;
14971 _PUBLIC_
void ndr_print_spoolss_FormStringType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
14973 ndr_print_uint32(ndr
, name
, r
);
14975 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE
, r
);
14976 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL
, r
);
14977 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR
, r
);
14981 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo2
*r
)
14983 if (ndr_flags
& NDR_SCALARS
) {
14984 NDR_CHECK(ndr_push_align(ndr
, 4));
14985 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
14987 uint32_t _flags_save_string
= ndr
->flags
;
14988 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14989 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
14990 ndr
->flags
= _flags_save_string
;
14992 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
14993 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
14995 uint32_t _flags_save_string
= ndr
->flags
;
14996 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
14997 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->keyword
));
14998 ndr
->flags
= _flags_save_string
;
15000 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
15002 uint32_t _flags_save_string
= ndr
->flags
;
15003 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15004 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->mui_dll
));
15005 ndr
->flags
= _flags_save_string
;
15007 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
15009 uint32_t _flags_save_string
= ndr
->flags
;
15010 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15011 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->display_name
));
15012 ndr
->flags
= _flags_save_string
;
15014 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
15016 if (ndr_flags
& NDR_BUFFERS
) {
15018 uint32_t _flags_save_string
= ndr
->flags
;
15019 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15020 if (r
->form_name
) {
15021 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->form_name
));
15022 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
15024 ndr
->flags
= _flags_save_string
;
15027 uint32_t _flags_save_string
= ndr
->flags
;
15028 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15030 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->keyword
));
15031 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->keyword
));
15033 ndr
->flags
= _flags_save_string
;
15036 uint32_t _flags_save_string
= ndr
->flags
;
15037 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15039 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->mui_dll
));
15040 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mui_dll
));
15042 ndr
->flags
= _flags_save_string
;
15045 uint32_t _flags_save_string
= ndr
->flags
;
15046 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15047 if (r
->display_name
) {
15048 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->display_name
));
15049 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->display_name
));
15051 ndr
->flags
= _flags_save_string
;
15054 return NDR_ERR_SUCCESS
;
15057 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo2
*r
)
15059 uint32_t _ptr_form_name
;
15060 TALLOC_CTX
*_mem_save_form_name_0
;
15061 uint32_t _ptr_keyword
;
15062 TALLOC_CTX
*_mem_save_keyword_0
;
15063 uint32_t _ptr_mui_dll
;
15064 TALLOC_CTX
*_mem_save_mui_dll_0
;
15065 uint32_t _ptr_display_name
;
15066 TALLOC_CTX
*_mem_save_display_name_0
;
15067 if (ndr_flags
& NDR_SCALARS
) {
15068 NDR_CHECK(ndr_pull_align(ndr
, 4));
15069 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15071 uint32_t _flags_save_string
= ndr
->flags
;
15072 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15073 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15074 if (_ptr_form_name
) {
15075 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15076 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
15078 r
->form_name
= NULL
;
15080 ndr
->flags
= _flags_save_string
;
15082 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15083 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15085 uint32_t _flags_save_string
= ndr
->flags
;
15086 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15087 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
15088 if (_ptr_keyword
) {
15089 NDR_PULL_ALLOC(ndr
, r
->keyword
);
15090 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->keyword
, _ptr_keyword
));
15094 ndr
->flags
= _flags_save_string
;
15096 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
15098 uint32_t _flags_save_string
= ndr
->flags
;
15099 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15100 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
15101 if (_ptr_mui_dll
) {
15102 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
15103 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->mui_dll
, _ptr_mui_dll
));
15107 ndr
->flags
= _flags_save_string
;
15109 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
15111 uint32_t _flags_save_string
= ndr
->flags
;
15112 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15113 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
15114 if (_ptr_display_name
) {
15115 NDR_PULL_ALLOC(ndr
, r
->display_name
);
15116 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->display_name
, _ptr_display_name
));
15118 r
->display_name
= NULL
;
15120 ndr
->flags
= _flags_save_string
;
15122 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
15124 if (ndr_flags
& NDR_BUFFERS
) {
15126 uint32_t _flags_save_string
= ndr
->flags
;
15127 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15128 if (r
->form_name
) {
15129 uint32_t _relative_save_offset
;
15130 _relative_save_offset
= ndr
->offset
;
15131 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
15132 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15133 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15134 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
15135 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15136 ndr
->offset
= _relative_save_offset
;
15138 ndr
->flags
= _flags_save_string
;
15141 uint32_t _flags_save_string
= ndr
->flags
;
15142 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15144 uint32_t _relative_save_offset
;
15145 _relative_save_offset
= ndr
->offset
;
15146 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->keyword
));
15147 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15148 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
15149 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->keyword
));
15150 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
15151 ndr
->offset
= _relative_save_offset
;
15153 ndr
->flags
= _flags_save_string
;
15156 uint32_t _flags_save_string
= ndr
->flags
;
15157 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15159 uint32_t _relative_save_offset
;
15160 _relative_save_offset
= ndr
->offset
;
15161 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->mui_dll
));
15162 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15163 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
15164 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mui_dll
));
15165 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
15166 ndr
->offset
= _relative_save_offset
;
15168 ndr
->flags
= _flags_save_string
;
15171 uint32_t _flags_save_string
= ndr
->flags
;
15172 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15173 if (r
->display_name
) {
15174 uint32_t _relative_save_offset
;
15175 _relative_save_offset
= ndr
->offset
;
15176 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->display_name
));
15177 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15178 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
15179 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->display_name
));
15180 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
15181 ndr
->offset
= _relative_save_offset
;
15183 ndr
->flags
= _flags_save_string
;
15186 return NDR_ERR_SUCCESS
;
15189 _PUBLIC_
void ndr_print_spoolss_FormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo2
*r
)
15191 ndr_print_struct(ndr
, name
, "spoolss_FormInfo2");
15193 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15194 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15196 if (r
->form_name
) {
15197 ndr_print_string(ndr
, "form_name", r
->form_name
);
15200 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15201 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15202 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
15205 ndr_print_string(ndr
, "keyword", r
->keyword
);
15208 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
15209 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
15212 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
15215 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
15216 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
15218 if (r
->display_name
) {
15219 ndr_print_string(ndr
, "display_name", r
->display_name
);
15222 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
15226 _PUBLIC_
size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15228 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo2
, ic
);
15231 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_FormInfo
*r
)
15233 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15234 if (ndr_flags
& NDR_SCALARS
) {
15235 int level
= ndr_push_get_switch_value(ndr
, r
);
15238 NDR_CHECK(ndr_push_align(ndr
, 4));
15239 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15240 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15244 NDR_CHECK(ndr_push_align(ndr
, 4));
15245 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15246 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15254 if (ndr_flags
& NDR_BUFFERS
) {
15255 int level
= ndr_push_get_switch_value(ndr
, r
);
15256 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15259 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15263 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15271 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15272 return NDR_ERR_SUCCESS
;
15275 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_FormInfo
*r
)
15277 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15279 level
= ndr_pull_get_switch_value(ndr
, r
);
15280 if (ndr_flags
& NDR_SCALARS
) {
15283 NDR_CHECK(ndr_pull_align(ndr
, 4));
15284 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15285 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15289 NDR_CHECK(ndr_pull_align(ndr
, 4));
15290 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15291 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15299 if (ndr_flags
& NDR_BUFFERS
) {
15300 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15303 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15307 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15315 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15316 return NDR_ERR_SUCCESS
;
15319 _PUBLIC_
void ndr_print_spoolss_FormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_FormInfo
*r
)
15322 level
= ndr_print_get_switch_value(ndr
, r
);
15323 ndr_print_union(ndr
, name
, level
, "spoolss_FormInfo");
15326 ndr_print_spoolss_FormInfo1(ndr
, "info1", &r
->info1
);
15330 ndr_print_spoolss_FormInfo2(ndr
, "info2", &r
->info2
);
15339 _PUBLIC_
size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15341 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo
, ic
);
15344 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo1
*r
)
15346 if (ndr_flags
& NDR_SCALARS
) {
15347 NDR_CHECK(ndr_push_align(ndr
, 4));
15348 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15349 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
15350 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15351 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15353 if (ndr_flags
& NDR_BUFFERS
) {
15354 if (r
->form_name
) {
15355 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15357 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15358 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15361 return NDR_ERR_SUCCESS
;
15364 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo1
*r
)
15366 uint32_t _ptr_form_name
;
15367 TALLOC_CTX
*_mem_save_form_name_0
;
15368 if (ndr_flags
& NDR_SCALARS
) {
15369 NDR_CHECK(ndr_pull_align(ndr
, 4));
15370 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15371 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15372 if (_ptr_form_name
) {
15373 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15375 r
->form_name
= NULL
;
15377 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15378 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15380 if (ndr_flags
& NDR_BUFFERS
) {
15381 if (r
->form_name
) {
15382 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15383 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15384 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
15385 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
15386 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
15387 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
));
15389 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
15390 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
15391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15394 return NDR_ERR_SUCCESS
;
15397 _PUBLIC_
void ndr_print_spoolss_AddFormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo1
*r
)
15399 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo1");
15401 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15402 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15404 if (r
->form_name
) {
15405 ndr_print_string(ndr
, "form_name", r
->form_name
);
15408 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15409 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15413 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo2
*r
)
15415 if (ndr_flags
& NDR_SCALARS
) {
15416 NDR_CHECK(ndr_push_align(ndr
, 4));
15417 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15418 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
15419 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15420 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15421 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->keyword
));
15422 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
15423 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->mui_dll
));
15424 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
15425 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->display_name
));
15426 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
15428 if (ndr_flags
& NDR_BUFFERS
) {
15429 if (r
->form_name
) {
15430 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15431 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15433 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15436 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
15437 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15438 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
15439 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->keyword
, ndr_charset_length(r
->keyword
, CH_DOS
), sizeof(uint8_t), CH_DOS
));
15442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
15443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15444 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
15445 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->mui_dll
, ndr_charset_length(r
->mui_dll
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15447 if (r
->display_name
) {
15448 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
15449 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15450 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
15451 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->display_name
, ndr_charset_length(r
->display_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15454 return NDR_ERR_SUCCESS
;
15457 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo2
*r
)
15459 uint32_t _ptr_form_name
;
15460 TALLOC_CTX
*_mem_save_form_name_0
;
15461 uint32_t _ptr_keyword
;
15462 TALLOC_CTX
*_mem_save_keyword_0
;
15463 uint32_t _ptr_mui_dll
;
15464 TALLOC_CTX
*_mem_save_mui_dll_0
;
15465 uint32_t _ptr_display_name
;
15466 TALLOC_CTX
*_mem_save_display_name_0
;
15467 if (ndr_flags
& NDR_SCALARS
) {
15468 NDR_CHECK(ndr_pull_align(ndr
, 4));
15469 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15470 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15471 if (_ptr_form_name
) {
15472 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15474 r
->form_name
= NULL
;
15476 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15477 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15478 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
15479 if (_ptr_keyword
) {
15480 NDR_PULL_ALLOC(ndr
, r
->keyword
);
15484 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
15485 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
15486 if (_ptr_mui_dll
) {
15487 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
15491 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
15492 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
15493 if (_ptr_display_name
) {
15494 NDR_PULL_ALLOC(ndr
, r
->display_name
);
15496 r
->display_name
= NULL
;
15498 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
15500 if (ndr_flags
& NDR_BUFFERS
) {
15501 if (r
->form_name
) {
15502 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15503 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15504 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
15505 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
15506 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
15507 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
));
15509 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
15510 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
15511 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15514 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15515 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
15516 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->keyword
));
15517 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->keyword
));
15518 if (ndr_get_array_length(ndr
, &r
->keyword
) > ndr_get_array_size(ndr
, &r
->keyword
)) {
15519 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
));
15521 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t)));
15522 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->keyword
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t), CH_DOS
));
15523 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
15526 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15527 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
15528 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->mui_dll
));
15529 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->mui_dll
));
15530 if (ndr_get_array_length(ndr
, &r
->mui_dll
) > ndr_get_array_size(ndr
, &r
->mui_dll
)) {
15531 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
));
15533 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t)));
15534 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->mui_dll
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t), CH_UTF16
));
15535 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
15537 if (r
->display_name
) {
15538 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15539 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
15540 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->display_name
));
15541 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->display_name
));
15542 if (ndr_get_array_length(ndr
, &r
->display_name
) > ndr_get_array_size(ndr
, &r
->display_name
)) {
15543 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
));
15545 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t)));
15546 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->display_name
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t), CH_UTF16
));
15547 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
15550 return NDR_ERR_SUCCESS
;
15553 _PUBLIC_
void ndr_print_spoolss_AddFormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo2
*r
)
15555 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo2");
15557 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15558 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15560 if (r
->form_name
) {
15561 ndr_print_string(ndr
, "form_name", r
->form_name
);
15564 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15565 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15566 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
15569 ndr_print_string(ndr
, "keyword", r
->keyword
);
15572 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
15573 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
15576 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
15579 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
15580 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
15582 if (r
->display_name
) {
15583 ndr_print_string(ndr
, "display_name", r
->display_name
);
15586 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
15590 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddFormInfo
*r
)
15592 if (ndr_flags
& NDR_SCALARS
) {
15593 int level
= ndr_push_get_switch_value(ndr
, r
);
15594 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
15597 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
15601 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
15605 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15608 if (ndr_flags
& NDR_BUFFERS
) {
15609 int level
= ndr_push_get_switch_value(ndr
, r
);
15613 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
15619 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
15624 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15627 return NDR_ERR_SUCCESS
;
15630 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddFormInfo
*r
)
15634 TALLOC_CTX
*_mem_save_info1_0
;
15635 TALLOC_CTX
*_mem_save_info2_0
;
15636 level
= ndr_pull_get_switch_value(ndr
, r
);
15637 if (ndr_flags
& NDR_SCALARS
) {
15638 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
15639 if (_level
!= level
) {
15640 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
15644 uint32_t _ptr_info1
;
15645 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
15647 NDR_PULL_ALLOC(ndr
, r
->info1
);
15654 uint32_t _ptr_info2
;
15655 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
15657 NDR_PULL_ALLOC(ndr
, r
->info2
);
15664 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15667 if (ndr_flags
& NDR_BUFFERS
) {
15671 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15672 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
15673 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
15674 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
15680 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15681 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
15682 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
15683 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
15688 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15691 return NDR_ERR_SUCCESS
;
15694 _PUBLIC_
void ndr_print_spoolss_AddFormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddFormInfo
*r
)
15697 level
= ndr_print_get_switch_value(ndr
, r
);
15698 ndr_print_union(ndr
, name
, level
, "spoolss_AddFormInfo");
15701 ndr_print_ptr(ndr
, "info1", r
->info1
);
15704 ndr_print_spoolss_AddFormInfo1(ndr
, "info1", r
->info1
);
15710 ndr_print_ptr(ndr
, "info2", r
->info2
);
15713 ndr_print_spoolss_AddFormInfo2(ndr
, "info2", r
->info2
);
15719 ndr_print_bad_level(ndr
, name
, level
);
15723 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo1
*r
)
15725 if (ndr_flags
& NDR_SCALARS
) {
15726 NDR_CHECK(ndr_push_align(ndr
, 4));
15728 uint32_t _flags_save_string
= ndr
->flags
;
15729 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15730 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
15731 ndr
->flags
= _flags_save_string
;
15734 if (ndr_flags
& NDR_BUFFERS
) {
15736 uint32_t _flags_save_string
= ndr
->flags
;
15737 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15738 if (r
->port_name
) {
15739 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
15740 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
15742 ndr
->flags
= _flags_save_string
;
15745 return NDR_ERR_SUCCESS
;
15748 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo1
*r
)
15750 uint32_t _ptr_port_name
;
15751 TALLOC_CTX
*_mem_save_port_name_0
;
15752 if (ndr_flags
& NDR_SCALARS
) {
15753 NDR_CHECK(ndr_pull_align(ndr
, 4));
15755 uint32_t _flags_save_string
= ndr
->flags
;
15756 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15757 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
15758 if (_ptr_port_name
) {
15759 NDR_PULL_ALLOC(ndr
, r
->port_name
);
15760 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
15762 r
->port_name
= NULL
;
15764 ndr
->flags
= _flags_save_string
;
15767 if (ndr_flags
& NDR_BUFFERS
) {
15769 uint32_t _flags_save_string
= ndr
->flags
;
15770 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15771 if (r
->port_name
) {
15772 uint32_t _relative_save_offset
;
15773 _relative_save_offset
= ndr
->offset
;
15774 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
15775 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15776 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
15777 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
15778 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
15779 ndr
->offset
= _relative_save_offset
;
15781 ndr
->flags
= _flags_save_string
;
15784 return NDR_ERR_SUCCESS
;
15787 _PUBLIC_
void ndr_print_spoolss_PortInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo1
*r
)
15789 ndr_print_struct(ndr
, name
, "spoolss_PortInfo1");
15791 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
15793 if (r
->port_name
) {
15794 ndr_print_string(ndr
, "port_name", r
->port_name
);
15800 _PUBLIC_
size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15802 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo1
, ic
);
15805 static enum ndr_err_code
ndr_push_spoolss_PortType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
15807 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15808 return NDR_ERR_SUCCESS
;
15811 static enum ndr_err_code
ndr_pull_spoolss_PortType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
15814 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
15816 return NDR_ERR_SUCCESS
;
15819 _PUBLIC_
void ndr_print_spoolss_PortType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
15821 ndr_print_uint32(ndr
, name
, r
);
15823 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE
, r
);
15824 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ
, r
);
15825 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED
, r
);
15826 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED
, r
);
15830 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo2
*r
)
15832 if (ndr_flags
& NDR_SCALARS
) {
15833 NDR_CHECK(ndr_push_align(ndr
, 4));
15835 uint32_t _flags_save_string
= ndr
->flags
;
15836 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15837 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
15838 ndr
->flags
= _flags_save_string
;
15841 uint32_t _flags_save_string
= ndr
->flags
;
15842 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15843 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
15844 ndr
->flags
= _flags_save_string
;
15847 uint32_t _flags_save_string
= ndr
->flags
;
15848 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15849 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
15850 ndr
->flags
= _flags_save_string
;
15852 NDR_CHECK(ndr_push_spoolss_PortType(ndr
, NDR_SCALARS
, r
->port_type
));
15853 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
15855 if (ndr_flags
& NDR_BUFFERS
) {
15857 uint32_t _flags_save_string
= ndr
->flags
;
15858 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15859 if (r
->port_name
) {
15860 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
15861 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
15863 ndr
->flags
= _flags_save_string
;
15866 uint32_t _flags_save_string
= ndr
->flags
;
15867 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15868 if (r
->monitor_name
) {
15869 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
15870 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
15872 ndr
->flags
= _flags_save_string
;
15875 uint32_t _flags_save_string
= ndr
->flags
;
15876 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15877 if (r
->description
) {
15878 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->description
));
15879 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
15881 ndr
->flags
= _flags_save_string
;
15884 return NDR_ERR_SUCCESS
;
15887 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo2
*r
)
15889 uint32_t _ptr_port_name
;
15890 TALLOC_CTX
*_mem_save_port_name_0
;
15891 uint32_t _ptr_monitor_name
;
15892 TALLOC_CTX
*_mem_save_monitor_name_0
;
15893 uint32_t _ptr_description
;
15894 TALLOC_CTX
*_mem_save_description_0
;
15895 if (ndr_flags
& NDR_SCALARS
) {
15896 NDR_CHECK(ndr_pull_align(ndr
, 4));
15898 uint32_t _flags_save_string
= ndr
->flags
;
15899 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15900 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
15901 if (_ptr_port_name
) {
15902 NDR_PULL_ALLOC(ndr
, r
->port_name
);
15903 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
15905 r
->port_name
= NULL
;
15907 ndr
->flags
= _flags_save_string
;
15910 uint32_t _flags_save_string
= ndr
->flags
;
15911 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15912 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
15913 if (_ptr_monitor_name
) {
15914 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
15915 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
15917 r
->monitor_name
= NULL
;
15919 ndr
->flags
= _flags_save_string
;
15922 uint32_t _flags_save_string
= ndr
->flags
;
15923 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15924 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
15925 if (_ptr_description
) {
15926 NDR_PULL_ALLOC(ndr
, r
->description
);
15927 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
15929 r
->description
= NULL
;
15931 ndr
->flags
= _flags_save_string
;
15933 NDR_CHECK(ndr_pull_spoolss_PortType(ndr
, NDR_SCALARS
, &r
->port_type
));
15934 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
15936 if (ndr_flags
& NDR_BUFFERS
) {
15938 uint32_t _flags_save_string
= ndr
->flags
;
15939 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15940 if (r
->port_name
) {
15941 uint32_t _relative_save_offset
;
15942 _relative_save_offset
= ndr
->offset
;
15943 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
15944 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15945 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
15946 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
15947 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
15948 ndr
->offset
= _relative_save_offset
;
15950 ndr
->flags
= _flags_save_string
;
15953 uint32_t _flags_save_string
= ndr
->flags
;
15954 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15955 if (r
->monitor_name
) {
15956 uint32_t _relative_save_offset
;
15957 _relative_save_offset
= ndr
->offset
;
15958 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
15959 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15960 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
15961 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
15962 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
15963 ndr
->offset
= _relative_save_offset
;
15965 ndr
->flags
= _flags_save_string
;
15968 uint32_t _flags_save_string
= ndr
->flags
;
15969 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15970 if (r
->description
) {
15971 uint32_t _relative_save_offset
;
15972 _relative_save_offset
= ndr
->offset
;
15973 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
15974 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15975 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
15976 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
15977 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
15978 ndr
->offset
= _relative_save_offset
;
15980 ndr
->flags
= _flags_save_string
;
15983 return NDR_ERR_SUCCESS
;
15986 _PUBLIC_
void ndr_print_spoolss_PortInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo2
*r
)
15988 ndr_print_struct(ndr
, name
, "spoolss_PortInfo2");
15990 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
15992 if (r
->port_name
) {
15993 ndr_print_string(ndr
, "port_name", r
->port_name
);
15996 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
15998 if (r
->monitor_name
) {
15999 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
16002 ndr_print_ptr(ndr
, "description", r
->description
);
16004 if (r
->description
) {
16005 ndr_print_string(ndr
, "description", r
->description
);
16008 ndr_print_spoolss_PortType(ndr
, "port_type", r
->port_type
);
16009 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
16013 _PUBLIC_
size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16015 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo2
, ic
);
16018 static enum ndr_err_code
ndr_push_spoolss_PortStatus(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortStatus r
)
16020 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16021 return NDR_ERR_SUCCESS
;
16024 static enum ndr_err_code
ndr_pull_spoolss_PortStatus(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortStatus
*r
)
16027 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16029 return NDR_ERR_SUCCESS
;
16032 _PUBLIC_
void ndr_print_spoolss_PortStatus(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortStatus r
)
16034 const char *val
= NULL
;
16037 case PORT_STATUS_CLEAR
: val
= "PORT_STATUS_CLEAR"; break;
16038 case PORT_STATUS_OFFLINE
: val
= "PORT_STATUS_OFFLINE"; break;
16039 case PORT_STATUS_PAPER_JAM
: val
= "PORT_STATUS_PAPER_JAM"; break;
16040 case PORT_STATUS_PAPER_OUT
: val
= "PORT_STATUS_PAPER_OUT"; break;
16041 case PORT_STATUS_OUTPUT_BIN_FULL
: val
= "PORT_STATUS_OUTPUT_BIN_FULL"; break;
16042 case PORT_STATUS_PAPER_PROBLEM
: val
= "PORT_STATUS_PAPER_PROBLEM"; break;
16043 case PORT_STATUS_NO_TONER
: val
= "PORT_STATUS_NO_TONER"; break;
16044 case PORT_STATUS_DOOR_OPEN
: val
= "PORT_STATUS_DOOR_OPEN"; break;
16045 case PORT_STATUS_USER_INTERVENTION
: val
= "PORT_STATUS_USER_INTERVENTION"; break;
16046 case PORT_STATUS_OUT_OF_MEMORY
: val
= "PORT_STATUS_OUT_OF_MEMORY"; break;
16047 case PORT_STATUS_TONER_LOW
: val
= "PORT_STATUS_TONER_LOW"; break;
16048 case PORT_STATUS_WARMING_UP
: val
= "PORT_STATUS_WARMING_UP"; break;
16049 case PORT_STATUS_POWER_SAVE
: val
= "PORT_STATUS_POWER_SAVE"; break;
16051 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16054 static enum ndr_err_code
ndr_push_spoolss_PortSeverity(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortSeverity r
)
16056 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16057 return NDR_ERR_SUCCESS
;
16060 static enum ndr_err_code
ndr_pull_spoolss_PortSeverity(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortSeverity
*r
)
16063 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16065 return NDR_ERR_SUCCESS
;
16068 _PUBLIC_
void ndr_print_spoolss_PortSeverity(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortSeverity r
)
16070 const char *val
= NULL
;
16073 case PORT_STATUS_TYPE_ERROR
: val
= "PORT_STATUS_TYPE_ERROR"; break;
16074 case PORT_STATUS_TYPE_WARNING
: val
= "PORT_STATUS_TYPE_WARNING"; break;
16075 case PORT_STATUS_TYPE_INFO
: val
= "PORT_STATUS_TYPE_INFO"; break;
16077 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16080 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo3
*r
)
16082 if (ndr_flags
& NDR_SCALARS
) {
16083 NDR_CHECK(ndr_push_align(ndr
, 4));
16084 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr
, NDR_SCALARS
, r
->status
));
16086 uint32_t _flags_save_string
= ndr
->flags
;
16087 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16088 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->status_string
));
16089 ndr
->flags
= _flags_save_string
;
16091 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr
, NDR_SCALARS
, r
->severity
));
16093 if (ndr_flags
& NDR_BUFFERS
) {
16095 uint32_t _flags_save_string
= ndr
->flags
;
16096 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16097 if (r
->status_string
) {
16098 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->status_string
));
16099 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->status_string
));
16101 ndr
->flags
= _flags_save_string
;
16104 return NDR_ERR_SUCCESS
;
16107 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo3
*r
)
16109 uint32_t _ptr_status_string
;
16110 TALLOC_CTX
*_mem_save_status_string_0
;
16111 if (ndr_flags
& NDR_SCALARS
) {
16112 NDR_CHECK(ndr_pull_align(ndr
, 4));
16113 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr
, NDR_SCALARS
, &r
->status
));
16115 uint32_t _flags_save_string
= ndr
->flags
;
16116 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16117 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_status_string
));
16118 if (_ptr_status_string
) {
16119 NDR_PULL_ALLOC(ndr
, r
->status_string
);
16120 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->status_string
, _ptr_status_string
));
16122 r
->status_string
= NULL
;
16124 ndr
->flags
= _flags_save_string
;
16126 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr
, NDR_SCALARS
, &r
->severity
));
16128 if (ndr_flags
& NDR_BUFFERS
) {
16130 uint32_t _flags_save_string
= ndr
->flags
;
16131 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16132 if (r
->status_string
) {
16133 uint32_t _relative_save_offset
;
16134 _relative_save_offset
= ndr
->offset
;
16135 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->status_string
));
16136 _mem_save_status_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16137 NDR_PULL_SET_MEM_CTX(ndr
, r
->status_string
, 0);
16138 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->status_string
));
16139 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_string_0
, 0);
16140 ndr
->offset
= _relative_save_offset
;
16142 ndr
->flags
= _flags_save_string
;
16145 return NDR_ERR_SUCCESS
;
16148 _PUBLIC_
void ndr_print_spoolss_PortInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo3
*r
)
16150 ndr_print_struct(ndr
, name
, "spoolss_PortInfo3");
16152 ndr_print_spoolss_PortStatus(ndr
, "status", r
->status
);
16153 ndr_print_ptr(ndr
, "status_string", r
->status_string
);
16155 if (r
->status_string
) {
16156 ndr_print_string(ndr
, "status_string", r
->status_string
);
16159 ndr_print_spoolss_PortSeverity(ndr
, "severity", r
->severity
);
16163 _PUBLIC_
size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16165 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo3
, ic
);
16168 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfoFF(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfoFF
*r
)
16170 if (ndr_flags
& NDR_SCALARS
) {
16171 NDR_CHECK(ndr_push_align(ndr
, 4));
16173 uint32_t _flags_save_string
= ndr
->flags
;
16174 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16175 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
16176 ndr
->flags
= _flags_save_string
;
16178 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->monitor_data
));
16180 if (ndr_flags
& NDR_BUFFERS
) {
16182 uint32_t _flags_save_string
= ndr
->flags
;
16183 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16184 if (r
->port_name
) {
16185 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
16186 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
16188 ndr
->flags
= _flags_save_string
;
16191 return NDR_ERR_SUCCESS
;
16194 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfoFF(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfoFF
*r
)
16196 uint32_t _ptr_port_name
;
16197 TALLOC_CTX
*_mem_save_port_name_0
;
16198 if (ndr_flags
& NDR_SCALARS
) {
16199 NDR_CHECK(ndr_pull_align(ndr
, 4));
16201 uint32_t _flags_save_string
= ndr
->flags
;
16202 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16203 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
16204 if (_ptr_port_name
) {
16205 NDR_PULL_ALLOC(ndr
, r
->port_name
);
16206 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
16208 r
->port_name
= NULL
;
16210 ndr
->flags
= _flags_save_string
;
16212 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->monitor_data
));
16214 if (ndr_flags
& NDR_BUFFERS
) {
16216 uint32_t _flags_save_string
= ndr
->flags
;
16217 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16218 if (r
->port_name
) {
16219 uint32_t _relative_save_offset
;
16220 _relative_save_offset
= ndr
->offset
;
16221 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
16222 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16223 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
16224 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
16225 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
16226 ndr
->offset
= _relative_save_offset
;
16228 ndr
->flags
= _flags_save_string
;
16231 return NDR_ERR_SUCCESS
;
16234 _PUBLIC_
void ndr_print_spoolss_PortInfoFF(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfoFF
*r
)
16236 ndr_print_struct(ndr
, name
, "spoolss_PortInfoFF");
16238 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
16240 if (r
->port_name
) {
16241 ndr_print_string(ndr
, "port_name", r
->port_name
);
16244 ndr_print_DATA_BLOB(ndr
, "monitor_data", r
->monitor_data
);
16248 _PUBLIC_
size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16250 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfoFF
, ic
);
16253 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PortInfo
*r
)
16255 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16256 if (ndr_flags
& NDR_SCALARS
) {
16257 int level
= ndr_push_get_switch_value(ndr
, r
);
16260 NDR_CHECK(ndr_push_align(ndr
, 4));
16261 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16262 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16266 NDR_CHECK(ndr_push_align(ndr
, 4));
16267 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16268 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16272 NDR_CHECK(ndr_push_align(ndr
, 4));
16273 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16274 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
16278 NDR_CHECK(ndr_push_align(ndr
, 4));
16279 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16280 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
16288 if (ndr_flags
& NDR_BUFFERS
) {
16289 int level
= ndr_push_get_switch_value(ndr
, r
);
16290 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16293 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16297 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16301 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
16305 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
16313 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16314 return NDR_ERR_SUCCESS
;
16317 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PortInfo
*r
)
16319 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16321 level
= ndr_pull_get_switch_value(ndr
, r
);
16322 if (ndr_flags
& NDR_SCALARS
) {
16325 NDR_CHECK(ndr_pull_align(ndr
, 4));
16326 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16327 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16331 NDR_CHECK(ndr_pull_align(ndr
, 4));
16332 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16333 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16337 NDR_CHECK(ndr_pull_align(ndr
, 4));
16338 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16339 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
16343 NDR_CHECK(ndr_pull_align(ndr
, 4));
16344 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16345 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
16353 if (ndr_flags
& NDR_BUFFERS
) {
16354 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
16357 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16361 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16365 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
16369 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
16377 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16378 return NDR_ERR_SUCCESS
;
16381 _PUBLIC_
void ndr_print_spoolss_PortInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PortInfo
*r
)
16384 level
= ndr_print_get_switch_value(ndr
, r
);
16385 ndr_print_union(ndr
, name
, level
, "spoolss_PortInfo");
16388 ndr_print_spoolss_PortInfo1(ndr
, "info1", &r
->info1
);
16392 ndr_print_spoolss_PortInfo2(ndr
, "info2", &r
->info2
);
16396 ndr_print_spoolss_PortInfo3(ndr
, "info3", &r
->info3
);
16400 ndr_print_spoolss_PortInfoFF(ndr
, "infoFF", &r
->infoFF
);
16409 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo1
*r
)
16411 if (ndr_flags
& NDR_SCALARS
) {
16412 NDR_CHECK(ndr_push_align(ndr
, 4));
16414 uint32_t _flags_save_string
= ndr
->flags
;
16415 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16416 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
16417 ndr
->flags
= _flags_save_string
;
16420 if (ndr_flags
& NDR_BUFFERS
) {
16422 uint32_t _flags_save_string
= ndr
->flags
;
16423 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16424 if (r
->monitor_name
) {
16425 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
16426 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
16428 ndr
->flags
= _flags_save_string
;
16431 return NDR_ERR_SUCCESS
;
16434 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo1
*r
)
16436 uint32_t _ptr_monitor_name
;
16437 TALLOC_CTX
*_mem_save_monitor_name_0
;
16438 if (ndr_flags
& NDR_SCALARS
) {
16439 NDR_CHECK(ndr_pull_align(ndr
, 4));
16441 uint32_t _flags_save_string
= ndr
->flags
;
16442 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16443 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
16444 if (_ptr_monitor_name
) {
16445 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
16446 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
16448 r
->monitor_name
= NULL
;
16450 ndr
->flags
= _flags_save_string
;
16453 if (ndr_flags
& NDR_BUFFERS
) {
16455 uint32_t _flags_save_string
= ndr
->flags
;
16456 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16457 if (r
->monitor_name
) {
16458 uint32_t _relative_save_offset
;
16459 _relative_save_offset
= ndr
->offset
;
16460 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
16461 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16462 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
16463 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
16464 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
16465 ndr
->offset
= _relative_save_offset
;
16467 ndr
->flags
= _flags_save_string
;
16470 return NDR_ERR_SUCCESS
;
16473 _PUBLIC_
void ndr_print_spoolss_MonitorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo1
*r
)
16475 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo1");
16477 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
16479 if (r
->monitor_name
) {
16480 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
16486 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16488 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo1
, ic
);
16491 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo2
*r
)
16493 if (ndr_flags
& NDR_SCALARS
) {
16494 NDR_CHECK(ndr_push_align(ndr
, 4));
16496 uint32_t _flags_save_string
= ndr
->flags
;
16497 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16498 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
16499 ndr
->flags
= _flags_save_string
;
16502 uint32_t _flags_save_string
= ndr
->flags
;
16503 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16504 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->environment
));
16505 ndr
->flags
= _flags_save_string
;
16508 uint32_t _flags_save_string
= ndr
->flags
;
16509 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16510 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dll_name
));
16511 ndr
->flags
= _flags_save_string
;
16514 if (ndr_flags
& NDR_BUFFERS
) {
16516 uint32_t _flags_save_string
= ndr
->flags
;
16517 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16518 if (r
->monitor_name
) {
16519 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
16520 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
16522 ndr
->flags
= _flags_save_string
;
16525 uint32_t _flags_save_string
= ndr
->flags
;
16526 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16527 if (r
->environment
) {
16528 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->environment
));
16529 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->environment
));
16531 ndr
->flags
= _flags_save_string
;
16534 uint32_t _flags_save_string
= ndr
->flags
;
16535 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16537 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dll_name
));
16538 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
16540 ndr
->flags
= _flags_save_string
;
16543 return NDR_ERR_SUCCESS
;
16546 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo2
*r
)
16548 uint32_t _ptr_monitor_name
;
16549 TALLOC_CTX
*_mem_save_monitor_name_0
;
16550 uint32_t _ptr_environment
;
16551 TALLOC_CTX
*_mem_save_environment_0
;
16552 uint32_t _ptr_dll_name
;
16553 TALLOC_CTX
*_mem_save_dll_name_0
;
16554 if (ndr_flags
& NDR_SCALARS
) {
16555 NDR_CHECK(ndr_pull_align(ndr
, 4));
16557 uint32_t _flags_save_string
= ndr
->flags
;
16558 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16559 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
16560 if (_ptr_monitor_name
) {
16561 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
16562 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
16564 r
->monitor_name
= NULL
;
16566 ndr
->flags
= _flags_save_string
;
16569 uint32_t _flags_save_string
= ndr
->flags
;
16570 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16571 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
16572 if (_ptr_environment
) {
16573 NDR_PULL_ALLOC(ndr
, r
->environment
);
16574 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->environment
, _ptr_environment
));
16576 r
->environment
= NULL
;
16578 ndr
->flags
= _flags_save_string
;
16581 uint32_t _flags_save_string
= ndr
->flags
;
16582 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16583 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dll_name
));
16584 if (_ptr_dll_name
) {
16585 NDR_PULL_ALLOC(ndr
, r
->dll_name
);
16586 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dll_name
, _ptr_dll_name
));
16588 r
->dll_name
= NULL
;
16590 ndr
->flags
= _flags_save_string
;
16593 if (ndr_flags
& NDR_BUFFERS
) {
16595 uint32_t _flags_save_string
= ndr
->flags
;
16596 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16597 if (r
->monitor_name
) {
16598 uint32_t _relative_save_offset
;
16599 _relative_save_offset
= ndr
->offset
;
16600 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
16601 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16602 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
16603 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
16604 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
16605 ndr
->offset
= _relative_save_offset
;
16607 ndr
->flags
= _flags_save_string
;
16610 uint32_t _flags_save_string
= ndr
->flags
;
16611 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16612 if (r
->environment
) {
16613 uint32_t _relative_save_offset
;
16614 _relative_save_offset
= ndr
->offset
;
16615 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->environment
));
16616 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16617 NDR_PULL_SET_MEM_CTX(ndr
, r
->environment
, 0);
16618 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->environment
));
16619 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
16620 ndr
->offset
= _relative_save_offset
;
16622 ndr
->flags
= _flags_save_string
;
16625 uint32_t _flags_save_string
= ndr
->flags
;
16626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16628 uint32_t _relative_save_offset
;
16629 _relative_save_offset
= ndr
->offset
;
16630 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dll_name
));
16631 _mem_save_dll_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16632 NDR_PULL_SET_MEM_CTX(ndr
, r
->dll_name
, 0);
16633 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
16634 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dll_name_0
, 0);
16635 ndr
->offset
= _relative_save_offset
;
16637 ndr
->flags
= _flags_save_string
;
16640 return NDR_ERR_SUCCESS
;
16643 _PUBLIC_
void ndr_print_spoolss_MonitorInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo2
*r
)
16645 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo2");
16647 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
16649 if (r
->monitor_name
) {
16650 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
16653 ndr_print_ptr(ndr
, "environment", r
->environment
);
16655 if (r
->environment
) {
16656 ndr_print_string(ndr
, "environment", r
->environment
);
16659 ndr_print_ptr(ndr
, "dll_name", r
->dll_name
);
16662 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
16668 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16670 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo2
, ic
);
16673 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_MonitorInfo
*r
)
16675 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16676 if (ndr_flags
& NDR_SCALARS
) {
16677 int level
= ndr_push_get_switch_value(ndr
, r
);
16680 NDR_CHECK(ndr_push_align(ndr
, 4));
16681 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16682 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16686 NDR_CHECK(ndr_push_align(ndr
, 4));
16687 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16688 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16696 if (ndr_flags
& NDR_BUFFERS
) {
16697 int level
= ndr_push_get_switch_value(ndr
, r
);
16698 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16701 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16705 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16713 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16714 return NDR_ERR_SUCCESS
;
16717 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_MonitorInfo
*r
)
16719 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16721 level
= ndr_pull_get_switch_value(ndr
, r
);
16722 if (ndr_flags
& NDR_SCALARS
) {
16725 NDR_CHECK(ndr_pull_align(ndr
, 4));
16726 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16727 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16731 NDR_CHECK(ndr_pull_align(ndr
, 4));
16732 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16733 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16741 if (ndr_flags
& NDR_BUFFERS
) {
16742 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
16745 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16749 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16757 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16758 return NDR_ERR_SUCCESS
;
16761 _PUBLIC_
void ndr_print_spoolss_MonitorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_MonitorInfo
*r
)
16764 level
= ndr_print_get_switch_value(ndr
, r
);
16765 ndr_print_union(ndr
, name
, level
, "spoolss_MonitorInfo");
16768 ndr_print_spoolss_MonitorInfo1(ndr
, "info1", &r
->info1
);
16772 ndr_print_spoolss_MonitorInfo2(ndr
, "info2", &r
->info2
);
16781 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
16783 if (ndr_flags
& NDR_SCALARS
) {
16784 NDR_CHECK(ndr_push_align(ndr
, 4));
16786 uint32_t _flags_save_string
= ndr
->flags
;
16787 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16788 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name_array
));
16789 ndr
->flags
= _flags_save_string
;
16792 if (ndr_flags
& NDR_BUFFERS
) {
16794 uint32_t _flags_save_string
= ndr
->flags
;
16795 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16796 if (r
->name_array
) {
16797 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->name_array
));
16798 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name_array
));
16800 ndr
->flags
= _flags_save_string
;
16803 return NDR_ERR_SUCCESS
;
16806 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcDataTypesInfo1
*r
)
16808 uint32_t _ptr_name_array
;
16809 TALLOC_CTX
*_mem_save_name_array_0
;
16810 if (ndr_flags
& NDR_SCALARS
) {
16811 NDR_CHECK(ndr_pull_align(ndr
, 4));
16813 uint32_t _flags_save_string
= ndr
->flags
;
16814 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16815 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name_array
));
16816 if (_ptr_name_array
) {
16817 NDR_PULL_ALLOC(ndr
, r
->name_array
);
16818 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name_array
, _ptr_name_array
));
16820 r
->name_array
= NULL
;
16822 ndr
->flags
= _flags_save_string
;
16825 if (ndr_flags
& NDR_BUFFERS
) {
16827 uint32_t _flags_save_string
= ndr
->flags
;
16828 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16829 if (r
->name_array
) {
16830 uint32_t _relative_save_offset
;
16831 _relative_save_offset
= ndr
->offset
;
16832 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name_array
));
16833 _mem_save_name_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16834 NDR_PULL_SET_MEM_CTX(ndr
, r
->name_array
, 0);
16835 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name_array
));
16836 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_array_0
, 0);
16837 ndr
->offset
= _relative_save_offset
;
16839 ndr
->flags
= _flags_save_string
;
16842 return NDR_ERR_SUCCESS
;
16845 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
16847 ndr_print_struct(ndr
, name
, "spoolss_PrintProcDataTypesInfo1");
16849 ndr_print_ptr(ndr
, "name_array", r
->name_array
);
16851 if (r
->name_array
) {
16852 ndr_print_string(ndr
, "name_array", r
->name_array
);
16858 _PUBLIC_
size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16860 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcDataTypesInfo1
, ic
);
16863 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcDataTypesInfo
*r
)
16865 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16866 if (ndr_flags
& NDR_SCALARS
) {
16867 int level
= ndr_push_get_switch_value(ndr
, r
);
16870 NDR_CHECK(ndr_push_align(ndr
, 4));
16871 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16872 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16880 if (ndr_flags
& NDR_BUFFERS
) {
16881 int level
= ndr_push_get_switch_value(ndr
, r
);
16882 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16885 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16893 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16894 return NDR_ERR_SUCCESS
;
16897 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcDataTypesInfo
*r
)
16899 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16901 level
= ndr_pull_get_switch_value(ndr
, r
);
16902 if (ndr_flags
& NDR_SCALARS
) {
16905 NDR_CHECK(ndr_pull_align(ndr
, 4));
16906 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16907 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16915 if (ndr_flags
& NDR_BUFFERS
) {
16916 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
16919 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16927 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16928 return NDR_ERR_SUCCESS
;
16931 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcDataTypesInfo
*r
)
16934 level
= ndr_print_get_switch_value(ndr
, r
);
16935 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcDataTypesInfo");
16938 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr
, "info1", &r
->info1
);
16947 static enum ndr_err_code
ndr_push_spoolss_PrinterChangeFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
16949 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16950 return NDR_ERR_SUCCESS
;
16953 static enum ndr_err_code
ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
16956 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16958 return NDR_ERR_SUCCESS
;
16961 _PUBLIC_
void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
16963 ndr_print_uint32(ndr
, name
, r
);
16965 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER
, r
);
16966 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER
, r
);
16967 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER
, r
);
16968 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER
, r
);
16969 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB
, r
);
16970 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB
, r
);
16971 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB
, r
);
16972 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB
, r
);
16973 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM
, r
);
16974 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM
, r
);
16975 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM
, r
);
16976 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT
, r
);
16977 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT
, r
);
16978 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT
, r
);
16979 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR
, r
);
16980 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR
, r
);
16981 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER
, r
);
16982 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER
, r
);
16983 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER
, r
);
16984 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER
, r
);
16985 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT
, r
);
16989 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobNotifyField(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobNotifyField r
)
16991 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
16992 return NDR_ERR_SUCCESS
;
16995 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobNotifyField(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobNotifyField
*r
)
16998 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
17000 return NDR_ERR_SUCCESS
;
17003 _PUBLIC_
void ndr_print_spoolss_JobNotifyField(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobNotifyField r
)
17005 const char *val
= NULL
;
17008 case JOB_NOTIFY_FIELD_PRINTER_NAME
: val
= "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
17009 case JOB_NOTIFY_FIELD_MACHINE_NAME
: val
= "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
17010 case JOB_NOTIFY_FIELD_PORT_NAME
: val
= "JOB_NOTIFY_FIELD_PORT_NAME"; break;
17011 case JOB_NOTIFY_FIELD_USER_NAME
: val
= "JOB_NOTIFY_FIELD_USER_NAME"; break;
17012 case JOB_NOTIFY_FIELD_NOTIFY_NAME
: val
= "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
17013 case JOB_NOTIFY_FIELD_DATATYPE
: val
= "JOB_NOTIFY_FIELD_DATATYPE"; break;
17014 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR
: val
= "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17015 case JOB_NOTIFY_FIELD_PARAMETERS
: val
= "JOB_NOTIFY_FIELD_PARAMETERS"; break;
17016 case JOB_NOTIFY_FIELD_DRIVER_NAME
: val
= "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
17017 case JOB_NOTIFY_FIELD_DEVMODE
: val
= "JOB_NOTIFY_FIELD_DEVMODE"; break;
17018 case JOB_NOTIFY_FIELD_STATUS
: val
= "JOB_NOTIFY_FIELD_STATUS"; break;
17019 case JOB_NOTIFY_FIELD_STATUS_STRING
: val
= "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
17020 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: val
= "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17021 case JOB_NOTIFY_FIELD_DOCUMENT
: val
= "JOB_NOTIFY_FIELD_DOCUMENT"; break;
17022 case JOB_NOTIFY_FIELD_PRIORITY
: val
= "JOB_NOTIFY_FIELD_PRIORITY"; break;
17023 case JOB_NOTIFY_FIELD_POSITION
: val
= "JOB_NOTIFY_FIELD_POSITION"; break;
17024 case JOB_NOTIFY_FIELD_SUBMITTED
: val
= "JOB_NOTIFY_FIELD_SUBMITTED"; break;
17025 case JOB_NOTIFY_FIELD_START_TIME
: val
= "JOB_NOTIFY_FIELD_START_TIME"; break;
17026 case JOB_NOTIFY_FIELD_UNTIL_TIME
: val
= "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
17027 case JOB_NOTIFY_FIELD_TIME
: val
= "JOB_NOTIFY_FIELD_TIME"; break;
17028 case JOB_NOTIFY_FIELD_TOTAL_PAGES
: val
= "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
17029 case JOB_NOTIFY_FIELD_PAGES_PRINTED
: val
= "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
17030 case JOB_NOTIFY_FIELD_TOTAL_BYTES
: val
= "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
17031 case JOB_NOTIFY_FIELD_BYTES_PRINTED
: val
= "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
17033 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17036 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintNotifyField(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrintNotifyField r
)
17038 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
17039 return NDR_ERR_SUCCESS
;
17042 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintNotifyField(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrintNotifyField
*r
)
17045 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
17047 return NDR_ERR_SUCCESS
;
17050 _PUBLIC_
void ndr_print_spoolss_PrintNotifyField(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrintNotifyField r
)
17052 const char *val
= NULL
;
17055 case PRINTER_NOTIFY_FIELD_SERVER_NAME
: val
= "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
17056 case PRINTER_NOTIFY_FIELD_PRINTER_NAME
: val
= "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
17057 case PRINTER_NOTIFY_FIELD_SHARE_NAME
: val
= "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
17058 case PRINTER_NOTIFY_FIELD_PORT_NAME
: val
= "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
17059 case PRINTER_NOTIFY_FIELD_DRIVER_NAME
: val
= "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
17060 case PRINTER_NOTIFY_FIELD_COMMENT
: val
= "PRINTER_NOTIFY_FIELD_COMMENT"; break;
17061 case PRINTER_NOTIFY_FIELD_LOCATION
: val
= "PRINTER_NOTIFY_FIELD_LOCATION"; break;
17062 case PRINTER_NOTIFY_FIELD_DEVMODE
: val
= "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
17063 case PRINTER_NOTIFY_FIELD_SEPFILE
: val
= "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
17064 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR
: val
= "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
17065 case PRINTER_NOTIFY_FIELD_PARAMETERS
: val
= "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
17066 case PRINTER_NOTIFY_FIELD_DATATYPE
: val
= "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
17067 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR
: val
= "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
17068 case PRINTER_NOTIFY_FIELD_ATTRIBUTES
: val
= "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
17069 case PRINTER_NOTIFY_FIELD_PRIORITY
: val
= "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
17070 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY
: val
= "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
17071 case PRINTER_NOTIFY_FIELD_START_TIME
: val
= "PRINTER_NOTIFY_FIELD_START_TIME"; break;
17072 case PRINTER_NOTIFY_FIELD_UNTIL_TIME
: val
= "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
17073 case PRINTER_NOTIFY_FIELD_STATUS
: val
= "PRINTER_NOTIFY_FIELD_STATUS"; break;
17074 case PRINTER_NOTIFY_FIELD_STATUS_STRING
: val
= "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
17075 case PRINTER_NOTIFY_FIELD_CJOBS
: val
= "PRINTER_NOTIFY_FIELD_CJOBS"; break;
17076 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM
: val
= "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
17077 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES
: val
= "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
17078 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED
: val
= "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
17079 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES
: val
= "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
17080 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED
: val
= "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
17081 case PRINTER_NOTIFY_FIELD_OBJECT_GUID
: val
= "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
17082 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME
: val
= "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
17084 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17087 static enum ndr_err_code
ndr_push_spoolss_NotifyType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyType r
)
17089 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
17090 return NDR_ERR_SUCCESS
;
17093 static enum ndr_err_code
ndr_pull_spoolss_NotifyType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyType
*r
)
17096 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
17098 return NDR_ERR_SUCCESS
;
17101 _PUBLIC_
void ndr_print_spoolss_NotifyType(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyType r
)
17103 const char *val
= NULL
;
17106 case PRINTER_NOTIFY_TYPE
: val
= "PRINTER_NOTIFY_TYPE"; break;
17107 case JOB_NOTIFY_TYPE
: val
= "JOB_NOTIFY_TYPE"; break;
17109 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17112 static enum ndr_err_code
ndr_push_spoolss_Field(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_Field
*r
)
17114 if (ndr_flags
& NDR_SCALARS
) {
17115 int level
= ndr_push_get_switch_value(ndr
, r
);
17117 case PRINTER_NOTIFY_TYPE
: {
17118 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
17121 case JOB_NOTIFY_TYPE
: {
17122 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
17126 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->field
));
17131 if (ndr_flags
& NDR_BUFFERS
) {
17132 int level
= ndr_push_get_switch_value(ndr
, r
);
17134 case PRINTER_NOTIFY_TYPE
:
17137 case JOB_NOTIFY_TYPE
:
17145 return NDR_ERR_SUCCESS
;
17148 static enum ndr_err_code
ndr_pull_spoolss_Field(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_Field
*r
)
17151 level
= ndr_pull_get_switch_value(ndr
, r
);
17152 if (ndr_flags
& NDR_SCALARS
) {
17154 case PRINTER_NOTIFY_TYPE
: {
17155 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
17158 case JOB_NOTIFY_TYPE
: {
17159 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
17163 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->field
));
17168 if (ndr_flags
& NDR_BUFFERS
) {
17170 case PRINTER_NOTIFY_TYPE
:
17173 case JOB_NOTIFY_TYPE
:
17181 return NDR_ERR_SUCCESS
;
17184 static enum ndr_err_code
ndr_push_spoolss_NotifyOptionType(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOptionType
*r
)
17186 uint32_t cntr_fields_1
;
17187 if (ndr_flags
& NDR_SCALARS
) {
17188 NDR_CHECK(ndr_push_align(ndr
, 4));
17189 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
17190 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->u1
));
17191 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u2
));
17192 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u3
));
17193 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17194 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->fields
));
17196 if (ndr_flags
& NDR_BUFFERS
) {
17198 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17199 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
17200 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
));
17201 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
17205 return NDR_ERR_SUCCESS
;
17208 static enum ndr_err_code
ndr_pull_spoolss_NotifyOptionType(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOptionType
*r
)
17210 uint32_t _ptr_fields
;
17211 uint32_t cntr_fields_1
;
17212 TALLOC_CTX
*_mem_save_fields_0
;
17213 TALLOC_CTX
*_mem_save_fields_1
;
17214 if (ndr_flags
& NDR_SCALARS
) {
17215 NDR_CHECK(ndr_pull_align(ndr
, 4));
17216 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
17217 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->u1
));
17218 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u2
));
17219 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u3
));
17220 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
17221 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_fields
));
17223 NDR_PULL_ALLOC(ndr
, r
->fields
);
17228 if (ndr_flags
& NDR_BUFFERS
) {
17230 _mem_save_fields_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17231 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
17232 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->fields
));
17233 NDR_PULL_ALLOC_N(ndr
, r
->fields
, ndr_get_array_size(ndr
, &r
->fields
));
17234 _mem_save_fields_1
= NDR_PULL_GET_MEM_CTX(ndr
);
17235 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
17236 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
17237 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
));
17238 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
17240 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_1
, 0);
17241 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_0
, 0);
17244 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->fields
, r
->count
));
17247 return NDR_ERR_SUCCESS
;
17250 _PUBLIC_
void ndr_print_spoolss_NotifyOptionType(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOptionType
*r
)
17252 uint32_t cntr_fields_1
;
17253 ndr_print_struct(ndr
, name
, "spoolss_NotifyOptionType");
17255 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
17256 ndr_print_uint16(ndr
, "u1", r
->u1
);
17257 ndr_print_uint32(ndr
, "u2", r
->u2
);
17258 ndr_print_uint32(ndr
, "u3", r
->u3
);
17259 ndr_print_uint32(ndr
, "count", r
->count
);
17260 ndr_print_ptr(ndr
, "fields", r
->fields
);
17263 ndr
->print(ndr
, "%s: ARRAY(%d)", "fields", (int)r
->count
);
17265 for (cntr_fields_1
=0;cntr_fields_1
<r
->count
;cntr_fields_1
++) {
17267 if (asprintf(&idx_1
, "[%d]", cntr_fields_1
) != -1) {
17268 ndr_print_set_switch_value(ndr
, &r
->fields
[cntr_fields_1
], r
->type
);
17269 ndr_print_spoolss_Field(ndr
, "fields", &r
->fields
[cntr_fields_1
]);
17279 static enum ndr_err_code
ndr_push_spoolssNotifyOptionFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17281 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17282 return NDR_ERR_SUCCESS
;
17285 static enum ndr_err_code
ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17288 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17290 return NDR_ERR_SUCCESS
;
17293 _PUBLIC_
void ndr_print_spoolssNotifyOptionFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17295 ndr_print_uint32(ndr
, name
, r
);
17297 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH
, r
);
17301 static enum ndr_err_code
ndr_push_spoolss_NotifyOption(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOption
*r
)
17303 uint32_t cntr_types_1
;
17304 if (ndr_flags
& NDR_SCALARS
) {
17305 NDR_CHECK(ndr_push_align(ndr
, 4));
17306 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
17307 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, r
->flags
));
17308 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17309 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->types
));
17311 if (ndr_flags
& NDR_BUFFERS
) {
17313 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17314 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17315 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
17317 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17318 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
17322 return NDR_ERR_SUCCESS
;
17325 static enum ndr_err_code
ndr_pull_spoolss_NotifyOption(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOption
*r
)
17327 uint32_t _ptr_types
;
17328 uint32_t cntr_types_1
;
17329 TALLOC_CTX
*_mem_save_types_0
;
17330 TALLOC_CTX
*_mem_save_types_1
;
17331 if (ndr_flags
& NDR_SCALARS
) {
17332 NDR_CHECK(ndr_pull_align(ndr
, 4));
17333 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
17334 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, &r
->flags
));
17335 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
17336 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_types
));
17338 NDR_PULL_ALLOC(ndr
, r
->types
);
17343 if (ndr_flags
& NDR_BUFFERS
) {
17345 _mem_save_types_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17346 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
17347 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->types
));
17348 NDR_PULL_ALLOC_N(ndr
, r
->types
, ndr_get_array_size(ndr
, &r
->types
));
17349 _mem_save_types_1
= NDR_PULL_GET_MEM_CTX(ndr
);
17350 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
17351 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17352 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
17354 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17355 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
17357 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_1
, 0);
17358 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_0
, 0);
17361 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->types
, r
->count
));
17364 return NDR_ERR_SUCCESS
;
17367 _PUBLIC_
void ndr_print_spoolss_NotifyOption(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOption
*r
)
17369 uint32_t cntr_types_1
;
17370 ndr_print_struct(ndr
, name
, "spoolss_NotifyOption");
17372 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
17373 ndr_print_spoolssNotifyOptionFlags(ndr
, "flags", r
->flags
);
17374 ndr_print_uint32(ndr
, "count", r
->count
);
17375 ndr_print_ptr(ndr
, "types", r
->types
);
17378 ndr
->print(ndr
, "%s: ARRAY(%d)", "types", (int)r
->count
);
17380 for (cntr_types_1
=0;cntr_types_1
<r
->count
;cntr_types_1
++) {
17382 if (asprintf(&idx_1
, "[%d]", cntr_types_1
) != -1) {
17383 ndr_print_spoolss_NotifyOptionType(ndr
, "types", &r
->types
[cntr_types_1
]);
17393 static enum ndr_err_code
ndr_push_spoolss_NotifyString(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyString
*r
)
17395 if (ndr_flags
& NDR_SCALARS
) {
17396 NDR_CHECK(ndr_push_align(ndr
, 4));
17397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
17398 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->string
));
17400 if (ndr_flags
& NDR_BUFFERS
) {
17402 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
/ 2));
17403 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->string
, r
->size
/ 2, sizeof(uint16_t), CH_UTF16
));
17406 return NDR_ERR_SUCCESS
;
17409 static enum ndr_err_code
ndr_pull_spoolss_NotifyString(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyString
*r
)
17411 uint32_t _ptr_string
;
17412 TALLOC_CTX
*_mem_save_string_0
;
17413 if (ndr_flags
& NDR_SCALARS
) {
17414 NDR_CHECK(ndr_pull_align(ndr
, 4));
17415 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
17416 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_string
));
17418 NDR_PULL_ALLOC(ndr
, r
->string
);
17423 if (ndr_flags
& NDR_BUFFERS
) {
17425 _mem_save_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17426 NDR_PULL_SET_MEM_CTX(ndr
, r
->string
, 0);
17427 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->string
));
17428 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->string
, ndr_get_array_size(ndr
, &r
->string
), sizeof(uint16_t), CH_UTF16
));
17429 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_string_0
, 0);
17432 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->string
, r
->size
/ 2));
17435 return NDR_ERR_SUCCESS
;
17438 _PUBLIC_
void ndr_print_spoolss_NotifyString(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyString
*r
)
17440 ndr_print_struct(ndr
, name
, "spoolss_NotifyString");
17442 ndr_print_uint32(ndr
, "size", r
->size
);
17443 ndr_print_ptr(ndr
, "string", r
->string
);
17446 ndr_print_string(ndr
, "string", r
->string
);
17452 static enum ndr_err_code
ndr_push_spoolss_NotifyTable(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyTable r
)
17454 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17455 return NDR_ERR_SUCCESS
;
17458 static enum ndr_err_code
ndr_pull_spoolss_NotifyTable(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyTable
*r
)
17461 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17463 return NDR_ERR_SUCCESS
;
17466 _PUBLIC_
void ndr_print_spoolss_NotifyTable(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyTable r
)
17468 const char *val
= NULL
;
17471 case NOTIFY_TABLE_DWORD
: val
= "NOTIFY_TABLE_DWORD"; break;
17472 case NOTIFY_TABLE_STRING
: val
= "NOTIFY_TABLE_STRING"; break;
17473 case NOTIFY_TABLE_DEVMODE
: val
= "NOTIFY_TABLE_DEVMODE"; break;
17474 case NOTIFY_TABLE_TIME
: val
= "NOTIFY_TABLE_TIME"; break;
17475 case NOTIFY_TABLE_SECURITYDESCRIPTOR
: val
= "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
17477 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17480 static enum ndr_err_code
ndr_push_spoolss_NotifyData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_NotifyData
*r
)
17482 if (ndr_flags
& NDR_SCALARS
) {
17483 int level
= ndr_push_get_switch_value(ndr
, r
);
17484 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
17487 uint32_t cntr_integer_0
;
17488 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
17489 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->integer
[cntr_integer_0
]));
17494 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
17498 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
17502 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
17506 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
17510 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17513 if (ndr_flags
& NDR_BUFFERS
) {
17514 int level
= ndr_push_get_switch_value(ndr
, r
);
17520 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
17524 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
17528 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
17532 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
17536 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17539 return NDR_ERR_SUCCESS
;
17542 static enum ndr_err_code
ndr_pull_spoolss_NotifyData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_NotifyData
*r
)
17546 level
= ndr_pull_get_switch_value(ndr
, r
);
17547 if (ndr_flags
& NDR_SCALARS
) {
17548 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
17549 if (_level
!= level
) {
17550 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
17554 uint32_t cntr_integer_0
;
17555 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
17556 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->integer
[cntr_integer_0
]));
17561 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
17565 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
17569 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
17573 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
17577 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17580 if (ndr_flags
& NDR_BUFFERS
) {
17586 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
17590 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
17594 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
17598 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
17602 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17605 return NDR_ERR_SUCCESS
;
17608 _PUBLIC_
void ndr_print_spoolss_NotifyData(struct ndr_print
*ndr
, const char *name
, const union spoolss_NotifyData
*r
)
17611 uint32_t cntr_integer_0
;
17612 level
= ndr_print_get_switch_value(ndr
, r
);
17613 ndr_print_union(ndr
, name
, level
, "spoolss_NotifyData");
17616 ndr
->print(ndr
, "%s: ARRAY(%d)", "integer", (int)2);
17618 for (cntr_integer_0
=0;cntr_integer_0
<2;cntr_integer_0
++) {
17620 if (asprintf(&idx_0
, "[%d]", cntr_integer_0
) != -1) {
17621 ndr_print_uint32(ndr
, "integer", r
->integer
[cntr_integer_0
]);
17629 ndr_print_spoolss_NotifyString(ndr
, "string", &r
->string
);
17633 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode", &r
->devmode
);
17637 ndr_print_spoolss_TimeCtr(ndr
, "time", &r
->time
);
17641 ndr_print_sec_desc_buf(ndr
, "sd", &r
->sd
);
17645 ndr_print_bad_level(ndr
, name
, level
);
17649 static enum ndr_err_code
ndr_push_spoolss_Notify(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_Notify
*r
)
17651 if (ndr_flags
& NDR_SCALARS
) {
17652 NDR_CHECK(ndr_push_align(ndr
, 4));
17653 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
17654 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->field
, r
->type
));
17655 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
17656 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr
, NDR_SCALARS
, r
->variable_type
));
17657 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
17658 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
17659 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
17661 if (ndr_flags
& NDR_BUFFERS
) {
17662 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
17664 return NDR_ERR_SUCCESS
;
17667 static enum ndr_err_code
ndr_pull_spoolss_Notify(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Notify
*r
)
17669 if (ndr_flags
& NDR_SCALARS
) {
17670 NDR_CHECK(ndr_pull_align(ndr
, 4));
17671 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
17672 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->field
, r
->type
));
17673 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
17674 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr
, NDR_SCALARS
, &r
->variable_type
));
17675 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
17676 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
17677 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
17679 if (ndr_flags
& NDR_BUFFERS
) {
17680 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
17682 return NDR_ERR_SUCCESS
;
17685 _PUBLIC_
void ndr_print_spoolss_Notify(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Notify
*r
)
17687 ndr_print_struct(ndr
, name
, "spoolss_Notify");
17689 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
17690 ndr_print_set_switch_value(ndr
, &r
->field
, r
->type
);
17691 ndr_print_spoolss_Field(ndr
, "field", &r
->field
);
17692 ndr_print_spoolss_NotifyTable(ndr
, "variable_type", r
->variable_type
);
17693 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
17694 ndr_print_set_switch_value(ndr
, &r
->data
, r
->variable_type
);
17695 ndr_print_spoolss_NotifyData(ndr
, "data", &r
->data
);
17699 static enum ndr_err_code
ndr_push_spoolss_NotifyInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyInfo
*r
)
17701 uint32_t cntr_notifies_0
;
17702 if (ndr_flags
& NDR_SCALARS
) {
17703 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17704 NDR_CHECK(ndr_push_align(ndr
, 4));
17705 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
17706 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
17707 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17708 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
17709 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
17712 if (ndr_flags
& NDR_BUFFERS
) {
17713 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
17714 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
17717 return NDR_ERR_SUCCESS
;
17720 static enum ndr_err_code
ndr_pull_spoolss_NotifyInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyInfo
*r
)
17722 uint32_t cntr_notifies_0
;
17723 TALLOC_CTX
*_mem_save_notifies_0
;
17724 if (ndr_flags
& NDR_SCALARS
) {
17725 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notifies
));
17726 NDR_CHECK(ndr_pull_align(ndr
, 4));
17727 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
17728 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
17729 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
17730 NDR_PULL_ALLOC_N(ndr
, r
->notifies
, ndr_get_array_size(ndr
, &r
->notifies
));
17731 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17732 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
17733 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
17734 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
17736 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
17738 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->notifies
, r
->count
));
17741 if (ndr_flags
& NDR_BUFFERS
) {
17742 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17743 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
17744 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
17745 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
17747 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
17749 return NDR_ERR_SUCCESS
;
17752 _PUBLIC_
void ndr_print_spoolss_NotifyInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyInfo
*r
)
17754 uint32_t cntr_notifies_0
;
17755 ndr_print_struct(ndr
, name
, "spoolss_NotifyInfo");
17757 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
17758 ndr_print_uint32(ndr
, "flags", r
->flags
);
17759 ndr_print_uint32(ndr
, "count", r
->count
);
17760 ndr
->print(ndr
, "%s: ARRAY(%d)", "notifies", (int)r
->count
);
17762 for (cntr_notifies_0
=0;cntr_notifies_0
<r
->count
;cntr_notifies_0
++) {
17764 if (asprintf(&idx_0
, "[%d]", cntr_notifies_0
) != -1) {
17765 ndr_print_spoolss_Notify(ndr
, "notifies", &r
->notifies
[cntr_notifies_0
]);
17773 static enum ndr_err_code
ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_ReplyPrinterInfo
*r
)
17775 if (ndr_flags
& NDR_SCALARS
) {
17776 int level
= ndr_push_get_switch_value(ndr
, r
);
17777 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
17780 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
17784 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17787 if (ndr_flags
& NDR_BUFFERS
) {
17788 int level
= ndr_push_get_switch_value(ndr
, r
);
17792 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
17797 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17800 return NDR_ERR_SUCCESS
;
17803 static enum ndr_err_code
ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_ReplyPrinterInfo
*r
)
17807 TALLOC_CTX
*_mem_save_info0_0
;
17808 level
= ndr_pull_get_switch_value(ndr
, r
);
17809 if (ndr_flags
& NDR_SCALARS
) {
17810 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
17811 if (_level
!= level
) {
17812 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
17816 uint32_t _ptr_info0
;
17817 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
17819 NDR_PULL_ALLOC(ndr
, r
->info0
);
17826 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17829 if (ndr_flags
& NDR_BUFFERS
) {
17833 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17834 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
17835 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
17836 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
17841 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17844 return NDR_ERR_SUCCESS
;
17847 _PUBLIC_
void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_ReplyPrinterInfo
*r
)
17850 level
= ndr_print_get_switch_value(ndr
, r
);
17851 ndr_print_union(ndr
, name
, level
, "spoolss_ReplyPrinterInfo");
17854 ndr_print_ptr(ndr
, "info0", r
->info0
);
17857 ndr_print_spoolss_NotifyInfo(ndr
, "info0", r
->info0
);
17863 ndr_print_bad_level(ndr
, name
, level
);
17867 static enum ndr_err_code
ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17869 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17870 return NDR_ERR_SUCCESS
;
17873 static enum ndr_err_code
ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17876 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17878 return NDR_ERR_SUCCESS
;
17881 _PUBLIC_
void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17883 ndr_print_uint32(ndr
, name
, r
);
17885 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED
, r
);
17886 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED
, r
);
17887 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH
, r
);
17891 static enum ndr_err_code
ndr_push_spoolss_UserLevel1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel1
*r
)
17893 if (ndr_flags
& NDR_SCALARS
) {
17894 NDR_CHECK(ndr_push_align(ndr
, 4));
17895 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
17896 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
17897 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
17898 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
17899 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
17900 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
17901 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
17903 if (ndr_flags
& NDR_BUFFERS
) {
17905 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
17906 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17907 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
17908 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17911 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
17912 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17913 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
17914 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17917 return NDR_ERR_SUCCESS
;
17920 static enum ndr_err_code
ndr_pull_spoolss_UserLevel1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel1
*r
)
17922 uint32_t _ptr_client
;
17923 TALLOC_CTX
*_mem_save_client_0
;
17924 uint32_t _ptr_user
;
17925 TALLOC_CTX
*_mem_save_user_0
;
17926 if (ndr_flags
& NDR_SCALARS
) {
17927 NDR_CHECK(ndr_pull_align(ndr
, 4));
17928 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
17929 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
17931 NDR_PULL_ALLOC(ndr
, r
->client
);
17935 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
17937 NDR_PULL_ALLOC(ndr
, r
->user
);
17941 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
17942 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
17943 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
17944 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
17946 if (ndr_flags
& NDR_BUFFERS
) {
17948 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17949 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
17950 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
17951 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
17952 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
17953 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
));
17955 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
17956 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
17957 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
17960 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17961 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
17962 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
17963 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
17964 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
17965 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
));
17967 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
17968 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
17969 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
17972 return NDR_ERR_SUCCESS
;
17975 _PUBLIC_
void ndr_print_spoolss_UserLevel1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel1
*r
)
17977 ndr_print_struct(ndr
, name
, "spoolss_UserLevel1");
17979 ndr_print_uint32(ndr
, "size", r
->size
);
17980 ndr_print_ptr(ndr
, "client", r
->client
);
17983 ndr_print_string(ndr
, "client", r
->client
);
17986 ndr_print_ptr(ndr
, "user", r
->user
);
17989 ndr_print_string(ndr
, "user", r
->user
);
17992 ndr_print_uint32(ndr
, "build", r
->build
);
17993 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
17994 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
17995 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
17999 static enum ndr_err_code
ndr_push_spoolss_UserLevel2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel2
*r
)
18001 if (ndr_flags
& NDR_SCALARS
) {
18002 NDR_CHECK(ndr_push_align(ndr
, 4));
18003 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->not_used
));
18005 if (ndr_flags
& NDR_BUFFERS
) {
18007 return NDR_ERR_SUCCESS
;
18010 static enum ndr_err_code
ndr_pull_spoolss_UserLevel2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel2
*r
)
18012 if (ndr_flags
& NDR_SCALARS
) {
18013 NDR_CHECK(ndr_pull_align(ndr
, 4));
18014 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->not_used
));
18016 if (ndr_flags
& NDR_BUFFERS
) {
18018 return NDR_ERR_SUCCESS
;
18021 _PUBLIC_
void ndr_print_spoolss_UserLevel2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel2
*r
)
18023 ndr_print_struct(ndr
, name
, "spoolss_UserLevel2");
18025 ndr_print_uint32(ndr
, "not_used", r
->not_used
);
18029 static enum ndr_err_code
ndr_push_spoolss_UserLevel3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel3
*r
)
18031 if (ndr_flags
& NDR_SCALARS
) {
18032 NDR_CHECK(ndr_push_align(ndr
, 4));
18033 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
18034 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
18035 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size2
));
18036 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
18037 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
18038 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
18039 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
18040 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
18041 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
18042 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reserved
));
18044 if (ndr_flags
& NDR_BUFFERS
) {
18046 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18047 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18048 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
18049 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18052 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18053 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18054 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
18055 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18058 return NDR_ERR_SUCCESS
;
18061 static enum ndr_err_code
ndr_pull_spoolss_UserLevel3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel3
*r
)
18063 uint32_t _ptr_client
;
18064 TALLOC_CTX
*_mem_save_client_0
;
18065 uint32_t _ptr_user
;
18066 TALLOC_CTX
*_mem_save_user_0
;
18067 if (ndr_flags
& NDR_SCALARS
) {
18068 NDR_CHECK(ndr_pull_align(ndr
, 4));
18069 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18070 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
18071 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size2
));
18072 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
18074 NDR_PULL_ALLOC(ndr
, r
->client
);
18078 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
18080 NDR_PULL_ALLOC(ndr
, r
->user
);
18084 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
18085 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
18086 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
18087 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
18088 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reserved
));
18090 if (ndr_flags
& NDR_BUFFERS
) {
18092 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18093 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
18094 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
18095 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
18096 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
18097 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
));
18099 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
18100 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
18101 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
18104 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18105 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
18106 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
18107 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
18108 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
18109 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
));
18111 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
18112 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
18113 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
18116 return NDR_ERR_SUCCESS
;
18119 _PUBLIC_
void ndr_print_spoolss_UserLevel3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel3
*r
)
18121 ndr_print_struct(ndr
, name
, "spoolss_UserLevel3");
18123 ndr_print_uint32(ndr
, "size", r
->size
);
18124 ndr_print_uint32(ndr
, "flags", r
->flags
);
18125 ndr_print_uint32(ndr
, "size2", r
->size2
);
18126 ndr_print_ptr(ndr
, "client", r
->client
);
18129 ndr_print_string(ndr
, "client", r
->client
);
18132 ndr_print_ptr(ndr
, "user", r
->user
);
18135 ndr_print_string(ndr
, "user", r
->user
);
18138 ndr_print_uint32(ndr
, "build", r
->build
);
18139 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
18140 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
18141 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
18142 ndr_print_udlong(ndr
, "reserved", r
->reserved
);
18146 static enum ndr_err_code
ndr_push_spoolss_UserLevel(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_UserLevel
*r
)
18148 if (ndr_flags
& NDR_SCALARS
) {
18149 int level
= ndr_push_get_switch_value(ndr
, r
);
18150 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
18153 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level1
));
18157 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level2
));
18161 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level3
));
18165 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18168 if (ndr_flags
& NDR_BUFFERS
) {
18169 int level
= ndr_push_get_switch_value(ndr
, r
);
18173 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
18179 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
18185 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
18190 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18193 return NDR_ERR_SUCCESS
;
18196 static enum ndr_err_code
ndr_pull_spoolss_UserLevel(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_UserLevel
*r
)
18200 TALLOC_CTX
*_mem_save_level1_0
;
18201 TALLOC_CTX
*_mem_save_level2_0
;
18202 TALLOC_CTX
*_mem_save_level3_0
;
18203 level
= ndr_pull_get_switch_value(ndr
, r
);
18204 if (ndr_flags
& NDR_SCALARS
) {
18205 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
18206 if (_level
!= level
) {
18207 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
18211 uint32_t _ptr_level1
;
18212 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level1
));
18214 NDR_PULL_ALLOC(ndr
, r
->level1
);
18221 uint32_t _ptr_level2
;
18222 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level2
));
18224 NDR_PULL_ALLOC(ndr
, r
->level2
);
18231 uint32_t _ptr_level3
;
18232 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level3
));
18234 NDR_PULL_ALLOC(ndr
, r
->level3
);
18241 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18244 if (ndr_flags
& NDR_BUFFERS
) {
18248 _mem_save_level1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18249 NDR_PULL_SET_MEM_CTX(ndr
, r
->level1
, 0);
18250 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
18251 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level1_0
, 0);
18257 _mem_save_level2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18258 NDR_PULL_SET_MEM_CTX(ndr
, r
->level2
, 0);
18259 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
18260 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level2_0
, 0);
18266 _mem_save_level3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18267 NDR_PULL_SET_MEM_CTX(ndr
, r
->level3
, 0);
18268 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
18269 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level3_0
, 0);
18274 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18277 return NDR_ERR_SUCCESS
;
18280 _PUBLIC_
void ndr_print_spoolss_UserLevel(struct ndr_print
*ndr
, const char *name
, const union spoolss_UserLevel
*r
)
18283 level
= ndr_print_get_switch_value(ndr
, r
);
18284 ndr_print_union(ndr
, name
, level
, "spoolss_UserLevel");
18287 ndr_print_ptr(ndr
, "level1", r
->level1
);
18290 ndr_print_spoolss_UserLevel1(ndr
, "level1", r
->level1
);
18296 ndr_print_ptr(ndr
, "level2", r
->level2
);
18299 ndr_print_spoolss_UserLevel2(ndr
, "level2", r
->level2
);
18305 ndr_print_ptr(ndr
, "level3", r
->level3
);
18308 ndr_print_spoolss_UserLevel3(ndr
, "level3", r
->level3
);
18314 ndr_print_bad_level(ndr
, name
, level
);
18318 static enum ndr_err_code
ndr_push_spoolss_UserLevelCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevelCtr
*r
)
18320 if (ndr_flags
& NDR_SCALARS
) {
18321 NDR_CHECK(ndr_push_align(ndr
, 4));
18322 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
18323 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->user_info
, r
->level
));
18324 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
18326 if (ndr_flags
& NDR_BUFFERS
) {
18327 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
18329 return NDR_ERR_SUCCESS
;
18332 static enum ndr_err_code
ndr_pull_spoolss_UserLevelCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevelCtr
*r
)
18334 if (ndr_flags
& NDR_SCALARS
) {
18335 NDR_CHECK(ndr_pull_align(ndr
, 4));
18336 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
18337 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->user_info
, r
->level
));
18338 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
18340 if (ndr_flags
& NDR_BUFFERS
) {
18341 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
18343 return NDR_ERR_SUCCESS
;
18346 _PUBLIC_
void ndr_print_spoolss_UserLevelCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevelCtr
*r
)
18348 ndr_print_struct(ndr
, name
, "spoolss_UserLevelCtr");
18350 ndr_print_uint32(ndr
, "level", r
->level
);
18351 ndr_print_set_switch_value(ndr
, &r
->user_info
, r
->level
);
18352 ndr_print_spoolss_UserLevel(ndr
, "user_info", &r
->user_info
);
18356 static enum ndr_err_code
ndr_push_spoolss_AccessRights(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18358 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18359 return NDR_ERR_SUCCESS
;
18362 static enum ndr_err_code
ndr_pull_spoolss_AccessRights(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18365 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18367 return NDR_ERR_SUCCESS
;
18370 _PUBLIC_
void ndr_print_spoolss_AccessRights(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18372 ndr_print_uint32(ndr
, name
, r
);
18374 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER
, r
);
18375 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE
, r
);
18376 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER
, r
);
18377 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE
, r
);
18378 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER
, r
);
18379 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ
, r
);
18383 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterEnumValues(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterEnumValues
*r
)
18385 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
18386 if (ndr_flags
& NDR_SCALARS
) {
18387 NDR_CHECK(ndr_push_align(ndr
, 4));
18388 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18390 uint32_t _flags_save_string
= ndr
->flags
;
18391 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18392 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->value_name
));
18393 ndr
->flags
= _flags_save_string
;
18395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2 * strlen_m_term(r
->value_name
)));
18396 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->type
));
18397 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data
));
18398 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_PrinterData(r
->data
, r
->type
, ndr
->iconv_convenience
, ndr
->flags
)));
18400 if (ndr_flags
& NDR_BUFFERS
) {
18401 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
18403 uint32_t _flags_save_string
= ndr
->flags
;
18404 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18405 if (r
->value_name
) {
18406 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->value_name
));
18407 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->value_name
));
18409 ndr
->flags
= _flags_save_string
;
18412 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data
));
18414 struct ndr_push
*_ndr_data
;
18415 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_data
, 0, r
->data_length
));
18416 NDR_CHECK(ndr_push_set_switch_value(_ndr_data
, r
->data
, r
->type
));
18417 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, r
->data
));
18418 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_data
, 0, r
->data_length
));
18422 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18423 return NDR_ERR_SUCCESS
;
18426 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterEnumValues
*r
)
18428 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
18429 uint32_t _ptr_value_name
;
18430 TALLOC_CTX
*_mem_save_value_name_0
;
18431 uint32_t _ptr_data
;
18432 TALLOC_CTX
*_mem_save_data_0
;
18433 if (ndr_flags
& NDR_SCALARS
) {
18434 NDR_CHECK(ndr_pull_align(ndr
, 4));
18435 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
18437 uint32_t _flags_save_string
= ndr
->flags
;
18438 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18439 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_value_name
));
18440 if (_ptr_value_name
) {
18441 NDR_PULL_ALLOC(ndr
, r
->value_name
);
18442 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->value_name
, _ptr_value_name
));
18444 r
->value_name
= NULL
;
18446 ndr
->flags
= _flags_save_string
;
18448 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value_name_len
));
18449 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->type
));
18450 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data
));
18452 NDR_PULL_ALLOC(ndr
, r
->data
);
18453 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data
, _ptr_data
));
18457 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->data_length
));
18459 if (ndr_flags
& NDR_BUFFERS
) {
18460 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
18462 uint32_t _flags_save_string
= ndr
->flags
;
18463 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18464 if (r
->value_name
) {
18465 uint32_t _relative_save_offset
;
18466 _relative_save_offset
= ndr
->offset
;
18467 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->value_name
));
18468 _mem_save_value_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18469 NDR_PULL_SET_MEM_CTX(ndr
, r
->value_name
, 0);
18470 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->value_name
));
18471 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_name_0
, 0);
18472 ndr
->offset
= _relative_save_offset
;
18474 ndr
->flags
= _flags_save_string
;
18477 uint32_t _relative_save_offset
;
18478 _relative_save_offset
= ndr
->offset
;
18479 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data
));
18480 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18481 NDR_PULL_SET_MEM_CTX(ndr
, r
->data
, 0);
18483 struct ndr_pull
*_ndr_data
;
18484 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 0, r
->data_length
));
18485 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, r
->data
, r
->type
));
18486 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, r
->data
));
18487 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 0, r
->data_length
));
18489 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, 0);
18490 ndr
->offset
= _relative_save_offset
;
18493 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
18494 return NDR_ERR_SUCCESS
;
18497 _PUBLIC_
void ndr_print_spoolss_PrinterEnumValues(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterEnumValues
*r
)
18499 ndr_print_struct(ndr
, name
, "spoolss_PrinterEnumValues");
18501 ndr_print_ptr(ndr
, "value_name", r
->value_name
);
18503 if (r
->value_name
) {
18504 ndr_print_string(ndr
, "value_name", r
->value_name
);
18507 ndr_print_uint32(ndr
, "value_name_len", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2 * strlen_m_term(r
->value_name
):r
->value_name_len
);
18508 ndr_print_winreg_Type(ndr
, "type", r
->type
);
18509 ndr_print_ptr(ndr
, "data", r
->data
);
18512 ndr_print_set_switch_value(ndr
, r
->data
, r
->type
);
18513 ndr_print_spoolss_PrinterData(ndr
, "data", r
->data
);
18516 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
);
18520 _PUBLIC_
size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues
*r
, struct smb_iconv_convenience
*ic
, int flags
)
18522 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterEnumValues
, ic
);
18525 static enum ndr_err_code
ndr_push_spoolss_KeyNames(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_KeyNames
*r
)
18527 if (ndr_flags
& NDR_SCALARS
) {
18528 int level
= ndr_push_get_switch_value(ndr
, r
);
18538 uint32_t _flags_save_string_array
= ndr
->flags
;
18539 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18540 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
18541 ndr
->flags
= _flags_save_string_array
;
18547 if (ndr_flags
& NDR_BUFFERS
) {
18548 int level
= ndr_push_get_switch_value(ndr
, r
);
18561 return NDR_ERR_SUCCESS
;
18564 static enum ndr_err_code
ndr_pull_spoolss_KeyNames(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_KeyNames
*r
)
18567 level
= ndr_pull_get_switch_value(ndr
, r
);
18568 if (ndr_flags
& NDR_SCALARS
) {
18578 uint32_t _flags_save_string_array
= ndr
->flags
;
18579 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18580 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
18581 ndr
->flags
= _flags_save_string_array
;
18587 if (ndr_flags
& NDR_BUFFERS
) {
18600 return NDR_ERR_SUCCESS
;
18603 _PUBLIC_
void ndr_print_spoolss_KeyNames(struct ndr_print
*ndr
, const char *name
, const union spoolss_KeyNames
*r
)
18606 level
= ndr_print_get_switch_value(ndr
, r
);
18607 ndr_print_union(ndr
, name
, level
, "spoolss_KeyNames");
18616 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
18622 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeleteDriverFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18624 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18625 return NDR_ERR_SUCCESS
;
18628 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18631 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18633 return NDR_ERR_SUCCESS
;
18636 _PUBLIC_
void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18638 ndr_print_uint32(ndr
, name
, r
);
18640 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES
, r
);
18641 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION
, r
);
18642 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES
, r
);
18646 static enum ndr_err_code
ndr_push_spoolss_PortProtocol(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortProtocol r
)
18648 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18649 return NDR_ERR_SUCCESS
;
18652 static enum ndr_err_code
ndr_pull_spoolss_PortProtocol(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortProtocol
*r
)
18655 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18657 return NDR_ERR_SUCCESS
;
18660 _PUBLIC_
void ndr_print_spoolss_PortProtocol(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortProtocol r
)
18662 const char *val
= NULL
;
18665 case PROTOCOL_RAWTCP_TYPE
: val
= "PROTOCOL_RAWTCP_TYPE"; break;
18666 case PROTOCOL_LPR_TYPE
: val
= "PROTOCOL_LPR_TYPE"; break;
18668 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18671 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData1
*r
)
18673 if (ndr_flags
& NDR_SCALARS
) {
18674 NDR_CHECK(ndr_push_align(ndr
, 4));
18675 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
18676 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000001));
18677 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
18678 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
18679 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
18680 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
18681 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
18682 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
18683 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
18684 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
18685 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
18686 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
18687 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
18688 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
18689 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
18691 if (ndr_flags
& NDR_BUFFERS
) {
18693 return NDR_ERR_SUCCESS
;
18696 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData1
*r
)
18698 if (ndr_flags
& NDR_SCALARS
) {
18699 NDR_CHECK(ndr_pull_align(ndr
, 4));
18700 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
18701 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
18702 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
18703 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18704 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
18705 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
18706 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
18707 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
18708 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
18709 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
18710 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
18711 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
18712 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
18713 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
18714 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
18716 if (ndr_flags
& NDR_BUFFERS
) {
18718 return NDR_ERR_SUCCESS
;
18721 _PUBLIC_
void ndr_print_spoolss_PortData1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData1
*r
)
18723 ndr_print_struct(ndr
, name
, "spoolss_PortData1");
18725 ndr_print_string(ndr
, "portname", r
->portname
);
18726 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000001:r
->version
);
18727 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
18728 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
18729 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
18730 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
18731 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
18732 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
18733 ndr_print_string(ndr
, "queue", r
->queue
);
18734 ndr_print_string(ndr
, "ip_address", r
->ip_address
);
18735 ndr_print_string(ndr
, "hardware_address", r
->hardware_address
);
18736 ndr_print_string(ndr
, "device_type", r
->device_type
);
18737 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
18738 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
18739 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
18743 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData2
*r
)
18745 if (ndr_flags
& NDR_SCALARS
) {
18746 NDR_CHECK(ndr_push_align(ndr
, 4));
18747 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
18748 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000002));
18749 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
18750 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
18751 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
18752 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
18753 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
18754 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
18755 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
18756 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
18757 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
18758 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
18759 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
18760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_monitor_mib_index
));
18762 if (ndr_flags
& NDR_BUFFERS
) {
18764 return NDR_ERR_SUCCESS
;
18767 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData2
*r
)
18769 if (ndr_flags
& NDR_SCALARS
) {
18770 NDR_CHECK(ndr_pull_align(ndr
, 4));
18771 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
18772 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
18773 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
18774 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18775 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
18776 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
18777 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
18778 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
18779 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
18780 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
18781 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
18782 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
18783 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
18784 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_monitor_mib_index
));
18786 if (ndr_flags
& NDR_BUFFERS
) {
18788 return NDR_ERR_SUCCESS
;
18791 _PUBLIC_
void ndr_print_spoolss_PortData2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData2
*r
)
18793 ndr_print_struct(ndr
, name
, "spoolss_PortData2");
18795 ndr_print_string(ndr
, "portname", r
->portname
);
18796 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000002:r
->version
);
18797 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
18798 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
18799 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
18800 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
18801 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
18802 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
18803 ndr_print_string(ndr
, "queue", r
->queue
);
18804 ndr_print_string(ndr
, "device_type", r
->device_type
);
18805 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
18806 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
18807 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
18808 ndr_print_uint32(ndr
, "port_monitor_mib_index", r
->port_monitor_mib_index
);
18812 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorUi(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorUi
*r
)
18814 if (ndr_flags
& NDR_SCALARS
) {
18815 NDR_CHECK(ndr_push_align(ndr
, 4));
18817 uint32_t _flags_save_string
= ndr
->flags
;
18818 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18819 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
18820 ndr
->flags
= _flags_save_string
;
18823 if (ndr_flags
& NDR_BUFFERS
) {
18825 return NDR_ERR_SUCCESS
;
18828 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorUi(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorUi
*r
)
18830 if (ndr_flags
& NDR_SCALARS
) {
18831 NDR_CHECK(ndr_pull_align(ndr
, 4));
18833 uint32_t _flags_save_string
= ndr
->flags
;
18834 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18835 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
18836 ndr
->flags
= _flags_save_string
;
18839 if (ndr_flags
& NDR_BUFFERS
) {
18841 return NDR_ERR_SUCCESS
;
18844 _PUBLIC_
void ndr_print_spoolss_MonitorUi(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorUi
*r
)
18846 ndr_print_struct(ndr
, name
, "spoolss_MonitorUi");
18848 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
18852 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18854 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18855 return NDR_ERR_SUCCESS
;
18858 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18861 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18863 return NDR_ERR_SUCCESS
;
18866 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18868 ndr_print_uint32(ndr
, name
, r
);
18870 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE
, r
);
18871 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE
, r
);
18872 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES
, r
);
18873 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES
, r
);
18874 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY
, r
);
18875 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER
, r
);
18876 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS
, r
);
18877 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE
, r
);
18881 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinters
*r
)
18883 if (flags
& NDR_IN
) {
18884 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
18885 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
18886 if (r
->in
.server
) {
18887 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
18888 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18889 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
18890 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18892 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18893 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
18894 if (r
->in
.buffer
) {
18895 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
18897 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
18899 if (flags
& NDR_OUT
) {
18900 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
18902 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
18904 if (r
->out
.needed
== NULL
) {
18905 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18907 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
18908 if (r
->out
.count
== NULL
) {
18909 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18911 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
18912 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18914 return NDR_ERR_SUCCESS
;
18917 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinters
*r
)
18919 uint32_t _ptr_server
;
18920 uint32_t _ptr_buffer
;
18921 uint32_t _ptr_info
;
18922 TALLOC_CTX
*_mem_save_server_0
;
18923 TALLOC_CTX
*_mem_save_buffer_0
;
18924 TALLOC_CTX
*_mem_save_info_0
;
18925 TALLOC_CTX
*_mem_save_needed_0
;
18926 TALLOC_CTX
*_mem_save_count_0
;
18927 if (flags
& NDR_IN
) {
18928 ZERO_STRUCT(r
->out
);
18930 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
18931 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
18933 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
18935 r
->in
.server
= NULL
;
18937 if (r
->in
.server
) {
18938 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18939 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
18940 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
18941 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
18942 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
18943 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
));
18945 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
18946 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
18947 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
18949 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
18950 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
18952 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
18954 r
->in
.buffer
= NULL
;
18956 if (r
->in
.buffer
) {
18957 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18958 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
18959 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
18960 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
18962 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
18963 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18964 ZERO_STRUCTP(r
->out
.needed
);
18965 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
18966 ZERO_STRUCTP(r
->out
.count
);
18968 if (flags
& NDR_OUT
) {
18969 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
18971 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
18973 r
->out
.info
= NULL
;
18976 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18977 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
18978 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
18979 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
18981 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18982 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18984 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18985 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
18986 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
18987 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
18988 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18989 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
18991 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18992 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
18993 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
18994 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
18995 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18997 return NDR_ERR_SUCCESS
;
19000 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinters
*r
)
19002 uint32_t cntr_info_0
;
19003 if (flags
& NDR_IN
) {
19004 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19005 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
19007 if (flags
& NDR_OUT
) {
19008 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19009 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19010 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19012 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19013 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19016 return NDR_ERR_SUCCESS
;
19019 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinters
*r
)
19021 uint32_t cntr_info_0
;
19022 TALLOC_CTX
*_mem_save_info_0
;
19023 if (flags
& NDR_IN
) {
19024 ZERO_STRUCT(r
->out
);
19026 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19027 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
19029 if (flags
& NDR_OUT
) {
19030 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
19031 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19032 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19033 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19034 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19035 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19037 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19038 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19040 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19042 return NDR_ERR_SUCCESS
;
19045 _PUBLIC_
void ndr_print_spoolss_EnumPrinters(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinters
*r
)
19047 uint32_t cntr_info_2
;
19048 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinters");
19050 if (flags
& NDR_SET_VALUES
) {
19051 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19053 if (flags
& NDR_IN
) {
19054 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinters");
19056 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->in
.flags
);
19057 ndr_print_ptr(ndr
, "server", r
->in
.server
);
19059 if (r
->in
.server
) {
19060 ndr_print_string(ndr
, "server", r
->in
.server
);
19063 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19064 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19066 if (r
->in
.buffer
) {
19067 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19070 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19073 if (flags
& NDR_OUT
) {
19074 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinters");
19076 ndr_print_ptr(ndr
, "count", r
->out
.count
);
19078 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
19080 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19082 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
19084 if (*r
->out
.info
) {
19085 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
19087 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
19089 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
19090 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
19091 ndr_print_spoolss_PrinterInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
19099 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19101 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19103 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19109 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinter
*r
)
19111 if (flags
& NDR_IN
) {
19112 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
19113 if (r
->in
.printername
) {
19114 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
19115 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19116 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
19117 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19119 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
19120 if (r
->in
.datatype
) {
19121 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
19122 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19123 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
19124 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19126 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
19127 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
19129 if (flags
& NDR_OUT
) {
19130 if (r
->out
.handle
== NULL
) {
19131 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19133 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
19134 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19136 return NDR_ERR_SUCCESS
;
19139 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinter
*r
)
19141 uint32_t _ptr_printername
;
19142 uint32_t _ptr_datatype
;
19143 TALLOC_CTX
*_mem_save_printername_0
;
19144 TALLOC_CTX
*_mem_save_datatype_0
;
19145 TALLOC_CTX
*_mem_save_handle_0
;
19146 if (flags
& NDR_IN
) {
19147 ZERO_STRUCT(r
->out
);
19149 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
19150 if (_ptr_printername
) {
19151 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
19153 r
->in
.printername
= NULL
;
19155 if (r
->in
.printername
) {
19156 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19157 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
19158 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
19159 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
19160 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
19161 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
));
19163 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
19164 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
19165 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
19167 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
19168 if (_ptr_datatype
) {
19169 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
19171 r
->in
.datatype
= NULL
;
19173 if (r
->in
.datatype
) {
19174 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19175 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
19176 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
19177 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
19178 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
19179 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
));
19181 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
19182 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
19183 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
19185 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
19186 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
19187 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
19188 ZERO_STRUCTP(r
->out
.handle
);
19190 if (flags
& NDR_OUT
) {
19191 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19192 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
19194 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19195 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19196 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
19197 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19198 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19200 return NDR_ERR_SUCCESS
;
19203 _PUBLIC_
void ndr_print_spoolss_OpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinter
*r
)
19205 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinter");
19207 if (flags
& NDR_SET_VALUES
) {
19208 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19210 if (flags
& NDR_IN
) {
19211 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinter");
19213 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
19215 if (r
->in
.printername
) {
19216 ndr_print_string(ndr
, "printername", r
->in
.printername
);
19219 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
19221 if (r
->in
.datatype
) {
19222 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
19225 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
19226 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
19229 if (flags
& NDR_OUT
) {
19230 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinter");
19232 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
19234 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
19236 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19242 static enum ndr_err_code
ndr_push_spoolss_SetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetJob
*r
)
19244 if (flags
& NDR_IN
) {
19245 if (r
->in
.handle
== NULL
) {
19246 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19248 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19249 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
19250 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.ctr
));
19252 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
19254 NDR_CHECK(ndr_push_spoolss_JobControl(ndr
, NDR_SCALARS
, r
->in
.command
));
19256 if (flags
& NDR_OUT
) {
19257 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19259 return NDR_ERR_SUCCESS
;
19262 static enum ndr_err_code
ndr_pull_spoolss_SetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetJob
*r
)
19265 TALLOC_CTX
*_mem_save_handle_0
;
19266 TALLOC_CTX
*_mem_save_ctr_0
;
19267 if (flags
& NDR_IN
) {
19268 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19269 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19271 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19272 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19273 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19274 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19275 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
19276 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
19278 NDR_PULL_ALLOC(ndr
, r
->in
.ctr
);
19283 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19284 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.ctr
, 0);
19285 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
19286 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, 0);
19288 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
19290 if (flags
& NDR_OUT
) {
19291 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19293 return NDR_ERR_SUCCESS
;
19296 _PUBLIC_
void ndr_print_spoolss_SetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetJob
*r
)
19298 ndr_print_struct(ndr
, name
, "spoolss_SetJob");
19300 if (flags
& NDR_SET_VALUES
) {
19301 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19303 if (flags
& NDR_IN
) {
19304 ndr_print_struct(ndr
, "in", "spoolss_SetJob");
19306 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19308 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19310 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
19311 ndr_print_ptr(ndr
, "ctr", r
->in
.ctr
);
19314 ndr_print_spoolss_JobInfoContainer(ndr
, "ctr", r
->in
.ctr
);
19317 ndr_print_spoolss_JobControl(ndr
, "command", r
->in
.command
);
19320 if (flags
& NDR_OUT
) {
19321 ndr_print_struct(ndr
, "out", "spoolss_SetJob");
19323 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19329 static enum ndr_err_code
ndr_push_spoolss_GetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetJob
*r
)
19331 if (flags
& NDR_IN
) {
19332 if (r
->in
.handle
== NULL
) {
19333 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19335 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19336 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
19337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19338 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19339 if (r
->in
.buffer
) {
19340 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19342 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19344 if (flags
& NDR_OUT
) {
19345 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19348 struct ndr_push
*_ndr_info
;
19349 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
19350 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
19351 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
19352 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
19355 if (r
->out
.needed
== NULL
) {
19356 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19358 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19359 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19361 return NDR_ERR_SUCCESS
;
19364 static enum ndr_err_code
ndr_pull_spoolss_GetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetJob
*r
)
19366 uint32_t _ptr_buffer
;
19367 uint32_t _ptr_info
;
19368 TALLOC_CTX
*_mem_save_handle_0
;
19369 TALLOC_CTX
*_mem_save_buffer_0
;
19370 TALLOC_CTX
*_mem_save_info_0
;
19371 TALLOC_CTX
*_mem_save_needed_0
;
19372 if (flags
& NDR_IN
) {
19373 ZERO_STRUCT(r
->out
);
19375 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19376 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19378 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19379 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19380 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19381 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19382 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
19383 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19384 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19386 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19388 r
->in
.buffer
= NULL
;
19390 if (r
->in
.buffer
) {
19391 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19392 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19393 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19394 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19396 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19397 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19398 ZERO_STRUCTP(r
->out
.needed
);
19400 if (flags
& NDR_OUT
) {
19401 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19403 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19405 r
->out
.info
= NULL
;
19408 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19409 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19411 struct ndr_pull
*_ndr_info
;
19412 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
19413 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
19414 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
19415 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
19417 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19419 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19420 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19422 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19423 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19424 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19425 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19426 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19428 return NDR_ERR_SUCCESS
;
19431 _PUBLIC_
void ndr_print_spoolss_GetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetJob
*r
)
19433 ndr_print_struct(ndr
, name
, "spoolss_GetJob");
19435 if (flags
& NDR_SET_VALUES
) {
19436 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19438 if (flags
& NDR_IN
) {
19439 ndr_print_struct(ndr
, "in", "spoolss_GetJob");
19441 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19443 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19445 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
19446 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19447 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19449 if (r
->in
.buffer
) {
19450 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19453 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19456 if (flags
& NDR_OUT
) {
19457 ndr_print_struct(ndr
, "out", "spoolss_GetJob");
19459 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19462 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
19463 ndr_print_spoolss_JobInfo(ndr
, "info", r
->out
.info
);
19466 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19468 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19470 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19476 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumJobs
*r
)
19478 if (flags
& NDR_IN
) {
19479 if (r
->in
.handle
== NULL
) {
19480 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19482 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19483 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.firstjob
));
19484 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.numjobs
));
19485 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19486 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19487 if (r
->in
.buffer
) {
19488 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19490 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19492 if (flags
& NDR_OUT
) {
19493 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19495 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
19497 if (r
->out
.needed
== NULL
) {
19498 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19500 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19501 if (r
->out
.count
== NULL
) {
19502 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19504 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
19505 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19507 return NDR_ERR_SUCCESS
;
19510 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumJobs
*r
)
19512 uint32_t _ptr_buffer
;
19513 uint32_t _ptr_info
;
19514 TALLOC_CTX
*_mem_save_handle_0
;
19515 TALLOC_CTX
*_mem_save_buffer_0
;
19516 TALLOC_CTX
*_mem_save_info_0
;
19517 TALLOC_CTX
*_mem_save_needed_0
;
19518 TALLOC_CTX
*_mem_save_count_0
;
19519 if (flags
& NDR_IN
) {
19520 ZERO_STRUCT(r
->out
);
19522 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19523 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19525 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19526 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19527 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19528 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19529 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.firstjob
));
19530 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.numjobs
));
19531 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19532 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19534 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19536 r
->in
.buffer
= NULL
;
19538 if (r
->in
.buffer
) {
19539 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19540 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19541 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19542 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19544 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19545 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19546 ZERO_STRUCTP(r
->out
.needed
);
19547 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19548 ZERO_STRUCTP(r
->out
.count
);
19550 if (flags
& NDR_OUT
) {
19551 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19553 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19555 r
->out
.info
= NULL
;
19558 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19559 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19560 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
19561 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19563 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19564 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19566 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19567 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19568 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19569 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19570 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19571 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19573 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19574 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
19575 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
19576 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
19577 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19579 return NDR_ERR_SUCCESS
;
19582 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumJobs
*r
)
19584 uint32_t cntr_info_0
;
19585 if (flags
& NDR_IN
) {
19586 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19587 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
19589 if (flags
& NDR_OUT
) {
19590 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19591 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19592 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19594 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19595 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19598 return NDR_ERR_SUCCESS
;
19601 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumJobs
*r
)
19603 uint32_t cntr_info_0
;
19604 TALLOC_CTX
*_mem_save_info_0
;
19605 if (flags
& NDR_IN
) {
19606 ZERO_STRUCT(r
->out
);
19608 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19609 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
19611 if (flags
& NDR_OUT
) {
19612 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
19613 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19614 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19615 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19616 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19617 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19619 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19620 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19622 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19624 return NDR_ERR_SUCCESS
;
19627 _PUBLIC_
void ndr_print_spoolss_EnumJobs(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumJobs
*r
)
19629 uint32_t cntr_info_2
;
19630 ndr_print_struct(ndr
, name
, "spoolss_EnumJobs");
19632 if (flags
& NDR_SET_VALUES
) {
19633 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19635 if (flags
& NDR_IN
) {
19636 ndr_print_struct(ndr
, "in", "spoolss_EnumJobs");
19638 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19640 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19642 ndr_print_uint32(ndr
, "firstjob", r
->in
.firstjob
);
19643 ndr_print_uint32(ndr
, "numjobs", r
->in
.numjobs
);
19644 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19645 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19647 if (r
->in
.buffer
) {
19648 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19651 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19654 if (flags
& NDR_OUT
) {
19655 ndr_print_struct(ndr
, "out", "spoolss_EnumJobs");
19657 ndr_print_ptr(ndr
, "count", r
->out
.count
);
19659 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
19661 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19663 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
19665 if (*r
->out
.info
) {
19666 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
19668 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
19670 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
19671 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
19672 ndr_print_spoolss_JobInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
19680 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19682 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19684 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19690 static enum ndr_err_code
ndr_push_spoolss_AddPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinter
*r
)
19692 if (flags
& NDR_IN
) {
19694 if (flags
& NDR_OUT
) {
19695 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19697 return NDR_ERR_SUCCESS
;
19700 static enum ndr_err_code
ndr_pull_spoolss_AddPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinter
*r
)
19702 if (flags
& NDR_IN
) {
19704 if (flags
& NDR_OUT
) {
19705 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19707 return NDR_ERR_SUCCESS
;
19710 _PUBLIC_
void ndr_print_spoolss_AddPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinter
*r
)
19712 ndr_print_struct(ndr
, name
, "spoolss_AddPrinter");
19714 if (flags
& NDR_SET_VALUES
) {
19715 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19717 if (flags
& NDR_IN
) {
19718 ndr_print_struct(ndr
, "in", "spoolss_AddPrinter");
19722 if (flags
& NDR_OUT
) {
19723 ndr_print_struct(ndr
, "out", "spoolss_AddPrinter");
19725 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19731 static enum ndr_err_code
ndr_push_spoolss_DeletePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinter
*r
)
19733 if (flags
& NDR_IN
) {
19734 if (r
->in
.handle
== NULL
) {
19735 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19737 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19739 if (flags
& NDR_OUT
) {
19740 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19742 return NDR_ERR_SUCCESS
;
19745 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinter
*r
)
19747 TALLOC_CTX
*_mem_save_handle_0
;
19748 if (flags
& NDR_IN
) {
19749 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19750 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19752 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19753 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19754 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19755 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19757 if (flags
& NDR_OUT
) {
19758 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19760 return NDR_ERR_SUCCESS
;
19763 _PUBLIC_
void ndr_print_spoolss_DeletePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinter
*r
)
19765 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinter");
19767 if (flags
& NDR_SET_VALUES
) {
19768 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19770 if (flags
& NDR_IN
) {
19771 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinter");
19773 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19775 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19779 if (flags
& NDR_OUT
) {
19780 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinter");
19782 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19788 static enum ndr_err_code
ndr_push_spoolss_SetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinter
*r
)
19790 if (flags
& NDR_IN
) {
19791 if (r
->in
.handle
== NULL
) {
19792 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19794 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19795 if (r
->in
.info_ctr
== NULL
) {
19796 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19798 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
19799 if (r
->in
.devmode_ctr
== NULL
) {
19800 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19802 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
19803 if (r
->in
.secdesc_ctr
== NULL
) {
19804 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19806 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
19807 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr
, NDR_SCALARS
, r
->in
.command
));
19809 if (flags
& NDR_OUT
) {
19810 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19812 return NDR_ERR_SUCCESS
;
19815 static enum ndr_err_code
ndr_pull_spoolss_SetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinter
*r
)
19817 TALLOC_CTX
*_mem_save_handle_0
;
19818 TALLOC_CTX
*_mem_save_info_ctr_0
;
19819 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
19820 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
19821 if (flags
& NDR_IN
) {
19822 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19823 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19825 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19826 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19827 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19828 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19829 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19830 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
19832 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19833 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
19834 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
19835 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
19836 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19837 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
19839 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19840 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
19841 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
19842 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
19843 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19844 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
19846 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19847 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
19848 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
19849 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
19850 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
19852 if (flags
& NDR_OUT
) {
19853 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19855 return NDR_ERR_SUCCESS
;
19858 _PUBLIC_
void ndr_print_spoolss_SetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinter
*r
)
19860 ndr_print_struct(ndr
, name
, "spoolss_SetPrinter");
19862 if (flags
& NDR_SET_VALUES
) {
19863 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19865 if (flags
& NDR_IN
) {
19866 ndr_print_struct(ndr
, "in", "spoolss_SetPrinter");
19868 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19870 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19872 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
19874 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
19876 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
19878 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
19880 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
19882 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
19884 ndr_print_spoolss_PrinterControl(ndr
, "command", r
->in
.command
);
19887 if (flags
& NDR_OUT
) {
19888 ndr_print_struct(ndr
, "out", "spoolss_SetPrinter");
19890 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19896 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinter
*r
)
19898 if (flags
& NDR_IN
) {
19899 if (r
->in
.handle
== NULL
) {
19900 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19902 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19903 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19904 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19905 if (r
->in
.buffer
) {
19906 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19908 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19910 if (flags
& NDR_OUT
) {
19911 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19914 struct ndr_push
*_ndr_info
;
19915 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
19916 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
19917 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
19918 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
19921 if (r
->out
.needed
== NULL
) {
19922 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19924 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19925 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19927 return NDR_ERR_SUCCESS
;
19930 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinter
*r
)
19932 uint32_t _ptr_buffer
;
19933 uint32_t _ptr_info
;
19934 TALLOC_CTX
*_mem_save_handle_0
;
19935 TALLOC_CTX
*_mem_save_buffer_0
;
19936 TALLOC_CTX
*_mem_save_info_0
;
19937 TALLOC_CTX
*_mem_save_needed_0
;
19938 if (flags
& NDR_IN
) {
19939 ZERO_STRUCT(r
->out
);
19941 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19942 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19944 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19945 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19946 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19947 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19948 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19949 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19951 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19953 r
->in
.buffer
= NULL
;
19955 if (r
->in
.buffer
) {
19956 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19957 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19958 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19961 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19962 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19963 ZERO_STRUCTP(r
->out
.needed
);
19965 if (flags
& NDR_OUT
) {
19966 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19968 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19970 r
->out
.info
= NULL
;
19973 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19974 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19976 struct ndr_pull
*_ndr_info
;
19977 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
19978 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
19979 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
19980 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
19982 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19984 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19985 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19987 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19988 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19989 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19990 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19991 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19993 return NDR_ERR_SUCCESS
;
19996 _PUBLIC_
void ndr_print_spoolss_GetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinter
*r
)
19998 ndr_print_struct(ndr
, name
, "spoolss_GetPrinter");
20000 if (flags
& NDR_SET_VALUES
) {
20001 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20003 if (flags
& NDR_IN
) {
20004 ndr_print_struct(ndr
, "in", "spoolss_GetPrinter");
20006 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20008 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20010 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20011 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20013 if (r
->in
.buffer
) {
20014 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20017 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20020 if (flags
& NDR_OUT
) {
20021 ndr_print_struct(ndr
, "out", "spoolss_GetPrinter");
20023 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20026 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
20027 ndr_print_spoolss_PrinterInfo(ndr
, "info", r
->out
.info
);
20030 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20032 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20034 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20040 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
20042 if (flags
& NDR_IN
) {
20043 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
20044 if (r
->in
.servername
) {
20045 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20046 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20047 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20048 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20050 if (r
->in
.info_ctr
== NULL
) {
20051 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20053 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20055 if (flags
& NDR_OUT
) {
20056 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20058 return NDR_ERR_SUCCESS
;
20061 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriver
*r
)
20063 uint32_t _ptr_servername
;
20064 TALLOC_CTX
*_mem_save_servername_0
;
20065 TALLOC_CTX
*_mem_save_info_ctr_0
;
20066 if (flags
& NDR_IN
) {
20067 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
20068 if (_ptr_servername
) {
20069 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
20071 r
->in
.servername
= NULL
;
20073 if (r
->in
.servername
) {
20074 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20075 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
20076 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
20077 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
20078 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
20079 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
));
20081 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
20082 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
20083 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
20085 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20086 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
20088 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20089 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
20090 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
20091 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
20093 if (flags
& NDR_OUT
) {
20094 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20096 return NDR_ERR_SUCCESS
;
20099 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
20101 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriver");
20103 if (flags
& NDR_SET_VALUES
) {
20104 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20106 if (flags
& NDR_IN
) {
20107 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriver");
20109 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
20111 if (r
->in
.servername
) {
20112 ndr_print_string(ndr
, "servername", r
->in
.servername
);
20115 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
20117 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
20121 if (flags
& NDR_OUT
) {
20122 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriver");
20124 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20130 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDrivers
*r
)
20132 if (flags
& NDR_IN
) {
20133 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20134 if (r
->in
.server
) {
20135 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20136 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20137 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20138 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20140 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
20141 if (r
->in
.environment
) {
20142 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20143 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20144 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20145 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20147 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20148 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20149 if (r
->in
.buffer
) {
20150 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20152 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20154 if (flags
& NDR_OUT
) {
20155 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20157 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20159 if (r
->out
.needed
== NULL
) {
20160 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20163 if (r
->out
.count
== NULL
) {
20164 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20166 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20167 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20169 return NDR_ERR_SUCCESS
;
20172 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDrivers
*r
)
20174 uint32_t _ptr_server
;
20175 uint32_t _ptr_environment
;
20176 uint32_t _ptr_buffer
;
20177 uint32_t _ptr_info
;
20178 TALLOC_CTX
*_mem_save_server_0
;
20179 TALLOC_CTX
*_mem_save_environment_0
;
20180 TALLOC_CTX
*_mem_save_buffer_0
;
20181 TALLOC_CTX
*_mem_save_info_0
;
20182 TALLOC_CTX
*_mem_save_needed_0
;
20183 TALLOC_CTX
*_mem_save_count_0
;
20184 if (flags
& NDR_IN
) {
20185 ZERO_STRUCT(r
->out
);
20187 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20189 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20191 r
->in
.server
= NULL
;
20193 if (r
->in
.server
) {
20194 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20195 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20196 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20197 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20198 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20199 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
));
20201 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20202 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20203 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20205 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
20206 if (_ptr_environment
) {
20207 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
20209 r
->in
.environment
= NULL
;
20211 if (r
->in
.environment
) {
20212 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20213 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
20214 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
20215 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
20216 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
20217 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
));
20219 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
20220 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
20221 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
20223 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20224 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20226 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20228 r
->in
.buffer
= NULL
;
20230 if (r
->in
.buffer
) {
20231 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20232 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20233 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20234 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20236 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20237 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20238 ZERO_STRUCTP(r
->out
.needed
);
20239 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20240 ZERO_STRUCTP(r
->out
.count
);
20242 if (flags
& NDR_OUT
) {
20243 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20245 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20247 r
->out
.info
= NULL
;
20250 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20251 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20252 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
20253 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20255 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20256 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20258 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20259 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20260 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20261 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20262 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20263 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20265 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20266 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
20267 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
20268 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
20269 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20271 return NDR_ERR_SUCCESS
;
20274 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDrivers
*r
)
20276 uint32_t cntr_info_0
;
20277 if (flags
& NDR_IN
) {
20278 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20279 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
20281 if (flags
& NDR_OUT
) {
20282 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20283 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20284 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20286 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20287 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20290 return NDR_ERR_SUCCESS
;
20293 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDrivers
*r
)
20295 uint32_t cntr_info_0
;
20296 TALLOC_CTX
*_mem_save_info_0
;
20297 if (flags
& NDR_IN
) {
20298 ZERO_STRUCT(r
->out
);
20300 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20301 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
20303 if (flags
& NDR_OUT
) {
20304 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
20305 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20306 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20307 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20308 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20309 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20311 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20312 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20314 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20316 return NDR_ERR_SUCCESS
;
20319 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDrivers
*r
)
20321 uint32_t cntr_info_2
;
20322 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDrivers");
20324 if (flags
& NDR_SET_VALUES
) {
20325 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20327 if (flags
& NDR_IN
) {
20328 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDrivers");
20330 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20332 if (r
->in
.server
) {
20333 ndr_print_string(ndr
, "server", r
->in
.server
);
20336 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
20338 if (r
->in
.environment
) {
20339 ndr_print_string(ndr
, "environment", r
->in
.environment
);
20342 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20343 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20345 if (r
->in
.buffer
) {
20346 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20349 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20352 if (flags
& NDR_OUT
) {
20353 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDrivers");
20355 ndr_print_ptr(ndr
, "count", r
->out
.count
);
20357 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
20359 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20361 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
20363 if (*r
->out
.info
) {
20364 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
20366 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
20368 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
20369 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
20370 ndr_print_spoolss_DriverInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
20378 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20380 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20382 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20388 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
20390 if (flags
& NDR_IN
) {
20392 if (flags
& NDR_OUT
) {
20393 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20395 return NDR_ERR_SUCCESS
;
20398 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver
*r
)
20400 if (flags
& NDR_IN
) {
20402 if (flags
& NDR_OUT
) {
20403 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20405 return NDR_ERR_SUCCESS
;
20408 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
20410 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver");
20412 if (flags
& NDR_SET_VALUES
) {
20413 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20415 if (flags
& NDR_IN
) {
20416 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver");
20420 if (flags
& NDR_OUT
) {
20421 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver");
20423 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20429 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
20431 if (flags
& NDR_IN
) {
20432 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20433 if (r
->in
.server
) {
20434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20436 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20437 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20439 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
20440 if (r
->in
.environment
) {
20441 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20442 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20443 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20444 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20446 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20447 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20448 if (r
->in
.buffer
) {
20449 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20451 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20453 if (flags
& NDR_OUT
) {
20454 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20457 struct ndr_push
*_ndr_info
;
20458 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20459 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20460 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
20461 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20464 if (r
->out
.needed
== NULL
) {
20465 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20467 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20468 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20470 return NDR_ERR_SUCCESS
;
20473 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverDirectory
*r
)
20475 uint32_t _ptr_server
;
20476 uint32_t _ptr_environment
;
20477 uint32_t _ptr_buffer
;
20478 uint32_t _ptr_info
;
20479 TALLOC_CTX
*_mem_save_server_0
;
20480 TALLOC_CTX
*_mem_save_environment_0
;
20481 TALLOC_CTX
*_mem_save_buffer_0
;
20482 TALLOC_CTX
*_mem_save_info_0
;
20483 TALLOC_CTX
*_mem_save_needed_0
;
20484 if (flags
& NDR_IN
) {
20485 ZERO_STRUCT(r
->out
);
20487 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20489 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20491 r
->in
.server
= NULL
;
20493 if (r
->in
.server
) {
20494 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20495 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20496 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20497 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20498 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20499 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
));
20501 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20502 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20503 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20505 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
20506 if (_ptr_environment
) {
20507 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
20509 r
->in
.environment
= NULL
;
20511 if (r
->in
.environment
) {
20512 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20513 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
20514 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
20515 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
20516 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
20517 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
));
20519 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
20520 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
20521 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
20523 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20524 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20526 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20528 r
->in
.buffer
= NULL
;
20530 if (r
->in
.buffer
) {
20531 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20532 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20533 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20534 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20536 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20537 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20538 ZERO_STRUCTP(r
->out
.needed
);
20540 if (flags
& NDR_OUT
) {
20541 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20543 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20545 r
->out
.info
= NULL
;
20548 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20549 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20551 struct ndr_pull
*_ndr_info
;
20552 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20553 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20554 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
20555 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20557 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20559 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20560 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20562 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20563 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20564 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20565 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20566 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20568 return NDR_ERR_SUCCESS
;
20571 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
20573 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverDirectory");
20575 if (flags
& NDR_SET_VALUES
) {
20576 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20578 if (flags
& NDR_IN
) {
20579 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverDirectory");
20581 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20583 if (r
->in
.server
) {
20584 ndr_print_string(ndr
, "server", r
->in
.server
);
20587 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
20589 if (r
->in
.environment
) {
20590 ndr_print_string(ndr
, "environment", r
->in
.environment
);
20593 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20594 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20596 if (r
->in
.buffer
) {
20597 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20600 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20603 if (flags
& NDR_OUT
) {
20604 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverDirectory");
20606 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20609 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
20610 ndr_print_spoolss_DriverDirectoryInfo(ndr
, "info", r
->out
.info
);
20613 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20615 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20617 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20623 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
20625 if (flags
& NDR_IN
) {
20626 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20627 if (r
->in
.server
) {
20628 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20629 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20630 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20631 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20633 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
20634 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20635 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
20636 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20637 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
20638 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20639 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
20640 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20642 if (flags
& NDR_OUT
) {
20643 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20645 return NDR_ERR_SUCCESS
;
20648 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriver
*r
)
20650 uint32_t _ptr_server
;
20651 TALLOC_CTX
*_mem_save_server_0
;
20652 if (flags
& NDR_IN
) {
20653 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20655 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20657 r
->in
.server
= NULL
;
20659 if (r
->in
.server
) {
20660 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20661 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20662 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20663 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20664 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20665 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
));
20667 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20668 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20669 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20671 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
20672 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
20673 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
20674 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
));
20676 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
20677 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
20678 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
20679 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
20680 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
20681 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
));
20683 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
20684 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
20686 if (flags
& NDR_OUT
) {
20687 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20689 return NDR_ERR_SUCCESS
;
20692 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
20694 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriver");
20696 if (flags
& NDR_SET_VALUES
) {
20697 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20699 if (flags
& NDR_IN
) {
20700 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriver");
20702 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20704 if (r
->in
.server
) {
20705 ndr_print_string(ndr
, "server", r
->in
.server
);
20708 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
20709 ndr_print_string(ndr
, "driver", r
->in
.driver
);
20712 if (flags
& NDR_OUT
) {
20713 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriver");
20715 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20721 static enum ndr_err_code
ndr_push_spoolss_AddPrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
20723 if (flags
& NDR_IN
) {
20724 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20725 if (r
->in
.server
) {
20726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20727 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20728 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20729 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
20732 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20733 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
20734 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20735 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
20736 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20737 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
20738 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
));
20739 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
20740 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20741 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
20742 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
));
20744 if (flags
& NDR_OUT
) {
20745 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20747 return NDR_ERR_SUCCESS
;
20750 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProcessor
*r
)
20752 uint32_t _ptr_server
;
20753 TALLOC_CTX
*_mem_save_server_0
;
20754 if (flags
& NDR_IN
) {
20755 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20757 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20759 r
->in
.server
= NULL
;
20761 if (r
->in
.server
) {
20762 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20763 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20764 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20765 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20766 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20767 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
));
20769 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20770 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20771 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20773 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
20774 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
20775 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
20776 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
));
20778 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
20779 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
20780 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.path_name
));
20781 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.path_name
));
20782 if (ndr_get_array_length(ndr
, &r
->in
.path_name
) > ndr_get_array_size(ndr
, &r
->in
.path_name
)) {
20783 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
));
20785 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.path_name
), sizeof(uint16_t)));
20786 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
));
20787 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
20788 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
20789 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
20790 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
));
20792 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
20793 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
));
20795 if (flags
& NDR_OUT
) {
20796 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20798 return NDR_ERR_SUCCESS
;
20801 _PUBLIC_
void ndr_print_spoolss_AddPrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
20803 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProcessor");
20805 if (flags
& NDR_SET_VALUES
) {
20806 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20808 if (flags
& NDR_IN
) {
20809 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProcessor");
20811 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20813 if (r
->in
.server
) {
20814 ndr_print_string(ndr
, "server", r
->in
.server
);
20817 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
20818 ndr_print_string(ndr
, "path_name", r
->in
.path_name
);
20819 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
20822 if (flags
& NDR_OUT
) {
20823 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProcessor");
20825 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20831 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcessors
*r
)
20833 if (flags
& NDR_IN
) {
20834 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
20835 if (r
->in
.servername
) {
20836 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20837 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20838 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20839 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20841 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
20842 if (r
->in
.environment
) {
20843 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20844 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20845 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20846 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20848 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20849 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20850 if (r
->in
.buffer
) {
20851 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20853 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20855 if (flags
& NDR_OUT
) {
20856 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20858 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20860 if (r
->out
.needed
== NULL
) {
20861 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20863 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20864 if (r
->out
.count
== NULL
) {
20865 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20867 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20868 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20870 return NDR_ERR_SUCCESS
;
20873 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcessors
*r
)
20875 uint32_t _ptr_servername
;
20876 uint32_t _ptr_environment
;
20877 uint32_t _ptr_buffer
;
20878 uint32_t _ptr_info
;
20879 TALLOC_CTX
*_mem_save_servername_0
;
20880 TALLOC_CTX
*_mem_save_environment_0
;
20881 TALLOC_CTX
*_mem_save_buffer_0
;
20882 TALLOC_CTX
*_mem_save_info_0
;
20883 TALLOC_CTX
*_mem_save_needed_0
;
20884 TALLOC_CTX
*_mem_save_count_0
;
20885 if (flags
& NDR_IN
) {
20886 ZERO_STRUCT(r
->out
);
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 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
20907 if (_ptr_environment
) {
20908 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
20910 r
->in
.environment
= NULL
;
20912 if (r
->in
.environment
) {
20913 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20914 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
20915 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
20916 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
20917 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
20918 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
));
20920 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
20921 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
20922 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
20924 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20925 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20927 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20929 r
->in
.buffer
= NULL
;
20931 if (r
->in
.buffer
) {
20932 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20933 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20934 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20935 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20937 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20938 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20939 ZERO_STRUCTP(r
->out
.needed
);
20940 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20941 ZERO_STRUCTP(r
->out
.count
);
20943 if (flags
& NDR_OUT
) {
20944 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20946 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20948 r
->out
.info
= NULL
;
20951 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20952 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20953 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
20954 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20956 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20957 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20959 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20960 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20961 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20962 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20963 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20964 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20966 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20967 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
20968 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
20969 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
20970 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20972 return NDR_ERR_SUCCESS
;
20975 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcessors
*r
)
20977 uint32_t cntr_info_0
;
20978 if (flags
& NDR_IN
) {
20979 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
20982 if (flags
& NDR_OUT
) {
20983 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20984 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20985 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20987 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20988 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20991 return NDR_ERR_SUCCESS
;
20994 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcessors
*r
)
20996 uint32_t cntr_info_0
;
20997 TALLOC_CTX
*_mem_save_info_0
;
20998 if (flags
& NDR_IN
) {
20999 ZERO_STRUCT(r
->out
);
21001 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21002 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
21004 if (flags
& NDR_OUT
) {
21005 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
21006 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21007 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21008 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21009 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
21010 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
21012 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
21013 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
21015 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21017 return NDR_ERR_SUCCESS
;
21020 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcessors
*r
)
21022 uint32_t cntr_info_2
;
21023 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcessors");
21025 if (flags
& NDR_SET_VALUES
) {
21026 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21028 if (flags
& NDR_IN
) {
21029 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcessors");
21031 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
21033 if (r
->in
.servername
) {
21034 ndr_print_string(ndr
, "servername", r
->in
.servername
);
21037 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
21039 if (r
->in
.environment
) {
21040 ndr_print_string(ndr
, "environment", r
->in
.environment
);
21043 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21044 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21046 if (r
->in
.buffer
) {
21047 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21050 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21053 if (flags
& NDR_OUT
) {
21054 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcessors");
21056 ndr_print_ptr(ndr
, "count", r
->out
.count
);
21058 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
21060 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21062 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
21064 if (*r
->out
.info
) {
21065 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
21067 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
21069 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
21070 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
21071 ndr_print_spoolss_PrintProcessorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
21079 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21081 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21083 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21089 static enum ndr_err_code
ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
21091 if (flags
& NDR_IN
) {
21092 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
21093 if (r
->in
.server
) {
21094 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21095 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21096 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
21097 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21099 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
21100 if (r
->in
.environment
) {
21101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21102 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21103 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
21104 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
21106 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21107 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21108 if (r
->in
.buffer
) {
21109 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
21111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21113 if (flags
& NDR_OUT
) {
21114 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
21117 struct ndr_push
*_ndr_info
;
21118 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21119 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21120 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
21121 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21124 if (r
->out
.needed
== NULL
) {
21125 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21127 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21128 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21130 return NDR_ERR_SUCCESS
;
21133 static enum ndr_err_code
ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrintProcessorDirectory
*r
)
21135 uint32_t _ptr_server
;
21136 uint32_t _ptr_environment
;
21137 uint32_t _ptr_buffer
;
21138 uint32_t _ptr_info
;
21139 TALLOC_CTX
*_mem_save_server_0
;
21140 TALLOC_CTX
*_mem_save_environment_0
;
21141 TALLOC_CTX
*_mem_save_buffer_0
;
21142 TALLOC_CTX
*_mem_save_info_0
;
21143 TALLOC_CTX
*_mem_save_needed_0
;
21144 if (flags
& NDR_IN
) {
21145 ZERO_STRUCT(r
->out
);
21147 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
21149 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
21151 r
->in
.server
= NULL
;
21153 if (r
->in
.server
) {
21154 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21155 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
21156 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
21157 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
21158 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
21159 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
));
21161 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
21162 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
21163 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
21165 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
21166 if (_ptr_environment
) {
21167 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
21169 r
->in
.environment
= NULL
;
21171 if (r
->in
.environment
) {
21172 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21173 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
21174 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
21175 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
21176 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
21177 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
));
21179 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
21180 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
21181 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
21183 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21184 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21186 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21188 r
->in
.buffer
= NULL
;
21190 if (r
->in
.buffer
) {
21191 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21192 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21193 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
21194 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21196 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21197 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21198 ZERO_STRUCTP(r
->out
.needed
);
21200 if (flags
& NDR_OUT
) {
21201 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
21203 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
21205 r
->out
.info
= NULL
;
21208 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21209 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
21211 struct ndr_pull
*_ndr_info
;
21212 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
21213 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
21214 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
21215 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
21217 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
21219 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21220 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21222 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21223 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21224 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21225 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21226 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21228 return NDR_ERR_SUCCESS
;
21231 _PUBLIC_
void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
21233 ndr_print_struct(ndr
, name
, "spoolss_GetPrintProcessorDirectory");
21235 if (flags
& NDR_SET_VALUES
) {
21236 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21238 if (flags
& NDR_IN
) {
21239 ndr_print_struct(ndr
, "in", "spoolss_GetPrintProcessorDirectory");
21241 ndr_print_ptr(ndr
, "server", r
->in
.server
);
21243 if (r
->in
.server
) {
21244 ndr_print_string(ndr
, "server", r
->in
.server
);
21247 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
21249 if (r
->in
.environment
) {
21250 ndr_print_string(ndr
, "environment", r
->in
.environment
);
21253 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21254 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21256 if (r
->in
.buffer
) {
21257 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
21260 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21263 if (flags
& NDR_OUT
) {
21264 ndr_print_struct(ndr
, "out", "spoolss_GetPrintProcessorDirectory");
21266 ndr_print_ptr(ndr
, "info", r
->out
.info
);
21269 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
21270 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr
, "info", r
->out
.info
);
21273 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21275 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21277 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21283 static enum ndr_err_code
ndr_push_spoolss_StartDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartDocPrinter
*r
)
21285 if (flags
& NDR_IN
) {
21286 if (r
->in
.handle
== NULL
) {
21287 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21289 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21290 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21291 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
21292 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
21294 if (flags
& NDR_OUT
) {
21295 if (r
->out
.job_id
== NULL
) {
21296 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21298 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.job_id
));
21299 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21301 return NDR_ERR_SUCCESS
;
21304 static enum ndr_err_code
ndr_pull_spoolss_StartDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartDocPrinter
*r
)
21306 TALLOC_CTX
*_mem_save_handle_0
;
21307 TALLOC_CTX
*_mem_save_job_id_0
;
21308 if (flags
& NDR_IN
) {
21309 ZERO_STRUCT(r
->out
);
21311 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21312 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21314 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21315 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21316 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21317 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21318 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21319 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
21320 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
21321 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
21322 ZERO_STRUCTP(r
->out
.job_id
);
21324 if (flags
& NDR_OUT
) {
21325 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21326 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
21328 _mem_save_job_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21329 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.job_id
, LIBNDR_FLAG_REF_ALLOC
);
21330 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.job_id
));
21331 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_job_id_0
, LIBNDR_FLAG_REF_ALLOC
);
21332 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21334 return NDR_ERR_SUCCESS
;
21337 _PUBLIC_
void ndr_print_spoolss_StartDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartDocPrinter
*r
)
21339 ndr_print_struct(ndr
, name
, "spoolss_StartDocPrinter");
21341 if (flags
& NDR_SET_VALUES
) {
21342 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21344 if (flags
& NDR_IN
) {
21345 ndr_print_struct(ndr
, "in", "spoolss_StartDocPrinter");
21347 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21349 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21351 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21352 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
21353 ndr_print_spoolss_DocumentInfo(ndr
, "info", &r
->in
.info
);
21356 if (flags
& NDR_OUT
) {
21357 ndr_print_struct(ndr
, "out", "spoolss_StartDocPrinter");
21359 ndr_print_ptr(ndr
, "job_id", r
->out
.job_id
);
21361 ndr_print_uint32(ndr
, "job_id", *r
->out
.job_id
);
21363 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21369 static enum ndr_err_code
ndr_push_spoolss_StartPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartPagePrinter
*r
)
21371 if (flags
& NDR_IN
) {
21372 if (r
->in
.handle
== NULL
) {
21373 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21375 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21377 if (flags
& NDR_OUT
) {
21378 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21380 return NDR_ERR_SUCCESS
;
21383 static enum ndr_err_code
ndr_pull_spoolss_StartPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartPagePrinter
*r
)
21385 TALLOC_CTX
*_mem_save_handle_0
;
21386 if (flags
& NDR_IN
) {
21387 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21388 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21390 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21391 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21392 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21393 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21395 if (flags
& NDR_OUT
) {
21396 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21398 return NDR_ERR_SUCCESS
;
21401 _PUBLIC_
void ndr_print_spoolss_StartPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartPagePrinter
*r
)
21403 ndr_print_struct(ndr
, name
, "spoolss_StartPagePrinter");
21405 if (flags
& NDR_SET_VALUES
) {
21406 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21408 if (flags
& NDR_IN
) {
21409 ndr_print_struct(ndr
, "in", "spoolss_StartPagePrinter");
21411 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21413 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21417 if (flags
& NDR_OUT
) {
21418 ndr_print_struct(ndr
, "out", "spoolss_StartPagePrinter");
21420 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21426 static enum ndr_err_code
ndr_push_spoolss_WritePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_WritePrinter
*r
)
21428 if (flags
& NDR_IN
) {
21429 if (r
->in
.handle
== NULL
) {
21430 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21432 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21433 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
21434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data
.length
));
21436 if (flags
& NDR_OUT
) {
21437 if (r
->out
.num_written
== NULL
) {
21438 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21440 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_written
));
21441 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21443 return NDR_ERR_SUCCESS
;
21446 static enum ndr_err_code
ndr_pull_spoolss_WritePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_WritePrinter
*r
)
21448 TALLOC_CTX
*_mem_save_handle_0
;
21449 TALLOC_CTX
*_mem_save_num_written_0
;
21450 if (flags
& NDR_IN
) {
21451 ZERO_STRUCT(r
->out
);
21453 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21454 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21456 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21457 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21458 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21459 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21460 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.data
));
21461 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._data_size
));
21462 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
21463 ZERO_STRUCTP(r
->out
.num_written
);
21465 if (flags
& NDR_OUT
) {
21466 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21467 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
21469 _mem_save_num_written_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21470 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_written
, LIBNDR_FLAG_REF_ALLOC
);
21471 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_written
));
21472 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_written_0
, LIBNDR_FLAG_REF_ALLOC
);
21473 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21475 return NDR_ERR_SUCCESS
;
21478 _PUBLIC_
void ndr_print_spoolss_WritePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WritePrinter
*r
)
21480 ndr_print_struct(ndr
, name
, "spoolss_WritePrinter");
21482 if (flags
& NDR_SET_VALUES
) {
21483 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21485 if (flags
& NDR_IN
) {
21486 ndr_print_struct(ndr
, "in", "spoolss_WritePrinter");
21488 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21490 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21492 ndr_print_DATA_BLOB(ndr
, "data", r
->in
.data
);
21493 ndr_print_uint32(ndr
, "_data_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.data
.length
:r
->in
._data_size
);
21496 if (flags
& NDR_OUT
) {
21497 ndr_print_struct(ndr
, "out", "spoolss_WritePrinter");
21499 ndr_print_ptr(ndr
, "num_written", r
->out
.num_written
);
21501 ndr_print_uint32(ndr
, "num_written", *r
->out
.num_written
);
21503 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21509 static enum ndr_err_code
ndr_push_spoolss_EndPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndPagePrinter
*r
)
21511 if (flags
& NDR_IN
) {
21512 if (r
->in
.handle
== NULL
) {
21513 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21515 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21517 if (flags
& NDR_OUT
) {
21518 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21520 return NDR_ERR_SUCCESS
;
21523 static enum ndr_err_code
ndr_pull_spoolss_EndPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndPagePrinter
*r
)
21525 TALLOC_CTX
*_mem_save_handle_0
;
21526 if (flags
& NDR_IN
) {
21527 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21528 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21530 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21531 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21532 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21533 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21535 if (flags
& NDR_OUT
) {
21536 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21538 return NDR_ERR_SUCCESS
;
21541 _PUBLIC_
void ndr_print_spoolss_EndPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndPagePrinter
*r
)
21543 ndr_print_struct(ndr
, name
, "spoolss_EndPagePrinter");
21545 if (flags
& NDR_SET_VALUES
) {
21546 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21548 if (flags
& NDR_IN
) {
21549 ndr_print_struct(ndr
, "in", "spoolss_EndPagePrinter");
21551 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21553 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21557 if (flags
& NDR_OUT
) {
21558 ndr_print_struct(ndr
, "out", "spoolss_EndPagePrinter");
21560 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21566 static enum ndr_err_code
ndr_push_spoolss_AbortPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AbortPrinter
*r
)
21568 if (flags
& NDR_IN
) {
21569 if (r
->in
.handle
== NULL
) {
21570 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21572 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21574 if (flags
& NDR_OUT
) {
21575 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21577 return NDR_ERR_SUCCESS
;
21580 static enum ndr_err_code
ndr_pull_spoolss_AbortPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AbortPrinter
*r
)
21582 TALLOC_CTX
*_mem_save_handle_0
;
21583 if (flags
& NDR_IN
) {
21584 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21585 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21587 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21588 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21589 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21590 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21592 if (flags
& NDR_OUT
) {
21593 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21595 return NDR_ERR_SUCCESS
;
21598 _PUBLIC_
void ndr_print_spoolss_AbortPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AbortPrinter
*r
)
21600 ndr_print_struct(ndr
, name
, "spoolss_AbortPrinter");
21602 if (flags
& NDR_SET_VALUES
) {
21603 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21605 if (flags
& NDR_IN
) {
21606 ndr_print_struct(ndr
, "in", "spoolss_AbortPrinter");
21608 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21610 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21614 if (flags
& NDR_OUT
) {
21615 ndr_print_struct(ndr
, "out", "spoolss_AbortPrinter");
21617 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21623 static enum ndr_err_code
ndr_push_spoolss_ReadPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReadPrinter
*r
)
21625 if (flags
& NDR_IN
) {
21626 if (r
->in
.handle
== NULL
) {
21627 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21629 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21630 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
21632 if (flags
& NDR_OUT
) {
21633 if (r
->out
.data
== NULL
) {
21634 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21636 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
21637 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_size
));
21638 if (r
->out
._data_size
== NULL
) {
21639 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21641 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._data_size
));
21642 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21644 return NDR_ERR_SUCCESS
;
21647 static enum ndr_err_code
ndr_pull_spoolss_ReadPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReadPrinter
*r
)
21649 TALLOC_CTX
*_mem_save_handle_0
;
21650 TALLOC_CTX
*_mem_save__data_size_0
;
21651 if (flags
& NDR_IN
) {
21652 ZERO_STRUCT(r
->out
);
21654 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21655 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21657 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21658 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21659 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21660 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21661 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_size
));
21662 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_size
);
21663 memset(r
->out
.data
, 0, (r
->in
.data_size
) * sizeof(*r
->out
.data
));
21664 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
21665 ZERO_STRUCTP(r
->out
._data_size
);
21667 if (flags
& NDR_OUT
) {
21668 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
21669 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21670 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
21672 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
21673 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21674 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
21676 _mem_save__data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21677 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._data_size
, LIBNDR_FLAG_REF_ALLOC
);
21678 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._data_size
));
21679 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__data_size_0
, LIBNDR_FLAG_REF_ALLOC
);
21680 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21682 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_size
));
21685 return NDR_ERR_SUCCESS
;
21688 _PUBLIC_
void ndr_print_spoolss_ReadPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReadPrinter
*r
)
21690 ndr_print_struct(ndr
, name
, "spoolss_ReadPrinter");
21692 if (flags
& NDR_SET_VALUES
) {
21693 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21695 if (flags
& NDR_IN
) {
21696 ndr_print_struct(ndr
, "in", "spoolss_ReadPrinter");
21698 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21700 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21702 ndr_print_uint32(ndr
, "data_size", r
->in
.data_size
);
21705 if (flags
& NDR_OUT
) {
21706 ndr_print_struct(ndr
, "out", "spoolss_ReadPrinter");
21708 ndr_print_ptr(ndr
, "data", r
->out
.data
);
21710 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_size
);
21712 ndr_print_ptr(ndr
, "_data_size", r
->out
._data_size
);
21714 ndr_print_uint32(ndr
, "_data_size", *r
->out
._data_size
);
21716 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21722 static enum ndr_err_code
ndr_push_spoolss_EndDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndDocPrinter
*r
)
21724 if (flags
& NDR_IN
) {
21725 if (r
->in
.handle
== NULL
) {
21726 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21728 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21730 if (flags
& NDR_OUT
) {
21731 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21733 return NDR_ERR_SUCCESS
;
21736 static enum ndr_err_code
ndr_pull_spoolss_EndDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndDocPrinter
*r
)
21738 TALLOC_CTX
*_mem_save_handle_0
;
21739 if (flags
& NDR_IN
) {
21740 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21741 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21743 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21744 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21745 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21746 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21748 if (flags
& NDR_OUT
) {
21749 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21751 return NDR_ERR_SUCCESS
;
21754 _PUBLIC_
void ndr_print_spoolss_EndDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndDocPrinter
*r
)
21756 ndr_print_struct(ndr
, name
, "spoolss_EndDocPrinter");
21758 if (flags
& NDR_SET_VALUES
) {
21759 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21761 if (flags
& NDR_IN
) {
21762 ndr_print_struct(ndr
, "in", "spoolss_EndDocPrinter");
21764 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21766 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21770 if (flags
& NDR_OUT
) {
21771 ndr_print_struct(ndr
, "out", "spoolss_EndDocPrinter");
21773 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21779 static enum ndr_err_code
ndr_push_spoolss_AddJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddJob
*r
)
21781 if (flags
& NDR_IN
) {
21782 if (r
->in
.handle
== NULL
) {
21783 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21785 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21786 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21787 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21788 if (r
->in
.buffer
) {
21789 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21790 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
21792 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21794 if (flags
& NDR_OUT
) {
21795 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
21796 if (r
->out
.buffer
) {
21797 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21798 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
21800 if (r
->out
.needed
== NULL
) {
21801 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21803 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21804 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21806 return NDR_ERR_SUCCESS
;
21809 static enum ndr_err_code
ndr_pull_spoolss_AddJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddJob
*r
)
21811 uint32_t _ptr_buffer
;
21812 TALLOC_CTX
*_mem_save_handle_0
;
21813 TALLOC_CTX
*_mem_save_buffer_0
;
21814 TALLOC_CTX
*_mem_save_needed_0
;
21815 if (flags
& NDR_IN
) {
21816 ZERO_STRUCT(r
->out
);
21818 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21819 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21821 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21822 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21823 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21824 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21825 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21826 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21828 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21830 r
->in
.buffer
= NULL
;
21832 if (r
->in
.buffer
) {
21833 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21834 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21835 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
21836 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
21837 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
21838 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21840 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21841 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21842 ZERO_STRUCTP(r
->out
.needed
);
21843 if (r
->in
.buffer
) {
21844 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
21847 if (flags
& NDR_OUT
) {
21848 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21850 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
21852 r
->out
.buffer
= NULL
;
21854 if (r
->out
.buffer
) {
21855 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21856 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
21857 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
21858 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
21859 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
21860 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21862 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21863 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21865 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21866 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21867 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21868 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21869 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21870 if (r
->out
.buffer
) {
21871 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
21874 return NDR_ERR_SUCCESS
;
21877 _PUBLIC_
void ndr_print_spoolss_AddJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddJob
*r
)
21879 ndr_print_struct(ndr
, name
, "spoolss_AddJob");
21881 if (flags
& NDR_SET_VALUES
) {
21882 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21884 if (flags
& NDR_IN
) {
21885 ndr_print_struct(ndr
, "in", "spoolss_AddJob");
21887 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21889 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21891 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21892 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21894 if (r
->in
.buffer
) {
21895 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
21898 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21901 if (flags
& NDR_OUT
) {
21902 ndr_print_struct(ndr
, "out", "spoolss_AddJob");
21904 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
21906 if (r
->out
.buffer
) {
21907 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
21910 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21912 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21914 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21920 static enum ndr_err_code
ndr_push_spoolss_ScheduleJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_ScheduleJob
*r
)
21922 if (flags
& NDR_IN
) {
21923 if (r
->in
.handle
== NULL
) {
21924 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21926 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.jobid
));
21929 if (flags
& NDR_OUT
) {
21930 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21932 return NDR_ERR_SUCCESS
;
21935 static enum ndr_err_code
ndr_pull_spoolss_ScheduleJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_ScheduleJob
*r
)
21937 TALLOC_CTX
*_mem_save_handle_0
;
21938 if (flags
& NDR_IN
) {
21939 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21940 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21942 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21943 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21944 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21945 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21946 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.jobid
));
21948 if (flags
& NDR_OUT
) {
21949 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21951 return NDR_ERR_SUCCESS
;
21954 _PUBLIC_
void ndr_print_spoolss_ScheduleJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ScheduleJob
*r
)
21956 ndr_print_struct(ndr
, name
, "spoolss_ScheduleJob");
21958 if (flags
& NDR_SET_VALUES
) {
21959 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21961 if (flags
& NDR_IN
) {
21962 ndr_print_struct(ndr
, "in", "spoolss_ScheduleJob");
21964 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21966 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21968 ndr_print_uint32(ndr
, "jobid", r
->in
.jobid
);
21971 if (flags
& NDR_OUT
) {
21972 ndr_print_struct(ndr
, "out", "spoolss_ScheduleJob");
21974 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21980 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_GetPrinterData
*r
)
21982 if (flags
& NDR_IN
) {
21983 if (r
->in
.handle
== NULL
) {
21984 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21986 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21987 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
21988 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21989 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
21990 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
));
21991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21993 if (flags
& NDR_OUT
) {
21994 if (r
->out
.type
== NULL
) {
21995 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21997 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
21998 if (r
->out
.data
== NULL
) {
21999 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22001 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.data
));
22002 if (r
->out
.needed
== NULL
) {
22003 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22005 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22006 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22008 return NDR_ERR_SUCCESS
;
22011 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct _spoolss_GetPrinterData
*r
)
22013 TALLOC_CTX
*_mem_save_handle_0
;
22014 TALLOC_CTX
*_mem_save_type_0
;
22015 TALLOC_CTX
*_mem_save_data_0
;
22016 TALLOC_CTX
*_mem_save_needed_0
;
22017 if (flags
& NDR_IN
) {
22018 ZERO_STRUCT(r
->out
);
22020 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22021 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22023 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22024 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22025 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22026 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22027 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
22028 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
22029 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
22030 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
));
22032 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
22033 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
));
22034 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22035 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
22036 ZERO_STRUCTP(r
->out
.type
);
22037 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
22038 ZERO_STRUCTP(r
->out
.data
);
22039 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22040 ZERO_STRUCTP(r
->out
.needed
);
22042 if (flags
& NDR_OUT
) {
22043 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22044 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
22046 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22047 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
22048 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
22049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
22050 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22051 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
22053 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22054 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
22055 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.data
));
22056 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
22057 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22058 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22060 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22061 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22062 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22063 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22064 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22066 return NDR_ERR_SUCCESS
;
22069 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_GetPrinterData
*r
)
22071 if (flags
& NDR_IN
) {
22072 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
22074 if (flags
& NDR_OUT
) {
22075 if (r
->out
.data
== NULL
) {
22076 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22078 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
22079 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
22081 return NDR_ERR_SUCCESS
;
22084 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct __spoolss_GetPrinterData
*r
)
22086 TALLOC_CTX
*_mem_save_data_0
;
22087 if (flags
& NDR_IN
) {
22088 ZERO_STRUCT(r
->out
);
22090 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
22091 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
22092 ZERO_STRUCTP(r
->out
.data
);
22094 if (flags
& NDR_OUT
) {
22095 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22096 NDR_PULL_ALLOC(ndr
, r
->out
.data
);
22098 _mem_save_data_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22099 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data
, LIBNDR_FLAG_REF_ALLOC
);
22100 NDR_CHECK(ndr_pull_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
22101 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
22102 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_0
, LIBNDR_FLAG_REF_ALLOC
);
22104 return NDR_ERR_SUCCESS
;
22107 _PUBLIC_
void ndr_print_spoolss_GetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterData
*r
)
22109 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterData");
22111 if (flags
& NDR_SET_VALUES
) {
22112 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22114 if (flags
& NDR_IN
) {
22115 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterData");
22117 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22119 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22121 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
22122 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22125 if (flags
& NDR_OUT
) {
22126 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterData");
22128 ndr_print_ptr(ndr
, "type", r
->out
.type
);
22130 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
22132 ndr_print_ptr(ndr
, "data", r
->out
.data
);
22134 ndr_print_set_switch_value(ndr
, r
->out
.data
, *r
->out
.type
);
22135 ndr_print_spoolss_PrinterData(ndr
, "data", r
->out
.data
);
22137 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22139 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22141 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22147 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_SetPrinterData
*r
)
22149 if (flags
& NDR_IN
) {
22150 if (r
->in
.handle
== NULL
) {
22151 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22153 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22154 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
22155 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22156 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
22157 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
));
22158 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
22159 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
22160 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
._offered
));
22162 if (flags
& NDR_OUT
) {
22163 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22165 return NDR_ERR_SUCCESS
;
22168 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_SetPrinterData
*r
)
22170 if (flags
& NDR_IN
) {
22171 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
22173 if (flags
& NDR_OUT
) {
22174 if (r
->out
.data
== NULL
) {
22175 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22177 NDR_CHECK(ndr_push_set_switch_value(ndr
, r
->out
.data
, r
->in
.type
));
22178 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.data
));
22180 return NDR_ERR_SUCCESS
;
22183 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterData
*r
)
22185 TALLOC_CTX
*_mem_save_handle_0
;
22186 if (flags
& NDR_IN
) {
22187 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22188 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22190 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22191 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22192 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22193 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22194 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
22195 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
22196 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
22197 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
));
22199 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
22200 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
));
22201 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
22203 struct ndr_pull
*_ndr_data
;
22204 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 4, -1));
22205 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, &r
->in
.data
, r
->in
.type
));
22206 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
22207 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 4, -1));
22209 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._offered
));
22211 if (flags
& NDR_OUT
) {
22212 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22214 return NDR_ERR_SUCCESS
;
22217 _PUBLIC_
void ndr_print_spoolss_SetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterData
*r
)
22219 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterData");
22221 if (flags
& NDR_SET_VALUES
) {
22222 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22224 if (flags
& NDR_IN
) {
22225 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterData");
22227 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22229 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22231 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
22232 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
22233 ndr_print_set_switch_value(ndr
, &r
->in
.data
, r
->in
.type
);
22234 ndr_print_spoolss_PrinterData(ndr
, "data", &r
->in
.data
);
22235 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
);
22238 if (flags
& NDR_OUT
) {
22239 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterData");
22241 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22247 static enum ndr_err_code
ndr_push_spoolss_WaitForPrinterChange(struct ndr_push
*ndr
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
22249 if (flags
& NDR_IN
) {
22251 if (flags
& NDR_OUT
) {
22252 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22254 return NDR_ERR_SUCCESS
;
22257 static enum ndr_err_code
ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull
*ndr
, int flags
, struct spoolss_WaitForPrinterChange
*r
)
22259 if (flags
& NDR_IN
) {
22261 if (flags
& NDR_OUT
) {
22262 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22264 return NDR_ERR_SUCCESS
;
22267 _PUBLIC_
void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
22269 ndr_print_struct(ndr
, name
, "spoolss_WaitForPrinterChange");
22271 if (flags
& NDR_SET_VALUES
) {
22272 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22274 if (flags
& NDR_IN
) {
22275 ndr_print_struct(ndr
, "in", "spoolss_WaitForPrinterChange");
22279 if (flags
& NDR_OUT
) {
22280 ndr_print_struct(ndr
, "out", "spoolss_WaitForPrinterChange");
22282 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22288 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ClosePrinter
*r
)
22290 if (flags
& NDR_IN
) {
22291 if (r
->in
.handle
== NULL
) {
22292 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22294 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22296 if (flags
& NDR_OUT
) {
22297 if (r
->out
.handle
== NULL
) {
22298 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22300 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
22301 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22303 return NDR_ERR_SUCCESS
;
22306 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ClosePrinter
*r
)
22308 TALLOC_CTX
*_mem_save_handle_0
;
22309 if (flags
& NDR_IN
) {
22310 ZERO_STRUCT(r
->out
);
22312 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22313 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22315 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22316 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22317 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22318 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22319 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
22320 *r
->out
.handle
= *r
->in
.handle
;
22322 if (flags
& NDR_OUT
) {
22323 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22324 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
22326 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22327 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22328 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
22329 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22330 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22332 return NDR_ERR_SUCCESS
;
22335 _PUBLIC_
void ndr_print_spoolss_ClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ClosePrinter
*r
)
22337 ndr_print_struct(ndr
, name
, "spoolss_ClosePrinter");
22339 if (flags
& NDR_SET_VALUES
) {
22340 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22342 if (flags
& NDR_IN
) {
22343 ndr_print_struct(ndr
, "in", "spoolss_ClosePrinter");
22345 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22347 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22351 if (flags
& NDR_OUT
) {
22352 ndr_print_struct(ndr
, "out", "spoolss_ClosePrinter");
22354 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
22356 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
22358 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22364 static enum ndr_err_code
ndr_push_spoolss_AddForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddForm
*r
)
22366 if (flags
& NDR_IN
) {
22367 if (r
->in
.handle
== NULL
) {
22368 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22370 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22371 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22372 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22373 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22375 if (flags
& NDR_OUT
) {
22376 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22378 return NDR_ERR_SUCCESS
;
22381 static enum ndr_err_code
ndr_pull_spoolss_AddForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddForm
*r
)
22383 TALLOC_CTX
*_mem_save_handle_0
;
22384 if (flags
& NDR_IN
) {
22385 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22386 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22388 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22389 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22390 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22392 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22393 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22394 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22396 if (flags
& NDR_OUT
) {
22397 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22399 return NDR_ERR_SUCCESS
;
22402 _PUBLIC_
void ndr_print_spoolss_AddForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddForm
*r
)
22404 ndr_print_struct(ndr
, name
, "spoolss_AddForm");
22406 if (flags
& NDR_SET_VALUES
) {
22407 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22409 if (flags
& NDR_IN
) {
22410 ndr_print_struct(ndr
, "in", "spoolss_AddForm");
22412 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22414 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22416 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22417 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
22418 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
22421 if (flags
& NDR_OUT
) {
22422 ndr_print_struct(ndr
, "out", "spoolss_AddForm");
22424 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22430 static enum ndr_err_code
ndr_push_spoolss_DeleteForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteForm
*r
)
22432 if (flags
& NDR_IN
) {
22433 if (r
->in
.handle
== NULL
) {
22434 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22436 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22437 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22438 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22439 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22440 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
));
22442 if (flags
& NDR_OUT
) {
22443 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22445 return NDR_ERR_SUCCESS
;
22448 static enum ndr_err_code
ndr_pull_spoolss_DeleteForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteForm
*r
)
22450 TALLOC_CTX
*_mem_save_handle_0
;
22451 if (flags
& NDR_IN
) {
22452 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22453 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22455 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22456 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22457 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22458 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22459 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
22460 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
22461 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
22462 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
));
22464 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
22465 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
));
22467 if (flags
& NDR_OUT
) {
22468 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22470 return NDR_ERR_SUCCESS
;
22473 _PUBLIC_
void ndr_print_spoolss_DeleteForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteForm
*r
)
22475 ndr_print_struct(ndr
, name
, "spoolss_DeleteForm");
22477 if (flags
& NDR_SET_VALUES
) {
22478 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22480 if (flags
& NDR_IN
) {
22481 ndr_print_struct(ndr
, "in", "spoolss_DeleteForm");
22483 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22485 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22487 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
22490 if (flags
& NDR_OUT
) {
22491 ndr_print_struct(ndr
, "out", "spoolss_DeleteForm");
22493 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22499 static enum ndr_err_code
ndr_push_spoolss_GetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetForm
*r
)
22501 if (flags
& NDR_IN
) {
22502 if (r
->in
.handle
== NULL
) {
22503 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22505 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22506 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22507 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22508 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22509 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
));
22510 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22511 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22512 if (r
->in
.buffer
) {
22513 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22515 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22517 if (flags
& NDR_OUT
) {
22518 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22521 struct ndr_push
*_ndr_info
;
22522 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22523 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22524 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
22525 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22528 if (r
->out
.needed
== NULL
) {
22529 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
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_GetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetForm
*r
)
22539 uint32_t _ptr_buffer
;
22540 uint32_t _ptr_info
;
22541 TALLOC_CTX
*_mem_save_handle_0
;
22542 TALLOC_CTX
*_mem_save_buffer_0
;
22543 TALLOC_CTX
*_mem_save_info_0
;
22544 TALLOC_CTX
*_mem_save_needed_0
;
22545 if (flags
& NDR_IN
) {
22546 ZERO_STRUCT(r
->out
);
22548 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22549 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22551 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22552 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22553 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22554 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22555 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
22556 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
22557 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
22558 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
));
22560 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
22561 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
));
22562 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22563 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22565 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22567 r
->in
.buffer
= NULL
;
22569 if (r
->in
.buffer
) {
22570 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22571 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22572 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22573 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22575 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22576 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22577 ZERO_STRUCTP(r
->out
.needed
);
22579 if (flags
& NDR_OUT
) {
22580 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22582 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22584 r
->out
.info
= NULL
;
22587 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22588 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22590 struct ndr_pull
*_ndr_info
;
22591 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22592 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22593 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
22594 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22596 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22598 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22599 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22601 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22602 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22603 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22604 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22605 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22607 return NDR_ERR_SUCCESS
;
22610 _PUBLIC_
void ndr_print_spoolss_GetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetForm
*r
)
22612 ndr_print_struct(ndr
, name
, "spoolss_GetForm");
22614 if (flags
& NDR_SET_VALUES
) {
22615 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22617 if (flags
& NDR_IN
) {
22618 ndr_print_struct(ndr
, "in", "spoolss_GetForm");
22620 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22622 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22624 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
22625 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22626 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22628 if (r
->in
.buffer
) {
22629 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22632 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22635 if (flags
& NDR_OUT
) {
22636 ndr_print_struct(ndr
, "out", "spoolss_GetForm");
22638 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22641 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22642 ndr_print_spoolss_FormInfo(ndr
, "info", r
->out
.info
);
22645 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22647 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22649 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22655 static enum ndr_err_code
ndr_push_spoolss_SetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetForm
*r
)
22657 if (flags
& NDR_IN
) {
22658 if (r
->in
.handle
== NULL
) {
22659 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22661 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22662 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22663 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22664 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22665 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
));
22666 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22667 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22668 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22670 if (flags
& NDR_OUT
) {
22671 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22673 return NDR_ERR_SUCCESS
;
22676 static enum ndr_err_code
ndr_pull_spoolss_SetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetForm
*r
)
22678 TALLOC_CTX
*_mem_save_handle_0
;
22679 if (flags
& NDR_IN
) {
22680 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22681 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22683 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22684 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22685 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22686 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22687 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
22688 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
22689 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
22690 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
));
22692 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
22693 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
));
22694 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22695 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22696 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22698 if (flags
& NDR_OUT
) {
22699 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22701 return NDR_ERR_SUCCESS
;
22704 _PUBLIC_
void ndr_print_spoolss_SetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetForm
*r
)
22706 ndr_print_struct(ndr
, name
, "spoolss_SetForm");
22708 if (flags
& NDR_SET_VALUES
) {
22709 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22711 if (flags
& NDR_IN
) {
22712 ndr_print_struct(ndr
, "in", "spoolss_SetForm");
22714 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22716 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22718 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
22719 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22720 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
22721 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
22724 if (flags
& NDR_OUT
) {
22725 ndr_print_struct(ndr
, "out", "spoolss_SetForm");
22727 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22733 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumForms
*r
)
22735 if (flags
& NDR_IN
) {
22736 if (r
->in
.handle
== NULL
) {
22737 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22739 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22740 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22741 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22742 if (r
->in
.buffer
) {
22743 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22745 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22747 if (flags
& NDR_OUT
) {
22748 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22750 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
22752 if (r
->out
.needed
== NULL
) {
22753 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22755 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22756 if (r
->out
.count
== NULL
) {
22757 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22759 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
22760 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22762 return NDR_ERR_SUCCESS
;
22765 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumForms
*r
)
22767 uint32_t _ptr_buffer
;
22768 uint32_t _ptr_info
;
22769 TALLOC_CTX
*_mem_save_handle_0
;
22770 TALLOC_CTX
*_mem_save_buffer_0
;
22771 TALLOC_CTX
*_mem_save_info_0
;
22772 TALLOC_CTX
*_mem_save_needed_0
;
22773 TALLOC_CTX
*_mem_save_count_0
;
22774 if (flags
& NDR_IN
) {
22775 ZERO_STRUCT(r
->out
);
22777 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22778 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22780 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22781 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22782 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22783 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22784 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22785 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22787 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22789 r
->in
.buffer
= NULL
;
22791 if (r
->in
.buffer
) {
22792 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22793 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22794 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, 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 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22801 ZERO_STRUCTP(r
->out
.count
);
22803 if (flags
& NDR_OUT
) {
22804 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22806 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22808 r
->out
.info
= NULL
;
22811 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22812 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22813 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
22814 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22816 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22817 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22819 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22820 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22821 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22822 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22823 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22824 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22826 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22827 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
22828 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
22829 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
22830 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22832 return NDR_ERR_SUCCESS
;
22835 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumForms
*r
)
22837 uint32_t cntr_info_0
;
22838 if (flags
& NDR_IN
) {
22839 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22840 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
22842 if (flags
& NDR_OUT
) {
22843 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22844 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22845 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22847 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22848 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22851 return NDR_ERR_SUCCESS
;
22854 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumForms
*r
)
22856 uint32_t cntr_info_0
;
22857 TALLOC_CTX
*_mem_save_info_0
;
22858 if (flags
& NDR_IN
) {
22859 ZERO_STRUCT(r
->out
);
22861 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22862 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
22864 if (flags
& NDR_OUT
) {
22865 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
22866 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22867 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22868 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22869 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22870 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22872 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22873 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22875 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22877 return NDR_ERR_SUCCESS
;
22880 _PUBLIC_
void ndr_print_spoolss_EnumForms(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumForms
*r
)
22882 uint32_t cntr_info_2
;
22883 ndr_print_struct(ndr
, name
, "spoolss_EnumForms");
22885 if (flags
& NDR_SET_VALUES
) {
22886 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22888 if (flags
& NDR_IN
) {
22889 ndr_print_struct(ndr
, "in", "spoolss_EnumForms");
22891 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22893 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22895 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22896 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22898 if (r
->in
.buffer
) {
22899 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22902 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22905 if (flags
& NDR_OUT
) {
22906 ndr_print_struct(ndr
, "out", "spoolss_EnumForms");
22908 ndr_print_ptr(ndr
, "count", r
->out
.count
);
22910 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
22912 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22914 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
22916 if (*r
->out
.info
) {
22917 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
22919 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
22921 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
22922 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
22923 ndr_print_spoolss_FormInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
22931 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22933 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22935 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22941 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPorts
*r
)
22943 if (flags
& NDR_IN
) {
22944 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
22945 if (r
->in
.servername
) {
22946 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22947 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22948 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22949 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22951 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22952 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22953 if (r
->in
.buffer
) {
22954 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22956 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22958 if (flags
& NDR_OUT
) {
22959 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22961 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
22963 if (r
->out
.needed
== NULL
) {
22964 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22966 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22967 if (r
->out
.count
== NULL
) {
22968 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22970 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
22971 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22973 return NDR_ERR_SUCCESS
;
22976 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPorts
*r
)
22978 uint32_t _ptr_servername
;
22979 uint32_t _ptr_buffer
;
22980 uint32_t _ptr_info
;
22981 TALLOC_CTX
*_mem_save_servername_0
;
22982 TALLOC_CTX
*_mem_save_buffer_0
;
22983 TALLOC_CTX
*_mem_save_info_0
;
22984 TALLOC_CTX
*_mem_save_needed_0
;
22985 TALLOC_CTX
*_mem_save_count_0
;
22986 if (flags
& NDR_IN
) {
22987 ZERO_STRUCT(r
->out
);
22989 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
22990 if (_ptr_servername
) {
22991 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
22993 r
->in
.servername
= NULL
;
22995 if (r
->in
.servername
) {
22996 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22997 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
22998 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
22999 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
23000 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
23001 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
));
23003 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
23004 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
23005 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
23007 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23008 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23010 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23012 r
->in
.buffer
= NULL
;
23014 if (r
->in
.buffer
) {
23015 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23016 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23017 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23018 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23020 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23021 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23022 ZERO_STRUCTP(r
->out
.needed
);
23023 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23024 ZERO_STRUCTP(r
->out
.count
);
23026 if (flags
& NDR_OUT
) {
23027 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23029 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23031 r
->out
.info
= NULL
;
23034 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23035 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23036 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
23037 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23039 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23040 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23042 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23043 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23044 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23045 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23046 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23047 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23049 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23050 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
23051 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
23052 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
23053 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23055 return NDR_ERR_SUCCESS
;
23058 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPorts
*r
)
23060 uint32_t cntr_info_0
;
23061 if (flags
& NDR_IN
) {
23062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23063 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
23065 if (flags
& NDR_OUT
) {
23066 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23067 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23068 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23070 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23071 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23074 return NDR_ERR_SUCCESS
;
23077 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPorts
*r
)
23079 uint32_t cntr_info_0
;
23080 TALLOC_CTX
*_mem_save_info_0
;
23081 if (flags
& NDR_IN
) {
23082 ZERO_STRUCT(r
->out
);
23084 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23085 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
23087 if (flags
& NDR_OUT
) {
23088 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
23089 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23090 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23091 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23092 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23093 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23095 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23096 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23098 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23100 return NDR_ERR_SUCCESS
;
23103 _PUBLIC_
void ndr_print_spoolss_EnumPorts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPorts
*r
)
23105 uint32_t cntr_info_2
;
23106 ndr_print_struct(ndr
, name
, "spoolss_EnumPorts");
23108 if (flags
& NDR_SET_VALUES
) {
23109 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23111 if (flags
& NDR_IN
) {
23112 ndr_print_struct(ndr
, "in", "spoolss_EnumPorts");
23114 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
23116 if (r
->in
.servername
) {
23117 ndr_print_string(ndr
, "servername", r
->in
.servername
);
23120 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23121 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23123 if (r
->in
.buffer
) {
23124 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23127 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23130 if (flags
& NDR_OUT
) {
23131 ndr_print_struct(ndr
, "out", "spoolss_EnumPorts");
23133 ndr_print_ptr(ndr
, "count", r
->out
.count
);
23135 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
23137 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23139 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
23141 if (*r
->out
.info
) {
23142 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
23144 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
23146 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
23147 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
23148 ndr_print_spoolss_PortInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
23156 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23158 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23160 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23166 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumMonitors
*r
)
23168 if (flags
& NDR_IN
) {
23169 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
23170 if (r
->in
.servername
) {
23171 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
23172 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23173 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
23174 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23176 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23177 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23178 if (r
->in
.buffer
) {
23179 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23181 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23183 if (flags
& NDR_OUT
) {
23184 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23186 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
23188 if (r
->out
.needed
== NULL
) {
23189 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23191 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23192 if (r
->out
.count
== NULL
) {
23193 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23195 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
23196 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23198 return NDR_ERR_SUCCESS
;
23201 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumMonitors
*r
)
23203 uint32_t _ptr_servername
;
23204 uint32_t _ptr_buffer
;
23205 uint32_t _ptr_info
;
23206 TALLOC_CTX
*_mem_save_servername_0
;
23207 TALLOC_CTX
*_mem_save_buffer_0
;
23208 TALLOC_CTX
*_mem_save_info_0
;
23209 TALLOC_CTX
*_mem_save_needed_0
;
23210 TALLOC_CTX
*_mem_save_count_0
;
23211 if (flags
& NDR_IN
) {
23212 ZERO_STRUCT(r
->out
);
23214 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
23215 if (_ptr_servername
) {
23216 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
23218 r
->in
.servername
= NULL
;
23220 if (r
->in
.servername
) {
23221 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23222 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
23223 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
23224 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
23225 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
23226 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
));
23228 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
23229 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
23230 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
23232 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23233 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23235 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23237 r
->in
.buffer
= NULL
;
23239 if (r
->in
.buffer
) {
23240 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23241 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23242 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23243 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23245 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23246 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23247 ZERO_STRUCTP(r
->out
.needed
);
23248 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23249 ZERO_STRUCTP(r
->out
.count
);
23251 if (flags
& NDR_OUT
) {
23252 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23254 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23256 r
->out
.info
= NULL
;
23259 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23260 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23261 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
23262 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23264 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23265 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23267 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23268 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23269 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23270 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23271 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23272 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23274 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23275 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
23276 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
23277 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
23278 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23280 return NDR_ERR_SUCCESS
;
23283 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumMonitors
*r
)
23285 uint32_t cntr_info_0
;
23286 if (flags
& NDR_IN
) {
23287 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23288 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
23290 if (flags
& NDR_OUT
) {
23291 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23292 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23293 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23295 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23296 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23299 return NDR_ERR_SUCCESS
;
23302 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumMonitors
*r
)
23304 uint32_t cntr_info_0
;
23305 TALLOC_CTX
*_mem_save_info_0
;
23306 if (flags
& NDR_IN
) {
23307 ZERO_STRUCT(r
->out
);
23309 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23310 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
23312 if (flags
& NDR_OUT
) {
23313 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
23314 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23315 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23316 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23317 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23318 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23320 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23321 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23323 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23325 return NDR_ERR_SUCCESS
;
23328 _PUBLIC_
void ndr_print_spoolss_EnumMonitors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumMonitors
*r
)
23330 uint32_t cntr_info_2
;
23331 ndr_print_struct(ndr
, name
, "spoolss_EnumMonitors");
23333 if (flags
& NDR_SET_VALUES
) {
23334 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23336 if (flags
& NDR_IN
) {
23337 ndr_print_struct(ndr
, "in", "spoolss_EnumMonitors");
23339 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
23341 if (r
->in
.servername
) {
23342 ndr_print_string(ndr
, "servername", r
->in
.servername
);
23345 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23346 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23348 if (r
->in
.buffer
) {
23349 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23352 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23355 if (flags
& NDR_OUT
) {
23356 ndr_print_struct(ndr
, "out", "spoolss_EnumMonitors");
23358 ndr_print_ptr(ndr
, "count", r
->out
.count
);
23360 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
23362 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23364 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
23366 if (*r
->out
.info
) {
23367 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
23369 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
23371 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
23372 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
23373 ndr_print_spoolss_MonitorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
23381 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23383 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23385 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23391 static enum ndr_err_code
ndr_push_spoolss_AddPort(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPort
*r
)
23393 if (flags
& NDR_IN
) {
23394 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
23395 if (r
->in
.server_name
) {
23396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
23397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23398 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
23399 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
));
23401 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
23402 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
23403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23404 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
23405 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
));
23407 if (flags
& NDR_OUT
) {
23408 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23410 return NDR_ERR_SUCCESS
;
23413 static enum ndr_err_code
ndr_pull_spoolss_AddPort(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPort
*r
)
23415 uint32_t _ptr_server_name
;
23416 TALLOC_CTX
*_mem_save_server_name_0
;
23417 if (flags
& NDR_IN
) {
23418 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
23419 if (_ptr_server_name
) {
23420 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
23422 r
->in
.server_name
= NULL
;
23424 if (r
->in
.server_name
) {
23425 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23426 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
23427 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
23428 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
23429 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
23430 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
));
23432 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
23433 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
));
23434 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
23436 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
23437 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.monitor_name
));
23438 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.monitor_name
));
23439 if (ndr_get_array_length(ndr
, &r
->in
.monitor_name
) > ndr_get_array_size(ndr
, &r
->in
.monitor_name
)) {
23440 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
));
23442 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.monitor_name
), sizeof(uint16_t)));
23443 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
));
23445 if (flags
& NDR_OUT
) {
23446 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23448 return NDR_ERR_SUCCESS
;
23451 _PUBLIC_
void ndr_print_spoolss_AddPort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPort
*r
)
23453 ndr_print_struct(ndr
, name
, "spoolss_AddPort");
23455 if (flags
& NDR_SET_VALUES
) {
23456 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23458 if (flags
& NDR_IN
) {
23459 ndr_print_struct(ndr
, "in", "spoolss_AddPort");
23461 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
23463 if (r
->in
.server_name
) {
23464 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
23467 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
23468 ndr_print_string(ndr
, "monitor_name", r
->in
.monitor_name
);
23471 if (flags
& NDR_OUT
) {
23472 ndr_print_struct(ndr
, "out", "spoolss_AddPort");
23474 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23480 static enum ndr_err_code
ndr_push_spoolss_ConfigurePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_ConfigurePort
*r
)
23482 if (flags
& NDR_IN
) {
23484 if (flags
& NDR_OUT
) {
23485 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23487 return NDR_ERR_SUCCESS
;
23490 static enum ndr_err_code
ndr_pull_spoolss_ConfigurePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_ConfigurePort
*r
)
23492 if (flags
& NDR_IN
) {
23494 if (flags
& NDR_OUT
) {
23495 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23497 return NDR_ERR_SUCCESS
;
23500 _PUBLIC_
void ndr_print_spoolss_ConfigurePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ConfigurePort
*r
)
23502 ndr_print_struct(ndr
, name
, "spoolss_ConfigurePort");
23504 if (flags
& NDR_SET_VALUES
) {
23505 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23507 if (flags
& NDR_IN
) {
23508 ndr_print_struct(ndr
, "in", "spoolss_ConfigurePort");
23512 if (flags
& NDR_OUT
) {
23513 ndr_print_struct(ndr
, "out", "spoolss_ConfigurePort");
23515 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23521 static enum ndr_err_code
ndr_push_spoolss_DeletePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePort
*r
)
23523 if (flags
& NDR_IN
) {
23525 if (flags
& NDR_OUT
) {
23526 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23528 return NDR_ERR_SUCCESS
;
23531 static enum ndr_err_code
ndr_pull_spoolss_DeletePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePort
*r
)
23533 if (flags
& NDR_IN
) {
23535 if (flags
& NDR_OUT
) {
23536 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23538 return NDR_ERR_SUCCESS
;
23541 _PUBLIC_
void ndr_print_spoolss_DeletePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePort
*r
)
23543 ndr_print_struct(ndr
, name
, "spoolss_DeletePort");
23545 if (flags
& NDR_SET_VALUES
) {
23546 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23548 if (flags
& NDR_IN
) {
23549 ndr_print_struct(ndr
, "in", "spoolss_DeletePort");
23553 if (flags
& NDR_OUT
) {
23554 ndr_print_struct(ndr
, "out", "spoolss_DeletePort");
23556 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23562 static enum ndr_err_code
ndr_push_spoolss_CreatePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
23564 if (flags
& NDR_IN
) {
23566 if (flags
& NDR_OUT
) {
23567 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23569 return NDR_ERR_SUCCESS
;
23572 static enum ndr_err_code
ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_CreatePrinterIC
*r
)
23574 if (flags
& NDR_IN
) {
23576 if (flags
& NDR_OUT
) {
23577 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23579 return NDR_ERR_SUCCESS
;
23582 _PUBLIC_
void ndr_print_spoolss_CreatePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
23584 ndr_print_struct(ndr
, name
, "spoolss_CreatePrinterIC");
23586 if (flags
& NDR_SET_VALUES
) {
23587 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23589 if (flags
& NDR_IN
) {
23590 ndr_print_struct(ndr
, "in", "spoolss_CreatePrinterIC");
23594 if (flags
& NDR_OUT
) {
23595 ndr_print_struct(ndr
, "out", "spoolss_CreatePrinterIC");
23597 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23603 static enum ndr_err_code
ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
23605 if (flags
& NDR_IN
) {
23607 if (flags
& NDR_OUT
) {
23608 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23610 return NDR_ERR_SUCCESS
;
23613 static enum ndr_err_code
ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
23615 if (flags
& NDR_IN
) {
23617 if (flags
& NDR_OUT
) {
23618 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23620 return NDR_ERR_SUCCESS
;
23623 _PUBLIC_
void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
23625 ndr_print_struct(ndr
, name
, "spoolss_PlayGDIScriptOnPrinterIC");
23627 if (flags
& NDR_SET_VALUES
) {
23628 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23630 if (flags
& NDR_IN
) {
23631 ndr_print_struct(ndr
, "in", "spoolss_PlayGDIScriptOnPrinterIC");
23635 if (flags
& NDR_OUT
) {
23636 ndr_print_struct(ndr
, "out", "spoolss_PlayGDIScriptOnPrinterIC");
23638 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23644 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
23646 if (flags
& NDR_IN
) {
23648 if (flags
& NDR_OUT
) {
23649 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23651 return NDR_ERR_SUCCESS
;
23654 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterIC
*r
)
23656 if (flags
& NDR_IN
) {
23658 if (flags
& NDR_OUT
) {
23659 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23661 return NDR_ERR_SUCCESS
;
23664 _PUBLIC_
void ndr_print_spoolss_DeletePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
23666 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterIC");
23668 if (flags
& NDR_SET_VALUES
) {
23669 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23671 if (flags
& NDR_IN
) {
23672 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterIC");
23676 if (flags
& NDR_OUT
) {
23677 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterIC");
23679 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23685 static enum ndr_err_code
ndr_push_spoolss_AddPrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
23687 if (flags
& NDR_IN
) {
23689 if (flags
& NDR_OUT
) {
23690 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23692 return NDR_ERR_SUCCESS
;
23695 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterConnection
*r
)
23697 if (flags
& NDR_IN
) {
23699 if (flags
& NDR_OUT
) {
23700 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23702 return NDR_ERR_SUCCESS
;
23705 _PUBLIC_
void ndr_print_spoolss_AddPrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
23707 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterConnection");
23709 if (flags
& NDR_SET_VALUES
) {
23710 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23712 if (flags
& NDR_IN
) {
23713 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterConnection");
23717 if (flags
& NDR_OUT
) {
23718 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterConnection");
23720 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23726 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
23728 if (flags
& NDR_IN
) {
23730 if (flags
& NDR_OUT
) {
23731 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23733 return NDR_ERR_SUCCESS
;
23736 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterConnection
*r
)
23738 if (flags
& NDR_IN
) {
23740 if (flags
& NDR_OUT
) {
23741 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23743 return NDR_ERR_SUCCESS
;
23746 _PUBLIC_
void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
23748 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterConnection");
23750 if (flags
& NDR_SET_VALUES
) {
23751 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23753 if (flags
& NDR_IN
) {
23754 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterConnection");
23758 if (flags
& NDR_OUT
) {
23759 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterConnection");
23761 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23767 static enum ndr_err_code
ndr_push_spoolss_PrinterMessageBox(struct ndr_push
*ndr
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
23769 if (flags
& NDR_IN
) {
23771 if (flags
& NDR_OUT
) {
23772 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23774 return NDR_ERR_SUCCESS
;
23777 static enum ndr_err_code
ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull
*ndr
, int flags
, struct spoolss_PrinterMessageBox
*r
)
23779 if (flags
& NDR_IN
) {
23781 if (flags
& NDR_OUT
) {
23782 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23784 return NDR_ERR_SUCCESS
;
23787 _PUBLIC_
void ndr_print_spoolss_PrinterMessageBox(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
23789 ndr_print_struct(ndr
, name
, "spoolss_PrinterMessageBox");
23791 if (flags
& NDR_SET_VALUES
) {
23792 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23794 if (flags
& NDR_IN
) {
23795 ndr_print_struct(ndr
, "in", "spoolss_PrinterMessageBox");
23799 if (flags
& NDR_OUT
) {
23800 ndr_print_struct(ndr
, "out", "spoolss_PrinterMessageBox");
23802 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23808 static enum ndr_err_code
ndr_push_spoolss_AddMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddMonitor
*r
)
23810 if (flags
& NDR_IN
) {
23812 if (flags
& NDR_OUT
) {
23813 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23815 return NDR_ERR_SUCCESS
;
23818 static enum ndr_err_code
ndr_pull_spoolss_AddMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddMonitor
*r
)
23820 if (flags
& NDR_IN
) {
23822 if (flags
& NDR_OUT
) {
23823 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23825 return NDR_ERR_SUCCESS
;
23828 _PUBLIC_
void ndr_print_spoolss_AddMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddMonitor
*r
)
23830 ndr_print_struct(ndr
, name
, "spoolss_AddMonitor");
23832 if (flags
& NDR_SET_VALUES
) {
23833 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23835 if (flags
& NDR_IN
) {
23836 ndr_print_struct(ndr
, "in", "spoolss_AddMonitor");
23840 if (flags
& NDR_OUT
) {
23841 ndr_print_struct(ndr
, "out", "spoolss_AddMonitor");
23843 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23849 static enum ndr_err_code
ndr_push_spoolss_DeleteMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteMonitor
*r
)
23851 if (flags
& NDR_IN
) {
23853 if (flags
& NDR_OUT
) {
23854 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23856 return NDR_ERR_SUCCESS
;
23859 static enum ndr_err_code
ndr_pull_spoolss_DeleteMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteMonitor
*r
)
23861 if (flags
& NDR_IN
) {
23863 if (flags
& NDR_OUT
) {
23864 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23866 return NDR_ERR_SUCCESS
;
23869 _PUBLIC_
void ndr_print_spoolss_DeleteMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteMonitor
*r
)
23871 ndr_print_struct(ndr
, name
, "spoolss_DeleteMonitor");
23873 if (flags
& NDR_SET_VALUES
) {
23874 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23876 if (flags
& NDR_IN
) {
23877 ndr_print_struct(ndr
, "in", "spoolss_DeleteMonitor");
23881 if (flags
& NDR_OUT
) {
23882 ndr_print_struct(ndr
, "out", "spoolss_DeleteMonitor");
23884 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23890 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
23892 if (flags
& NDR_IN
) {
23894 if (flags
& NDR_OUT
) {
23895 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23897 return NDR_ERR_SUCCESS
;
23900 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProcessor
*r
)
23902 if (flags
& NDR_IN
) {
23904 if (flags
& NDR_OUT
) {
23905 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23907 return NDR_ERR_SUCCESS
;
23910 _PUBLIC_
void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
23912 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProcessor");
23914 if (flags
& NDR_SET_VALUES
) {
23915 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23917 if (flags
& NDR_IN
) {
23918 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProcessor");
23922 if (flags
& NDR_OUT
) {
23923 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProcessor");
23925 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23931 static enum ndr_err_code
ndr_push_spoolss_AddPrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
23933 if (flags
& NDR_IN
) {
23935 if (flags
& NDR_OUT
) {
23936 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23938 return NDR_ERR_SUCCESS
;
23941 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProvidor
*r
)
23943 if (flags
& NDR_IN
) {
23945 if (flags
& NDR_OUT
) {
23946 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23948 return NDR_ERR_SUCCESS
;
23951 _PUBLIC_
void ndr_print_spoolss_AddPrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
23953 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProvidor");
23955 if (flags
& NDR_SET_VALUES
) {
23956 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23958 if (flags
& NDR_IN
) {
23959 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProvidor");
23963 if (flags
& NDR_OUT
) {
23964 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProvidor");
23966 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23972 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
23974 if (flags
& NDR_IN
) {
23976 if (flags
& NDR_OUT
) {
23977 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23979 return NDR_ERR_SUCCESS
;
23982 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProvidor
*r
)
23984 if (flags
& NDR_IN
) {
23986 if (flags
& NDR_OUT
) {
23987 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23989 return NDR_ERR_SUCCESS
;
23992 _PUBLIC_
void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
23994 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProvidor");
23996 if (flags
& NDR_SET_VALUES
) {
23997 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23999 if (flags
& NDR_IN
) {
24000 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProvidor");
24004 if (flags
& NDR_OUT
) {
24005 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProvidor");
24007 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24013 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcDataTypes
*r
)
24015 if (flags
& NDR_IN
) {
24016 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
24017 if (r
->in
.servername
) {
24018 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24019 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24020 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
24021 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24023 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.print_processor_name
));
24024 if (r
->in
.print_processor_name
) {
24025 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
24026 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24027 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
24028 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
));
24030 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24031 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24032 if (r
->in
.buffer
) {
24033 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24035 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24037 if (flags
& NDR_OUT
) {
24038 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24040 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
24042 if (r
->out
.needed
== NULL
) {
24043 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24045 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24046 if (r
->out
.count
== NULL
) {
24047 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24049 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
24050 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24052 return NDR_ERR_SUCCESS
;
24055 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcDataTypes
*r
)
24057 uint32_t _ptr_servername
;
24058 uint32_t _ptr_print_processor_name
;
24059 uint32_t _ptr_buffer
;
24060 uint32_t _ptr_info
;
24061 TALLOC_CTX
*_mem_save_servername_0
;
24062 TALLOC_CTX
*_mem_save_print_processor_name_0
;
24063 TALLOC_CTX
*_mem_save_buffer_0
;
24064 TALLOC_CTX
*_mem_save_info_0
;
24065 TALLOC_CTX
*_mem_save_needed_0
;
24066 TALLOC_CTX
*_mem_save_count_0
;
24067 if (flags
& NDR_IN
) {
24068 ZERO_STRUCT(r
->out
);
24070 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
24071 if (_ptr_servername
) {
24072 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
24074 r
->in
.servername
= NULL
;
24076 if (r
->in
.servername
) {
24077 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24078 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
24079 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
24080 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
24081 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
24082 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
));
24084 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
24085 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
24086 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
24088 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
24089 if (_ptr_print_processor_name
) {
24090 NDR_PULL_ALLOC(ndr
, r
->in
.print_processor_name
);
24092 r
->in
.print_processor_name
= NULL
;
24094 if (r
->in
.print_processor_name
) {
24095 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24096 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.print_processor_name
, 0);
24097 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
24098 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
24099 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
24100 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
));
24102 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
24103 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
));
24104 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
24106 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24107 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24109 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24111 r
->in
.buffer
= NULL
;
24113 if (r
->in
.buffer
) {
24114 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24115 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24116 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
24117 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24119 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24120 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24121 ZERO_STRUCTP(r
->out
.needed
);
24122 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24123 ZERO_STRUCTP(r
->out
.count
);
24125 if (flags
& NDR_OUT
) {
24126 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24128 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24130 r
->out
.info
= NULL
;
24133 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24134 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24135 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
24136 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24138 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24139 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24141 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24142 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24143 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24144 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24145 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24146 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
24148 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24149 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
24150 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
24151 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
24152 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24154 return NDR_ERR_SUCCESS
;
24157 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcDataTypes
*r
)
24159 uint32_t cntr_info_0
;
24160 if (flags
& NDR_IN
) {
24161 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24162 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
24164 if (flags
& NDR_OUT
) {
24165 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24166 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24167 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24169 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24170 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24173 return NDR_ERR_SUCCESS
;
24176 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcDataTypes
*r
)
24178 uint32_t cntr_info_0
;
24179 TALLOC_CTX
*_mem_save_info_0
;
24180 if (flags
& NDR_IN
) {
24181 ZERO_STRUCT(r
->out
);
24183 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24184 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
24186 if (flags
& NDR_OUT
) {
24187 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
24188 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24189 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24190 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24191 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
24192 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
24194 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
24195 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
24197 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24199 return NDR_ERR_SUCCESS
;
24202 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcDataTypes
*r
)
24204 uint32_t cntr_info_2
;
24205 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcDataTypes");
24207 if (flags
& NDR_SET_VALUES
) {
24208 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24210 if (flags
& NDR_IN
) {
24211 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcDataTypes");
24213 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
24215 if (r
->in
.servername
) {
24216 ndr_print_string(ndr
, "servername", r
->in
.servername
);
24219 ndr_print_ptr(ndr
, "print_processor_name", r
->in
.print_processor_name
);
24221 if (r
->in
.print_processor_name
) {
24222 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
24225 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24226 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24228 if (r
->in
.buffer
) {
24229 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
24232 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24235 if (flags
& NDR_OUT
) {
24236 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcDataTypes");
24238 ndr_print_ptr(ndr
, "count", r
->out
.count
);
24240 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
24242 ndr_print_ptr(ndr
, "info", r
->out
.info
);
24244 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
24246 if (*r
->out
.info
) {
24247 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
24249 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
24251 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
24252 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
24253 ndr_print_spoolss_PrintProcDataTypesInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
24261 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24263 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24265 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24271 static enum ndr_err_code
ndr_push_spoolss_ResetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinter
*r
)
24273 if (flags
& NDR_IN
) {
24274 if (r
->in
.handle
== NULL
) {
24275 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24277 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24278 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_type
));
24279 if (r
->in
.data_type
) {
24280 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
24281 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24282 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
24283 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
));
24285 if (r
->in
.devmode_ctr
== NULL
) {
24286 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24288 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
24290 if (flags
& NDR_OUT
) {
24291 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24293 return NDR_ERR_SUCCESS
;
24296 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinter
*r
)
24298 uint32_t _ptr_data_type
;
24299 TALLOC_CTX
*_mem_save_handle_0
;
24300 TALLOC_CTX
*_mem_save_data_type_0
;
24301 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
24302 if (flags
& NDR_IN
) {
24303 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24304 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24306 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24307 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24308 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24309 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24310 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
24311 if (_ptr_data_type
) {
24312 NDR_PULL_ALLOC(ndr
, r
->in
.data_type
);
24314 r
->in
.data_type
= NULL
;
24316 if (r
->in
.data_type
) {
24317 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24318 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_type
, 0);
24319 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data_type
));
24320 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data_type
));
24321 if (ndr_get_array_length(ndr
, &r
->in
.data_type
) > ndr_get_array_size(ndr
, &r
->in
.data_type
)) {
24322 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
));
24324 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.data_type
), sizeof(uint16_t)));
24325 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
));
24326 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
24328 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24329 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
24331 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24332 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
24333 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
24334 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
24336 if (flags
& NDR_OUT
) {
24337 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24339 return NDR_ERR_SUCCESS
;
24342 _PUBLIC_
void ndr_print_spoolss_ResetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinter
*r
)
24344 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinter");
24346 if (flags
& NDR_SET_VALUES
) {
24347 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24349 if (flags
& NDR_IN
) {
24350 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinter");
24352 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24354 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24356 ndr_print_ptr(ndr
, "data_type", r
->in
.data_type
);
24358 if (r
->in
.data_type
) {
24359 ndr_print_string(ndr
, "data_type", r
->in
.data_type
);
24362 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
24364 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
24368 if (flags
& NDR_OUT
) {
24369 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinter");
24371 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24377 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver2(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
24379 if (flags
& NDR_IN
) {
24380 if (r
->in
.handle
== NULL
) {
24381 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24383 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24384 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
24385 if (r
->in
.architecture
) {
24386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
24387 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24388 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
24389 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
24391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
24392 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24393 if (r
->in
.buffer
) {
24394 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
24396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
24397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_major_version
));
24398 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_minor_version
));
24400 if (flags
& NDR_OUT
) {
24401 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
24404 struct ndr_push
*_ndr_info
;
24405 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
24406 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
24407 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
24408 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
24411 if (r
->out
.needed
== NULL
) {
24412 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24414 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
24415 if (r
->out
.server_major_version
== NULL
) {
24416 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24418 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_major_version
));
24419 if (r
->out
.server_minor_version
== NULL
) {
24420 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24422 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_minor_version
));
24423 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24425 return NDR_ERR_SUCCESS
;
24428 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver2
*r
)
24430 uint32_t _ptr_architecture
;
24431 uint32_t _ptr_buffer
;
24432 uint32_t _ptr_info
;
24433 TALLOC_CTX
*_mem_save_handle_0
;
24434 TALLOC_CTX
*_mem_save_architecture_0
;
24435 TALLOC_CTX
*_mem_save_buffer_0
;
24436 TALLOC_CTX
*_mem_save_info_0
;
24437 TALLOC_CTX
*_mem_save_needed_0
;
24438 TALLOC_CTX
*_mem_save_server_major_version_0
;
24439 TALLOC_CTX
*_mem_save_server_minor_version_0
;
24440 if (flags
& NDR_IN
) {
24441 ZERO_STRUCT(r
->out
);
24443 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24444 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24446 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24447 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24448 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24449 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24450 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
24451 if (_ptr_architecture
) {
24452 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
24454 r
->in
.architecture
= NULL
;
24456 if (r
->in
.architecture
) {
24457 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24458 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
24459 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
24460 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
24461 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
24462 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
));
24464 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
24465 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
24466 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
24468 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24469 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24471 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24473 r
->in
.buffer
= NULL
;
24475 if (r
->in
.buffer
) {
24476 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24477 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24478 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
24479 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24481 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24482 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_major_version
));
24483 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_minor_version
));
24484 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24485 ZERO_STRUCTP(r
->out
.needed
);
24486 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
24487 ZERO_STRUCTP(r
->out
.server_major_version
);
24488 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
24489 ZERO_STRUCTP(r
->out
.server_minor_version
);
24491 if (flags
& NDR_OUT
) {
24492 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24494 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24496 r
->out
.info
= NULL
;
24499 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24500 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24502 struct ndr_pull
*_ndr_info
;
24503 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
24504 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
24505 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
24506 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
24508 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24510 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24511 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24513 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24514 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24515 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24516 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24517 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24518 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
24520 _mem_save_server_major_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24521 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_major_version
, LIBNDR_FLAG_REF_ALLOC
);
24522 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_major_version
));
24523 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_major_version_0
, LIBNDR_FLAG_REF_ALLOC
);
24524 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24525 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
24527 _mem_save_server_minor_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24528 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_minor_version
, LIBNDR_FLAG_REF_ALLOC
);
24529 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_minor_version
));
24530 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_minor_version_0
, LIBNDR_FLAG_REF_ALLOC
);
24531 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24533 return NDR_ERR_SUCCESS
;
24536 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
24538 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver2");
24540 if (flags
& NDR_SET_VALUES
) {
24541 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24543 if (flags
& NDR_IN
) {
24544 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver2");
24546 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24548 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24550 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
24552 if (r
->in
.architecture
) {
24553 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
24556 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24557 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24559 if (r
->in
.buffer
) {
24560 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
24563 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24564 ndr_print_uint32(ndr
, "client_major_version", r
->in
.client_major_version
);
24565 ndr_print_uint32(ndr
, "client_minor_version", r
->in
.client_minor_version
);
24568 if (flags
& NDR_OUT
) {
24569 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver2");
24571 ndr_print_ptr(ndr
, "info", r
->out
.info
);
24574 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
24575 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
24578 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24580 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24582 ndr_print_ptr(ndr
, "server_major_version", r
->out
.server_major_version
);
24584 ndr_print_uint32(ndr
, "server_major_version", *r
->out
.server_major_version
);
24586 ndr_print_ptr(ndr
, "server_minor_version", r
->out
.server_minor_version
);
24588 ndr_print_uint32(ndr
, "server_minor_version", *r
->out
.server_minor_version
);
24590 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24596 static enum ndr_err_code
ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
24598 if (flags
& NDR_IN
) {
24600 if (flags
& NDR_OUT
) {
24601 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24603 return NDR_ERR_SUCCESS
;
24606 static enum ndr_err_code
ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindFirstPrinterChangeNotification
*r
)
24608 if (flags
& NDR_IN
) {
24610 if (flags
& NDR_OUT
) {
24611 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24613 return NDR_ERR_SUCCESS
;
24616 _PUBLIC_
void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
24618 ndr_print_struct(ndr
, name
, "spoolss_FindFirstPrinterChangeNotification");
24620 if (flags
& NDR_SET_VALUES
) {
24621 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24623 if (flags
& NDR_IN
) {
24624 ndr_print_struct(ndr
, "in", "spoolss_FindFirstPrinterChangeNotification");
24628 if (flags
& NDR_OUT
) {
24629 ndr_print_struct(ndr
, "out", "spoolss_FindFirstPrinterChangeNotification");
24631 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24637 static enum ndr_err_code
ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
24639 if (flags
& NDR_IN
) {
24641 if (flags
& NDR_OUT
) {
24642 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24644 return NDR_ERR_SUCCESS
;
24647 static enum ndr_err_code
ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindNextPrinterChangeNotification
*r
)
24649 if (flags
& NDR_IN
) {
24651 if (flags
& NDR_OUT
) {
24652 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24654 return NDR_ERR_SUCCESS
;
24657 _PUBLIC_
void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
24659 ndr_print_struct(ndr
, name
, "spoolss_FindNextPrinterChangeNotification");
24661 if (flags
& NDR_SET_VALUES
) {
24662 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24664 if (flags
& NDR_IN
) {
24665 ndr_print_struct(ndr
, "in", "spoolss_FindNextPrinterChangeNotification");
24669 if (flags
& NDR_OUT
) {
24670 ndr_print_struct(ndr
, "out", "spoolss_FindNextPrinterChangeNotification");
24672 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24678 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
24680 if (flags
& NDR_IN
) {
24681 if (r
->in
.handle
== NULL
) {
24682 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24684 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24686 if (flags
& NDR_OUT
) {
24687 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24689 return NDR_ERR_SUCCESS
;
24692 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindClosePrinterNotify
*r
)
24694 TALLOC_CTX
*_mem_save_handle_0
;
24695 if (flags
& NDR_IN
) {
24696 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24697 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24699 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24700 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24701 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24702 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24704 if (flags
& NDR_OUT
) {
24705 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24707 return NDR_ERR_SUCCESS
;
24710 _PUBLIC_
void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
24712 ndr_print_struct(ndr
, name
, "spoolss_FindClosePrinterNotify");
24714 if (flags
& NDR_SET_VALUES
) {
24715 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24717 if (flags
& NDR_IN
) {
24718 ndr_print_struct(ndr
, "in", "spoolss_FindClosePrinterNotify");
24720 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24722 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24726 if (flags
& NDR_OUT
) {
24727 ndr_print_struct(ndr
, "out", "spoolss_FindClosePrinterNotify");
24729 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24735 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
24737 if (flags
& NDR_IN
) {
24739 if (flags
& NDR_OUT
) {
24740 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24742 return NDR_ERR_SUCCESS
;
24745 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
24747 if (flags
& NDR_IN
) {
24749 if (flags
& NDR_OUT
) {
24750 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24752 return NDR_ERR_SUCCESS
;
24755 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
24757 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24759 if (flags
& NDR_SET_VALUES
) {
24760 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24762 if (flags
& NDR_IN
) {
24763 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24767 if (flags
& NDR_OUT
) {
24768 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24770 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24776 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
24778 if (flags
& NDR_IN
) {
24779 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
24780 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24781 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
24782 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
));
24783 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
24784 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
24785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
24786 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24787 if (r
->in
.buffer
) {
24788 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
24789 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
24792 if (flags
& NDR_OUT
) {
24793 if (r
->out
.handle
== NULL
) {
24794 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24796 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24797 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24799 return NDR_ERR_SUCCESS
;
24802 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyOpenPrinter
*r
)
24804 uint32_t _ptr_buffer
;
24805 TALLOC_CTX
*_mem_save_buffer_0
;
24806 TALLOC_CTX
*_mem_save_handle_0
;
24807 if (flags
& NDR_IN
) {
24808 ZERO_STRUCT(r
->out
);
24810 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
24811 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
24812 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
24813 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
));
24815 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
24816 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
));
24817 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
24818 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
24819 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
24820 if (r
->in
.bufsize
> 512) {
24821 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
24823 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24825 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24827 r
->in
.buffer
= NULL
;
24829 if (r
->in
.buffer
) {
24830 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24831 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24832 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
24833 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
24834 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
24835 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24837 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24838 ZERO_STRUCTP(r
->out
.handle
);
24839 if (r
->in
.buffer
) {
24840 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
24843 if (flags
& NDR_OUT
) {
24844 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24845 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24847 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24848 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24849 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24850 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24851 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24853 return NDR_ERR_SUCCESS
;
24856 _PUBLIC_
void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
24858 ndr_print_struct(ndr
, name
, "spoolss_ReplyOpenPrinter");
24860 if (flags
& NDR_SET_VALUES
) {
24861 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24863 if (flags
& NDR_IN
) {
24864 ndr_print_struct(ndr
, "in", "spoolss_ReplyOpenPrinter");
24866 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
24867 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
24868 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
24869 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
24870 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24872 if (r
->in
.buffer
) {
24873 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
24878 if (flags
& NDR_OUT
) {
24879 ndr_print_struct(ndr
, "out", "spoolss_ReplyOpenPrinter");
24881 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
24883 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
24885 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24891 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
24893 if (flags
& NDR_IN
) {
24894 if (r
->in
.handle
== NULL
) {
24895 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24897 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24898 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
24899 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
24900 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24901 if (r
->in
.buffer
) {
24902 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
24903 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
24906 if (flags
& NDR_OUT
) {
24907 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24909 return NDR_ERR_SUCCESS
;
24912 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinter
*r
)
24914 uint32_t _ptr_buffer
;
24915 TALLOC_CTX
*_mem_save_handle_0
;
24916 TALLOC_CTX
*_mem_save_buffer_0
;
24917 if (flags
& NDR_IN
) {
24918 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24919 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24921 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24922 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24923 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24924 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24925 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
24926 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
24927 if (r
->in
.bufsize
> 512) {
24928 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
24930 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24932 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24934 r
->in
.buffer
= NULL
;
24936 if (r
->in
.buffer
) {
24937 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24938 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24939 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
24940 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
24941 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
24942 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24944 if (r
->in
.buffer
) {
24945 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
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_RouterReplyPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
24956 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinter");
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_RouterReplyPrinter");
24964 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24966 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24968 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
24969 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
24970 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24972 if (r
->in
.buffer
) {
24973 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
24978 if (flags
& NDR_OUT
) {
24979 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinter");
24981 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24987 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
24989 if (flags
& NDR_IN
) {
24990 if (r
->in
.handle
== NULL
) {
24991 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24993 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24995 if (flags
& NDR_OUT
) {
24996 if (r
->out
.handle
== NULL
) {
24997 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24999 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25000 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25002 return NDR_ERR_SUCCESS
;
25005 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyClosePrinter
*r
)
25007 TALLOC_CTX
*_mem_save_handle_0
;
25008 if (flags
& NDR_IN
) {
25009 ZERO_STRUCT(r
->out
);
25011 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25012 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25014 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25015 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25016 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25017 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25018 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25019 *r
->out
.handle
= *r
->in
.handle
;
25021 if (flags
& NDR_OUT
) {
25022 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25023 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25025 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25026 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25027 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25028 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25029 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25031 return NDR_ERR_SUCCESS
;
25034 _PUBLIC_
void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
25036 ndr_print_struct(ndr
, name
, "spoolss_ReplyClosePrinter");
25038 if (flags
& NDR_SET_VALUES
) {
25039 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25041 if (flags
& NDR_IN
) {
25042 ndr_print_struct(ndr
, "in", "spoolss_ReplyClosePrinter");
25044 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25046 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25050 if (flags
& NDR_OUT
) {
25051 ndr_print_struct(ndr
, "out", "spoolss_ReplyClosePrinter");
25053 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
25055 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
25057 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25063 static enum ndr_err_code
ndr_push_spoolss_AddPortEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPortEx
*r
)
25065 if (flags
& NDR_IN
) {
25067 if (flags
& NDR_OUT
) {
25068 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25070 return NDR_ERR_SUCCESS
;
25073 static enum ndr_err_code
ndr_pull_spoolss_AddPortEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPortEx
*r
)
25075 if (flags
& NDR_IN
) {
25077 if (flags
& NDR_OUT
) {
25078 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25080 return NDR_ERR_SUCCESS
;
25083 _PUBLIC_
void ndr_print_spoolss_AddPortEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPortEx
*r
)
25085 ndr_print_struct(ndr
, name
, "spoolss_AddPortEx");
25087 if (flags
& NDR_SET_VALUES
) {
25088 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25090 if (flags
& NDR_IN
) {
25091 ndr_print_struct(ndr
, "in", "spoolss_AddPortEx");
25095 if (flags
& NDR_OUT
) {
25096 ndr_print_struct(ndr
, "out", "spoolss_AddPortEx");
25098 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25104 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
25106 if (flags
& NDR_IN
) {
25108 if (flags
& NDR_OUT
) {
25109 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25111 return NDR_ERR_SUCCESS
;
25114 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
25116 if (flags
& NDR_IN
) {
25118 if (flags
& NDR_OUT
) {
25119 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25121 return NDR_ERR_SUCCESS
;
25124 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
25126 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotification");
25128 if (flags
& NDR_SET_VALUES
) {
25129 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25131 if (flags
& NDR_IN
) {
25132 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
25136 if (flags
& NDR_OUT
) {
25137 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
25139 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25145 static enum ndr_err_code
ndr_push_spoolss_SpoolerInit(struct ndr_push
*ndr
, int flags
, const struct spoolss_SpoolerInit
*r
)
25147 if (flags
& NDR_IN
) {
25149 if (flags
& NDR_OUT
) {
25150 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25152 return NDR_ERR_SUCCESS
;
25155 static enum ndr_err_code
ndr_pull_spoolss_SpoolerInit(struct ndr_pull
*ndr
, int flags
, struct spoolss_SpoolerInit
*r
)
25157 if (flags
& NDR_IN
) {
25159 if (flags
& NDR_OUT
) {
25160 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25162 return NDR_ERR_SUCCESS
;
25165 _PUBLIC_
void ndr_print_spoolss_SpoolerInit(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SpoolerInit
*r
)
25167 ndr_print_struct(ndr
, name
, "spoolss_SpoolerInit");
25169 if (flags
& NDR_SET_VALUES
) {
25170 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25172 if (flags
& NDR_IN
) {
25173 ndr_print_struct(ndr
, "in", "spoolss_SpoolerInit");
25177 if (flags
& NDR_OUT
) {
25178 ndr_print_struct(ndr
, "out", "spoolss_SpoolerInit");
25180 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25186 static enum ndr_err_code
ndr_push_spoolss_ResetPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
25188 if (flags
& NDR_IN
) {
25190 if (flags
& NDR_OUT
) {
25191 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25193 return NDR_ERR_SUCCESS
;
25196 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinterEx
*r
)
25198 if (flags
& NDR_IN
) {
25200 if (flags
& NDR_OUT
) {
25201 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25203 return NDR_ERR_SUCCESS
;
25206 _PUBLIC_
void ndr_print_spoolss_ResetPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
25208 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinterEx");
25210 if (flags
& NDR_SET_VALUES
) {
25211 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25213 if (flags
& NDR_IN
) {
25214 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinterEx");
25218 if (flags
& NDR_OUT
) {
25219 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinterEx");
25221 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25227 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
25229 if (flags
& NDR_IN
) {
25230 if (r
->in
.handle
== NULL
) {
25231 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25233 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25234 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
25235 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.options
));
25236 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.local_machine
));
25237 if (r
->in
.local_machine
) {
25238 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
25239 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25240 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
25241 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
));
25243 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
25244 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.notify_options
));
25245 if (r
->in
.notify_options
) {
25246 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
25249 if (flags
& NDR_OUT
) {
25250 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25252 return NDR_ERR_SUCCESS
;
25255 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
25257 uint32_t _ptr_local_machine
;
25258 uint32_t _ptr_notify_options
;
25259 TALLOC_CTX
*_mem_save_handle_0
;
25260 TALLOC_CTX
*_mem_save_local_machine_0
;
25261 TALLOC_CTX
*_mem_save_notify_options_0
;
25262 if (flags
& NDR_IN
) {
25263 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25264 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25266 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25267 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25268 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25269 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25270 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
25271 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.options
));
25272 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_local_machine
));
25273 if (_ptr_local_machine
) {
25274 NDR_PULL_ALLOC(ndr
, r
->in
.local_machine
);
25276 r
->in
.local_machine
= NULL
;
25278 if (r
->in
.local_machine
) {
25279 _mem_save_local_machine_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25280 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.local_machine
, 0);
25281 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.local_machine
));
25282 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.local_machine
));
25283 if (ndr_get_array_length(ndr
, &r
->in
.local_machine
) > ndr_get_array_size(ndr
, &r
->in
.local_machine
)) {
25284 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
));
25286 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.local_machine
), sizeof(uint16_t)));
25287 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
));
25288 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_local_machine_0
, 0);
25290 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
25291 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_options
));
25292 if (_ptr_notify_options
) {
25293 NDR_PULL_ALLOC(ndr
, r
->in
.notify_options
);
25295 r
->in
.notify_options
= NULL
;
25297 if (r
->in
.notify_options
) {
25298 _mem_save_notify_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25299 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.notify_options
, 0);
25300 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
25301 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_options_0
, 0);
25304 if (flags
& NDR_OUT
) {
25305 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25307 return NDR_ERR_SUCCESS
;
25310 _PUBLIC_
void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
25312 ndr_print_struct(ndr
, name
, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
25314 if (flags
& NDR_SET_VALUES
) {
25315 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25317 if (flags
& NDR_IN
) {
25318 ndr_print_struct(ndr
, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
25320 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25322 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25324 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
25325 ndr_print_uint32(ndr
, "options", r
->in
.options
);
25326 ndr_print_ptr(ndr
, "local_machine", r
->in
.local_machine
);
25328 if (r
->in
.local_machine
) {
25329 ndr_print_string(ndr
, "local_machine", r
->in
.local_machine
);
25332 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
25333 ndr_print_ptr(ndr
, "notify_options", r
->in
.notify_options
);
25335 if (r
->in
.notify_options
) {
25336 ndr_print_spoolss_NotifyOption(ndr
, "notify_options", r
->in
.notify_options
);
25341 if (flags
& NDR_OUT
) {
25342 ndr_print_struct(ndr
, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
25344 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25350 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
25352 if (flags
& NDR_IN
) {
25353 if (r
->in
.handle
== NULL
) {
25354 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25356 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25357 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.color
));
25358 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
25359 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reply_type
));
25360 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
25361 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
25363 if (flags
& NDR_OUT
) {
25364 if (r
->out
.reply_result
== NULL
) {
25365 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25367 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, *r
->out
.reply_result
));
25368 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25370 return NDR_ERR_SUCCESS
;
25373 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinterEx
*r
)
25375 TALLOC_CTX
*_mem_save_handle_0
;
25376 TALLOC_CTX
*_mem_save_reply_result_0
;
25377 if (flags
& NDR_IN
) {
25378 ZERO_STRUCT(r
->out
);
25380 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25381 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25383 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25384 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25385 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25386 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25387 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.color
));
25388 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
25389 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reply_type
));
25390 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
25391 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
25392 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
25393 ZERO_STRUCTP(r
->out
.reply_result
);
25395 if (flags
& NDR_OUT
) {
25396 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25397 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
25399 _mem_save_reply_result_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25400 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.reply_result
, LIBNDR_FLAG_REF_ALLOC
);
25401 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, r
->out
.reply_result
));
25402 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_reply_result_0
, LIBNDR_FLAG_REF_ALLOC
);
25403 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25405 return NDR_ERR_SUCCESS
;
25408 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
25410 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinterEx");
25412 if (flags
& NDR_SET_VALUES
) {
25413 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25415 if (flags
& NDR_IN
) {
25416 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinterEx");
25418 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25420 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25422 ndr_print_uint32(ndr
, "color", r
->in
.color
);
25423 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
25424 ndr_print_uint32(ndr
, "reply_type", r
->in
.reply_type
);
25425 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
);
25426 ndr_print_spoolss_ReplyPrinterInfo(ndr
, "info", &r
->in
.info
);
25429 if (flags
& NDR_OUT
) {
25430 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinterEx");
25432 ndr_print_ptr(ndr
, "reply_result", r
->out
.reply_result
);
25434 ndr_print_spoolss_PrinterNotifyFlags(ndr
, "reply_result", *r
->out
.reply_result
);
25436 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25442 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
25444 if (flags
& NDR_IN
) {
25445 if (r
->in
.handle
== NULL
) {
25446 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25448 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25449 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.change_low
));
25450 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.options
));
25451 if (r
->in
.options
) {
25452 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
25455 if (flags
& NDR_OUT
) {
25456 if (r
->out
.info
== NULL
) {
25457 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25459 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
25460 if (*r
->out
.info
) {
25461 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
25463 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25465 return NDR_ERR_SUCCESS
;
25468 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
25470 uint32_t _ptr_options
;
25471 uint32_t _ptr_info
;
25472 TALLOC_CTX
*_mem_save_handle_0
;
25473 TALLOC_CTX
*_mem_save_options_0
;
25474 TALLOC_CTX
*_mem_save_info_0
;
25475 TALLOC_CTX
*_mem_save_info_1
;
25476 if (flags
& NDR_IN
) {
25477 ZERO_STRUCT(r
->out
);
25479 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25480 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25482 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25483 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25484 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25485 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25486 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_low
));
25487 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_options
));
25488 if (_ptr_options
) {
25489 NDR_PULL_ALLOC(ndr
, r
->in
.options
);
25491 r
->in
.options
= NULL
;
25493 if (r
->in
.options
) {
25494 _mem_save_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25495 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.options
, 0);
25496 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
25497 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_options_0
, 0);
25499 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25500 ZERO_STRUCTP(r
->out
.info
);
25502 if (flags
& NDR_OUT
) {
25503 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25504 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25506 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25507 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
25508 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
25510 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
25512 *r
->out
.info
= NULL
;
25514 if (*r
->out
.info
) {
25515 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
25516 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
25517 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
25518 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
25520 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
25521 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25523 return NDR_ERR_SUCCESS
;
25526 _PUBLIC_
void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
25528 ndr_print_struct(ndr
, name
, "spoolss_RouterRefreshPrinterChangeNotify");
25530 if (flags
& NDR_SET_VALUES
) {
25531 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25533 if (flags
& NDR_IN
) {
25534 ndr_print_struct(ndr
, "in", "spoolss_RouterRefreshPrinterChangeNotify");
25536 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25538 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25540 ndr_print_uint32(ndr
, "change_low", r
->in
.change_low
);
25541 ndr_print_ptr(ndr
, "options", r
->in
.options
);
25543 if (r
->in
.options
) {
25544 ndr_print_spoolss_NotifyOption(ndr
, "options", r
->in
.options
);
25549 if (flags
& NDR_OUT
) {
25550 ndr_print_struct(ndr
, "out", "spoolss_RouterRefreshPrinterChangeNotify");
25552 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25554 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
25556 if (*r
->out
.info
) {
25557 ndr_print_spoolss_NotifyInfo(ndr
, "info", *r
->out
.info
);
25561 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25567 static enum ndr_err_code
ndr_push_spoolss_44(struct ndr_push
*ndr
, int flags
, const struct spoolss_44
*r
)
25569 if (flags
& NDR_IN
) {
25571 if (flags
& NDR_OUT
) {
25572 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25574 return NDR_ERR_SUCCESS
;
25577 static enum ndr_err_code
ndr_pull_spoolss_44(struct ndr_pull
*ndr
, int flags
, struct spoolss_44
*r
)
25579 if (flags
& NDR_IN
) {
25581 if (flags
& NDR_OUT
) {
25582 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25584 return NDR_ERR_SUCCESS
;
25587 _PUBLIC_
void ndr_print_spoolss_44(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_44
*r
)
25589 ndr_print_struct(ndr
, name
, "spoolss_44");
25591 if (flags
& NDR_SET_VALUES
) {
25592 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25594 if (flags
& NDR_IN
) {
25595 ndr_print_struct(ndr
, "in", "spoolss_44");
25599 if (flags
& NDR_OUT
) {
25600 ndr_print_struct(ndr
, "out", "spoolss_44");
25602 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25608 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
25610 if (flags
& NDR_IN
) {
25611 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
25612 if (r
->in
.printername
) {
25613 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
25614 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25615 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
25616 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25618 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
25619 if (r
->in
.datatype
) {
25620 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
25621 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25622 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
25623 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25625 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
25626 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
25627 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25628 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
25629 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
25631 if (flags
& NDR_OUT
) {
25632 if (r
->out
.handle
== NULL
) {
25633 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25635 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25636 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25638 return NDR_ERR_SUCCESS
;
25641 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinterEx
*r
)
25643 uint32_t _ptr_printername
;
25644 uint32_t _ptr_datatype
;
25645 TALLOC_CTX
*_mem_save_printername_0
;
25646 TALLOC_CTX
*_mem_save_datatype_0
;
25647 TALLOC_CTX
*_mem_save_handle_0
;
25648 if (flags
& NDR_IN
) {
25649 ZERO_STRUCT(r
->out
);
25651 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
25652 if (_ptr_printername
) {
25653 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
25655 r
->in
.printername
= NULL
;
25657 if (r
->in
.printername
) {
25658 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25659 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
25660 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
25661 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
25662 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
25663 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
));
25665 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
25666 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
25667 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
25669 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
25670 if (_ptr_datatype
) {
25671 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
25673 r
->in
.datatype
= NULL
;
25675 if (r
->in
.datatype
) {
25676 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25677 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
25678 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
25679 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
25680 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
25681 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
));
25683 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
25684 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
25685 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
25687 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
25688 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
25689 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25690 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
25691 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
25692 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25693 ZERO_STRUCTP(r
->out
.handle
);
25695 if (flags
& NDR_OUT
) {
25696 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25697 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25699 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25700 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25701 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25702 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25703 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25705 return NDR_ERR_SUCCESS
;
25708 _PUBLIC_
void ndr_print_spoolss_OpenPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
25710 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinterEx");
25712 if (flags
& NDR_SET_VALUES
) {
25713 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25715 if (flags
& NDR_IN
) {
25716 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinterEx");
25718 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
25720 if (r
->in
.printername
) {
25721 ndr_print_string(ndr
, "printername", r
->in
.printername
);
25724 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
25726 if (r
->in
.datatype
) {
25727 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
25730 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
25731 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
25732 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25733 ndr_print_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
);
25734 ndr_print_spoolss_UserLevel(ndr
, "userlevel", &r
->in
.userlevel
);
25737 if (flags
& NDR_OUT
) {
25738 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinterEx");
25740 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
25742 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
25744 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25750 static enum ndr_err_code
ndr_push_spoolss_AddPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterEx
*r
)
25752 if (flags
& NDR_IN
) {
25753 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
25754 if (r
->in
.server
) {
25755 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
25756 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25757 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
25758 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25760 if (r
->in
.info_ctr
== NULL
) {
25761 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25763 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
25764 if (r
->in
.devmode_ctr
== NULL
) {
25765 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25767 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25768 if (r
->in
.secdesc_ctr
== NULL
) {
25769 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25771 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
25772 if (r
->in
.userlevel_ctr
== NULL
) {
25773 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25775 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
25777 if (flags
& NDR_OUT
) {
25778 if (r
->out
.handle
== NULL
) {
25779 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25781 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25782 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25784 return NDR_ERR_SUCCESS
;
25787 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterEx
*r
)
25789 uint32_t _ptr_server
;
25790 TALLOC_CTX
*_mem_save_server_0
;
25791 TALLOC_CTX
*_mem_save_info_ctr_0
;
25792 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
25793 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
25794 TALLOC_CTX
*_mem_save_userlevel_ctr_0
;
25795 TALLOC_CTX
*_mem_save_handle_0
;
25796 if (flags
& NDR_IN
) {
25797 ZERO_STRUCT(r
->out
);
25799 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
25801 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
25803 r
->in
.server
= NULL
;
25805 if (r
->in
.server
) {
25806 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25807 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
25808 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
25809 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
25810 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
25811 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
));
25813 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
25814 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
25815 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
25817 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25818 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
25820 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25821 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25822 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
25823 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25824 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25825 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
25827 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25828 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25829 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25830 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25831 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25832 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
25834 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25835 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25836 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
25837 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25838 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25839 NDR_PULL_ALLOC(ndr
, r
->in
.userlevel_ctr
);
25841 _mem_save_userlevel_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25842 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.userlevel_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25843 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
25844 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_userlevel_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25845 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25846 ZERO_STRUCTP(r
->out
.handle
);
25848 if (flags
& NDR_OUT
) {
25849 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25850 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25852 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25853 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25854 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25855 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25856 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25858 return NDR_ERR_SUCCESS
;
25861 _PUBLIC_
void ndr_print_spoolss_AddPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterEx
*r
)
25863 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterEx");
25865 if (flags
& NDR_SET_VALUES
) {
25866 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25868 if (flags
& NDR_IN
) {
25869 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterEx");
25871 ndr_print_ptr(ndr
, "server", r
->in
.server
);
25873 if (r
->in
.server
) {
25874 ndr_print_string(ndr
, "server", r
->in
.server
);
25877 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
25879 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
25881 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25883 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25885 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
25887 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
25889 ndr_print_ptr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
25891 ndr_print_spoolss_UserLevelCtr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
25895 if (flags
& NDR_OUT
) {
25896 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterEx");
25898 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
25900 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
25902 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25908 static enum ndr_err_code
ndr_push_spoolss_47(struct ndr_push
*ndr
, int flags
, const struct spoolss_47
*r
)
25910 if (flags
& NDR_IN
) {
25912 if (flags
& NDR_OUT
) {
25913 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25915 return NDR_ERR_SUCCESS
;
25918 static enum ndr_err_code
ndr_pull_spoolss_47(struct ndr_pull
*ndr
, int flags
, struct spoolss_47
*r
)
25920 if (flags
& NDR_IN
) {
25922 if (flags
& NDR_OUT
) {
25923 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25925 return NDR_ERR_SUCCESS
;
25928 _PUBLIC_
void ndr_print_spoolss_47(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_47
*r
)
25930 ndr_print_struct(ndr
, name
, "spoolss_47");
25932 if (flags
& NDR_SET_VALUES
) {
25933 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25935 if (flags
& NDR_IN
) {
25936 ndr_print_struct(ndr
, "in", "spoolss_47");
25940 if (flags
& NDR_OUT
) {
25941 ndr_print_struct(ndr
, "out", "spoolss_47");
25943 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25949 static enum ndr_err_code
ndr_push_spoolss_EnumPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterData
*r
)
25951 if (flags
& NDR_IN
) {
25952 if (r
->in
.handle
== NULL
) {
25953 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25955 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25956 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
25957 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
));
25958 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
25960 if (flags
& NDR_OUT
) {
25961 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
/ 2));
25962 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.value_name
, r
->in
.value_offered
/ 2, sizeof(uint16_t), CH_UTF16
));
25963 if (r
->out
.value_needed
== NULL
) {
25964 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25966 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.value_needed
));
25967 if (r
->out
.type
== NULL
) {
25968 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25970 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
25972 uint32_t _flags_save_uint8
= ndr
->flags
;
25973 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
25974 if (r
->out
.data
== NULL
) {
25975 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25977 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
25978 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_offered
));
25979 ndr
->flags
= _flags_save_uint8
;
25981 if (r
->out
.data_needed
== NULL
) {
25982 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25984 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_needed
));
25985 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25987 return NDR_ERR_SUCCESS
;
25990 static enum ndr_err_code
ndr_pull_spoolss_EnumPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterData
*r
)
25992 TALLOC_CTX
*_mem_save_handle_0
;
25993 TALLOC_CTX
*_mem_save_value_needed_0
;
25994 TALLOC_CTX
*_mem_save_type_0
;
25995 TALLOC_CTX
*_mem_save_data_needed_0
;
25996 if (flags
& NDR_IN
) {
25997 ZERO_STRUCT(r
->out
);
25999 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26000 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26002 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26003 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26004 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26005 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26006 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
26007 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.value_offered
));
26008 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_offered
));
26009 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
26010 ZERO_STRUCTP(r
->out
.value_needed
);
26011 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
26012 ZERO_STRUCTP(r
->out
.type
);
26013 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_offered
);
26014 memset(r
->out
.data
, 0, (r
->in
.data_offered
) * sizeof(*r
->out
.data
));
26015 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
26016 ZERO_STRUCTP(r
->out
.data_needed
);
26018 if (flags
& NDR_OUT
) {
26019 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value_name
));
26020 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
));
26021 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26022 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
26024 _mem_save_value_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26025 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value_needed
, LIBNDR_FLAG_REF_ALLOC
);
26026 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.value_needed
));
26027 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26028 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26029 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
26031 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26032 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
26033 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
26034 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
26036 uint32_t _flags_save_uint8
= ndr
->flags
;
26037 ndr_set_flags(&ndr
->flags
, LIBNDR_PRINT_ARRAY_HEX
);
26038 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
26039 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26040 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
26042 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
26043 ndr
->flags
= _flags_save_uint8
;
26045 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26046 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
26048 _mem_save_data_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26049 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_needed
, LIBNDR_FLAG_REF_ALLOC
);
26050 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_needed
));
26051 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26052 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26053 if (r
->out
.value_name
) {
26054 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value_name
, r
->in
.value_offered
/ 2));
26057 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_offered
));
26060 return NDR_ERR_SUCCESS
;
26063 _PUBLIC_
void ndr_print_spoolss_EnumPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterData
*r
)
26065 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterData");
26067 if (flags
& NDR_SET_VALUES
) {
26068 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26070 if (flags
& NDR_IN
) {
26071 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterData");
26073 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26075 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26077 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
26078 ndr_print_uint32(ndr
, "value_offered", r
->in
.value_offered
);
26079 ndr_print_uint32(ndr
, "data_offered", r
->in
.data_offered
);
26082 if (flags
& NDR_OUT
) {
26083 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterData");
26085 ndr_print_string(ndr
, "value_name", r
->out
.value_name
);
26086 ndr_print_ptr(ndr
, "value_needed", r
->out
.value_needed
);
26088 ndr_print_uint32(ndr
, "value_needed", *r
->out
.value_needed
);
26090 ndr_print_ptr(ndr
, "type", r
->out
.type
);
26092 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
26094 ndr_print_ptr(ndr
, "data", r
->out
.data
);
26096 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_offered
);
26098 ndr_print_ptr(ndr
, "data_needed", r
->out
.data_needed
);
26100 ndr_print_uint32(ndr
, "data_needed", *r
->out
.data_needed
);
26102 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26108 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterData
*r
)
26110 if (flags
& NDR_IN
) {
26111 if (r
->in
.handle
== NULL
) {
26112 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26114 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26115 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
26116 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26117 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
26118 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
));
26120 if (flags
& NDR_OUT
) {
26121 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26123 return NDR_ERR_SUCCESS
;
26126 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterData
*r
)
26128 TALLOC_CTX
*_mem_save_handle_0
;
26129 if (flags
& NDR_IN
) {
26130 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26131 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26133 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26134 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26135 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26136 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26137 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
26138 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
26139 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
26140 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
));
26142 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
26143 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
));
26145 if (flags
& NDR_OUT
) {
26146 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26148 return NDR_ERR_SUCCESS
;
26151 _PUBLIC_
void ndr_print_spoolss_DeletePrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterData
*r
)
26153 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterData");
26155 if (flags
& NDR_SET_VALUES
) {
26156 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26158 if (flags
& NDR_IN
) {
26159 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterData");
26161 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26163 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26165 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
26168 if (flags
& NDR_OUT
) {
26169 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterData");
26171 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26177 static enum ndr_err_code
ndr_push_spoolss_4a(struct ndr_push
*ndr
, int flags
, const struct spoolss_4a
*r
)
26179 if (flags
& NDR_IN
) {
26181 if (flags
& NDR_OUT
) {
26182 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26184 return NDR_ERR_SUCCESS
;
26187 static enum ndr_err_code
ndr_pull_spoolss_4a(struct ndr_pull
*ndr
, int flags
, struct spoolss_4a
*r
)
26189 if (flags
& NDR_IN
) {
26191 if (flags
& NDR_OUT
) {
26192 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26194 return NDR_ERR_SUCCESS
;
26197 _PUBLIC_
void ndr_print_spoolss_4a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4a
*r
)
26199 ndr_print_struct(ndr
, name
, "spoolss_4a");
26201 if (flags
& NDR_SET_VALUES
) {
26202 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26204 if (flags
& NDR_IN
) {
26205 ndr_print_struct(ndr
, "in", "spoolss_4a");
26209 if (flags
& NDR_OUT
) {
26210 ndr_print_struct(ndr
, "out", "spoolss_4a");
26212 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26218 static enum ndr_err_code
ndr_push_spoolss_4b(struct ndr_push
*ndr
, int flags
, const struct spoolss_4b
*r
)
26220 if (flags
& NDR_IN
) {
26222 if (flags
& NDR_OUT
) {
26223 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26225 return NDR_ERR_SUCCESS
;
26228 static enum ndr_err_code
ndr_pull_spoolss_4b(struct ndr_pull
*ndr
, int flags
, struct spoolss_4b
*r
)
26230 if (flags
& NDR_IN
) {
26232 if (flags
& NDR_OUT
) {
26233 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26235 return NDR_ERR_SUCCESS
;
26238 _PUBLIC_
void ndr_print_spoolss_4b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4b
*r
)
26240 ndr_print_struct(ndr
, name
, "spoolss_4b");
26242 if (flags
& NDR_SET_VALUES
) {
26243 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26245 if (flags
& NDR_IN
) {
26246 ndr_print_struct(ndr
, "in", "spoolss_4b");
26250 if (flags
& NDR_OUT
) {
26251 ndr_print_struct(ndr
, "out", "spoolss_4b");
26253 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26259 static enum ndr_err_code
ndr_push_spoolss_4c(struct ndr_push
*ndr
, int flags
, const struct spoolss_4c
*r
)
26261 if (flags
& NDR_IN
) {
26263 if (flags
& NDR_OUT
) {
26264 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26266 return NDR_ERR_SUCCESS
;
26269 static enum ndr_err_code
ndr_pull_spoolss_4c(struct ndr_pull
*ndr
, int flags
, struct spoolss_4c
*r
)
26271 if (flags
& NDR_IN
) {
26273 if (flags
& NDR_OUT
) {
26274 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26276 return NDR_ERR_SUCCESS
;
26279 _PUBLIC_
void ndr_print_spoolss_4c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4c
*r
)
26281 ndr_print_struct(ndr
, name
, "spoolss_4c");
26283 if (flags
& NDR_SET_VALUES
) {
26284 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26286 if (flags
& NDR_IN
) {
26287 ndr_print_struct(ndr
, "in", "spoolss_4c");
26291 if (flags
& NDR_OUT
) {
26292 ndr_print_struct(ndr
, "out", "spoolss_4c");
26294 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26300 static enum ndr_err_code
ndr_push_spoolss_SetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
26302 if (flags
& NDR_IN
) {
26303 if (r
->in
.handle
== NULL
) {
26304 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26306 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26307 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26308 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26309 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26310 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
));
26311 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
26312 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26313 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
26314 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
));
26315 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
26316 if (r
->in
.buffer
== NULL
) {
26317 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26319 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26320 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
26321 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26323 if (flags
& NDR_OUT
) {
26324 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26326 return NDR_ERR_SUCCESS
;
26329 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterDataEx
*r
)
26331 TALLOC_CTX
*_mem_save_handle_0
;
26332 if (flags
& NDR_IN
) {
26333 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26334 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26336 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26337 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26338 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26339 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26340 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
26341 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
26342 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
26343 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
));
26345 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
26346 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
));
26347 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
26348 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
26349 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
26350 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
));
26352 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
26353 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
));
26354 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
26355 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
26356 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26357 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
26359 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
26360 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
26361 if (r
->in
.buffer
) {
26362 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
26365 if (flags
& NDR_OUT
) {
26366 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26368 return NDR_ERR_SUCCESS
;
26371 _PUBLIC_
void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
26373 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterDataEx");
26375 if (flags
& NDR_SET_VALUES
) {
26376 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26378 if (flags
& NDR_IN
) {
26379 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterDataEx");
26381 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26383 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26385 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26386 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
26387 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
26388 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
26390 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
26392 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
26395 if (flags
& NDR_OUT
) {
26396 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterDataEx");
26398 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26404 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
26406 if (flags
& NDR_IN
) {
26407 if (r
->in
.handle
== NULL
) {
26408 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26410 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26411 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26412 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26413 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26414 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
));
26415 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
26416 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26417 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
26418 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
));
26419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26421 if (flags
& NDR_OUT
) {
26422 if (r
->out
.type
== NULL
) {
26423 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26425 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, *r
->out
.type
));
26426 if (r
->out
.buffer
== NULL
) {
26427 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26429 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26430 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
26431 if (r
->out
.needed
== NULL
) {
26432 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26434 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26435 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26437 return NDR_ERR_SUCCESS
;
26440 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDataEx
*r
)
26442 TALLOC_CTX
*_mem_save_handle_0
;
26443 TALLOC_CTX
*_mem_save_type_0
;
26444 TALLOC_CTX
*_mem_save_needed_0
;
26445 if (flags
& NDR_IN
) {
26446 ZERO_STRUCT(r
->out
);
26448 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26449 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26451 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26452 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26453 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26454 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26455 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
26456 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
26457 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
26458 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
));
26460 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
26461 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
));
26462 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
26463 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
26464 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
26465 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
));
26467 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
26468 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
));
26469 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
26470 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
26471 ZERO_STRUCTP(r
->out
.type
);
26472 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, r
->in
.offered
);
26473 memset(r
->out
.buffer
, 0, (r
->in
.offered
) * sizeof(*r
->out
.buffer
));
26474 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26475 ZERO_STRUCTP(r
->out
.needed
);
26477 if (flags
& NDR_OUT
) {
26478 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26479 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
26481 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26482 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
26483 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, r
->out
.type
));
26484 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
26485 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
26486 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26487 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
26489 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
26490 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26491 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26493 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26494 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26495 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26496 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26497 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26498 if (r
->out
.buffer
) {
26499 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
26502 return NDR_ERR_SUCCESS
;
26505 _PUBLIC_
void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
26507 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDataEx");
26509 if (flags
& NDR_SET_VALUES
) {
26510 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26512 if (flags
& NDR_IN
) {
26513 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDataEx");
26515 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26517 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26519 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26520 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
26521 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
26524 if (flags
& NDR_OUT
) {
26525 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDataEx");
26527 ndr_print_ptr(ndr
, "type", r
->out
.type
);
26529 ndr_print_winreg_Type(ndr
, "type", *r
->out
.type
);
26531 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
26533 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
26535 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26537 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26539 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26545 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDataEx
*r
)
26547 if (flags
& NDR_IN
) {
26548 if (r
->in
.handle
== NULL
) {
26549 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26551 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26552 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26553 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26554 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26555 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
));
26556 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26558 if (flags
& NDR_OUT
) {
26559 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
26560 if (r
->out
.needed
== NULL
) {
26561 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26563 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26564 if (r
->out
.count
== NULL
) {
26565 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26567 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
26568 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26570 return NDR_ERR_SUCCESS
;
26573 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDataEx
*r
)
26575 TALLOC_CTX
*_mem_save_handle_0
;
26576 TALLOC_CTX
*_mem_save_needed_0
;
26577 TALLOC_CTX
*_mem_save_count_0
;
26578 if (flags
& NDR_IN
) {
26579 ZERO_STRUCT(r
->out
);
26581 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26582 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26584 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26585 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26586 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26587 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26588 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
26589 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
26590 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
26591 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
));
26593 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
26594 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
));
26595 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
26596 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26597 ZERO_STRUCTP(r
->out
.needed
);
26598 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
26599 ZERO_STRUCTP(r
->out
.count
);
26601 if (flags
& NDR_OUT
) {
26602 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->out
.info
));
26603 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26604 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26606 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26607 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26608 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26609 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26610 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26611 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
26613 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26614 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
26615 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
26616 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
26617 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26619 return NDR_ERR_SUCCESS
;
26622 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDataEx
*r
)
26624 uint32_t cntr_info_0
;
26625 if (flags
& NDR_IN
) {
26626 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
26628 if (flags
& NDR_OUT
) {
26629 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
26630 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
26632 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
26633 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
26636 return NDR_ERR_SUCCESS
;
26639 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDataEx
*r
)
26641 uint32_t cntr_info_0
;
26642 TALLOC_CTX
*_mem_save_info_0
;
26643 if (flags
& NDR_IN
) {
26644 ZERO_STRUCT(r
->out
);
26646 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
26648 if (flags
& NDR_OUT
) {
26649 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
26650 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26651 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
26652 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
26653 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
26655 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
26656 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
26658 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
26660 return NDR_ERR_SUCCESS
;
26663 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDataEx
*r
)
26665 uint32_t cntr_info_2
;
26666 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDataEx");
26668 if (flags
& NDR_SET_VALUES
) {
26669 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26671 if (flags
& NDR_IN
) {
26672 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDataEx");
26674 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26676 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26678 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26679 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
26682 if (flags
& NDR_OUT
) {
26683 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDataEx");
26685 ndr_print_ptr(ndr
, "count", r
->out
.count
);
26687 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
26689 ndr_print_ptr(ndr
, "info", r
->out
.info
);
26691 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
26693 if (*r
->out
.info
) {
26694 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
26696 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
26698 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
26699 ndr_print_spoolss_PrinterEnumValues(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
26707 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26709 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26711 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26717 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
26719 if (flags
& NDR_IN
) {
26720 if (r
->in
.handle
== NULL
) {
26721 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26723 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26724 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26725 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26727 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
));
26728 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26730 if (flags
& NDR_OUT
) {
26731 if (r
->out
._ndr_size
== NULL
) {
26732 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26734 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._ndr_size
));
26735 if (r
->out
.key_buffer
== NULL
) {
26736 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26739 struct ndr_push
*_ndr_key_buffer
;
26740 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
26741 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer
, r
->out
.key_buffer
, *r
->out
._ndr_size
));
26742 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.key_buffer
));
26743 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
26745 if (r
->out
.needed
== NULL
) {
26746 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26748 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26749 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26751 return NDR_ERR_SUCCESS
;
26754 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterKey
*r
)
26756 TALLOC_CTX
*_mem_save_handle_0
;
26757 TALLOC_CTX
*_mem_save__ndr_size_0
;
26758 TALLOC_CTX
*_mem_save_key_buffer_0
;
26759 TALLOC_CTX
*_mem_save_needed_0
;
26760 if (flags
& NDR_IN
) {
26761 ZERO_STRUCT(r
->out
);
26763 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26764 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26766 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26767 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26768 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26769 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26770 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
26771 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
26772 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
26773 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
));
26775 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
26776 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
));
26777 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
26778 NDR_PULL_ALLOC(ndr
, r
->out
._ndr_size
);
26779 ZERO_STRUCTP(r
->out
._ndr_size
);
26780 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
26781 ZERO_STRUCTP(r
->out
.key_buffer
);
26782 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26783 ZERO_STRUCTP(r
->out
.needed
);
26785 if (flags
& NDR_OUT
) {
26786 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26787 NDR_PULL_ALLOC(ndr
, r
->out
._ndr_size
);
26789 _mem_save__ndr_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26790 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._ndr_size
, LIBNDR_FLAG_REF_ALLOC
);
26791 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._ndr_size
));
26792 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__ndr_size_0
, LIBNDR_FLAG_REF_ALLOC
);
26793 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26794 NDR_PULL_ALLOC(ndr
, r
->out
.key_buffer
);
26796 _mem_save_key_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26797 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.key_buffer
, LIBNDR_FLAG_REF_ALLOC
);
26799 struct ndr_pull
*_ndr_key_buffer
;
26800 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
26801 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer
, r
->out
.key_buffer
, *r
->out
._ndr_size
));
26802 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.key_buffer
));
26803 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_key_buffer
, 0, *r
->out
._ndr_size
* 2));
26805 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
26806 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26807 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26809 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26810 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26811 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26812 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26813 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26815 return NDR_ERR_SUCCESS
;
26818 _PUBLIC_
void ndr_print_spoolss_EnumPrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
26820 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterKey");
26822 if (flags
& NDR_SET_VALUES
) {
26823 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26825 if (flags
& NDR_IN
) {
26826 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterKey");
26828 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26830 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26832 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26833 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
26836 if (flags
& NDR_OUT
) {
26837 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterKey");
26839 ndr_print_ptr(ndr
, "_ndr_size", r
->out
._ndr_size
);
26841 ndr_print_uint32(ndr
, "_ndr_size", *r
->out
._ndr_size
);
26843 ndr_print_ptr(ndr
, "key_buffer", r
->out
.key_buffer
);
26845 ndr_print_set_switch_value(ndr
, r
->out
.key_buffer
, *r
->out
._ndr_size
);
26846 ndr_print_spoolss_KeyNames(ndr
, "key_buffer", r
->out
.key_buffer
);
26848 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26850 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26852 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26858 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
26860 if (flags
& NDR_IN
) {
26861 if (r
->in
.handle
== NULL
) {
26862 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26864 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26865 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26866 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26867 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26868 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
));
26869 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
26870 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26871 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
26872 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
));
26874 if (flags
& NDR_OUT
) {
26875 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26877 return NDR_ERR_SUCCESS
;
26880 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDataEx
*r
)
26882 TALLOC_CTX
*_mem_save_handle_0
;
26883 if (flags
& NDR_IN
) {
26884 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26885 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26887 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26888 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26889 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26890 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26891 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
26892 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
26893 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
26894 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
));
26896 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
26897 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
));
26898 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
26899 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
26900 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
26901 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
));
26903 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
26904 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
));
26906 if (flags
& NDR_OUT
) {
26907 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26909 return NDR_ERR_SUCCESS
;
26912 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
26914 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDataEx");
26916 if (flags
& NDR_SET_VALUES
) {
26917 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26919 if (flags
& NDR_IN
) {
26920 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDataEx");
26922 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26924 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26926 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26927 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
26930 if (flags
& NDR_OUT
) {
26931 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDataEx");
26933 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26939 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
26941 if (flags
& NDR_IN
) {
26942 if (r
->in
.handle
== NULL
) {
26943 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26945 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26946 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26947 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26948 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26949 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
));
26951 if (flags
& NDR_OUT
) {
26952 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26954 return NDR_ERR_SUCCESS
;
26957 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterKey
*r
)
26959 TALLOC_CTX
*_mem_save_handle_0
;
26960 if (flags
& NDR_IN
) {
26961 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26962 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26964 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26965 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26966 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26967 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26968 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
26969 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
26970 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
26971 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
));
26973 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
26974 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
));
26976 if (flags
& NDR_OUT
) {
26977 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26979 return NDR_ERR_SUCCESS
;
26982 _PUBLIC_
void ndr_print_spoolss_DeletePrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
26984 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterKey");
26986 if (flags
& NDR_SET_VALUES
) {
26987 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26989 if (flags
& NDR_IN
) {
26990 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterKey");
26992 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26994 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26996 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26999 if (flags
& NDR_OUT
) {
27000 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterKey");
27002 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27008 static enum ndr_err_code
ndr_push_spoolss_53(struct ndr_push
*ndr
, int flags
, const struct spoolss_53
*r
)
27010 if (flags
& NDR_IN
) {
27012 if (flags
& NDR_OUT
) {
27013 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27015 return NDR_ERR_SUCCESS
;
27018 static enum ndr_err_code
ndr_pull_spoolss_53(struct ndr_pull
*ndr
, int flags
, struct spoolss_53
*r
)
27020 if (flags
& NDR_IN
) {
27022 if (flags
& NDR_OUT
) {
27023 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27025 return NDR_ERR_SUCCESS
;
27028 _PUBLIC_
void ndr_print_spoolss_53(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_53
*r
)
27030 ndr_print_struct(ndr
, name
, "spoolss_53");
27032 if (flags
& NDR_SET_VALUES
) {
27033 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27035 if (flags
& NDR_IN
) {
27036 ndr_print_struct(ndr
, "in", "spoolss_53");
27040 if (flags
& NDR_OUT
) {
27041 ndr_print_struct(ndr
, "out", "spoolss_53");
27043 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27049 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
27051 if (flags
& NDR_IN
) {
27052 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
27053 if (r
->in
.server
) {
27054 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
27055 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27056 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
27057 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27059 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
27060 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
27062 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27063 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
27064 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27065 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
27066 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27067 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, r
->in
.delete_flags
));
27068 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.version
));
27070 if (flags
& NDR_OUT
) {
27071 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27073 return NDR_ERR_SUCCESS
;
27076 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriverEx
*r
)
27078 uint32_t _ptr_server
;
27079 TALLOC_CTX
*_mem_save_server_0
;
27080 if (flags
& NDR_IN
) {
27081 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
27083 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
27085 r
->in
.server
= NULL
;
27087 if (r
->in
.server
) {
27088 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27089 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
27090 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
27091 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
27092 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
27093 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
));
27095 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
27096 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
27097 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
27099 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
27100 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
27101 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
27102 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
));
27104 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
27105 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
27106 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
27107 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
27108 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
27109 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
));
27111 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
27112 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
27113 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, &r
->in
.delete_flags
));
27114 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.version
));
27116 if (flags
& NDR_OUT
) {
27117 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27119 return NDR_ERR_SUCCESS
;
27122 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
27124 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriverEx");
27126 if (flags
& NDR_SET_VALUES
) {
27127 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27129 if (flags
& NDR_IN
) {
27130 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriverEx");
27132 ndr_print_ptr(ndr
, "server", r
->in
.server
);
27134 if (r
->in
.server
) {
27135 ndr_print_string(ndr
, "server", r
->in
.server
);
27138 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
27139 ndr_print_string(ndr
, "driver", r
->in
.driver
);
27140 ndr_print_spoolss_DeleteDriverFlags(ndr
, "delete_flags", r
->in
.delete_flags
);
27141 ndr_print_uint32(ndr
, "version", r
->in
.version
);
27144 if (flags
& NDR_OUT
) {
27145 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriverEx");
27147 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27153 static enum ndr_err_code
ndr_push_spoolss_55(struct ndr_push
*ndr
, int flags
, const struct spoolss_55
*r
)
27155 if (flags
& NDR_IN
) {
27157 if (flags
& NDR_OUT
) {
27158 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27160 return NDR_ERR_SUCCESS
;
27163 static enum ndr_err_code
ndr_pull_spoolss_55(struct ndr_pull
*ndr
, int flags
, struct spoolss_55
*r
)
27165 if (flags
& NDR_IN
) {
27167 if (flags
& NDR_OUT
) {
27168 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27170 return NDR_ERR_SUCCESS
;
27173 _PUBLIC_
void ndr_print_spoolss_55(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_55
*r
)
27175 ndr_print_struct(ndr
, name
, "spoolss_55");
27177 if (flags
& NDR_SET_VALUES
) {
27178 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27180 if (flags
& NDR_IN
) {
27181 ndr_print_struct(ndr
, "in", "spoolss_55");
27185 if (flags
& NDR_OUT
) {
27186 ndr_print_struct(ndr
, "out", "spoolss_55");
27188 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27194 static enum ndr_err_code
ndr_push_spoolss_56(struct ndr_push
*ndr
, int flags
, const struct spoolss_56
*r
)
27196 if (flags
& NDR_IN
) {
27198 if (flags
& NDR_OUT
) {
27199 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27201 return NDR_ERR_SUCCESS
;
27204 static enum ndr_err_code
ndr_pull_spoolss_56(struct ndr_pull
*ndr
, int flags
, struct spoolss_56
*r
)
27206 if (flags
& NDR_IN
) {
27208 if (flags
& NDR_OUT
) {
27209 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27211 return NDR_ERR_SUCCESS
;
27214 _PUBLIC_
void ndr_print_spoolss_56(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_56
*r
)
27216 ndr_print_struct(ndr
, name
, "spoolss_56");
27218 if (flags
& NDR_SET_VALUES
) {
27219 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27221 if (flags
& NDR_IN
) {
27222 ndr_print_struct(ndr
, "in", "spoolss_56");
27226 if (flags
& NDR_OUT
) {
27227 ndr_print_struct(ndr
, "out", "spoolss_56");
27229 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27235 static enum ndr_err_code
ndr_push_spoolss_57(struct ndr_push
*ndr
, int flags
, const struct spoolss_57
*r
)
27237 if (flags
& NDR_IN
) {
27239 if (flags
& NDR_OUT
) {
27240 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27242 return NDR_ERR_SUCCESS
;
27245 static enum ndr_err_code
ndr_pull_spoolss_57(struct ndr_pull
*ndr
, int flags
, struct spoolss_57
*r
)
27247 if (flags
& NDR_IN
) {
27249 if (flags
& NDR_OUT
) {
27250 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27252 return NDR_ERR_SUCCESS
;
27255 _PUBLIC_
void ndr_print_spoolss_57(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_57
*r
)
27257 ndr_print_struct(ndr
, name
, "spoolss_57");
27259 if (flags
& NDR_SET_VALUES
) {
27260 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27262 if (flags
& NDR_IN
) {
27263 ndr_print_struct(ndr
, "in", "spoolss_57");
27267 if (flags
& NDR_OUT
) {
27268 ndr_print_struct(ndr
, "out", "spoolss_57");
27270 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27276 static enum ndr_err_code
ndr_push_spoolss_XcvData(struct ndr_push
*ndr
, int flags
, const struct spoolss_XcvData
*r
)
27278 if (flags
& NDR_IN
) {
27279 if (r
->in
.handle
== NULL
) {
27280 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27282 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27283 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
27284 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27285 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
27286 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
));
27287 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.in_data
));
27288 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.in_data
.length
));
27289 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
27290 if (r
->in
.status_code
== NULL
) {
27291 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27293 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.status_code
));
27295 if (flags
& NDR_OUT
) {
27296 if (r
->out
.out_data
== NULL
) {
27297 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27299 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
27300 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, r
->in
.out_data_size
));
27301 if (r
->out
.needed
== NULL
) {
27302 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27304 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
27305 if (r
->out
.status_code
== NULL
) {
27306 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27308 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.status_code
));
27309 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27311 return NDR_ERR_SUCCESS
;
27314 static enum ndr_err_code
ndr_pull_spoolss_XcvData(struct ndr_pull
*ndr
, int flags
, struct spoolss_XcvData
*r
)
27316 TALLOC_CTX
*_mem_save_handle_0
;
27317 TALLOC_CTX
*_mem_save_needed_0
;
27318 TALLOC_CTX
*_mem_save_status_code_0
;
27319 if (flags
& NDR_IN
) {
27320 ZERO_STRUCT(r
->out
);
27322 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27323 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
27325 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27326 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
27327 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
27328 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
27329 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.function_name
));
27330 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.function_name
));
27331 if (ndr_get_array_length(ndr
, &r
->in
.function_name
) > ndr_get_array_size(ndr
, &r
->in
.function_name
)) {
27332 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
));
27334 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.function_name
), sizeof(uint16_t)));
27335 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
));
27336 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.in_data
));
27337 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._in_data_length
));
27338 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.out_data_size
));
27339 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27340 NDR_PULL_ALLOC(ndr
, r
->in
.status_code
);
27342 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27343 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
27344 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.status_code
));
27345 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
27346 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, r
->in
.out_data_size
);
27347 memset(r
->out
.out_data
, 0, (r
->in
.out_data_size
) * sizeof(*r
->out
.out_data
));
27348 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27349 ZERO_STRUCTP(r
->out
.needed
);
27350 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
27351 *r
->out
.status_code
= *r
->in
.status_code
;
27353 if (flags
& NDR_OUT
) {
27354 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.out_data
));
27355 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27356 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
));
27358 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
)));
27359 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27360 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
27362 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27363 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
27364 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
27365 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
27366 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27367 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
27369 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27370 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
27371 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.status_code
));
27372 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
27373 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27374 if (r
->out
.out_data
) {
27375 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.out_data
, r
->in
.out_data_size
));
27378 return NDR_ERR_SUCCESS
;
27381 _PUBLIC_
void ndr_print_spoolss_XcvData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_XcvData
*r
)
27383 ndr_print_struct(ndr
, name
, "spoolss_XcvData");
27385 if (flags
& NDR_SET_VALUES
) {
27386 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27388 if (flags
& NDR_IN
) {
27389 ndr_print_struct(ndr
, "in", "spoolss_XcvData");
27391 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
27393 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
27395 ndr_print_string(ndr
, "function_name", r
->in
.function_name
);
27396 ndr_print_DATA_BLOB(ndr
, "in_data", r
->in
.in_data
);
27397 ndr_print_uint32(ndr
, "_in_data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.in_data
.length
:r
->in
._in_data_length
);
27398 ndr_print_uint32(ndr
, "out_data_size", r
->in
.out_data_size
);
27399 ndr_print_ptr(ndr
, "status_code", r
->in
.status_code
);
27401 ndr_print_uint32(ndr
, "status_code", *r
->in
.status_code
);
27405 if (flags
& NDR_OUT
) {
27406 ndr_print_struct(ndr
, "out", "spoolss_XcvData");
27408 ndr_print_ptr(ndr
, "out_data", r
->out
.out_data
);
27410 ndr_print_array_uint8(ndr
, "out_data", r
->out
.out_data
, r
->in
.out_data_size
);
27412 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
27414 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
27416 ndr_print_ptr(ndr
, "status_code", r
->out
.status_code
);
27418 ndr_print_uint32(ndr
, "status_code", *r
->out
.status_code
);
27420 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27426 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
27428 if (flags
& NDR_IN
) {
27429 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
27430 if (r
->in
.servername
) {
27431 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
27432 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
27433 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
27434 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
27436 if (r
->in
.info_ctr
== NULL
) {
27437 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
27439 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
27440 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
27442 if (flags
& NDR_OUT
) {
27443 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27445 return NDR_ERR_SUCCESS
;
27448 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriverEx
*r
)
27450 uint32_t _ptr_servername
;
27451 TALLOC_CTX
*_mem_save_servername_0
;
27452 TALLOC_CTX
*_mem_save_info_ctr_0
;
27453 if (flags
& NDR_IN
) {
27454 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
27455 if (_ptr_servername
) {
27456 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
27458 r
->in
.servername
= NULL
;
27460 if (r
->in
.servername
) {
27461 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27462 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
27463 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
27464 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
27465 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
27466 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
));
27468 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
27469 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
27470 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
27472 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
27473 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
27475 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
27476 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
27477 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
27478 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
27479 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
27481 if (flags
& NDR_OUT
) {
27482 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27484 return NDR_ERR_SUCCESS
;
27487 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
27489 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriverEx");
27491 if (flags
& NDR_SET_VALUES
) {
27492 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27494 if (flags
& NDR_IN
) {
27495 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriverEx");
27497 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
27499 if (r
->in
.servername
) {
27500 ndr_print_string(ndr
, "servername", r
->in
.servername
);
27503 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
27505 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
27507 ndr_print_spoolss_AddPrinterDriverExFlags(ndr
, "flags", r
->in
.flags
);
27510 if (flags
& NDR_OUT
) {
27511 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriverEx");
27513 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27519 static enum ndr_err_code
ndr_push_spoolss_5a(struct ndr_push
*ndr
, int flags
, const struct spoolss_5a
*r
)
27521 if (flags
& NDR_IN
) {
27523 if (flags
& NDR_OUT
) {
27524 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27526 return NDR_ERR_SUCCESS
;
27529 static enum ndr_err_code
ndr_pull_spoolss_5a(struct ndr_pull
*ndr
, int flags
, struct spoolss_5a
*r
)
27531 if (flags
& NDR_IN
) {
27533 if (flags
& NDR_OUT
) {
27534 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27536 return NDR_ERR_SUCCESS
;
27539 _PUBLIC_
void ndr_print_spoolss_5a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5a
*r
)
27541 ndr_print_struct(ndr
, name
, "spoolss_5a");
27543 if (flags
& NDR_SET_VALUES
) {
27544 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27546 if (flags
& NDR_IN
) {
27547 ndr_print_struct(ndr
, "in", "spoolss_5a");
27551 if (flags
& NDR_OUT
) {
27552 ndr_print_struct(ndr
, "out", "spoolss_5a");
27554 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27560 static enum ndr_err_code
ndr_push_spoolss_5b(struct ndr_push
*ndr
, int flags
, const struct spoolss_5b
*r
)
27562 if (flags
& NDR_IN
) {
27564 if (flags
& NDR_OUT
) {
27565 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27567 return NDR_ERR_SUCCESS
;
27570 static enum ndr_err_code
ndr_pull_spoolss_5b(struct ndr_pull
*ndr
, int flags
, struct spoolss_5b
*r
)
27572 if (flags
& NDR_IN
) {
27574 if (flags
& NDR_OUT
) {
27575 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27577 return NDR_ERR_SUCCESS
;
27580 _PUBLIC_
void ndr_print_spoolss_5b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5b
*r
)
27582 ndr_print_struct(ndr
, name
, "spoolss_5b");
27584 if (flags
& NDR_SET_VALUES
) {
27585 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27587 if (flags
& NDR_IN
) {
27588 ndr_print_struct(ndr
, "in", "spoolss_5b");
27592 if (flags
& NDR_OUT
) {
27593 ndr_print_struct(ndr
, "out", "spoolss_5b");
27595 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27601 static enum ndr_err_code
ndr_push_spoolss_5c(struct ndr_push
*ndr
, int flags
, const struct spoolss_5c
*r
)
27603 if (flags
& NDR_IN
) {
27605 if (flags
& NDR_OUT
) {
27606 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27608 return NDR_ERR_SUCCESS
;
27611 static enum ndr_err_code
ndr_pull_spoolss_5c(struct ndr_pull
*ndr
, int flags
, struct spoolss_5c
*r
)
27613 if (flags
& NDR_IN
) {
27615 if (flags
& NDR_OUT
) {
27616 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27618 return NDR_ERR_SUCCESS
;
27621 _PUBLIC_
void ndr_print_spoolss_5c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5c
*r
)
27623 ndr_print_struct(ndr
, name
, "spoolss_5c");
27625 if (flags
& NDR_SET_VALUES
) {
27626 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27628 if (flags
& NDR_IN
) {
27629 ndr_print_struct(ndr
, "in", "spoolss_5c");
27633 if (flags
& NDR_OUT
) {
27634 ndr_print_struct(ndr
, "out", "spoolss_5c");
27636 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27642 static enum ndr_err_code
ndr_push_spoolss_5d(struct ndr_push
*ndr
, int flags
, const struct spoolss_5d
*r
)
27644 if (flags
& NDR_IN
) {
27646 if (flags
& NDR_OUT
) {
27647 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27649 return NDR_ERR_SUCCESS
;
27652 static enum ndr_err_code
ndr_pull_spoolss_5d(struct ndr_pull
*ndr
, int flags
, struct spoolss_5d
*r
)
27654 if (flags
& NDR_IN
) {
27656 if (flags
& NDR_OUT
) {
27657 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27659 return NDR_ERR_SUCCESS
;
27662 _PUBLIC_
void ndr_print_spoolss_5d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5d
*r
)
27664 ndr_print_struct(ndr
, name
, "spoolss_5d");
27666 if (flags
& NDR_SET_VALUES
) {
27667 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27669 if (flags
& NDR_IN
) {
27670 ndr_print_struct(ndr
, "in", "spoolss_5d");
27674 if (flags
& NDR_OUT
) {
27675 ndr_print_struct(ndr
, "out", "spoolss_5d");
27677 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27683 static enum ndr_err_code
ndr_push_spoolss_5e(struct ndr_push
*ndr
, int flags
, const struct spoolss_5e
*r
)
27685 if (flags
& NDR_IN
) {
27687 if (flags
& NDR_OUT
) {
27688 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27690 return NDR_ERR_SUCCESS
;
27693 static enum ndr_err_code
ndr_pull_spoolss_5e(struct ndr_pull
*ndr
, int flags
, struct spoolss_5e
*r
)
27695 if (flags
& NDR_IN
) {
27697 if (flags
& NDR_OUT
) {
27698 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27700 return NDR_ERR_SUCCESS
;
27703 _PUBLIC_
void ndr_print_spoolss_5e(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5e
*r
)
27705 ndr_print_struct(ndr
, name
, "spoolss_5e");
27707 if (flags
& NDR_SET_VALUES
) {
27708 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27710 if (flags
& NDR_IN
) {
27711 ndr_print_struct(ndr
, "in", "spoolss_5e");
27715 if (flags
& NDR_OUT
) {
27716 ndr_print_struct(ndr
, "out", "spoolss_5e");
27718 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27724 static enum ndr_err_code
ndr_push_spoolss_5f(struct ndr_push
*ndr
, int flags
, const struct spoolss_5f
*r
)
27726 if (flags
& NDR_IN
) {
27728 if (flags
& NDR_OUT
) {
27729 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27731 return NDR_ERR_SUCCESS
;
27734 static enum ndr_err_code
ndr_pull_spoolss_5f(struct ndr_pull
*ndr
, int flags
, struct spoolss_5f
*r
)
27736 if (flags
& NDR_IN
) {
27738 if (flags
& NDR_OUT
) {
27739 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27741 return NDR_ERR_SUCCESS
;
27744 _PUBLIC_
void ndr_print_spoolss_5f(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5f
*r
)
27746 ndr_print_struct(ndr
, name
, "spoolss_5f");
27748 if (flags
& NDR_SET_VALUES
) {
27749 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27751 if (flags
& NDR_IN
) {
27752 ndr_print_struct(ndr
, "in", "spoolss_5f");
27756 if (flags
& NDR_OUT
) {
27757 ndr_print_struct(ndr
, "out", "spoolss_5f");
27759 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27765 static const struct ndr_interface_call spoolss_calls
[] = {
27767 "spoolss_EnumPrinters",
27768 sizeof(struct spoolss_EnumPrinters
),
27769 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinters
,
27770 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinters
,
27771 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinters
,
27775 "spoolss_OpenPrinter",
27776 sizeof(struct spoolss_OpenPrinter
),
27777 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinter
,
27778 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinter
,
27779 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinter
,
27784 sizeof(struct spoolss_SetJob
),
27785 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetJob
,
27786 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetJob
,
27787 (ndr_print_function_t
) ndr_print_spoolss_SetJob
,
27792 sizeof(struct spoolss_GetJob
),
27793 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetJob
,
27794 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetJob
,
27795 (ndr_print_function_t
) ndr_print_spoolss_GetJob
,
27799 "spoolss_EnumJobs",
27800 sizeof(struct spoolss_EnumJobs
),
27801 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumJobs
,
27802 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumJobs
,
27803 (ndr_print_function_t
) ndr_print_spoolss_EnumJobs
,
27807 "spoolss_AddPrinter",
27808 sizeof(struct spoolss_AddPrinter
),
27809 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinter
,
27810 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinter
,
27811 (ndr_print_function_t
) ndr_print_spoolss_AddPrinter
,
27815 "spoolss_DeletePrinter",
27816 sizeof(struct spoolss_DeletePrinter
),
27817 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinter
,
27818 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinter
,
27819 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinter
,
27823 "spoolss_SetPrinter",
27824 sizeof(struct spoolss_SetPrinter
),
27825 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinter
,
27826 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinter
,
27827 (ndr_print_function_t
) ndr_print_spoolss_SetPrinter
,
27831 "spoolss_GetPrinter",
27832 sizeof(struct spoolss_GetPrinter
),
27833 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinter
,
27834 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinter
,
27835 (ndr_print_function_t
) ndr_print_spoolss_GetPrinter
,
27839 "spoolss_AddPrinterDriver",
27840 sizeof(struct spoolss_AddPrinterDriver
),
27841 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriver
,
27842 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriver
,
27843 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriver
,
27847 "spoolss_EnumPrinterDrivers",
27848 sizeof(struct spoolss_EnumPrinterDrivers
),
27849 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDrivers
,
27850 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDrivers
,
27851 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDrivers
,
27855 "spoolss_GetPrinterDriver",
27856 sizeof(struct spoolss_GetPrinterDriver
),
27857 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver
,
27858 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver
,
27859 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver
,
27863 "spoolss_GetPrinterDriverDirectory",
27864 sizeof(struct spoolss_GetPrinterDriverDirectory
),
27865 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverDirectory
,
27866 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverDirectory
,
27867 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverDirectory
,
27871 "spoolss_DeletePrinterDriver",
27872 sizeof(struct spoolss_DeletePrinterDriver
),
27873 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriver
,
27874 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriver
,
27875 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriver
,
27879 "spoolss_AddPrintProcessor",
27880 sizeof(struct spoolss_AddPrintProcessor
),
27881 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProcessor
,
27882 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProcessor
,
27883 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProcessor
,
27887 "spoolss_EnumPrintProcessors",
27888 sizeof(struct spoolss_EnumPrintProcessors
),
27889 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcessors
,
27890 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcessors
,
27891 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcessors
,
27895 "spoolss_GetPrintProcessorDirectory",
27896 sizeof(struct spoolss_GetPrintProcessorDirectory
),
27897 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrintProcessorDirectory
,
27898 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrintProcessorDirectory
,
27899 (ndr_print_function_t
) ndr_print_spoolss_GetPrintProcessorDirectory
,
27903 "spoolss_StartDocPrinter",
27904 sizeof(struct spoolss_StartDocPrinter
),
27905 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartDocPrinter
,
27906 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartDocPrinter
,
27907 (ndr_print_function_t
) ndr_print_spoolss_StartDocPrinter
,
27911 "spoolss_StartPagePrinter",
27912 sizeof(struct spoolss_StartPagePrinter
),
27913 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartPagePrinter
,
27914 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartPagePrinter
,
27915 (ndr_print_function_t
) ndr_print_spoolss_StartPagePrinter
,
27919 "spoolss_WritePrinter",
27920 sizeof(struct spoolss_WritePrinter
),
27921 (ndr_push_flags_fn_t
) ndr_push_spoolss_WritePrinter
,
27922 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WritePrinter
,
27923 (ndr_print_function_t
) ndr_print_spoolss_WritePrinter
,
27927 "spoolss_EndPagePrinter",
27928 sizeof(struct spoolss_EndPagePrinter
),
27929 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndPagePrinter
,
27930 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndPagePrinter
,
27931 (ndr_print_function_t
) ndr_print_spoolss_EndPagePrinter
,
27935 "spoolss_AbortPrinter",
27936 sizeof(struct spoolss_AbortPrinter
),
27937 (ndr_push_flags_fn_t
) ndr_push_spoolss_AbortPrinter
,
27938 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AbortPrinter
,
27939 (ndr_print_function_t
) ndr_print_spoolss_AbortPrinter
,
27943 "spoolss_ReadPrinter",
27944 sizeof(struct spoolss_ReadPrinter
),
27945 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReadPrinter
,
27946 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReadPrinter
,
27947 (ndr_print_function_t
) ndr_print_spoolss_ReadPrinter
,
27951 "spoolss_EndDocPrinter",
27952 sizeof(struct spoolss_EndDocPrinter
),
27953 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndDocPrinter
,
27954 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndDocPrinter
,
27955 (ndr_print_function_t
) ndr_print_spoolss_EndDocPrinter
,
27960 sizeof(struct spoolss_AddJob
),
27961 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddJob
,
27962 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddJob
,
27963 (ndr_print_function_t
) ndr_print_spoolss_AddJob
,
27967 "spoolss_ScheduleJob",
27968 sizeof(struct spoolss_ScheduleJob
),
27969 (ndr_push_flags_fn_t
) ndr_push_spoolss_ScheduleJob
,
27970 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ScheduleJob
,
27971 (ndr_print_function_t
) ndr_print_spoolss_ScheduleJob
,
27975 "spoolss_GetPrinterData",
27976 sizeof(struct spoolss_GetPrinterData
),
27977 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterData
,
27978 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterData
,
27979 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterData
,
27983 "spoolss_SetPrinterData",
27984 sizeof(struct spoolss_SetPrinterData
),
27985 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterData
,
27986 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterData
,
27987 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterData
,
27991 "spoolss_WaitForPrinterChange",
27992 sizeof(struct spoolss_WaitForPrinterChange
),
27993 (ndr_push_flags_fn_t
) ndr_push_spoolss_WaitForPrinterChange
,
27994 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WaitForPrinterChange
,
27995 (ndr_print_function_t
) ndr_print_spoolss_WaitForPrinterChange
,
27999 "spoolss_ClosePrinter",
28000 sizeof(struct spoolss_ClosePrinter
),
28001 (ndr_push_flags_fn_t
) ndr_push_spoolss_ClosePrinter
,
28002 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ClosePrinter
,
28003 (ndr_print_function_t
) ndr_print_spoolss_ClosePrinter
,
28008 sizeof(struct spoolss_AddForm
),
28009 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddForm
,
28010 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddForm
,
28011 (ndr_print_function_t
) ndr_print_spoolss_AddForm
,
28015 "spoolss_DeleteForm",
28016 sizeof(struct spoolss_DeleteForm
),
28017 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteForm
,
28018 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteForm
,
28019 (ndr_print_function_t
) ndr_print_spoolss_DeleteForm
,
28024 sizeof(struct spoolss_GetForm
),
28025 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetForm
,
28026 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetForm
,
28027 (ndr_print_function_t
) ndr_print_spoolss_GetForm
,
28032 sizeof(struct spoolss_SetForm
),
28033 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetForm
,
28034 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetForm
,
28035 (ndr_print_function_t
) ndr_print_spoolss_SetForm
,
28039 "spoolss_EnumForms",
28040 sizeof(struct spoolss_EnumForms
),
28041 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumForms
,
28042 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumForms
,
28043 (ndr_print_function_t
) ndr_print_spoolss_EnumForms
,
28047 "spoolss_EnumPorts",
28048 sizeof(struct spoolss_EnumPorts
),
28049 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPorts
,
28050 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPorts
,
28051 (ndr_print_function_t
) ndr_print_spoolss_EnumPorts
,
28055 "spoolss_EnumMonitors",
28056 sizeof(struct spoolss_EnumMonitors
),
28057 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumMonitors
,
28058 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumMonitors
,
28059 (ndr_print_function_t
) ndr_print_spoolss_EnumMonitors
,
28064 sizeof(struct spoolss_AddPort
),
28065 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPort
,
28066 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPort
,
28067 (ndr_print_function_t
) ndr_print_spoolss_AddPort
,
28071 "spoolss_ConfigurePort",
28072 sizeof(struct spoolss_ConfigurePort
),
28073 (ndr_push_flags_fn_t
) ndr_push_spoolss_ConfigurePort
,
28074 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ConfigurePort
,
28075 (ndr_print_function_t
) ndr_print_spoolss_ConfigurePort
,
28079 "spoolss_DeletePort",
28080 sizeof(struct spoolss_DeletePort
),
28081 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePort
,
28082 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePort
,
28083 (ndr_print_function_t
) ndr_print_spoolss_DeletePort
,
28087 "spoolss_CreatePrinterIC",
28088 sizeof(struct spoolss_CreatePrinterIC
),
28089 (ndr_push_flags_fn_t
) ndr_push_spoolss_CreatePrinterIC
,
28090 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_CreatePrinterIC
,
28091 (ndr_print_function_t
) ndr_print_spoolss_CreatePrinterIC
,
28095 "spoolss_PlayGDIScriptOnPrinterIC",
28096 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC
),
28097 (ndr_push_flags_fn_t
) ndr_push_spoolss_PlayGDIScriptOnPrinterIC
,
28098 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC
,
28099 (ndr_print_function_t
) ndr_print_spoolss_PlayGDIScriptOnPrinterIC
,
28103 "spoolss_DeletePrinterIC",
28104 sizeof(struct spoolss_DeletePrinterIC
),
28105 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterIC
,
28106 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterIC
,
28107 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterIC
,
28111 "spoolss_AddPrinterConnection",
28112 sizeof(struct spoolss_AddPrinterConnection
),
28113 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterConnection
,
28114 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterConnection
,
28115 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterConnection
,
28119 "spoolss_DeletePrinterConnection",
28120 sizeof(struct spoolss_DeletePrinterConnection
),
28121 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterConnection
,
28122 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterConnection
,
28123 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterConnection
,
28127 "spoolss_PrinterMessageBox",
28128 sizeof(struct spoolss_PrinterMessageBox
),
28129 (ndr_push_flags_fn_t
) ndr_push_spoolss_PrinterMessageBox
,
28130 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PrinterMessageBox
,
28131 (ndr_print_function_t
) ndr_print_spoolss_PrinterMessageBox
,
28135 "spoolss_AddMonitor",
28136 sizeof(struct spoolss_AddMonitor
),
28137 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddMonitor
,
28138 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddMonitor
,
28139 (ndr_print_function_t
) ndr_print_spoolss_AddMonitor
,
28143 "spoolss_DeleteMonitor",
28144 sizeof(struct spoolss_DeleteMonitor
),
28145 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteMonitor
,
28146 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteMonitor
,
28147 (ndr_print_function_t
) ndr_print_spoolss_DeleteMonitor
,
28151 "spoolss_DeletePrintProcessor",
28152 sizeof(struct spoolss_DeletePrintProcessor
),
28153 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProcessor
,
28154 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProcessor
,
28155 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProcessor
,
28159 "spoolss_AddPrintProvidor",
28160 sizeof(struct spoolss_AddPrintProvidor
),
28161 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProvidor
,
28162 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProvidor
,
28163 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProvidor
,
28167 "spoolss_DeletePrintProvidor",
28168 sizeof(struct spoolss_DeletePrintProvidor
),
28169 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProvidor
,
28170 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProvidor
,
28171 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProvidor
,
28175 "spoolss_EnumPrintProcDataTypes",
28176 sizeof(struct spoolss_EnumPrintProcDataTypes
),
28177 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcDataTypes
,
28178 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcDataTypes
,
28179 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcDataTypes
,
28183 "spoolss_ResetPrinter",
28184 sizeof(struct spoolss_ResetPrinter
),
28185 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinter
,
28186 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinter
,
28187 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinter
,
28191 "spoolss_GetPrinterDriver2",
28192 sizeof(struct spoolss_GetPrinterDriver2
),
28193 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver2
,
28194 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver2
,
28195 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver2
,
28199 "spoolss_FindFirstPrinterChangeNotification",
28200 sizeof(struct spoolss_FindFirstPrinterChangeNotification
),
28201 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindFirstPrinterChangeNotification
,
28202 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindFirstPrinterChangeNotification
,
28203 (ndr_print_function_t
) ndr_print_spoolss_FindFirstPrinterChangeNotification
,
28207 "spoolss_FindNextPrinterChangeNotification",
28208 sizeof(struct spoolss_FindNextPrinterChangeNotification
),
28209 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindNextPrinterChangeNotification
,
28210 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindNextPrinterChangeNotification
,
28211 (ndr_print_function_t
) ndr_print_spoolss_FindNextPrinterChangeNotification
,
28215 "spoolss_FindClosePrinterNotify",
28216 sizeof(struct spoolss_FindClosePrinterNotify
),
28217 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindClosePrinterNotify
,
28218 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindClosePrinterNotify
,
28219 (ndr_print_function_t
) ndr_print_spoolss_FindClosePrinterNotify
,
28223 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
28224 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld
),
28225 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
28226 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
28227 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
28231 "spoolss_ReplyOpenPrinter",
28232 sizeof(struct spoolss_ReplyOpenPrinter
),
28233 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyOpenPrinter
,
28234 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyOpenPrinter
,
28235 (ndr_print_function_t
) ndr_print_spoolss_ReplyOpenPrinter
,
28239 "spoolss_RouterReplyPrinter",
28240 sizeof(struct spoolss_RouterReplyPrinter
),
28241 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinter
,
28242 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinter
,
28243 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinter
,
28247 "spoolss_ReplyClosePrinter",
28248 sizeof(struct spoolss_ReplyClosePrinter
),
28249 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyClosePrinter
,
28250 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyClosePrinter
,
28251 (ndr_print_function_t
) ndr_print_spoolss_ReplyClosePrinter
,
28255 "spoolss_AddPortEx",
28256 sizeof(struct spoolss_AddPortEx
),
28257 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPortEx
,
28258 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPortEx
,
28259 (ndr_print_function_t
) ndr_print_spoolss_AddPortEx
,
28263 "spoolss_RouterFindFirstPrinterChangeNotification",
28264 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification
),
28265 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification
,
28266 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification
,
28267 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification
,
28271 "spoolss_SpoolerInit",
28272 sizeof(struct spoolss_SpoolerInit
),
28273 (ndr_push_flags_fn_t
) ndr_push_spoolss_SpoolerInit
,
28274 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SpoolerInit
,
28275 (ndr_print_function_t
) ndr_print_spoolss_SpoolerInit
,
28279 "spoolss_ResetPrinterEx",
28280 sizeof(struct spoolss_ResetPrinterEx
),
28281 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinterEx
,
28282 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinterEx
,
28283 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinterEx
,
28287 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
28288 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
),
28289 (ndr_push_flags_fn_t
) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
28290 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
28291 (ndr_print_function_t
) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
28295 "spoolss_RouterReplyPrinterEx",
28296 sizeof(struct spoolss_RouterReplyPrinterEx
),
28297 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinterEx
,
28298 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinterEx
,
28299 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinterEx
,
28303 "spoolss_RouterRefreshPrinterChangeNotify",
28304 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify
),
28305 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterRefreshPrinterChangeNotify
,
28306 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify
,
28307 (ndr_print_function_t
) ndr_print_spoolss_RouterRefreshPrinterChangeNotify
,
28312 sizeof(struct spoolss_44
),
28313 (ndr_push_flags_fn_t
) ndr_push_spoolss_44
,
28314 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_44
,
28315 (ndr_print_function_t
) ndr_print_spoolss_44
,
28319 "spoolss_OpenPrinterEx",
28320 sizeof(struct spoolss_OpenPrinterEx
),
28321 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinterEx
,
28322 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinterEx
,
28323 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinterEx
,
28327 "spoolss_AddPrinterEx",
28328 sizeof(struct spoolss_AddPrinterEx
),
28329 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterEx
,
28330 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterEx
,
28331 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterEx
,
28336 sizeof(struct spoolss_47
),
28337 (ndr_push_flags_fn_t
) ndr_push_spoolss_47
,
28338 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_47
,
28339 (ndr_print_function_t
) ndr_print_spoolss_47
,
28343 "spoolss_EnumPrinterData",
28344 sizeof(struct spoolss_EnumPrinterData
),
28345 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterData
,
28346 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterData
,
28347 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterData
,
28351 "spoolss_DeletePrinterData",
28352 sizeof(struct spoolss_DeletePrinterData
),
28353 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterData
,
28354 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterData
,
28355 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterData
,
28360 sizeof(struct spoolss_4a
),
28361 (ndr_push_flags_fn_t
) ndr_push_spoolss_4a
,
28362 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4a
,
28363 (ndr_print_function_t
) ndr_print_spoolss_4a
,
28368 sizeof(struct spoolss_4b
),
28369 (ndr_push_flags_fn_t
) ndr_push_spoolss_4b
,
28370 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4b
,
28371 (ndr_print_function_t
) ndr_print_spoolss_4b
,
28376 sizeof(struct spoolss_4c
),
28377 (ndr_push_flags_fn_t
) ndr_push_spoolss_4c
,
28378 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4c
,
28379 (ndr_print_function_t
) ndr_print_spoolss_4c
,
28383 "spoolss_SetPrinterDataEx",
28384 sizeof(struct spoolss_SetPrinterDataEx
),
28385 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterDataEx
,
28386 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterDataEx
,
28387 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterDataEx
,
28391 "spoolss_GetPrinterDataEx",
28392 sizeof(struct spoolss_GetPrinterDataEx
),
28393 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDataEx
,
28394 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDataEx
,
28395 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDataEx
,
28399 "spoolss_EnumPrinterDataEx",
28400 sizeof(struct spoolss_EnumPrinterDataEx
),
28401 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDataEx
,
28402 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDataEx
,
28403 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDataEx
,
28407 "spoolss_EnumPrinterKey",
28408 sizeof(struct spoolss_EnumPrinterKey
),
28409 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterKey
,
28410 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterKey
,
28411 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterKey
,
28415 "spoolss_DeletePrinterDataEx",
28416 sizeof(struct spoolss_DeletePrinterDataEx
),
28417 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDataEx
,
28418 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDataEx
,
28419 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDataEx
,
28423 "spoolss_DeletePrinterKey",
28424 sizeof(struct spoolss_DeletePrinterKey
),
28425 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterKey
,
28426 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterKey
,
28427 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterKey
,
28432 sizeof(struct spoolss_53
),
28433 (ndr_push_flags_fn_t
) ndr_push_spoolss_53
,
28434 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_53
,
28435 (ndr_print_function_t
) ndr_print_spoolss_53
,
28439 "spoolss_DeletePrinterDriverEx",
28440 sizeof(struct spoolss_DeletePrinterDriverEx
),
28441 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriverEx
,
28442 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriverEx
,
28443 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriverEx
,
28448 sizeof(struct spoolss_55
),
28449 (ndr_push_flags_fn_t
) ndr_push_spoolss_55
,
28450 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_55
,
28451 (ndr_print_function_t
) ndr_print_spoolss_55
,
28456 sizeof(struct spoolss_56
),
28457 (ndr_push_flags_fn_t
) ndr_push_spoolss_56
,
28458 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_56
,
28459 (ndr_print_function_t
) ndr_print_spoolss_56
,
28464 sizeof(struct spoolss_57
),
28465 (ndr_push_flags_fn_t
) ndr_push_spoolss_57
,
28466 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_57
,
28467 (ndr_print_function_t
) ndr_print_spoolss_57
,
28472 sizeof(struct spoolss_XcvData
),
28473 (ndr_push_flags_fn_t
) ndr_push_spoolss_XcvData
,
28474 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_XcvData
,
28475 (ndr_print_function_t
) ndr_print_spoolss_XcvData
,
28479 "spoolss_AddPrinterDriverEx",
28480 sizeof(struct spoolss_AddPrinterDriverEx
),
28481 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriverEx
,
28482 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriverEx
,
28483 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriverEx
,
28488 sizeof(struct spoolss_5a
),
28489 (ndr_push_flags_fn_t
) ndr_push_spoolss_5a
,
28490 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5a
,
28491 (ndr_print_function_t
) ndr_print_spoolss_5a
,
28496 sizeof(struct spoolss_5b
),
28497 (ndr_push_flags_fn_t
) ndr_push_spoolss_5b
,
28498 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5b
,
28499 (ndr_print_function_t
) ndr_print_spoolss_5b
,
28504 sizeof(struct spoolss_5c
),
28505 (ndr_push_flags_fn_t
) ndr_push_spoolss_5c
,
28506 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5c
,
28507 (ndr_print_function_t
) ndr_print_spoolss_5c
,
28512 sizeof(struct spoolss_5d
),
28513 (ndr_push_flags_fn_t
) ndr_push_spoolss_5d
,
28514 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5d
,
28515 (ndr_print_function_t
) ndr_print_spoolss_5d
,
28520 sizeof(struct spoolss_5e
),
28521 (ndr_push_flags_fn_t
) ndr_push_spoolss_5e
,
28522 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5e
,
28523 (ndr_print_function_t
) ndr_print_spoolss_5e
,
28528 sizeof(struct spoolss_5f
),
28529 (ndr_push_flags_fn_t
) ndr_push_spoolss_5f
,
28530 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5f
,
28531 (ndr_print_function_t
) ndr_print_spoolss_5f
,
28534 { NULL
, 0, NULL
, NULL
, NULL
, false }
28537 static const char * const spoolss_endpoint_strings
[] = {
28538 "ncacn_np:[\\pipe\\spoolss]",
28541 static const struct ndr_interface_string_array spoolss_endpoints
= {
28543 .names
= spoolss_endpoint_strings
28546 static const char * const spoolss_authservice_strings
[] = {
28550 static const struct ndr_interface_string_array spoolss_authservices
= {
28552 .names
= spoolss_authservice_strings
28556 const struct ndr_interface_table ndr_table_spoolss
= {
28559 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
28560 NDR_SPOOLSS_VERSION
28562 .helpstring
= NDR_SPOOLSS_HELPSTRING
,
28564 .calls
= spoolss_calls
,
28565 .endpoints
= &spoolss_endpoints
,
28566 .authservices
= &spoolss_authservices