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 static 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 static 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 static enum ndr_err_code
ndr_push_spoolss_DeviceModeFields(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
517 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
518 return NDR_ERR_SUCCESS
;
521 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeFields(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
524 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
526 return NDR_ERR_SUCCESS
;
529 _PUBLIC_
void ndr_print_spoolss_DeviceModeFields(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
531 ndr_print_uint32(ndr
, name
, r
);
533 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION
, r
);
534 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE
, r
);
535 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH
, r
);
536 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH
, r
);
537 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE
, r
);
538 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION
, r
);
539 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP
, r
);
540 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES
, r
);
541 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE
, r
);
542 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY
, r
);
543 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR
, r
);
544 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX
, r
);
545 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION
, r
);
546 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION
, r
);
547 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE
, r
);
548 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME
, r
);
549 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS
, r
);
550 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL
, r
);
551 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH
, r
);
552 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT
, r
);
553 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS
, r
);
554 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY
, r
);
555 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD
, r
);
556 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT
, r
);
557 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE
, r
);
558 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE
, r
);
559 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH
, r
);
560 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT
, r
);
564 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeviceMode(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceMode
*r
)
566 if (ndr_flags
& NDR_SCALARS
) {
567 NDR_CHECK(ndr_push_align(ndr
, 4));
568 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->devicename
, 32, sizeof(uint16_t), CH_UTF16
));
569 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->specversion
));
570 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverversion
));
571 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->size
));
572 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->driverextra_data
.length
));
573 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, r
->fields
));
574 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->orientation
));
575 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->papersize
));
576 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperlength
));
577 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->paperwidth
));
578 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->scale
));
579 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->copies
));
580 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->defaultsource
));
581 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->printquality
));
582 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->color
));
583 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->duplex
));
584 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->yresolution
));
585 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->ttoption
));
586 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->collate
));
587 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->formname
, 32, sizeof(uint16_t), CH_UTF16
));
588 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->logpixels
));
589 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bitsperpel
));
590 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelswidth
));
591 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pelsheight
));
592 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayflags
));
593 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->displayfrequency
));
594 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->icmmethod
));
595 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->icmintent
));
596 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->mediatype
));
597 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dithertype
));
598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved1
));
599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningwidth
));
601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->panningheight
));
603 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
604 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
606 struct ndr_push
*_ndr_driverextra_data
;
607 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
608 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, r
->driverextra_data
));
609 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->driverextra_data
.length
));
611 ndr
->flags
= _flags_save_DATA_BLOB
;
614 if (ndr_flags
& NDR_BUFFERS
) {
616 return NDR_ERR_SUCCESS
;
619 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeviceMode(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceMode
*r
)
621 if (ndr_flags
& NDR_SCALARS
) {
622 NDR_CHECK(ndr_pull_align(ndr
, 4));
623 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->devicename
, 32, sizeof(uint16_t), CH_UTF16
));
624 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->specversion
));
625 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->driverversion
));
626 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->size
));
627 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->__driverextra_length
));
628 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr
, NDR_SCALARS
, &r
->fields
));
629 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->orientation
));
630 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->papersize
));
631 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperlength
));
632 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->paperwidth
));
633 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->scale
));
634 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->copies
));
635 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->defaultsource
));
636 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->printquality
));
637 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->color
));
638 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->duplex
));
639 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->yresolution
));
640 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->ttoption
));
641 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->collate
));
642 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->formname
, 32, sizeof(uint16_t), CH_UTF16
));
643 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->logpixels
));
644 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bitsperpel
));
645 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelswidth
));
646 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pelsheight
));
647 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayflags
));
648 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->displayfrequency
));
649 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->icmmethod
));
650 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->icmintent
));
651 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->mediatype
));
652 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dithertype
));
653 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved1
));
654 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
655 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningwidth
));
656 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->panningheight
));
658 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
659 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
661 struct ndr_pull
*_ndr_driverextra_data
;
662 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_driverextra_data
, 0, r
->__driverextra_length
));
663 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data
, NDR_SCALARS
, &r
->driverextra_data
));
664 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_driverextra_data
, 0, r
->__driverextra_length
));
666 ndr
->flags
= _flags_save_DATA_BLOB
;
669 if (ndr_flags
& NDR_BUFFERS
) {
671 return NDR_ERR_SUCCESS
;
674 _PUBLIC_
void ndr_print_spoolss_DeviceMode(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceMode
*r
)
676 ndr_print_struct(ndr
, name
, "spoolss_DeviceMode");
678 ndr_print_string(ndr
, "devicename", r
->devicename
);
679 ndr_print_uint16(ndr
, "specversion", r
->specversion
);
680 ndr_print_uint16(ndr
, "driverversion", r
->driverversion
);
681 ndr_print_uint16(ndr
, "size", r
->size
);
682 ndr_print_uint16(ndr
, "__driverextra_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->driverextra_data
.length
:r
->__driverextra_length
);
683 ndr_print_spoolss_DeviceModeFields(ndr
, "fields", r
->fields
);
684 ndr_print_uint16(ndr
, "orientation", r
->orientation
);
685 ndr_print_uint16(ndr
, "papersize", r
->papersize
);
686 ndr_print_uint16(ndr
, "paperlength", r
->paperlength
);
687 ndr_print_uint16(ndr
, "paperwidth", r
->paperwidth
);
688 ndr_print_uint16(ndr
, "scale", r
->scale
);
689 ndr_print_uint16(ndr
, "copies", r
->copies
);
690 ndr_print_uint16(ndr
, "defaultsource", r
->defaultsource
);
691 ndr_print_uint16(ndr
, "printquality", r
->printquality
);
692 ndr_print_uint16(ndr
, "color", r
->color
);
693 ndr_print_uint16(ndr
, "duplex", r
->duplex
);
694 ndr_print_uint16(ndr
, "yresolution", r
->yresolution
);
695 ndr_print_uint16(ndr
, "ttoption", r
->ttoption
);
696 ndr_print_uint16(ndr
, "collate", r
->collate
);
697 ndr_print_string(ndr
, "formname", r
->formname
);
698 ndr_print_uint16(ndr
, "logpixels", r
->logpixels
);
699 ndr_print_uint32(ndr
, "bitsperpel", r
->bitsperpel
);
700 ndr_print_uint32(ndr
, "pelswidth", r
->pelswidth
);
701 ndr_print_uint32(ndr
, "pelsheight", r
->pelsheight
);
702 ndr_print_uint32(ndr
, "displayflags", r
->displayflags
);
703 ndr_print_uint32(ndr
, "displayfrequency", r
->displayfrequency
);
704 ndr_print_uint32(ndr
, "icmmethod", r
->icmmethod
);
705 ndr_print_uint32(ndr
, "icmintent", r
->icmintent
);
706 ndr_print_uint32(ndr
, "mediatype", r
->mediatype
);
707 ndr_print_uint32(ndr
, "dithertype", r
->dithertype
);
708 ndr_print_uint32(ndr
, "reserved1", r
->reserved1
);
709 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
710 ndr_print_uint32(ndr
, "panningwidth", r
->panningwidth
);
711 ndr_print_uint32(ndr
, "panningheight", r
->panningheight
);
712 ndr_print_DATA_BLOB(ndr
, "driverextra_data", r
->driverextra_data
);
716 _PUBLIC_
size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode
*r
, struct smb_iconv_convenience
*ic
, int flags
)
718 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DeviceMode
, ic
);
721 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
723 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
724 return NDR_ERR_SUCCESS
;
727 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
730 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
732 return NDR_ERR_SUCCESS
;
735 _PUBLIC_
void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
737 ndr_print_uint32(ndr
, name
, r
);
739 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT
, r
);
740 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL
, r
);
741 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS
, r
);
742 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE
, r
);
743 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME
, r
);
744 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE
, r
);
745 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED
, r
);
746 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK
, r
);
747 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND
, r
);
748 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER
, r
);
749 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1
, r
);
750 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2
, r
);
751 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3
, r
);
752 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4
, r
);
753 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5
, r
);
754 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6
, r
);
755 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7
, r
);
756 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8
, r
);
757 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE
, r
);
761 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo1
*r
)
763 if (ndr_flags
& NDR_SCALARS
) {
764 NDR_CHECK(ndr_push_align(ndr
, 4));
765 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->flags
));
767 uint32_t _flags_save_string
= ndr
->flags
;
768 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
769 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name
));
770 ndr
->flags
= _flags_save_string
;
773 uint32_t _flags_save_string
= ndr
->flags
;
774 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
775 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
776 ndr
->flags
= _flags_save_string
;
779 uint32_t _flags_save_string
= ndr
->flags
;
780 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
781 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
782 ndr
->flags
= _flags_save_string
;
785 if (ndr_flags
& NDR_BUFFERS
) {
787 uint32_t _flags_save_string
= ndr
->flags
;
788 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
790 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->name
));
791 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name
));
793 ndr
->flags
= _flags_save_string
;
796 uint32_t _flags_save_string
= ndr
->flags
;
797 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
798 if (r
->description
) {
799 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->description
));
800 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
802 ndr
->flags
= _flags_save_string
;
805 uint32_t _flags_save_string
= ndr
->flags
;
806 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
808 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->comment
));
809 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
811 ndr
->flags
= _flags_save_string
;
814 return NDR_ERR_SUCCESS
;
817 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo1
*r
)
820 TALLOC_CTX
*_mem_save_name_0
;
821 uint32_t _ptr_description
;
822 TALLOC_CTX
*_mem_save_description_0
;
823 uint32_t _ptr_comment
;
824 TALLOC_CTX
*_mem_save_comment_0
;
825 if (ndr_flags
& NDR_SCALARS
) {
826 NDR_CHECK(ndr_pull_align(ndr
, 4));
827 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->flags
));
829 uint32_t _flags_save_string
= ndr
->flags
;
830 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
831 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
833 NDR_PULL_ALLOC(ndr
, r
->name
);
834 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name
, _ptr_name
));
838 ndr
->flags
= _flags_save_string
;
841 uint32_t _flags_save_string
= ndr
->flags
;
842 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
843 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
844 if (_ptr_description
) {
845 NDR_PULL_ALLOC(ndr
, r
->description
);
846 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
848 r
->description
= NULL
;
850 ndr
->flags
= _flags_save_string
;
853 uint32_t _flags_save_string
= ndr
->flags
;
854 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
855 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
857 NDR_PULL_ALLOC(ndr
, r
->comment
);
858 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
862 ndr
->flags
= _flags_save_string
;
865 if (ndr_flags
& NDR_BUFFERS
) {
867 uint32_t _flags_save_string
= ndr
->flags
;
868 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
870 uint32_t _relative_save_offset
;
871 _relative_save_offset
= ndr
->offset
;
872 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name
));
873 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
874 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
875 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name
));
876 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
877 ndr
->offset
= _relative_save_offset
;
879 ndr
->flags
= _flags_save_string
;
882 uint32_t _flags_save_string
= ndr
->flags
;
883 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
884 if (r
->description
) {
885 uint32_t _relative_save_offset
;
886 _relative_save_offset
= ndr
->offset
;
887 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
888 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
889 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
890 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
891 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
892 ndr
->offset
= _relative_save_offset
;
894 ndr
->flags
= _flags_save_string
;
897 uint32_t _flags_save_string
= ndr
->flags
;
898 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
900 uint32_t _relative_save_offset
;
901 _relative_save_offset
= ndr
->offset
;
902 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
903 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
904 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
905 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
906 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
907 ndr
->offset
= _relative_save_offset
;
909 ndr
->flags
= _flags_save_string
;
912 return NDR_ERR_SUCCESS
;
915 _PUBLIC_
void ndr_print_spoolss_PrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo1
*r
)
917 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo1");
919 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->flags
);
920 ndr_print_ptr(ndr
, "name", r
->name
);
923 ndr_print_string(ndr
, "name", r
->name
);
926 ndr_print_ptr(ndr
, "description", r
->description
);
928 if (r
->description
) {
929 ndr_print_string(ndr
, "description", r
->description
);
932 ndr_print_ptr(ndr
, "comment", r
->comment
);
935 ndr_print_string(ndr
, "comment", r
->comment
);
941 static enum ndr_err_code
ndr_push_spoolss_PrinterAttributes(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
943 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
944 return NDR_ERR_SUCCESS
;
947 static enum ndr_err_code
ndr_pull_spoolss_PrinterAttributes(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
950 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
952 return NDR_ERR_SUCCESS
;
955 _PUBLIC_
void ndr_print_spoolss_PrinterAttributes(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
957 ndr_print_uint32(ndr
, name
, r
);
959 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED
, r
);
960 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT
, r
);
961 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT
, r
);
962 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED
, r
);
963 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK
, r
);
964 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN
, r
);
965 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL
, r
);
966 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ
, r
);
967 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS
, r
);
968 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST
, r
);
969 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE
, r
);
970 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI
, r
);
971 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY
, r
);
972 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED
, r
);
973 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX
, r
);
974 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS
, r
);
978 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo2
*r
)
980 if (ndr_flags
& NDR_SCALARS
) {
981 NDR_CHECK(ndr_push_align(ndr
, 4));
983 uint32_t _flags_save_string
= ndr
->flags
;
984 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
985 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
986 ndr
->flags
= _flags_save_string
;
989 uint32_t _flags_save_string
= ndr
->flags
;
990 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
991 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
992 ndr
->flags
= _flags_save_string
;
995 uint32_t _flags_save_string
= ndr
->flags
;
996 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
997 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->sharename
));
998 ndr
->flags
= _flags_save_string
;
1001 uint32_t _flags_save_string
= ndr
->flags
;
1002 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1003 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
1004 ndr
->flags
= _flags_save_string
;
1007 uint32_t _flags_save_string
= ndr
->flags
;
1008 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1009 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->drivername
));
1010 ndr
->flags
= _flags_save_string
;
1013 uint32_t _flags_save_string
= ndr
->flags
;
1014 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1015 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->comment
));
1016 ndr
->flags
= _flags_save_string
;
1019 uint32_t _flags_save_string
= ndr
->flags
;
1020 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1021 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->location
));
1022 ndr
->flags
= _flags_save_string
;
1024 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
1026 uint32_t _flags_save_string
= ndr
->flags
;
1027 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1028 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->sepfile
));
1029 ndr
->flags
= _flags_save_string
;
1032 uint32_t _flags_save_string
= ndr
->flags
;
1033 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1034 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printprocessor
));
1035 ndr
->flags
= _flags_save_string
;
1038 uint32_t _flags_save_string
= ndr
->flags
;
1039 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1040 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->datatype
));
1041 ndr
->flags
= _flags_save_string
;
1044 uint32_t _flags_save_string
= ndr
->flags
;
1045 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1046 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
1047 ndr
->flags
= _flags_save_string
;
1049 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
1050 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1051 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
1052 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
1053 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
1054 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
1055 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
1056 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
1057 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
1059 if (ndr_flags
& NDR_BUFFERS
) {
1061 uint32_t _flags_save_string
= ndr
->flags
;
1062 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1063 if (r
->servername
) {
1064 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
1065 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
1067 ndr
->flags
= _flags_save_string
;
1070 uint32_t _flags_save_string
= ndr
->flags
;
1071 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1072 if (r
->printername
) {
1073 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1074 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1076 ndr
->flags
= _flags_save_string
;
1079 uint32_t _flags_save_string
= ndr
->flags
;
1080 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1082 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->sharename
));
1083 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->sharename
));
1085 ndr
->flags
= _flags_save_string
;
1088 uint32_t _flags_save_string
= ndr
->flags
;
1089 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1091 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->portname
));
1092 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
1094 ndr
->flags
= _flags_save_string
;
1097 uint32_t _flags_save_string
= ndr
->flags
;
1098 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1099 if (r
->drivername
) {
1100 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->drivername
));
1101 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->drivername
));
1103 ndr
->flags
= _flags_save_string
;
1106 uint32_t _flags_save_string
= ndr
->flags
;
1107 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1109 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->comment
));
1110 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->comment
));
1112 ndr
->flags
= _flags_save_string
;
1115 uint32_t _flags_save_string
= ndr
->flags
;
1116 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1118 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->location
));
1119 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->location
));
1121 ndr
->flags
= _flags_save_string
;
1124 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
1126 struct ndr_push
*_ndr_devmode
;
1127 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
1128 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
1129 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
1133 uint32_t _flags_save_string
= ndr
->flags
;
1134 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1136 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->sepfile
));
1137 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->sepfile
));
1139 ndr
->flags
= _flags_save_string
;
1142 uint32_t _flags_save_string
= ndr
->flags
;
1143 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1144 if (r
->printprocessor
) {
1145 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printprocessor
));
1146 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printprocessor
));
1148 ndr
->flags
= _flags_save_string
;
1151 uint32_t _flags_save_string
= ndr
->flags
;
1152 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1154 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->datatype
));
1155 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->datatype
));
1157 ndr
->flags
= _flags_save_string
;
1160 uint32_t _flags_save_string
= ndr
->flags
;
1161 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1162 if (r
->parameters
) {
1163 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
1164 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
1166 ndr
->flags
= _flags_save_string
;
1169 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
1171 struct ndr_push
*_ndr_secdesc
;
1172 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1173 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1174 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1178 return NDR_ERR_SUCCESS
;
1181 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo2
*r
)
1183 uint32_t _ptr_servername
;
1184 TALLOC_CTX
*_mem_save_servername_0
;
1185 uint32_t _ptr_printername
;
1186 TALLOC_CTX
*_mem_save_printername_0
;
1187 uint32_t _ptr_sharename
;
1188 TALLOC_CTX
*_mem_save_sharename_0
;
1189 uint32_t _ptr_portname
;
1190 TALLOC_CTX
*_mem_save_portname_0
;
1191 uint32_t _ptr_drivername
;
1192 TALLOC_CTX
*_mem_save_drivername_0
;
1193 uint32_t _ptr_comment
;
1194 TALLOC_CTX
*_mem_save_comment_0
;
1195 uint32_t _ptr_location
;
1196 TALLOC_CTX
*_mem_save_location_0
;
1197 uint32_t _ptr_devmode
;
1198 TALLOC_CTX
*_mem_save_devmode_0
;
1199 uint32_t _ptr_sepfile
;
1200 TALLOC_CTX
*_mem_save_sepfile_0
;
1201 uint32_t _ptr_printprocessor
;
1202 TALLOC_CTX
*_mem_save_printprocessor_0
;
1203 uint32_t _ptr_datatype
;
1204 TALLOC_CTX
*_mem_save_datatype_0
;
1205 uint32_t _ptr_parameters
;
1206 TALLOC_CTX
*_mem_save_parameters_0
;
1207 uint32_t _ptr_secdesc
;
1208 TALLOC_CTX
*_mem_save_secdesc_0
;
1209 if (ndr_flags
& NDR_SCALARS
) {
1210 NDR_CHECK(ndr_pull_align(ndr
, 4));
1212 uint32_t _flags_save_string
= ndr
->flags
;
1213 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1214 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1215 if (_ptr_servername
) {
1216 NDR_PULL_ALLOC(ndr
, r
->servername
);
1217 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1219 r
->servername
= NULL
;
1221 ndr
->flags
= _flags_save_string
;
1224 uint32_t _flags_save_string
= ndr
->flags
;
1225 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1226 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1227 if (_ptr_printername
) {
1228 NDR_PULL_ALLOC(ndr
, r
->printername
);
1229 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1231 r
->printername
= NULL
;
1233 ndr
->flags
= _flags_save_string
;
1236 uint32_t _flags_save_string
= ndr
->flags
;
1237 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1238 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
1239 if (_ptr_sharename
) {
1240 NDR_PULL_ALLOC(ndr
, r
->sharename
);
1241 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sharename
, _ptr_sharename
));
1243 r
->sharename
= NULL
;
1245 ndr
->flags
= _flags_save_string
;
1248 uint32_t _flags_save_string
= ndr
->flags
;
1249 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1250 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
1251 if (_ptr_portname
) {
1252 NDR_PULL_ALLOC(ndr
, r
->portname
);
1253 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1257 ndr
->flags
= _flags_save_string
;
1260 uint32_t _flags_save_string
= ndr
->flags
;
1261 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1262 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
1263 if (_ptr_drivername
) {
1264 NDR_PULL_ALLOC(ndr
, r
->drivername
);
1265 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->drivername
, _ptr_drivername
));
1267 r
->drivername
= NULL
;
1269 ndr
->flags
= _flags_save_string
;
1272 uint32_t _flags_save_string
= ndr
->flags
;
1273 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1274 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
1276 NDR_PULL_ALLOC(ndr
, r
->comment
);
1277 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->comment
, _ptr_comment
));
1281 ndr
->flags
= _flags_save_string
;
1284 uint32_t _flags_save_string
= ndr
->flags
;
1285 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1286 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
1287 if (_ptr_location
) {
1288 NDR_PULL_ALLOC(ndr
, r
->location
);
1289 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->location
, _ptr_location
));
1293 ndr
->flags
= _flags_save_string
;
1295 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
1297 NDR_PULL_ALLOC(ndr
, r
->devmode
);
1298 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
1303 uint32_t _flags_save_string
= ndr
->flags
;
1304 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1305 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
1307 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
1308 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->sepfile
, _ptr_sepfile
));
1312 ndr
->flags
= _flags_save_string
;
1315 uint32_t _flags_save_string
= ndr
->flags
;
1316 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1317 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
1318 if (_ptr_printprocessor
) {
1319 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
1320 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printprocessor
, _ptr_printprocessor
));
1322 r
->printprocessor
= NULL
;
1324 ndr
->flags
= _flags_save_string
;
1327 uint32_t _flags_save_string
= ndr
->flags
;
1328 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1329 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
1330 if (_ptr_datatype
) {
1331 NDR_PULL_ALLOC(ndr
, r
->datatype
);
1332 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->datatype
, _ptr_datatype
));
1336 ndr
->flags
= _flags_save_string
;
1339 uint32_t _flags_save_string
= ndr
->flags
;
1340 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1341 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
1342 if (_ptr_parameters
) {
1343 NDR_PULL_ALLOC(ndr
, r
->parameters
);
1344 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
1346 r
->parameters
= NULL
;
1348 ndr
->flags
= _flags_save_string
;
1350 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1352 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1353 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1357 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1358 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
1359 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
1360 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
1361 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
1362 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
1363 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
1364 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
1366 if (ndr_flags
& NDR_BUFFERS
) {
1368 uint32_t _flags_save_string
= ndr
->flags
;
1369 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1370 if (r
->servername
) {
1371 uint32_t _relative_save_offset
;
1372 _relative_save_offset
= ndr
->offset
;
1373 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
1374 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1375 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
1376 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
1377 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
1378 ndr
->offset
= _relative_save_offset
;
1380 ndr
->flags
= _flags_save_string
;
1383 uint32_t _flags_save_string
= ndr
->flags
;
1384 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1385 if (r
->printername
) {
1386 uint32_t _relative_save_offset
;
1387 _relative_save_offset
= ndr
->offset
;
1388 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1389 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1390 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1391 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1392 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1393 ndr
->offset
= _relative_save_offset
;
1395 ndr
->flags
= _flags_save_string
;
1398 uint32_t _flags_save_string
= ndr
->flags
;
1399 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1401 uint32_t _relative_save_offset
;
1402 _relative_save_offset
= ndr
->offset
;
1403 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sharename
));
1404 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1405 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
1406 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sharename
));
1407 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
1408 ndr
->offset
= _relative_save_offset
;
1410 ndr
->flags
= _flags_save_string
;
1413 uint32_t _flags_save_string
= ndr
->flags
;
1414 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1416 uint32_t _relative_save_offset
;
1417 _relative_save_offset
= ndr
->offset
;
1418 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
1419 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1420 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
1421 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
1422 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
1423 ndr
->offset
= _relative_save_offset
;
1425 ndr
->flags
= _flags_save_string
;
1428 uint32_t _flags_save_string
= ndr
->flags
;
1429 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1430 if (r
->drivername
) {
1431 uint32_t _relative_save_offset
;
1432 _relative_save_offset
= ndr
->offset
;
1433 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->drivername
));
1434 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1435 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
1436 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->drivername
));
1437 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
1438 ndr
->offset
= _relative_save_offset
;
1440 ndr
->flags
= _flags_save_string
;
1443 uint32_t _flags_save_string
= ndr
->flags
;
1444 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1446 uint32_t _relative_save_offset
;
1447 _relative_save_offset
= ndr
->offset
;
1448 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->comment
));
1449 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1450 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
1451 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->comment
));
1452 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
1453 ndr
->offset
= _relative_save_offset
;
1455 ndr
->flags
= _flags_save_string
;
1458 uint32_t _flags_save_string
= ndr
->flags
;
1459 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1461 uint32_t _relative_save_offset
;
1462 _relative_save_offset
= ndr
->offset
;
1463 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->location
));
1464 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1465 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
1466 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->location
));
1467 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
1468 ndr
->offset
= _relative_save_offset
;
1470 ndr
->flags
= _flags_save_string
;
1473 uint32_t _relative_save_offset
;
1474 _relative_save_offset
= ndr
->offset
;
1475 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
1476 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1477 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
1479 struct ndr_pull
*_ndr_devmode
;
1480 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
1481 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
1482 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
1484 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
1485 ndr
->offset
= _relative_save_offset
;
1488 uint32_t _flags_save_string
= ndr
->flags
;
1489 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1491 uint32_t _relative_save_offset
;
1492 _relative_save_offset
= ndr
->offset
;
1493 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->sepfile
));
1494 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1495 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
1496 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->sepfile
));
1497 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
1498 ndr
->offset
= _relative_save_offset
;
1500 ndr
->flags
= _flags_save_string
;
1503 uint32_t _flags_save_string
= ndr
->flags
;
1504 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1505 if (r
->printprocessor
) {
1506 uint32_t _relative_save_offset
;
1507 _relative_save_offset
= ndr
->offset
;
1508 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printprocessor
));
1509 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1510 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
1511 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printprocessor
));
1512 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
1513 ndr
->offset
= _relative_save_offset
;
1515 ndr
->flags
= _flags_save_string
;
1518 uint32_t _flags_save_string
= ndr
->flags
;
1519 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1521 uint32_t _relative_save_offset
;
1522 _relative_save_offset
= ndr
->offset
;
1523 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->datatype
));
1524 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1525 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
1526 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->datatype
));
1527 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
1528 ndr
->offset
= _relative_save_offset
;
1530 ndr
->flags
= _flags_save_string
;
1533 uint32_t _flags_save_string
= ndr
->flags
;
1534 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1535 if (r
->parameters
) {
1536 uint32_t _relative_save_offset
;
1537 _relative_save_offset
= ndr
->offset
;
1538 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
1539 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1540 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
1541 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
1542 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
1543 ndr
->offset
= _relative_save_offset
;
1545 ndr
->flags
= _flags_save_string
;
1548 uint32_t _relative_save_offset
;
1549 _relative_save_offset
= ndr
->offset
;
1550 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
1551 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1552 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
1554 struct ndr_pull
*_ndr_secdesc
;
1555 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1556 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1557 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1559 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1560 ndr
->offset
= _relative_save_offset
;
1563 return NDR_ERR_SUCCESS
;
1566 _PUBLIC_
void ndr_print_spoolss_PrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo2
*r
)
1568 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo2");
1570 ndr_print_ptr(ndr
, "servername", r
->servername
);
1572 if (r
->servername
) {
1573 ndr_print_string(ndr
, "servername", r
->servername
);
1576 ndr_print_ptr(ndr
, "printername", r
->printername
);
1578 if (r
->printername
) {
1579 ndr_print_string(ndr
, "printername", r
->printername
);
1582 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
1585 ndr_print_string(ndr
, "sharename", r
->sharename
);
1588 ndr_print_ptr(ndr
, "portname", r
->portname
);
1591 ndr_print_string(ndr
, "portname", r
->portname
);
1594 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
1596 if (r
->drivername
) {
1597 ndr_print_string(ndr
, "drivername", r
->drivername
);
1600 ndr_print_ptr(ndr
, "comment", r
->comment
);
1603 ndr_print_string(ndr
, "comment", r
->comment
);
1606 ndr_print_ptr(ndr
, "location", r
->location
);
1609 ndr_print_string(ndr
, "location", r
->location
);
1612 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
1615 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
1618 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
1621 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
1624 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
1626 if (r
->printprocessor
) {
1627 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
1630 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
1633 ndr_print_string(ndr
, "datatype", r
->datatype
);
1636 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
1638 if (r
->parameters
) {
1639 ndr_print_string(ndr
, "parameters", r
->parameters
);
1642 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
1645 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
1648 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1649 ndr_print_uint32(ndr
, "priority", r
->priority
);
1650 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
1651 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
1652 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
1653 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
1654 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
1655 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
1659 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo3
*r
)
1661 if (ndr_flags
& NDR_SCALARS
) {
1662 NDR_CHECK(ndr_push_align(ndr
, 4));
1663 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
1665 if (ndr_flags
& NDR_BUFFERS
) {
1667 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
1669 struct ndr_push
*_ndr_secdesc
;
1670 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1671 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1672 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1676 return NDR_ERR_SUCCESS
;
1679 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo3
*r
)
1681 uint32_t _ptr_secdesc
;
1682 TALLOC_CTX
*_mem_save_secdesc_0
;
1683 if (ndr_flags
& NDR_SCALARS
) {
1684 NDR_CHECK(ndr_pull_align(ndr
, 4));
1685 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
1687 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
1688 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
1693 if (ndr_flags
& NDR_BUFFERS
) {
1695 uint32_t _relative_save_offset
;
1696 _relative_save_offset
= ndr
->offset
;
1697 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
1698 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1699 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
1701 struct ndr_pull
*_ndr_secdesc
;
1702 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
1703 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
1704 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
1706 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
1707 ndr
->offset
= _relative_save_offset
;
1710 return NDR_ERR_SUCCESS
;
1713 _PUBLIC_
void ndr_print_spoolss_PrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo3
*r
)
1715 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo3");
1717 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
1720 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
1726 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo4
*r
)
1728 if (ndr_flags
& NDR_SCALARS
) {
1729 NDR_CHECK(ndr_push_align(ndr
, 4));
1731 uint32_t _flags_save_string
= ndr
->flags
;
1732 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1733 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
1734 ndr
->flags
= _flags_save_string
;
1737 uint32_t _flags_save_string
= ndr
->flags
;
1738 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1739 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->servername
));
1740 ndr
->flags
= _flags_save_string
;
1742 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1744 if (ndr_flags
& NDR_BUFFERS
) {
1746 uint32_t _flags_save_string
= ndr
->flags
;
1747 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1748 if (r
->printername
) {
1749 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1750 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1752 ndr
->flags
= _flags_save_string
;
1755 uint32_t _flags_save_string
= ndr
->flags
;
1756 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1757 if (r
->servername
) {
1758 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->servername
));
1759 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->servername
));
1761 ndr
->flags
= _flags_save_string
;
1764 return NDR_ERR_SUCCESS
;
1767 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo4
*r
)
1769 uint32_t _ptr_printername
;
1770 TALLOC_CTX
*_mem_save_printername_0
;
1771 uint32_t _ptr_servername
;
1772 TALLOC_CTX
*_mem_save_servername_0
;
1773 if (ndr_flags
& NDR_SCALARS
) {
1774 NDR_CHECK(ndr_pull_align(ndr
, 4));
1776 uint32_t _flags_save_string
= ndr
->flags
;
1777 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1778 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1779 if (_ptr_printername
) {
1780 NDR_PULL_ALLOC(ndr
, r
->printername
);
1781 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1783 r
->printername
= NULL
;
1785 ndr
->flags
= _flags_save_string
;
1788 uint32_t _flags_save_string
= ndr
->flags
;
1789 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1790 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
1791 if (_ptr_servername
) {
1792 NDR_PULL_ALLOC(ndr
, r
->servername
);
1793 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->servername
, _ptr_servername
));
1795 r
->servername
= NULL
;
1797 ndr
->flags
= _flags_save_string
;
1799 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1801 if (ndr_flags
& NDR_BUFFERS
) {
1803 uint32_t _flags_save_string
= ndr
->flags
;
1804 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1805 if (r
->printername
) {
1806 uint32_t _relative_save_offset
;
1807 _relative_save_offset
= ndr
->offset
;
1808 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1809 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1810 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1811 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1812 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1813 ndr
->offset
= _relative_save_offset
;
1815 ndr
->flags
= _flags_save_string
;
1818 uint32_t _flags_save_string
= ndr
->flags
;
1819 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1820 if (r
->servername
) {
1821 uint32_t _relative_save_offset
;
1822 _relative_save_offset
= ndr
->offset
;
1823 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->servername
));
1824 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1825 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
1826 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->servername
));
1827 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
1828 ndr
->offset
= _relative_save_offset
;
1830 ndr
->flags
= _flags_save_string
;
1833 return NDR_ERR_SUCCESS
;
1836 _PUBLIC_
void ndr_print_spoolss_PrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo4
*r
)
1838 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo4");
1840 ndr_print_ptr(ndr
, "printername", r
->printername
);
1842 if (r
->printername
) {
1843 ndr_print_string(ndr
, "printername", r
->printername
);
1846 ndr_print_ptr(ndr
, "servername", r
->servername
);
1848 if (r
->servername
) {
1849 ndr_print_string(ndr
, "servername", r
->servername
);
1852 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1856 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo5
*r
)
1858 if (ndr_flags
& NDR_SCALARS
) {
1859 NDR_CHECK(ndr_push_align(ndr
, 4));
1861 uint32_t _flags_save_string
= ndr
->flags
;
1862 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1863 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printername
));
1864 ndr
->flags
= _flags_save_string
;
1867 uint32_t _flags_save_string
= ndr
->flags
;
1868 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1869 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->portname
));
1870 ndr
->flags
= _flags_save_string
;
1872 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
1873 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
1874 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
1876 if (ndr_flags
& NDR_BUFFERS
) {
1878 uint32_t _flags_save_string
= ndr
->flags
;
1879 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1880 if (r
->printername
) {
1881 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printername
));
1882 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printername
));
1884 ndr
->flags
= _flags_save_string
;
1887 uint32_t _flags_save_string
= ndr
->flags
;
1888 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1890 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->portname
));
1891 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->portname
));
1893 ndr
->flags
= _flags_save_string
;
1896 return NDR_ERR_SUCCESS
;
1899 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo5
*r
)
1901 uint32_t _ptr_printername
;
1902 TALLOC_CTX
*_mem_save_printername_0
;
1903 uint32_t _ptr_portname
;
1904 TALLOC_CTX
*_mem_save_portname_0
;
1905 if (ndr_flags
& NDR_SCALARS
) {
1906 NDR_CHECK(ndr_pull_align(ndr
, 4));
1908 uint32_t _flags_save_string
= ndr
->flags
;
1909 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1910 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
1911 if (_ptr_printername
) {
1912 NDR_PULL_ALLOC(ndr
, r
->printername
);
1913 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printername
, _ptr_printername
));
1915 r
->printername
= NULL
;
1917 ndr
->flags
= _flags_save_string
;
1920 uint32_t _flags_save_string
= ndr
->flags
;
1921 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1922 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
1923 if (_ptr_portname
) {
1924 NDR_PULL_ALLOC(ndr
, r
->portname
);
1925 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->portname
, _ptr_portname
));
1929 ndr
->flags
= _flags_save_string
;
1931 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
1932 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
1933 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
1935 if (ndr_flags
& NDR_BUFFERS
) {
1937 uint32_t _flags_save_string
= ndr
->flags
;
1938 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1939 if (r
->printername
) {
1940 uint32_t _relative_save_offset
;
1941 _relative_save_offset
= ndr
->offset
;
1942 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printername
));
1943 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1944 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
1945 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printername
));
1946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
1947 ndr
->offset
= _relative_save_offset
;
1949 ndr
->flags
= _flags_save_string
;
1952 uint32_t _flags_save_string
= ndr
->flags
;
1953 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
1955 uint32_t _relative_save_offset
;
1956 _relative_save_offset
= ndr
->offset
;
1957 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->portname
));
1958 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
1959 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
1960 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->portname
));
1961 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
1962 ndr
->offset
= _relative_save_offset
;
1964 ndr
->flags
= _flags_save_string
;
1967 return NDR_ERR_SUCCESS
;
1970 _PUBLIC_
void ndr_print_spoolss_PrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo5
*r
)
1972 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo5");
1974 ndr_print_ptr(ndr
, "printername", r
->printername
);
1976 if (r
->printername
) {
1977 ndr_print_string(ndr
, "printername", r
->printername
);
1980 ndr_print_ptr(ndr
, "portname", r
->portname
);
1983 ndr_print_string(ndr
, "portname", r
->portname
);
1986 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
1987 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
1988 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
1992 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo6
*r
)
1994 if (ndr_flags
& NDR_SCALARS
) {
1995 NDR_CHECK(ndr_push_align(ndr
, 4));
1996 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
1998 if (ndr_flags
& NDR_BUFFERS
) {
2000 return NDR_ERR_SUCCESS
;
2003 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo6
*r
)
2005 if (ndr_flags
& NDR_SCALARS
) {
2006 NDR_CHECK(ndr_pull_align(ndr
, 4));
2007 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
2009 if (ndr_flags
& NDR_BUFFERS
) {
2011 return NDR_ERR_SUCCESS
;
2014 _PUBLIC_
void ndr_print_spoolss_PrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo6
*r
)
2016 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo6");
2018 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
2022 static enum ndr_err_code
ndr_push_spoolss_DsPrintAction(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
2024 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
2025 return NDR_ERR_SUCCESS
;
2028 static enum ndr_err_code
ndr_pull_spoolss_DsPrintAction(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
2031 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
2033 return NDR_ERR_SUCCESS
;
2036 _PUBLIC_
void ndr_print_spoolss_DsPrintAction(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
2038 ndr_print_uint32(ndr
, name
, r
);
2040 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH
, r
);
2041 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE
, r
);
2042 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH
, r
);
2043 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH
, r
);
2044 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING
, r
);
2048 static enum ndr_err_code
ndr_push_spoolss_PrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrinterInfo7
*r
)
2050 if (ndr_flags
& NDR_SCALARS
) {
2051 NDR_CHECK(ndr_push_align(ndr
, 4));
2053 uint32_t _flags_save_string
= ndr
->flags
;
2054 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2055 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->guid
));
2056 ndr
->flags
= _flags_save_string
;
2058 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
2060 if (ndr_flags
& NDR_BUFFERS
) {
2062 uint32_t _flags_save_string
= ndr
->flags
;
2063 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2065 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->guid
));
2066 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->guid
));
2068 ndr
->flags
= _flags_save_string
;
2071 return NDR_ERR_SUCCESS
;
2074 static enum ndr_err_code
ndr_pull_spoolss_PrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrinterInfo7
*r
)
2077 TALLOC_CTX
*_mem_save_guid_0
;
2078 if (ndr_flags
& NDR_SCALARS
) {
2079 NDR_CHECK(ndr_pull_align(ndr
, 4));
2081 uint32_t _flags_save_string
= ndr
->flags
;
2082 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2083 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
2085 NDR_PULL_ALLOC(ndr
, r
->guid
);
2086 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->guid
, _ptr_guid
));
2090 ndr
->flags
= _flags_save_string
;
2092 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
2094 if (ndr_flags
& NDR_BUFFERS
) {
2096 uint32_t _flags_save_string
= ndr
->flags
;
2097 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2099 uint32_t _relative_save_offset
;
2100 _relative_save_offset
= ndr
->offset
;
2101 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->guid
));
2102 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2103 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
2104 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->guid
));
2105 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
2106 ndr
->offset
= _relative_save_offset
;
2108 ndr
->flags
= _flags_save_string
;
2111 return NDR_ERR_SUCCESS
;
2114 _PUBLIC_
void ndr_print_spoolss_PrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrinterInfo7
*r
)
2116 ndr_print_struct(ndr
, name
, "spoolss_PrinterInfo7");
2118 ndr_print_ptr(ndr
, "guid", r
->guid
);
2121 ndr_print_string(ndr
, "guid", r
->guid
);
2124 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
2128 static enum ndr_err_code
ndr_push_spoolss_DeviceModeInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DeviceModeInfo
*r
)
2130 if (ndr_flags
& NDR_SCALARS
) {
2131 NDR_CHECK(ndr_push_align(ndr
, 4));
2132 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
2134 if (ndr_flags
& NDR_BUFFERS
) {
2136 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
2138 struct ndr_push
*_ndr_devmode
;
2139 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2140 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2141 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2145 return NDR_ERR_SUCCESS
;
2148 static enum ndr_err_code
ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DeviceModeInfo
*r
)
2150 uint32_t _ptr_devmode
;
2151 TALLOC_CTX
*_mem_save_devmode_0
;
2152 if (ndr_flags
& NDR_SCALARS
) {
2153 NDR_CHECK(ndr_pull_align(ndr
, 4));
2154 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2156 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2157 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
2162 if (ndr_flags
& NDR_BUFFERS
) {
2164 uint32_t _relative_save_offset
;
2165 _relative_save_offset
= ndr
->offset
;
2166 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
2167 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2168 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2170 struct ndr_pull
*_ndr_devmode
;
2171 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
2172 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2173 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
2175 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2176 ndr
->offset
= _relative_save_offset
;
2179 return NDR_ERR_SUCCESS
;
2182 _PUBLIC_
void ndr_print_spoolss_DeviceModeInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DeviceModeInfo
*r
)
2184 ndr_print_struct(ndr
, name
, "spoolss_DeviceModeInfo");
2186 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2189 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2195 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterInfo
*r
)
2197 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
2198 if (ndr_flags
& NDR_SCALARS
) {
2199 int level
= ndr_push_get_switch_value(ndr
, r
);
2202 NDR_CHECK(ndr_push_align(ndr
, 4));
2203 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2204 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2208 NDR_CHECK(ndr_push_align(ndr
, 4));
2209 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2210 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2214 NDR_CHECK(ndr_push_align(ndr
, 4));
2215 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2216 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2220 NDR_CHECK(ndr_push_align(ndr
, 4));
2221 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2222 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2226 NDR_CHECK(ndr_push_align(ndr
, 4));
2227 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2228 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2232 NDR_CHECK(ndr_push_align(ndr
, 4));
2233 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2234 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2238 NDR_CHECK(ndr_push_align(ndr
, 4));
2239 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2240 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2244 NDR_CHECK(ndr_push_align(ndr
, 4));
2245 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2246 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2250 NDR_CHECK(ndr_push_align(ndr
, 4));
2251 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2252 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2256 NDR_CHECK(ndr_push_align(ndr
, 4));
2257 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2258 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2266 if (ndr_flags
& NDR_BUFFERS
) {
2267 int level
= ndr_push_get_switch_value(ndr
, r
);
2268 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
2271 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2275 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2279 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2283 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2287 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2291 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2298 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2302 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2306 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2314 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2315 return NDR_ERR_SUCCESS
;
2318 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterInfo
*r
)
2320 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
2322 level
= ndr_pull_get_switch_value(ndr
, r
);
2323 if (ndr_flags
& NDR_SCALARS
) {
2326 NDR_CHECK(ndr_pull_align(ndr
, 4));
2327 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2328 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_SCALARS
, &r
->info0
));
2332 NDR_CHECK(ndr_pull_align(ndr
, 4));
2333 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2334 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
2338 NDR_CHECK(ndr_pull_align(ndr
, 4));
2339 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2340 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
2344 NDR_CHECK(ndr_pull_align(ndr
, 4));
2345 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2346 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
2350 NDR_CHECK(ndr_pull_align(ndr
, 4));
2351 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2352 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
2356 NDR_CHECK(ndr_pull_align(ndr
, 4));
2357 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2358 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
2362 NDR_CHECK(ndr_pull_align(ndr
, 4));
2363 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2364 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
2368 NDR_CHECK(ndr_pull_align(ndr
, 4));
2369 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2370 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_SCALARS
, &r
->info7
));
2374 NDR_CHECK(ndr_pull_align(ndr
, 4));
2375 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2376 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info8
));
2380 NDR_CHECK(ndr_pull_align(ndr
, 4));
2381 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
2382 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
, &r
->info9
));
2390 if (ndr_flags
& NDR_BUFFERS
) {
2391 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
2394 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr
, NDR_BUFFERS
, &r
->info0
));
2398 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
2402 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
2406 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
2410 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
2414 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
2421 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr
, NDR_BUFFERS
, &r
->info7
));
2425 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info8
));
2429 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_BUFFERS
, &r
->info9
));
2437 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
2438 return NDR_ERR_SUCCESS
;
2441 _PUBLIC_
void ndr_print_spoolss_PrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterInfo
*r
)
2444 level
= ndr_print_get_switch_value(ndr
, r
);
2445 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterInfo");
2448 ndr_print_spoolss_PrinterInfo0(ndr
, "info0", &r
->info0
);
2452 ndr_print_spoolss_PrinterInfo1(ndr
, "info1", &r
->info1
);
2456 ndr_print_spoolss_PrinterInfo2(ndr
, "info2", &r
->info2
);
2460 ndr_print_spoolss_PrinterInfo3(ndr
, "info3", &r
->info3
);
2464 ndr_print_spoolss_PrinterInfo4(ndr
, "info4", &r
->info4
);
2468 ndr_print_spoolss_PrinterInfo5(ndr
, "info5", &r
->info5
);
2472 ndr_print_spoolss_PrinterInfo6(ndr
, "info6", &r
->info6
);
2476 ndr_print_spoolss_PrinterInfo7(ndr
, "info7", &r
->info7
);
2480 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", &r
->info8
);
2484 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", &r
->info9
);
2493 static enum ndr_err_code
ndr_push_spoolss_DevmodeContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DevmodeContainer
*r
)
2495 if (ndr_flags
& NDR_SCALARS
) {
2496 NDR_CHECK(ndr_push_align(ndr
, 4));
2497 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2498 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
2500 if (ndr_flags
& NDR_BUFFERS
) {
2503 struct ndr_push
*_ndr_devmode
;
2504 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2505 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2506 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 4, _ndr_size_spoolss_DeviceMode(r
->devmode
, ndr
->iconv_convenience
, ndr
->flags
)));
2510 return NDR_ERR_SUCCESS
;
2513 static enum ndr_err_code
ndr_pull_spoolss_DevmodeContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DevmodeContainer
*r
)
2515 uint32_t _ptr_devmode
;
2516 TALLOC_CTX
*_mem_save_devmode_0
;
2517 if (ndr_flags
& NDR_SCALARS
) {
2518 NDR_CHECK(ndr_pull_align(ndr
, 4));
2519 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
2520 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
2522 NDR_PULL_ALLOC(ndr
, r
->devmode
);
2527 if (ndr_flags
& NDR_BUFFERS
) {
2529 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2530 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
2532 struct ndr_pull
*_ndr_devmode
;
2533 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 4, r
->_ndr_size
));
2534 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
2535 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 4, r
->_ndr_size
));
2537 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
2540 return NDR_ERR_SUCCESS
;
2543 _PUBLIC_
void ndr_print_spoolss_DevmodeContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DevmodeContainer
*r
)
2545 ndr_print_struct(ndr
, name
, "spoolss_DevmodeContainer");
2547 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
);
2548 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
2551 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
2557 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo1
*r
)
2559 if (ndr_flags
& NDR_SCALARS
) {
2560 NDR_CHECK(ndr_push_align(ndr
, 4));
2561 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
2563 uint32_t _flags_save_string
= ndr
->flags
;
2564 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2565 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
2566 ndr
->flags
= _flags_save_string
;
2569 uint32_t _flags_save_string
= ndr
->flags
;
2570 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2571 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
2572 ndr
->flags
= _flags_save_string
;
2575 uint32_t _flags_save_string
= ndr
->flags
;
2576 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2577 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
2578 ndr
->flags
= _flags_save_string
;
2581 uint32_t _flags_save_string
= ndr
->flags
;
2582 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2583 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
2584 ndr
->flags
= _flags_save_string
;
2587 uint32_t _flags_save_string
= ndr
->flags
;
2588 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2589 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
2590 ndr
->flags
= _flags_save_string
;
2593 uint32_t _flags_save_string
= ndr
->flags
;
2594 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2595 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
2596 ndr
->flags
= _flags_save_string
;
2598 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
2599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
2600 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
2601 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
2602 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
2603 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
2605 if (ndr_flags
& NDR_BUFFERS
) {
2607 uint32_t _flags_save_string
= ndr
->flags
;
2608 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2609 if (r
->printer_name
) {
2610 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
2611 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
2613 ndr
->flags
= _flags_save_string
;
2616 uint32_t _flags_save_string
= ndr
->flags
;
2617 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2618 if (r
->server_name
) {
2619 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
2620 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
2622 ndr
->flags
= _flags_save_string
;
2625 uint32_t _flags_save_string
= ndr
->flags
;
2626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2628 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
2629 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
2631 ndr
->flags
= _flags_save_string
;
2634 uint32_t _flags_save_string
= ndr
->flags
;
2635 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2636 if (r
->document_name
) {
2637 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
2638 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
2640 ndr
->flags
= _flags_save_string
;
2643 uint32_t _flags_save_string
= ndr
->flags
;
2644 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2646 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
2647 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
2649 ndr
->flags
= _flags_save_string
;
2652 uint32_t _flags_save_string
= ndr
->flags
;
2653 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2654 if (r
->text_status
) {
2655 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
2656 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
2658 ndr
->flags
= _flags_save_string
;
2661 return NDR_ERR_SUCCESS
;
2664 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo1
*r
)
2666 uint32_t _ptr_printer_name
;
2667 TALLOC_CTX
*_mem_save_printer_name_0
;
2668 uint32_t _ptr_server_name
;
2669 TALLOC_CTX
*_mem_save_server_name_0
;
2670 uint32_t _ptr_user_name
;
2671 TALLOC_CTX
*_mem_save_user_name_0
;
2672 uint32_t _ptr_document_name
;
2673 TALLOC_CTX
*_mem_save_document_name_0
;
2674 uint32_t _ptr_data_type
;
2675 TALLOC_CTX
*_mem_save_data_type_0
;
2676 uint32_t _ptr_text_status
;
2677 TALLOC_CTX
*_mem_save_text_status_0
;
2678 if (ndr_flags
& NDR_SCALARS
) {
2679 NDR_CHECK(ndr_pull_align(ndr
, 4));
2680 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
2682 uint32_t _flags_save_string
= ndr
->flags
;
2683 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2684 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
2685 if (_ptr_printer_name
) {
2686 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
2687 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
2689 r
->printer_name
= NULL
;
2691 ndr
->flags
= _flags_save_string
;
2694 uint32_t _flags_save_string
= ndr
->flags
;
2695 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2696 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
2697 if (_ptr_server_name
) {
2698 NDR_PULL_ALLOC(ndr
, r
->server_name
);
2699 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
2701 r
->server_name
= NULL
;
2703 ndr
->flags
= _flags_save_string
;
2706 uint32_t _flags_save_string
= ndr
->flags
;
2707 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2708 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
2709 if (_ptr_user_name
) {
2710 NDR_PULL_ALLOC(ndr
, r
->user_name
);
2711 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
2713 r
->user_name
= NULL
;
2715 ndr
->flags
= _flags_save_string
;
2718 uint32_t _flags_save_string
= ndr
->flags
;
2719 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2720 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
2721 if (_ptr_document_name
) {
2722 NDR_PULL_ALLOC(ndr
, r
->document_name
);
2723 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
2725 r
->document_name
= NULL
;
2727 ndr
->flags
= _flags_save_string
;
2730 uint32_t _flags_save_string
= ndr
->flags
;
2731 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2732 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
2733 if (_ptr_data_type
) {
2734 NDR_PULL_ALLOC(ndr
, r
->data_type
);
2735 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
2737 r
->data_type
= NULL
;
2739 ndr
->flags
= _flags_save_string
;
2742 uint32_t _flags_save_string
= ndr
->flags
;
2743 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2744 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
2745 if (_ptr_text_status
) {
2746 NDR_PULL_ALLOC(ndr
, r
->text_status
);
2747 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
2749 r
->text_status
= NULL
;
2751 ndr
->flags
= _flags_save_string
;
2753 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
2754 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
2755 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
2756 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
2757 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
2758 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
2760 if (ndr_flags
& NDR_BUFFERS
) {
2762 uint32_t _flags_save_string
= ndr
->flags
;
2763 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2764 if (r
->printer_name
) {
2765 uint32_t _relative_save_offset
;
2766 _relative_save_offset
= ndr
->offset
;
2767 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
2768 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2769 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
2770 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
2771 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
2772 ndr
->offset
= _relative_save_offset
;
2774 ndr
->flags
= _flags_save_string
;
2777 uint32_t _flags_save_string
= ndr
->flags
;
2778 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2779 if (r
->server_name
) {
2780 uint32_t _relative_save_offset
;
2781 _relative_save_offset
= ndr
->offset
;
2782 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
2783 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2784 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
2785 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
2786 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
2787 ndr
->offset
= _relative_save_offset
;
2789 ndr
->flags
= _flags_save_string
;
2792 uint32_t _flags_save_string
= ndr
->flags
;
2793 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2795 uint32_t _relative_save_offset
;
2796 _relative_save_offset
= ndr
->offset
;
2797 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
2798 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2799 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
2800 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
2801 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
2802 ndr
->offset
= _relative_save_offset
;
2804 ndr
->flags
= _flags_save_string
;
2807 uint32_t _flags_save_string
= ndr
->flags
;
2808 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2809 if (r
->document_name
) {
2810 uint32_t _relative_save_offset
;
2811 _relative_save_offset
= ndr
->offset
;
2812 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
2813 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2814 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
2815 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
2816 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
2817 ndr
->offset
= _relative_save_offset
;
2819 ndr
->flags
= _flags_save_string
;
2822 uint32_t _flags_save_string
= ndr
->flags
;
2823 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2825 uint32_t _relative_save_offset
;
2826 _relative_save_offset
= ndr
->offset
;
2827 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
2828 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2829 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
2830 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
2831 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
2832 ndr
->offset
= _relative_save_offset
;
2834 ndr
->flags
= _flags_save_string
;
2837 uint32_t _flags_save_string
= ndr
->flags
;
2838 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2839 if (r
->text_status
) {
2840 uint32_t _relative_save_offset
;
2841 _relative_save_offset
= ndr
->offset
;
2842 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
2843 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
2844 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
2845 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
2846 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
2847 ndr
->offset
= _relative_save_offset
;
2849 ndr
->flags
= _flags_save_string
;
2852 return NDR_ERR_SUCCESS
;
2855 _PUBLIC_
void ndr_print_spoolss_JobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo1
*r
)
2857 ndr_print_struct(ndr
, name
, "spoolss_JobInfo1");
2859 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
2860 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
2862 if (r
->printer_name
) {
2863 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
2866 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
2868 if (r
->server_name
) {
2869 ndr_print_string(ndr
, "server_name", r
->server_name
);
2872 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
2875 ndr_print_string(ndr
, "user_name", r
->user_name
);
2878 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
2880 if (r
->document_name
) {
2881 ndr_print_string(ndr
, "document_name", r
->document_name
);
2884 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
2887 ndr_print_string(ndr
, "data_type", r
->data_type
);
2890 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
2892 if (r
->text_status
) {
2893 ndr_print_string(ndr
, "text_status", r
->text_status
);
2896 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
2897 ndr_print_uint32(ndr
, "priority", r
->priority
);
2898 ndr_print_uint32(ndr
, "position", r
->position
);
2899 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
2900 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
2901 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
2905 _PUBLIC_
size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
2907 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo1
, ic
);
2910 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo2
*r
)
2912 if (ndr_flags
& NDR_SCALARS
) {
2913 NDR_CHECK(ndr_push_align(ndr
, 4));
2914 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
2916 uint32_t _flags_save_string
= ndr
->flags
;
2917 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2918 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
2919 ndr
->flags
= _flags_save_string
;
2922 uint32_t _flags_save_string
= ndr
->flags
;
2923 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2924 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
2925 ndr
->flags
= _flags_save_string
;
2928 uint32_t _flags_save_string
= ndr
->flags
;
2929 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2930 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
2931 ndr
->flags
= _flags_save_string
;
2934 uint32_t _flags_save_string
= ndr
->flags
;
2935 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2936 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
2937 ndr
->flags
= _flags_save_string
;
2940 uint32_t _flags_save_string
= ndr
->flags
;
2941 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2942 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
2943 ndr
->flags
= _flags_save_string
;
2946 uint32_t _flags_save_string
= ndr
->flags
;
2947 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2948 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
2949 ndr
->flags
= _flags_save_string
;
2952 uint32_t _flags_save_string
= ndr
->flags
;
2953 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2954 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
2955 ndr
->flags
= _flags_save_string
;
2958 uint32_t _flags_save_string
= ndr
->flags
;
2959 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2960 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
2961 ndr
->flags
= _flags_save_string
;
2964 uint32_t _flags_save_string
= ndr
->flags
;
2965 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2966 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
2967 ndr
->flags
= _flags_save_string
;
2969 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
2971 uint32_t _flags_save_string
= ndr
->flags
;
2972 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2973 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
2974 ndr
->flags
= _flags_save_string
;
2976 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
2977 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
2978 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
2979 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
2980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
2981 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
2982 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
2983 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
2984 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
2985 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
2986 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
2988 if (ndr_flags
& NDR_BUFFERS
) {
2990 uint32_t _flags_save_string
= ndr
->flags
;
2991 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
2992 if (r
->printer_name
) {
2993 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
2994 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_name
));
2996 ndr
->flags
= _flags_save_string
;
2999 uint32_t _flags_save_string
= ndr
->flags
;
3000 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3001 if (r
->server_name
) {
3002 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
3003 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3005 ndr
->flags
= _flags_save_string
;
3008 uint32_t _flags_save_string
= ndr
->flags
;
3009 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3011 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
3012 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
3014 ndr
->flags
= _flags_save_string
;
3017 uint32_t _flags_save_string
= ndr
->flags
;
3018 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3019 if (r
->document_name
) {
3020 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
3021 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3023 ndr
->flags
= _flags_save_string
;
3026 uint32_t _flags_save_string
= ndr
->flags
;
3027 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3028 if (r
->notify_name
) {
3029 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->notify_name
));
3030 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
3032 ndr
->flags
= _flags_save_string
;
3035 uint32_t _flags_save_string
= ndr
->flags
;
3036 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3038 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
3039 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3041 ndr
->flags
= _flags_save_string
;
3044 uint32_t _flags_save_string
= ndr
->flags
;
3045 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3046 if (r
->print_processor
) {
3047 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
3048 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
3050 ndr
->flags
= _flags_save_string
;
3053 uint32_t _flags_save_string
= ndr
->flags
;
3054 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3055 if (r
->parameters
) {
3056 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
3057 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3059 ndr
->flags
= _flags_save_string
;
3062 uint32_t _flags_save_string
= ndr
->flags
;
3063 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3064 if (r
->driver_name
) {
3065 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
3066 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3068 ndr
->flags
= _flags_save_string
;
3071 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
3072 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3075 uint32_t _flags_save_string
= ndr
->flags
;
3076 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3077 if (r
->text_status
) {
3078 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
3079 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3081 ndr
->flags
= _flags_save_string
;
3084 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
3085 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3088 return NDR_ERR_SUCCESS
;
3091 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo2
*r
)
3093 uint32_t _ptr_printer_name
;
3094 TALLOC_CTX
*_mem_save_printer_name_0
;
3095 uint32_t _ptr_server_name
;
3096 TALLOC_CTX
*_mem_save_server_name_0
;
3097 uint32_t _ptr_user_name
;
3098 TALLOC_CTX
*_mem_save_user_name_0
;
3099 uint32_t _ptr_document_name
;
3100 TALLOC_CTX
*_mem_save_document_name_0
;
3101 uint32_t _ptr_notify_name
;
3102 TALLOC_CTX
*_mem_save_notify_name_0
;
3103 uint32_t _ptr_data_type
;
3104 TALLOC_CTX
*_mem_save_data_type_0
;
3105 uint32_t _ptr_print_processor
;
3106 TALLOC_CTX
*_mem_save_print_processor_0
;
3107 uint32_t _ptr_parameters
;
3108 TALLOC_CTX
*_mem_save_parameters_0
;
3109 uint32_t _ptr_driver_name
;
3110 TALLOC_CTX
*_mem_save_driver_name_0
;
3111 uint32_t _ptr_devmode
;
3112 TALLOC_CTX
*_mem_save_devmode_0
;
3113 uint32_t _ptr_text_status
;
3114 TALLOC_CTX
*_mem_save_text_status_0
;
3115 uint32_t _ptr_secdesc
;
3116 TALLOC_CTX
*_mem_save_secdesc_0
;
3117 if (ndr_flags
& NDR_SCALARS
) {
3118 NDR_CHECK(ndr_pull_align(ndr
, 4));
3119 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3121 uint32_t _flags_save_string
= ndr
->flags
;
3122 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3123 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3124 if (_ptr_printer_name
) {
3125 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3126 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3128 r
->printer_name
= NULL
;
3130 ndr
->flags
= _flags_save_string
;
3133 uint32_t _flags_save_string
= ndr
->flags
;
3134 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3135 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3136 if (_ptr_server_name
) {
3137 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3138 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3140 r
->server_name
= NULL
;
3142 ndr
->flags
= _flags_save_string
;
3145 uint32_t _flags_save_string
= ndr
->flags
;
3146 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3147 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3148 if (_ptr_user_name
) {
3149 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3150 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3152 r
->user_name
= NULL
;
3154 ndr
->flags
= _flags_save_string
;
3157 uint32_t _flags_save_string
= ndr
->flags
;
3158 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3159 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3160 if (_ptr_document_name
) {
3161 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3162 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3164 r
->document_name
= NULL
;
3166 ndr
->flags
= _flags_save_string
;
3169 uint32_t _flags_save_string
= ndr
->flags
;
3170 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3171 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
3172 if (_ptr_notify_name
) {
3173 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
3174 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
3176 r
->notify_name
= NULL
;
3178 ndr
->flags
= _flags_save_string
;
3181 uint32_t _flags_save_string
= ndr
->flags
;
3182 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3183 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3184 if (_ptr_data_type
) {
3185 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3186 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3188 r
->data_type
= NULL
;
3190 ndr
->flags
= _flags_save_string
;
3193 uint32_t _flags_save_string
= ndr
->flags
;
3194 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3195 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
3196 if (_ptr_print_processor
) {
3197 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
3198 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
3200 r
->print_processor
= NULL
;
3202 ndr
->flags
= _flags_save_string
;
3205 uint32_t _flags_save_string
= ndr
->flags
;
3206 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3207 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
3208 if (_ptr_parameters
) {
3209 NDR_PULL_ALLOC(ndr
, r
->parameters
);
3210 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
3212 r
->parameters
= NULL
;
3214 ndr
->flags
= _flags_save_string
;
3217 uint32_t _flags_save_string
= ndr
->flags
;
3218 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3219 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
3220 if (_ptr_driver_name
) {
3221 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
3222 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
3224 r
->driver_name
= NULL
;
3226 ndr
->flags
= _flags_save_string
;
3228 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3230 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3231 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
3236 uint32_t _flags_save_string
= ndr
->flags
;
3237 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3238 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3239 if (_ptr_text_status
) {
3240 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3241 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3243 r
->text_status
= NULL
;
3245 ndr
->flags
= _flags_save_string
;
3247 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
3249 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
3250 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
3254 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3255 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3256 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3257 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
3258 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
3259 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3260 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
3261 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3262 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
3263 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3265 if (ndr_flags
& NDR_BUFFERS
) {
3267 uint32_t _flags_save_string
= ndr
->flags
;
3268 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3269 if (r
->printer_name
) {
3270 uint32_t _relative_save_offset
;
3271 _relative_save_offset
= ndr
->offset
;
3272 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3273 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3274 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3275 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3276 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3277 ndr
->offset
= _relative_save_offset
;
3279 ndr
->flags
= _flags_save_string
;
3282 uint32_t _flags_save_string
= ndr
->flags
;
3283 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3284 if (r
->server_name
) {
3285 uint32_t _relative_save_offset
;
3286 _relative_save_offset
= ndr
->offset
;
3287 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3288 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3289 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3290 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3291 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3292 ndr
->offset
= _relative_save_offset
;
3294 ndr
->flags
= _flags_save_string
;
3297 uint32_t _flags_save_string
= ndr
->flags
;
3298 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3300 uint32_t _relative_save_offset
;
3301 _relative_save_offset
= ndr
->offset
;
3302 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3303 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3304 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3305 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3306 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3307 ndr
->offset
= _relative_save_offset
;
3309 ndr
->flags
= _flags_save_string
;
3312 uint32_t _flags_save_string
= ndr
->flags
;
3313 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3314 if (r
->document_name
) {
3315 uint32_t _relative_save_offset
;
3316 _relative_save_offset
= ndr
->offset
;
3317 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3318 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3319 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3320 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3322 ndr
->offset
= _relative_save_offset
;
3324 ndr
->flags
= _flags_save_string
;
3327 uint32_t _flags_save_string
= ndr
->flags
;
3328 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3329 if (r
->notify_name
) {
3330 uint32_t _relative_save_offset
;
3331 _relative_save_offset
= ndr
->offset
;
3332 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
3333 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3334 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
3335 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
3336 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
3337 ndr
->offset
= _relative_save_offset
;
3339 ndr
->flags
= _flags_save_string
;
3342 uint32_t _flags_save_string
= ndr
->flags
;
3343 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3345 uint32_t _relative_save_offset
;
3346 _relative_save_offset
= ndr
->offset
;
3347 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
3348 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3349 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
3350 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
3351 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
3352 ndr
->offset
= _relative_save_offset
;
3354 ndr
->flags
= _flags_save_string
;
3357 uint32_t _flags_save_string
= ndr
->flags
;
3358 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3359 if (r
->print_processor
) {
3360 uint32_t _relative_save_offset
;
3361 _relative_save_offset
= ndr
->offset
;
3362 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
3363 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3364 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
3365 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
3366 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
3367 ndr
->offset
= _relative_save_offset
;
3369 ndr
->flags
= _flags_save_string
;
3372 uint32_t _flags_save_string
= ndr
->flags
;
3373 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3374 if (r
->parameters
) {
3375 uint32_t _relative_save_offset
;
3376 _relative_save_offset
= ndr
->offset
;
3377 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
3378 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3379 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
3380 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
3381 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
3382 ndr
->offset
= _relative_save_offset
;
3384 ndr
->flags
= _flags_save_string
;
3387 uint32_t _flags_save_string
= ndr
->flags
;
3388 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3389 if (r
->driver_name
) {
3390 uint32_t _relative_save_offset
;
3391 _relative_save_offset
= ndr
->offset
;
3392 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
3393 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3394 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
3395 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
3396 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
3397 ndr
->offset
= _relative_save_offset
;
3399 ndr
->flags
= _flags_save_string
;
3402 uint32_t _relative_save_offset
;
3403 _relative_save_offset
= ndr
->offset
;
3404 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
3405 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3406 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
3407 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3408 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
3409 ndr
->offset
= _relative_save_offset
;
3412 uint32_t _flags_save_string
= ndr
->flags
;
3413 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3414 if (r
->text_status
) {
3415 uint32_t _relative_save_offset
;
3416 _relative_save_offset
= ndr
->offset
;
3417 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
3418 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3419 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
3420 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
3421 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
3422 ndr
->offset
= _relative_save_offset
;
3424 ndr
->flags
= _flags_save_string
;
3427 uint32_t _relative_save_offset
;
3428 _relative_save_offset
= ndr
->offset
;
3429 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
3430 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3431 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
3432 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3433 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
3434 ndr
->offset
= _relative_save_offset
;
3437 return NDR_ERR_SUCCESS
;
3440 _PUBLIC_
void ndr_print_spoolss_JobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo2
*r
)
3442 ndr_print_struct(ndr
, name
, "spoolss_JobInfo2");
3444 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3445 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
3447 if (r
->printer_name
) {
3448 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
3451 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
3453 if (r
->server_name
) {
3454 ndr_print_string(ndr
, "server_name", r
->server_name
);
3457 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
3460 ndr_print_string(ndr
, "user_name", r
->user_name
);
3463 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
3465 if (r
->document_name
) {
3466 ndr_print_string(ndr
, "document_name", r
->document_name
);
3469 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
3471 if (r
->notify_name
) {
3472 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
3475 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
3478 ndr_print_string(ndr
, "data_type", r
->data_type
);
3481 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
3483 if (r
->print_processor
) {
3484 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
3487 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
3489 if (r
->parameters
) {
3490 ndr_print_string(ndr
, "parameters", r
->parameters
);
3493 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
3495 if (r
->driver_name
) {
3496 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
3499 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
3502 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
3505 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
3507 if (r
->text_status
) {
3508 ndr_print_string(ndr
, "text_status", r
->text_status
);
3511 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
3514 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
3517 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
3518 ndr_print_uint32(ndr
, "priority", r
->priority
);
3519 ndr_print_uint32(ndr
, "position", r
->position
);
3520 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
3521 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
3522 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
3523 ndr_print_uint32(ndr
, "size", r
->size
);
3524 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
3525 ndr_print_uint32(ndr
, "time", r
->time
);
3526 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
3530 _PUBLIC_
size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
3532 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo2
, ic
);
3535 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo3
*r
)
3537 if (ndr_flags
& NDR_SCALARS
) {
3538 NDR_CHECK(ndr_push_align(ndr
, 4));
3539 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3540 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->next_job_id
));
3541 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
3543 if (ndr_flags
& NDR_BUFFERS
) {
3545 return NDR_ERR_SUCCESS
;
3548 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo3
*r
)
3550 if (ndr_flags
& NDR_SCALARS
) {
3551 NDR_CHECK(ndr_pull_align(ndr
, 4));
3552 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3553 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->next_job_id
));
3554 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
3556 if (ndr_flags
& NDR_BUFFERS
) {
3558 return NDR_ERR_SUCCESS
;
3561 _PUBLIC_
void ndr_print_spoolss_JobInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo3
*r
)
3563 ndr_print_struct(ndr
, name
, "spoolss_JobInfo3");
3565 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
3566 ndr_print_uint32(ndr
, "next_job_id", r
->next_job_id
);
3567 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
3571 _PUBLIC_
size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
3573 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo3
, ic
);
3576 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfo4
*r
)
3578 if (ndr_flags
& NDR_SCALARS
) {
3579 NDR_CHECK(ndr_push_align(ndr
, 4));
3580 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
3582 uint32_t _flags_save_string
= ndr
->flags
;
3583 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3584 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->printer_name
));
3585 ndr
->flags
= _flags_save_string
;
3588 uint32_t _flags_save_string
= ndr
->flags
;
3589 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3590 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->server_name
));
3591 ndr
->flags
= _flags_save_string
;
3594 uint32_t _flags_save_string
= ndr
->flags
;
3595 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3596 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->user_name
));
3597 ndr
->flags
= _flags_save_string
;
3600 uint32_t _flags_save_string
= ndr
->flags
;
3601 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3602 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->document_name
));
3603 ndr
->flags
= _flags_save_string
;
3606 uint32_t _flags_save_string
= ndr
->flags
;
3607 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3608 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->notify_name
));
3609 ndr
->flags
= _flags_save_string
;
3612 uint32_t _flags_save_string
= ndr
->flags
;
3613 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3614 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_type
));
3615 ndr
->flags
= _flags_save_string
;
3618 uint32_t _flags_save_string
= ndr
->flags
;
3619 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3620 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
3621 ndr
->flags
= _flags_save_string
;
3624 uint32_t _flags_save_string
= ndr
->flags
;
3625 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3626 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->parameters
));
3627 ndr
->flags
= _flags_save_string
;
3630 uint32_t _flags_save_string
= ndr
->flags
;
3631 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3632 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
3633 ndr
->flags
= _flags_save_string
;
3635 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->devmode
));
3637 uint32_t _flags_save_string
= ndr
->flags
;
3638 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3639 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->text_status
));
3640 ndr
->flags
= _flags_save_string
;
3642 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->secdesc
));
3643 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
3644 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
3645 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
3646 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
3647 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
3648 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
3649 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
3650 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3651 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
3652 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
3653 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
3655 if (ndr_flags
& NDR_BUFFERS
) {
3657 uint32_t _flags_save_string
= ndr
->flags
;
3658 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3659 if (r
->printer_name
) {
3660 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->printer_name
));
3661 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->printer_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 if (r
->server_name
) {
3669 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->server_name
));
3670 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->server_name
));
3672 ndr
->flags
= _flags_save_string
;
3675 uint32_t _flags_save_string
= ndr
->flags
;
3676 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3678 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->user_name
));
3679 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->user_name
));
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 if (r
->document_name
) {
3687 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->document_name
));
3688 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->document_name
));
3690 ndr
->flags
= _flags_save_string
;
3693 uint32_t _flags_save_string
= ndr
->flags
;
3694 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3695 if (r
->notify_name
) {
3696 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->notify_name
));
3697 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->notify_name
));
3699 ndr
->flags
= _flags_save_string
;
3702 uint32_t _flags_save_string
= ndr
->flags
;
3703 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3705 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_type
));
3706 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_type
));
3708 ndr
->flags
= _flags_save_string
;
3711 uint32_t _flags_save_string
= ndr
->flags
;
3712 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3713 if (r
->print_processor
) {
3714 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
3715 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
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
->parameters
) {
3723 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->parameters
));
3724 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->parameters
));
3726 ndr
->flags
= _flags_save_string
;
3729 uint32_t _flags_save_string
= ndr
->flags
;
3730 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3731 if (r
->driver_name
) {
3732 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
3733 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
3735 ndr
->flags
= _flags_save_string
;
3738 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->devmode
));
3739 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
3742 uint32_t _flags_save_string
= ndr
->flags
;
3743 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3744 if (r
->text_status
) {
3745 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->text_status
));
3746 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->text_status
));
3748 ndr
->flags
= _flags_save_string
;
3751 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->secdesc
));
3752 NDR_CHECK(ndr_push_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
3755 return NDR_ERR_SUCCESS
;
3758 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfo4
*r
)
3760 uint32_t _ptr_printer_name
;
3761 TALLOC_CTX
*_mem_save_printer_name_0
;
3762 uint32_t _ptr_server_name
;
3763 TALLOC_CTX
*_mem_save_server_name_0
;
3764 uint32_t _ptr_user_name
;
3765 TALLOC_CTX
*_mem_save_user_name_0
;
3766 uint32_t _ptr_document_name
;
3767 TALLOC_CTX
*_mem_save_document_name_0
;
3768 uint32_t _ptr_notify_name
;
3769 TALLOC_CTX
*_mem_save_notify_name_0
;
3770 uint32_t _ptr_data_type
;
3771 TALLOC_CTX
*_mem_save_data_type_0
;
3772 uint32_t _ptr_print_processor
;
3773 TALLOC_CTX
*_mem_save_print_processor_0
;
3774 uint32_t _ptr_parameters
;
3775 TALLOC_CTX
*_mem_save_parameters_0
;
3776 uint32_t _ptr_driver_name
;
3777 TALLOC_CTX
*_mem_save_driver_name_0
;
3778 uint32_t _ptr_devmode
;
3779 TALLOC_CTX
*_mem_save_devmode_0
;
3780 uint32_t _ptr_text_status
;
3781 TALLOC_CTX
*_mem_save_text_status_0
;
3782 uint32_t _ptr_secdesc
;
3783 TALLOC_CTX
*_mem_save_secdesc_0
;
3784 if (ndr_flags
& NDR_SCALARS
) {
3785 NDR_CHECK(ndr_pull_align(ndr
, 4));
3786 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
3788 uint32_t _flags_save_string
= ndr
->flags
;
3789 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3790 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
3791 if (_ptr_printer_name
) {
3792 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
3793 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->printer_name
, _ptr_printer_name
));
3795 r
->printer_name
= NULL
;
3797 ndr
->flags
= _flags_save_string
;
3800 uint32_t _flags_save_string
= ndr
->flags
;
3801 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3802 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
3803 if (_ptr_server_name
) {
3804 NDR_PULL_ALLOC(ndr
, r
->server_name
);
3805 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->server_name
, _ptr_server_name
));
3807 r
->server_name
= NULL
;
3809 ndr
->flags
= _flags_save_string
;
3812 uint32_t _flags_save_string
= ndr
->flags
;
3813 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3814 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
3815 if (_ptr_user_name
) {
3816 NDR_PULL_ALLOC(ndr
, r
->user_name
);
3817 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->user_name
, _ptr_user_name
));
3819 r
->user_name
= NULL
;
3821 ndr
->flags
= _flags_save_string
;
3824 uint32_t _flags_save_string
= ndr
->flags
;
3825 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3826 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
3827 if (_ptr_document_name
) {
3828 NDR_PULL_ALLOC(ndr
, r
->document_name
);
3829 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->document_name
, _ptr_document_name
));
3831 r
->document_name
= NULL
;
3833 ndr
->flags
= _flags_save_string
;
3836 uint32_t _flags_save_string
= ndr
->flags
;
3837 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3838 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
3839 if (_ptr_notify_name
) {
3840 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
3841 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->notify_name
, _ptr_notify_name
));
3843 r
->notify_name
= NULL
;
3845 ndr
->flags
= _flags_save_string
;
3848 uint32_t _flags_save_string
= ndr
->flags
;
3849 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3850 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
3851 if (_ptr_data_type
) {
3852 NDR_PULL_ALLOC(ndr
, r
->data_type
);
3853 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_type
, _ptr_data_type
));
3855 r
->data_type
= NULL
;
3857 ndr
->flags
= _flags_save_string
;
3860 uint32_t _flags_save_string
= ndr
->flags
;
3861 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3862 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
3863 if (_ptr_print_processor
) {
3864 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
3865 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
3867 r
->print_processor
= NULL
;
3869 ndr
->flags
= _flags_save_string
;
3872 uint32_t _flags_save_string
= ndr
->flags
;
3873 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3874 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
3875 if (_ptr_parameters
) {
3876 NDR_PULL_ALLOC(ndr
, r
->parameters
);
3877 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->parameters
, _ptr_parameters
));
3879 r
->parameters
= NULL
;
3881 ndr
->flags
= _flags_save_string
;
3884 uint32_t _flags_save_string
= ndr
->flags
;
3885 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3886 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
3887 if (_ptr_driver_name
) {
3888 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
3889 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
3891 r
->driver_name
= NULL
;
3893 ndr
->flags
= _flags_save_string
;
3895 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
3897 NDR_PULL_ALLOC(ndr
, r
->devmode
);
3898 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->devmode
, _ptr_devmode
));
3903 uint32_t _flags_save_string
= ndr
->flags
;
3904 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3905 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
3906 if (_ptr_text_status
) {
3907 NDR_PULL_ALLOC(ndr
, r
->text_status
);
3908 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->text_status
, _ptr_text_status
));
3910 r
->text_status
= NULL
;
3912 ndr
->flags
= _flags_save_string
;
3914 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
3916 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
3917 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->secdesc
, _ptr_secdesc
));
3921 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
3922 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
3923 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
3924 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
3925 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
3926 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
3927 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
3928 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
3929 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
3930 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
3931 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
3933 if (ndr_flags
& NDR_BUFFERS
) {
3935 uint32_t _flags_save_string
= ndr
->flags
;
3936 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3937 if (r
->printer_name
) {
3938 uint32_t _relative_save_offset
;
3939 _relative_save_offset
= ndr
->offset
;
3940 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->printer_name
));
3941 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3942 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
3943 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->printer_name
));
3944 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
3945 ndr
->offset
= _relative_save_offset
;
3947 ndr
->flags
= _flags_save_string
;
3950 uint32_t _flags_save_string
= ndr
->flags
;
3951 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3952 if (r
->server_name
) {
3953 uint32_t _relative_save_offset
;
3954 _relative_save_offset
= ndr
->offset
;
3955 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->server_name
));
3956 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3957 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
3958 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->server_name
));
3959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
3960 ndr
->offset
= _relative_save_offset
;
3962 ndr
->flags
= _flags_save_string
;
3965 uint32_t _flags_save_string
= ndr
->flags
;
3966 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3968 uint32_t _relative_save_offset
;
3969 _relative_save_offset
= ndr
->offset
;
3970 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->user_name
));
3971 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3972 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
3973 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->user_name
));
3974 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
3975 ndr
->offset
= _relative_save_offset
;
3977 ndr
->flags
= _flags_save_string
;
3980 uint32_t _flags_save_string
= ndr
->flags
;
3981 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3982 if (r
->document_name
) {
3983 uint32_t _relative_save_offset
;
3984 _relative_save_offset
= ndr
->offset
;
3985 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->document_name
));
3986 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
3987 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
3988 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->document_name
));
3989 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
3990 ndr
->offset
= _relative_save_offset
;
3992 ndr
->flags
= _flags_save_string
;
3995 uint32_t _flags_save_string
= ndr
->flags
;
3996 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
3997 if (r
->notify_name
) {
3998 uint32_t _relative_save_offset
;
3999 _relative_save_offset
= ndr
->offset
;
4000 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->notify_name
));
4001 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4002 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
4003 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->notify_name
));
4004 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
4005 ndr
->offset
= _relative_save_offset
;
4007 ndr
->flags
= _flags_save_string
;
4010 uint32_t _flags_save_string
= ndr
->flags
;
4011 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4013 uint32_t _relative_save_offset
;
4014 _relative_save_offset
= ndr
->offset
;
4015 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_type
));
4016 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4017 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4018 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_type
));
4019 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4020 ndr
->offset
= _relative_save_offset
;
4022 ndr
->flags
= _flags_save_string
;
4025 uint32_t _flags_save_string
= ndr
->flags
;
4026 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4027 if (r
->print_processor
) {
4028 uint32_t _relative_save_offset
;
4029 _relative_save_offset
= ndr
->offset
;
4030 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
4031 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4032 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
4033 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
4034 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
4035 ndr
->offset
= _relative_save_offset
;
4037 ndr
->flags
= _flags_save_string
;
4040 uint32_t _flags_save_string
= ndr
->flags
;
4041 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4042 if (r
->parameters
) {
4043 uint32_t _relative_save_offset
;
4044 _relative_save_offset
= ndr
->offset
;
4045 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->parameters
));
4046 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4047 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
4048 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->parameters
));
4049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
4050 ndr
->offset
= _relative_save_offset
;
4052 ndr
->flags
= _flags_save_string
;
4055 uint32_t _flags_save_string
= ndr
->flags
;
4056 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4057 if (r
->driver_name
) {
4058 uint32_t _relative_save_offset
;
4059 _relative_save_offset
= ndr
->offset
;
4060 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
4061 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4062 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
4063 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
4064 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
4065 ndr
->offset
= _relative_save_offset
;
4067 ndr
->flags
= _flags_save_string
;
4070 uint32_t _relative_save_offset
;
4071 _relative_save_offset
= ndr
->offset
;
4072 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->devmode
));
4073 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4074 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
4075 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr
, NDR_SCALARS
, r
->devmode
));
4076 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
4077 ndr
->offset
= _relative_save_offset
;
4080 uint32_t _flags_save_string
= ndr
->flags
;
4081 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
4082 if (r
->text_status
) {
4083 uint32_t _relative_save_offset
;
4084 _relative_save_offset
= ndr
->offset
;
4085 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->text_status
));
4086 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4087 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4088 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->text_status
));
4089 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4090 ndr
->offset
= _relative_save_offset
;
4092 ndr
->flags
= _flags_save_string
;
4095 uint32_t _relative_save_offset
;
4096 _relative_save_offset
= ndr
->offset
;
4097 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->secdesc
));
4098 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4099 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
4100 NDR_CHECK(ndr_pull_security_descriptor(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
4101 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
4102 ndr
->offset
= _relative_save_offset
;
4105 return NDR_ERR_SUCCESS
;
4108 _PUBLIC_
void ndr_print_spoolss_JobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfo4
*r
)
4110 ndr_print_struct(ndr
, name
, "spoolss_JobInfo4");
4112 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4113 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4115 if (r
->printer_name
) {
4116 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4119 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4121 if (r
->server_name
) {
4122 ndr_print_string(ndr
, "server_name", r
->server_name
);
4125 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4128 ndr_print_string(ndr
, "user_name", r
->user_name
);
4131 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4133 if (r
->document_name
) {
4134 ndr_print_string(ndr
, "document_name", r
->document_name
);
4137 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
4139 if (r
->notify_name
) {
4140 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
4143 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4146 ndr_print_string(ndr
, "data_type", r
->data_type
);
4149 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
4151 if (r
->print_processor
) {
4152 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
4155 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
4157 if (r
->parameters
) {
4158 ndr_print_string(ndr
, "parameters", r
->parameters
);
4161 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
4163 if (r
->driver_name
) {
4164 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
4167 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
4170 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
4173 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4175 if (r
->text_status
) {
4176 ndr_print_string(ndr
, "text_status", r
->text_status
);
4179 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
4182 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
4185 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4186 ndr_print_uint32(ndr
, "priority", r
->priority
);
4187 ndr_print_uint32(ndr
, "position", r
->position
);
4188 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
4189 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
4190 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4191 ndr_print_uint32(ndr
, "size", r
->size
);
4192 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4193 ndr_print_uint32(ndr
, "time", r
->time
);
4194 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4195 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
4199 _PUBLIC_
size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
4201 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo4
, ic
);
4204 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_JobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_JobInfo
*r
)
4206 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
4207 if (ndr_flags
& NDR_SCALARS
) {
4208 int level
= ndr_push_get_switch_value(ndr
, r
);
4211 NDR_CHECK(ndr_push_align(ndr
, 4));
4212 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4213 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4217 NDR_CHECK(ndr_push_align(ndr
, 4));
4218 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4219 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4223 NDR_CHECK(ndr_push_align(ndr
, 4));
4224 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4225 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4229 NDR_CHECK(ndr_push_align(ndr
, 4));
4230 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4231 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4239 if (ndr_flags
& NDR_BUFFERS
) {
4240 int level
= ndr_push_get_switch_value(ndr
, r
);
4241 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
4244 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4248 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4255 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4263 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4264 return NDR_ERR_SUCCESS
;
4267 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_JobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_JobInfo
*r
)
4269 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
4271 level
= ndr_pull_get_switch_value(ndr
, r
);
4272 if (ndr_flags
& NDR_SCALARS
) {
4275 NDR_CHECK(ndr_pull_align(ndr
, 4));
4276 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4277 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
4281 NDR_CHECK(ndr_pull_align(ndr
, 4));
4282 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4283 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
4287 NDR_CHECK(ndr_pull_align(ndr
, 4));
4288 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4289 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
4293 NDR_CHECK(ndr_pull_align(ndr
, 4));
4294 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
4295 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
4303 if (ndr_flags
& NDR_BUFFERS
) {
4304 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
4307 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
4311 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
4318 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
4326 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
4327 return NDR_ERR_SUCCESS
;
4330 _PUBLIC_
void ndr_print_spoolss_JobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_JobInfo
*r
)
4333 level
= ndr_print_get_switch_value(ndr
, r
);
4334 ndr_print_union(ndr
, name
, level
, "spoolss_JobInfo");
4337 ndr_print_spoolss_JobInfo1(ndr
, "info1", &r
->info1
);
4341 ndr_print_spoolss_JobInfo2(ndr
, "info2", &r
->info2
);
4345 ndr_print_spoolss_JobInfo3(ndr
, "info3", &r
->info3
);
4349 ndr_print_spoolss_JobInfo4(ndr
, "info4", &r
->info4
);
4358 _PUBLIC_
size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
4360 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_JobInfo
, ic
);
4363 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo1
*r
)
4365 if (ndr_flags
& NDR_SCALARS
) {
4366 NDR_CHECK(ndr_push_align(ndr
, 4));
4367 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4368 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
4369 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
4370 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
4371 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
4372 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
4373 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
4374 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4375 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4377 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4378 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4379 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4381 if (ndr_flags
& NDR_BUFFERS
) {
4382 if (r
->printer_name
) {
4383 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4384 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4385 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4386 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4388 if (r
->server_name
) {
4389 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4390 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4391 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4392 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4395 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4396 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4397 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4398 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4400 if (r
->document_name
) {
4401 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4402 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4404 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4407 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4409 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4410 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4412 if (r
->text_status
) {
4413 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4414 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4415 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4416 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4419 return NDR_ERR_SUCCESS
;
4422 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo1
*r
)
4424 uint32_t _ptr_printer_name
;
4425 TALLOC_CTX
*_mem_save_printer_name_0
;
4426 uint32_t _ptr_server_name
;
4427 TALLOC_CTX
*_mem_save_server_name_0
;
4428 uint32_t _ptr_user_name
;
4429 TALLOC_CTX
*_mem_save_user_name_0
;
4430 uint32_t _ptr_document_name
;
4431 TALLOC_CTX
*_mem_save_document_name_0
;
4432 uint32_t _ptr_data_type
;
4433 TALLOC_CTX
*_mem_save_data_type_0
;
4434 uint32_t _ptr_text_status
;
4435 TALLOC_CTX
*_mem_save_text_status_0
;
4436 if (ndr_flags
& NDR_SCALARS
) {
4437 NDR_CHECK(ndr_pull_align(ndr
, 4));
4438 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4439 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
4440 if (_ptr_printer_name
) {
4441 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
4443 r
->printer_name
= NULL
;
4445 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4446 if (_ptr_server_name
) {
4447 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4449 r
->server_name
= NULL
;
4451 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4452 if (_ptr_user_name
) {
4453 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4455 r
->user_name
= NULL
;
4457 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4458 if (_ptr_document_name
) {
4459 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4461 r
->document_name
= NULL
;
4463 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4464 if (_ptr_data_type
) {
4465 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4467 r
->data_type
= NULL
;
4469 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4470 if (_ptr_text_status
) {
4471 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4473 r
->text_status
= NULL
;
4475 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4476 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4477 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4478 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4479 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4480 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4482 if (ndr_flags
& NDR_BUFFERS
) {
4483 if (r
->printer_name
) {
4484 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4485 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4486 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
4487 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
4488 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
4489 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
));
4491 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
4492 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
4493 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4495 if (r
->server_name
) {
4496 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4497 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4498 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
4499 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
4500 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
4501 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
));
4503 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
4504 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
4505 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4508 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4509 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4510 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
4511 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
4512 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
4513 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
));
4515 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
4516 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
4517 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4519 if (r
->document_name
) {
4520 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4521 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4522 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
4523 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
4524 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
4525 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
));
4527 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
4528 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
4529 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4532 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4533 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4534 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
4535 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
4536 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
4537 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
));
4539 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
4540 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
4541 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4543 if (r
->text_status
) {
4544 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4545 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4546 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
4547 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
4548 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
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
->text_status
), ndr_get_array_length(ndr
, &r
->text_status
));
4551 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
4552 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
4553 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4556 return NDR_ERR_SUCCESS
;
4559 _PUBLIC_
void ndr_print_spoolss_SetJobInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo1
*r
)
4561 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo1");
4563 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4564 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4566 if (r
->printer_name
) {
4567 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4570 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4572 if (r
->server_name
) {
4573 ndr_print_string(ndr
, "server_name", r
->server_name
);
4576 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4579 ndr_print_string(ndr
, "user_name", r
->user_name
);
4582 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4584 if (r
->document_name
) {
4585 ndr_print_string(ndr
, "document_name", r
->document_name
);
4588 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4591 ndr_print_string(ndr
, "data_type", r
->data_type
);
4594 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4596 if (r
->text_status
) {
4597 ndr_print_string(ndr
, "text_status", r
->text_status
);
4600 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4601 ndr_print_uint32(ndr
, "priority", r
->priority
);
4602 ndr_print_uint32(ndr
, "position", r
->position
);
4603 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4604 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
4605 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
4609 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo2
*r
)
4611 if (ndr_flags
& NDR_SCALARS
) {
4612 NDR_CHECK(ndr_push_align(ndr
, 4));
4613 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
4614 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
4615 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
4616 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
4617 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
4618 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
4619 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
4620 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
4621 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
4622 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
4623 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
4624 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
4625 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
4626 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
4627 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
4628 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
4629 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
4630 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
4631 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
4632 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
4633 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4634 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
4635 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
4637 if (ndr_flags
& NDR_BUFFERS
) {
4638 if (r
->printer_name
) {
4639 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4640 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4641 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
4642 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4644 if (r
->server_name
) {
4645 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4646 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4647 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
4648 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4651 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4652 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4653 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
4654 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4656 if (r
->document_name
) {
4657 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4658 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4659 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
4660 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4662 if (r
->notify_name
) {
4663 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
4664 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4665 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
4666 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4669 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4670 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4671 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
4672 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4674 if (r
->print_processor
) {
4675 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
4676 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4677 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
4678 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4680 if (r
->parameters
) {
4681 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
4682 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4683 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
4684 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4686 if (r
->driver_name
) {
4687 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
4688 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4689 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
4690 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4692 if (r
->text_status
) {
4693 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4694 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
4695 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
4696 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
4699 return NDR_ERR_SUCCESS
;
4702 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo2
*r
)
4704 uint32_t _ptr_printer_name
;
4705 TALLOC_CTX
*_mem_save_printer_name_0
;
4706 uint32_t _ptr_server_name
;
4707 TALLOC_CTX
*_mem_save_server_name_0
;
4708 uint32_t _ptr_user_name
;
4709 TALLOC_CTX
*_mem_save_user_name_0
;
4710 uint32_t _ptr_document_name
;
4711 TALLOC_CTX
*_mem_save_document_name_0
;
4712 uint32_t _ptr_notify_name
;
4713 TALLOC_CTX
*_mem_save_notify_name_0
;
4714 uint32_t _ptr_data_type
;
4715 TALLOC_CTX
*_mem_save_data_type_0
;
4716 uint32_t _ptr_print_processor
;
4717 TALLOC_CTX
*_mem_save_print_processor_0
;
4718 uint32_t _ptr_parameters
;
4719 TALLOC_CTX
*_mem_save_parameters_0
;
4720 uint32_t _ptr_driver_name
;
4721 TALLOC_CTX
*_mem_save_driver_name_0
;
4722 uint32_t _ptr_text_status
;
4723 TALLOC_CTX
*_mem_save_text_status_0
;
4724 if (ndr_flags
& NDR_SCALARS
) {
4725 NDR_CHECK(ndr_pull_align(ndr
, 4));
4726 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
4727 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
4728 if (_ptr_printer_name
) {
4729 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
4731 r
->printer_name
= NULL
;
4733 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
4734 if (_ptr_server_name
) {
4735 NDR_PULL_ALLOC(ndr
, r
->server_name
);
4737 r
->server_name
= NULL
;
4739 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
4740 if (_ptr_user_name
) {
4741 NDR_PULL_ALLOC(ndr
, r
->user_name
);
4743 r
->user_name
= NULL
;
4745 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
4746 if (_ptr_document_name
) {
4747 NDR_PULL_ALLOC(ndr
, r
->document_name
);
4749 r
->document_name
= NULL
;
4751 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
4752 if (_ptr_notify_name
) {
4753 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
4755 r
->notify_name
= NULL
;
4757 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
4758 if (_ptr_data_type
) {
4759 NDR_PULL_ALLOC(ndr
, r
->data_type
);
4761 r
->data_type
= NULL
;
4763 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
4764 if (_ptr_print_processor
) {
4765 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
4767 r
->print_processor
= NULL
;
4769 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
4770 if (_ptr_parameters
) {
4771 NDR_PULL_ALLOC(ndr
, r
->parameters
);
4773 r
->parameters
= NULL
;
4775 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
4776 if (_ptr_driver_name
) {
4777 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
4779 r
->driver_name
= NULL
;
4781 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
4782 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
4783 if (_ptr_text_status
) {
4784 NDR_PULL_ALLOC(ndr
, r
->text_status
);
4786 r
->text_status
= NULL
;
4788 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
4789 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
4790 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
4791 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
4792 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
4793 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
4794 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
4795 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
4796 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
4797 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
4798 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
4800 if (ndr_flags
& NDR_BUFFERS
) {
4801 if (r
->printer_name
) {
4802 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4803 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
4804 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
4805 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
4806 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
4807 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
));
4809 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
4810 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
4811 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
4813 if (r
->server_name
) {
4814 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4815 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
4816 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
4817 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
4818 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
4819 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
));
4821 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
4822 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
4823 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
4826 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4827 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
4828 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
4829 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
4830 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
4831 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
));
4833 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
4834 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
4835 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
4837 if (r
->document_name
) {
4838 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4839 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
4840 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
4841 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
4842 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
4843 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
));
4845 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
4846 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
4847 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
4849 if (r
->notify_name
) {
4850 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4851 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
4852 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
4853 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
4854 if (ndr_get_array_length(ndr
, &r
->notify_name
) > ndr_get_array_size(ndr
, &r
->notify_name
)) {
4855 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
));
4857 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t)));
4858 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t), CH_UTF16
));
4859 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
4862 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4863 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
4864 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
4865 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
4866 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
4867 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
));
4869 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
4870 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
4871 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
4873 if (r
->print_processor
) {
4874 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4875 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
4876 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
4877 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
4878 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
4879 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
));
4881 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
4882 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
4883 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
4885 if (r
->parameters
) {
4886 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4887 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
4888 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
4889 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
4890 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
4891 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
));
4893 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
4894 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
4895 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
4897 if (r
->driver_name
) {
4898 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4899 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
4900 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
4901 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
4902 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
4903 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
));
4905 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
4906 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
4907 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
4909 if (r
->text_status
) {
4910 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
4911 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
4912 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
4913 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
4914 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
4915 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
));
4917 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
4918 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
4919 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
4922 return NDR_ERR_SUCCESS
;
4925 _PUBLIC_
void ndr_print_spoolss_SetJobInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo2
*r
)
4927 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo2");
4929 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
4930 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
4932 if (r
->printer_name
) {
4933 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
4936 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
4938 if (r
->server_name
) {
4939 ndr_print_string(ndr
, "server_name", r
->server_name
);
4942 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
4945 ndr_print_string(ndr
, "user_name", r
->user_name
);
4948 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
4950 if (r
->document_name
) {
4951 ndr_print_string(ndr
, "document_name", r
->document_name
);
4954 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
4956 if (r
->notify_name
) {
4957 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
4960 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
4963 ndr_print_string(ndr
, "data_type", r
->data_type
);
4966 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
4968 if (r
->print_processor
) {
4969 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
4972 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
4974 if (r
->parameters
) {
4975 ndr_print_string(ndr
, "parameters", r
->parameters
);
4978 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
4980 if (r
->driver_name
) {
4981 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
4984 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
4985 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
4987 if (r
->text_status
) {
4988 ndr_print_string(ndr
, "text_status", r
->text_status
);
4991 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
4992 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
4993 ndr_print_uint32(ndr
, "priority", r
->priority
);
4994 ndr_print_uint32(ndr
, "position", r
->position
);
4995 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
4996 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
4997 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
4998 ndr_print_uint32(ndr
, "size", r
->size
);
4999 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5000 ndr_print_uint32(ndr
, "time", r
->time
);
5001 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5005 static enum ndr_err_code
ndr_push_spoolss_SetJobInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetJobInfo4
*r
)
5007 if (ndr_flags
& NDR_SCALARS
) {
5008 NDR_CHECK(ndr_push_align(ndr
, 4));
5009 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
5010 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printer_name
));
5011 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->server_name
));
5012 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user_name
));
5013 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
5014 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->notify_name
));
5015 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_type
));
5016 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
5017 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
5018 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
5019 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_devmode_ptr
));
5020 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->text_status
));
5021 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->_secdesc_ptr
));
5022 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr
, NDR_SCALARS
, r
->status
));
5023 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
5024 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->position
));
5025 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->start_time
));
5026 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->until_time
));
5027 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5028 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
5029 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5030 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->time
));
5031 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->pages_printed
));
5032 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size_high
));
5034 if (ndr_flags
& NDR_BUFFERS
) {
5035 if (r
->printer_name
) {
5036 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5037 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5038 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printer_name
, CH_UTF16
)));
5039 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printer_name
, ndr_charset_length(r
->printer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5041 if (r
->server_name
) {
5042 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5043 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5044 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->server_name
, CH_UTF16
)));
5045 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->server_name
, ndr_charset_length(r
->server_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5048 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5049 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5050 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user_name
, CH_UTF16
)));
5051 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user_name
, ndr_charset_length(r
->user_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5053 if (r
->document_name
) {
5054 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5055 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5056 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
5057 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5059 if (r
->notify_name
) {
5060 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->notify_name
, CH_UTF16
)));
5063 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->notify_name
, ndr_charset_length(r
->notify_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5066 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5068 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_type
, CH_UTF16
)));
5069 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_type
, ndr_charset_length(r
->data_type
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5071 if (r
->print_processor
) {
5072 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5073 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5074 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
5075 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5077 if (r
->parameters
) {
5078 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5079 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5080 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
5081 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5083 if (r
->driver_name
) {
5084 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5086 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
5087 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5089 if (r
->text_status
) {
5090 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5091 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5092 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->text_status
, CH_UTF16
)));
5093 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->text_status
, ndr_charset_length(r
->text_status
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5096 return NDR_ERR_SUCCESS
;
5099 static enum ndr_err_code
ndr_pull_spoolss_SetJobInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetJobInfo4
*r
)
5101 uint32_t _ptr_printer_name
;
5102 TALLOC_CTX
*_mem_save_printer_name_0
;
5103 uint32_t _ptr_server_name
;
5104 TALLOC_CTX
*_mem_save_server_name_0
;
5105 uint32_t _ptr_user_name
;
5106 TALLOC_CTX
*_mem_save_user_name_0
;
5107 uint32_t _ptr_document_name
;
5108 TALLOC_CTX
*_mem_save_document_name_0
;
5109 uint32_t _ptr_notify_name
;
5110 TALLOC_CTX
*_mem_save_notify_name_0
;
5111 uint32_t _ptr_data_type
;
5112 TALLOC_CTX
*_mem_save_data_type_0
;
5113 uint32_t _ptr_print_processor
;
5114 TALLOC_CTX
*_mem_save_print_processor_0
;
5115 uint32_t _ptr_parameters
;
5116 TALLOC_CTX
*_mem_save_parameters_0
;
5117 uint32_t _ptr_driver_name
;
5118 TALLOC_CTX
*_mem_save_driver_name_0
;
5119 uint32_t _ptr_text_status
;
5120 TALLOC_CTX
*_mem_save_text_status_0
;
5121 if (ndr_flags
& NDR_SCALARS
) {
5122 NDR_CHECK(ndr_pull_align(ndr
, 4));
5123 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
5124 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printer_name
));
5125 if (_ptr_printer_name
) {
5126 NDR_PULL_ALLOC(ndr
, r
->printer_name
);
5128 r
->printer_name
= NULL
;
5130 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
5131 if (_ptr_server_name
) {
5132 NDR_PULL_ALLOC(ndr
, r
->server_name
);
5134 r
->server_name
= NULL
;
5136 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user_name
));
5137 if (_ptr_user_name
) {
5138 NDR_PULL_ALLOC(ndr
, r
->user_name
);
5140 r
->user_name
= NULL
;
5142 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
5143 if (_ptr_document_name
) {
5144 NDR_PULL_ALLOC(ndr
, r
->document_name
);
5146 r
->document_name
= NULL
;
5148 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_name
));
5149 if (_ptr_notify_name
) {
5150 NDR_PULL_ALLOC(ndr
, r
->notify_name
);
5152 r
->notify_name
= NULL
;
5154 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
5155 if (_ptr_data_type
) {
5156 NDR_PULL_ALLOC(ndr
, r
->data_type
);
5158 r
->data_type
= NULL
;
5160 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
5161 if (_ptr_print_processor
) {
5162 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
5164 r
->print_processor
= NULL
;
5166 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
5167 if (_ptr_parameters
) {
5168 NDR_PULL_ALLOC(ndr
, r
->parameters
);
5170 r
->parameters
= NULL
;
5172 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
5173 if (_ptr_driver_name
) {
5174 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
5176 r
->driver_name
= NULL
;
5178 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_devmode_ptr
));
5179 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_text_status
));
5180 if (_ptr_text_status
) {
5181 NDR_PULL_ALLOC(ndr
, r
->text_status
);
5183 r
->text_status
= NULL
;
5185 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_secdesc_ptr
));
5186 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr
, NDR_SCALARS
, &r
->status
));
5187 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
5188 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->position
));
5189 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->start_time
));
5190 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->until_time
));
5191 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5192 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
5193 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->submitted
));
5194 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->time
));
5195 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->pages_printed
));
5196 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size_high
));
5198 if (ndr_flags
& NDR_BUFFERS
) {
5199 if (r
->printer_name
) {
5200 _mem_save_printer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5201 NDR_PULL_SET_MEM_CTX(ndr
, r
->printer_name
, 0);
5202 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printer_name
));
5203 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printer_name
));
5204 if (ndr_get_array_length(ndr
, &r
->printer_name
) > ndr_get_array_size(ndr
, &r
->printer_name
)) {
5205 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
));
5207 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t)));
5208 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printer_name
, ndr_get_array_length(ndr
, &r
->printer_name
), sizeof(uint16_t), CH_UTF16
));
5209 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printer_name_0
, 0);
5211 if (r
->server_name
) {
5212 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5213 NDR_PULL_SET_MEM_CTX(ndr
, r
->server_name
, 0);
5214 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->server_name
));
5215 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->server_name
));
5216 if (ndr_get_array_length(ndr
, &r
->server_name
) > ndr_get_array_size(ndr
, &r
->server_name
)) {
5217 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
));
5219 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t)));
5220 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->server_name
, ndr_get_array_length(ndr
, &r
->server_name
), sizeof(uint16_t), CH_UTF16
));
5221 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
5224 _mem_save_user_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5225 NDR_PULL_SET_MEM_CTX(ndr
, r
->user_name
, 0);
5226 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user_name
));
5227 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user_name
));
5228 if (ndr_get_array_length(ndr
, &r
->user_name
) > ndr_get_array_size(ndr
, &r
->user_name
)) {
5229 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
));
5231 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t)));
5232 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user_name
, ndr_get_array_length(ndr
, &r
->user_name
), sizeof(uint16_t), CH_UTF16
));
5233 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_name_0
, 0);
5235 if (r
->document_name
) {
5236 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5237 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
5238 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
5239 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
5240 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
5241 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
));
5243 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
5244 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
5245 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
5247 if (r
->notify_name
) {
5248 _mem_save_notify_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5249 NDR_PULL_SET_MEM_CTX(ndr
, r
->notify_name
, 0);
5250 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notify_name
));
5251 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->notify_name
));
5252 if (ndr_get_array_length(ndr
, &r
->notify_name
) > ndr_get_array_size(ndr
, &r
->notify_name
)) {
5253 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
));
5255 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t)));
5256 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->notify_name
, ndr_get_array_length(ndr
, &r
->notify_name
), sizeof(uint16_t), CH_UTF16
));
5257 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_name_0
, 0);
5260 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5261 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_type
, 0);
5262 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_type
));
5263 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_type
));
5264 if (ndr_get_array_length(ndr
, &r
->data_type
) > ndr_get_array_size(ndr
, &r
->data_type
)) {
5265 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
));
5267 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t)));
5268 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_type
, ndr_get_array_length(ndr
, &r
->data_type
), sizeof(uint16_t), CH_UTF16
));
5269 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
5271 if (r
->print_processor
) {
5272 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5273 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
5274 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
5275 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
5276 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
5277 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
));
5279 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
5280 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
5281 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
5283 if (r
->parameters
) {
5284 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5285 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
5286 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
5287 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
5288 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
5289 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
));
5291 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
5292 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
5293 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
5295 if (r
->driver_name
) {
5296 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5297 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
5298 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
5299 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
5300 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
5301 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
));
5303 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
5304 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
5305 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
5307 if (r
->text_status
) {
5308 _mem_save_text_status_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5309 NDR_PULL_SET_MEM_CTX(ndr
, r
->text_status
, 0);
5310 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->text_status
));
5311 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->text_status
));
5312 if (ndr_get_array_length(ndr
, &r
->text_status
) > ndr_get_array_size(ndr
, &r
->text_status
)) {
5313 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
));
5315 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t)));
5316 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->text_status
, ndr_get_array_length(ndr
, &r
->text_status
), sizeof(uint16_t), CH_UTF16
));
5317 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_text_status_0
, 0);
5320 return NDR_ERR_SUCCESS
;
5323 _PUBLIC_
void ndr_print_spoolss_SetJobInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetJobInfo4
*r
)
5325 ndr_print_struct(ndr
, name
, "spoolss_SetJobInfo4");
5327 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
5328 ndr_print_ptr(ndr
, "printer_name", r
->printer_name
);
5330 if (r
->printer_name
) {
5331 ndr_print_string(ndr
, "printer_name", r
->printer_name
);
5334 ndr_print_ptr(ndr
, "server_name", r
->server_name
);
5336 if (r
->server_name
) {
5337 ndr_print_string(ndr
, "server_name", r
->server_name
);
5340 ndr_print_ptr(ndr
, "user_name", r
->user_name
);
5343 ndr_print_string(ndr
, "user_name", r
->user_name
);
5346 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
5348 if (r
->document_name
) {
5349 ndr_print_string(ndr
, "document_name", r
->document_name
);
5352 ndr_print_ptr(ndr
, "notify_name", r
->notify_name
);
5354 if (r
->notify_name
) {
5355 ndr_print_string(ndr
, "notify_name", r
->notify_name
);
5358 ndr_print_ptr(ndr
, "data_type", r
->data_type
);
5361 ndr_print_string(ndr
, "data_type", r
->data_type
);
5364 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
5366 if (r
->print_processor
) {
5367 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
5370 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
5372 if (r
->parameters
) {
5373 ndr_print_string(ndr
, "parameters", r
->parameters
);
5376 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
5378 if (r
->driver_name
) {
5379 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
5382 ndr_print_uint32(ndr
, "_devmode_ptr", r
->_devmode_ptr
);
5383 ndr_print_ptr(ndr
, "text_status", r
->text_status
);
5385 if (r
->text_status
) {
5386 ndr_print_string(ndr
, "text_status", r
->text_status
);
5389 ndr_print_uint32(ndr
, "_secdesc_ptr", r
->_secdesc_ptr
);
5390 ndr_print_spoolss_JobStatus(ndr
, "status", r
->status
);
5391 ndr_print_uint32(ndr
, "priority", r
->priority
);
5392 ndr_print_uint32(ndr
, "position", r
->position
);
5393 ndr_print_uint32(ndr
, "start_time", r
->start_time
);
5394 ndr_print_uint32(ndr
, "until_time", r
->until_time
);
5395 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5396 ndr_print_uint32(ndr
, "size", r
->size
);
5397 ndr_print_spoolss_Time(ndr
, "submitted", &r
->submitted
);
5398 ndr_print_uint32(ndr
, "time", r
->time
);
5399 ndr_print_uint32(ndr
, "pages_printed", r
->pages_printed
);
5400 ndr_print_uint32(ndr
, "size_high", r
->size_high
);
5404 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_SetJobInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetJobInfo
*r
)
5406 if (ndr_flags
& NDR_SCALARS
) {
5407 int level
= ndr_push_get_switch_value(ndr
, r
);
5408 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
5411 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
5415 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
5419 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
5423 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
5431 if (ndr_flags
& NDR_BUFFERS
) {
5432 int level
= ndr_push_get_switch_value(ndr
, r
);
5436 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
5442 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5448 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
5454 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5463 return NDR_ERR_SUCCESS
;
5466 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_SetJobInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetJobInfo
*r
)
5470 TALLOC_CTX
*_mem_save_info1_0
;
5471 TALLOC_CTX
*_mem_save_info2_0
;
5472 TALLOC_CTX
*_mem_save_info3_0
;
5473 TALLOC_CTX
*_mem_save_info4_0
;
5474 level
= ndr_pull_get_switch_value(ndr
, r
);
5475 if (ndr_flags
& NDR_SCALARS
) {
5476 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
5477 if (_level
!= level
) {
5478 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
5482 uint32_t _ptr_info1
;
5483 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
5485 NDR_PULL_ALLOC(ndr
, r
->info1
);
5492 uint32_t _ptr_info2
;
5493 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
5495 NDR_PULL_ALLOC(ndr
, r
->info2
);
5502 uint32_t _ptr_info3
;
5503 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
5505 NDR_PULL_ALLOC(ndr
, r
->info3
);
5512 uint32_t _ptr_info4
;
5513 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
5515 NDR_PULL_ALLOC(ndr
, r
->info4
);
5526 if (ndr_flags
& NDR_BUFFERS
) {
5530 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5531 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
5532 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
5533 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
5539 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5540 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
5541 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
5542 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
5548 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5549 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
5550 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr
, NDR_SCALARS
, r
->info3
));
5551 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
5557 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5558 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
5559 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
5560 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
5569 return NDR_ERR_SUCCESS
;
5572 _PUBLIC_
void ndr_print_spoolss_SetJobInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetJobInfo
*r
)
5575 level
= ndr_print_get_switch_value(ndr
, r
);
5576 ndr_print_union(ndr
, name
, level
, "spoolss_SetJobInfo");
5579 ndr_print_ptr(ndr
, "info1", r
->info1
);
5582 ndr_print_spoolss_SetJobInfo1(ndr
, "info1", r
->info1
);
5588 ndr_print_ptr(ndr
, "info2", r
->info2
);
5591 ndr_print_spoolss_SetJobInfo2(ndr
, "info2", r
->info2
);
5597 ndr_print_ptr(ndr
, "info3", r
->info3
);
5600 ndr_print_spoolss_JobInfo3(ndr
, "info3", r
->info3
);
5606 ndr_print_ptr(ndr
, "info4", r
->info4
);
5609 ndr_print_spoolss_SetJobInfo4(ndr
, "info4", r
->info4
);
5620 static enum ndr_err_code
ndr_push_spoolss_JobInfoContainer(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_JobInfoContainer
*r
)
5622 if (ndr_flags
& NDR_SCALARS
) {
5623 NDR_CHECK(ndr_push_align(ndr
, 4));
5624 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
5625 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
5626 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
5628 if (ndr_flags
& NDR_BUFFERS
) {
5629 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
5631 return NDR_ERR_SUCCESS
;
5634 static enum ndr_err_code
ndr_pull_spoolss_JobInfoContainer(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_JobInfoContainer
*r
)
5636 if (ndr_flags
& NDR_SCALARS
) {
5637 NDR_CHECK(ndr_pull_align(ndr
, 4));
5638 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
5639 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
5640 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_SCALARS
, &r
->info
));
5642 if (ndr_flags
& NDR_BUFFERS
) {
5643 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr
, NDR_BUFFERS
, &r
->info
));
5645 return NDR_ERR_SUCCESS
;
5648 _PUBLIC_
void ndr_print_spoolss_JobInfoContainer(struct ndr_print
*ndr
, const char *name
, const struct spoolss_JobInfoContainer
*r
)
5650 ndr_print_struct(ndr
, name
, "spoolss_JobInfoContainer");
5652 ndr_print_uint32(ndr
, "level", r
->level
);
5653 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
5654 ndr_print_spoolss_SetJobInfo(ndr
, "info", &r
->info
);
5658 static enum ndr_err_code
ndr_push_spoolss_JobControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_JobControl r
)
5660 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5661 return NDR_ERR_SUCCESS
;
5664 static enum ndr_err_code
ndr_pull_spoolss_JobControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_JobControl
*r
)
5667 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5669 return NDR_ERR_SUCCESS
;
5672 _PUBLIC_
void ndr_print_spoolss_JobControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_JobControl r
)
5674 const char *val
= NULL
;
5677 case SPOOLSS_JOB_CONTROL_PAUSE
: val
= "SPOOLSS_JOB_CONTROL_PAUSE"; break;
5678 case SPOOLSS_JOB_CONTROL_RESUME
: val
= "SPOOLSS_JOB_CONTROL_RESUME"; break;
5679 case SPOOLSS_JOB_CONTROL_CANCEL
: val
= "SPOOLSS_JOB_CONTROL_CANCEL"; break;
5680 case SPOOLSS_JOB_CONTROL_RESTART
: val
= "SPOOLSS_JOB_CONTROL_RESTART"; break;
5681 case SPOOLSS_JOB_CONTROL_DELETE
: val
= "SPOOLSS_JOB_CONTROL_DELETE"; break;
5682 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER
: val
= "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
5683 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED
: val
= "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
5684 case SPOOLSS_JOB_CONTROL_RETAIN
: val
= "SPOOLSS_JOB_CONTROL_RETAIN"; break;
5685 case SPOOLSS_JOB_CONTROL_RELEASE
: val
= "SPOOLSS_JOB_CONTROL_RELEASE"; break;
5687 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5690 static enum ndr_err_code
ndr_push_spoolss_PrinterControl(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrinterControl r
)
5692 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
5693 return NDR_ERR_SUCCESS
;
5696 static enum ndr_err_code
ndr_pull_spoolss_PrinterControl(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrinterControl
*r
)
5699 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
5701 return NDR_ERR_SUCCESS
;
5704 _PUBLIC_
void ndr_print_spoolss_PrinterControl(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrinterControl r
)
5706 const char *val
= NULL
;
5709 case SPOOLSS_PRINTER_CONTROL_UNPAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
5710 case SPOOLSS_PRINTER_CONTROL_PAUSE
: val
= "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
5711 case SPOOLSS_PRINTER_CONTROL_RESUME
: val
= "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
5712 case SPOOLSS_PRINTER_CONTROL_PURGE
: val
= "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
5713 case SPOOLSS_PRINTER_CONTROL_SET_STATUS
: val
= "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
5715 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
5718 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo0(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo0
*r
)
5720 if (ndr_flags
& NDR_SCALARS
) {
5721 NDR_CHECK(ndr_push_align(ndr
, 4));
5722 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
5723 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
5724 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
5725 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_jobs
));
5726 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_bytes
));
5727 NDR_CHECK(ndr_push_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
5728 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->global_counter
));
5729 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->total_pages
));
5730 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->version
));
5731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->free_build
));
5732 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->spooling
));
5733 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->max_spooling
));
5734 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->session_counter
));
5735 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_out_of_paper
));
5736 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->num_error_not_ready
));
5737 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_error
));
5738 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->number_of_processors
));
5739 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr
, NDR_SCALARS
, r
->processor_type
));
5740 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->high_part_total_bytes
));
5741 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->change_id
));
5742 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->last_error
));
5743 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->status
));
5744 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->enumerate_network_printers
));
5745 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->c_setprinter
));
5746 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor_architecture
));
5747 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->processor_level
));
5748 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ref_ic
));
5749 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved2
));
5750 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved3
));
5752 if (ndr_flags
& NDR_BUFFERS
) {
5753 if (r
->servername
) {
5754 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
5755 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5756 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
5757 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5759 if (r
->printername
) {
5760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
5761 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5762 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
5763 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5766 return NDR_ERR_SUCCESS
;
5769 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo0
*r
)
5771 uint32_t _ptr_servername
;
5772 TALLOC_CTX
*_mem_save_servername_0
;
5773 uint32_t _ptr_printername
;
5774 TALLOC_CTX
*_mem_save_printername_0
;
5775 if (ndr_flags
& NDR_SCALARS
) {
5776 NDR_CHECK(ndr_pull_align(ndr
, 4));
5777 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
5778 if (_ptr_servername
) {
5779 NDR_PULL_ALLOC(ndr
, r
->servername
);
5781 r
->servername
= NULL
;
5783 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
5784 if (_ptr_printername
) {
5785 NDR_PULL_ALLOC(ndr
, r
->printername
);
5787 r
->printername
= NULL
;
5789 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
5790 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_jobs
));
5791 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_bytes
));
5792 NDR_CHECK(ndr_pull_spoolss_Time(ndr
, NDR_SCALARS
, &r
->time
));
5793 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->global_counter
));
5794 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->total_pages
));
5795 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
5796 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->free_build
));
5797 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->spooling
));
5798 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->max_spooling
));
5799 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->session_counter
));
5800 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_out_of_paper
));
5801 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->num_error_not_ready
));
5802 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_error
));
5803 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->number_of_processors
));
5804 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr
, NDR_SCALARS
, &r
->processor_type
));
5805 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->high_part_total_bytes
));
5806 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->change_id
));
5807 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->last_error
));
5808 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->status
));
5809 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->enumerate_network_printers
));
5810 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->c_setprinter
));
5811 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor_architecture
));
5812 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->processor_level
));
5813 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ref_ic
));
5814 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved2
));
5815 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved3
));
5817 if (ndr_flags
& NDR_BUFFERS
) {
5818 if (r
->servername
) {
5819 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5820 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
5821 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
5822 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
5823 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
5824 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
));
5826 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
5827 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
5828 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
5830 if (r
->printername
) {
5831 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5832 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
5833 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
5834 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
5835 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
5836 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
));
5838 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
5839 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
5840 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
5843 return NDR_ERR_SUCCESS
;
5846 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo0
*r
)
5848 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo0");
5850 ndr_print_ptr(ndr
, "servername", r
->servername
);
5852 if (r
->servername
) {
5853 ndr_print_string(ndr
, "servername", r
->servername
);
5856 ndr_print_ptr(ndr
, "printername", r
->printername
);
5858 if (r
->printername
) {
5859 ndr_print_string(ndr
, "printername", r
->printername
);
5862 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
5863 ndr_print_uint32(ndr
, "total_jobs", r
->total_jobs
);
5864 ndr_print_uint32(ndr
, "total_bytes", r
->total_bytes
);
5865 ndr_print_spoolss_Time(ndr
, "time", &r
->time
);
5866 ndr_print_uint32(ndr
, "global_counter", r
->global_counter
);
5867 ndr_print_uint32(ndr
, "total_pages", r
->total_pages
);
5868 ndr_print_uint32(ndr
, "version", r
->version
);
5869 ndr_print_uint32(ndr
, "free_build", r
->free_build
);
5870 ndr_print_uint32(ndr
, "spooling", r
->spooling
);
5871 ndr_print_uint32(ndr
, "max_spooling", r
->max_spooling
);
5872 ndr_print_uint32(ndr
, "session_counter", r
->session_counter
);
5873 ndr_print_uint32(ndr
, "num_error_out_of_paper", r
->num_error_out_of_paper
);
5874 ndr_print_uint32(ndr
, "num_error_not_ready", r
->num_error_not_ready
);
5875 ndr_print_uint32(ndr
, "job_error", r
->job_error
);
5876 ndr_print_uint32(ndr
, "number_of_processors", r
->number_of_processors
);
5877 ndr_print_spoolss_ProcessorType(ndr
, "processor_type", r
->processor_type
);
5878 ndr_print_uint32(ndr
, "high_part_total_bytes", r
->high_part_total_bytes
);
5879 ndr_print_uint32(ndr
, "change_id", r
->change_id
);
5880 ndr_print_WERROR(ndr
, "last_error", r
->last_error
);
5881 ndr_print_uint32(ndr
, "status", r
->status
);
5882 ndr_print_uint32(ndr
, "enumerate_network_printers", r
->enumerate_network_printers
);
5883 ndr_print_uint32(ndr
, "c_setprinter", r
->c_setprinter
);
5884 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor_architecture", r
->processor_architecture
);
5885 ndr_print_uint16(ndr
, "processor_level", r
->processor_level
);
5886 ndr_print_uint32(ndr
, "ref_ic", r
->ref_ic
);
5887 ndr_print_uint32(ndr
, "reserved2", r
->reserved2
);
5888 ndr_print_uint32(ndr
, "reserved3", r
->reserved3
);
5892 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo1
*r
)
5894 if (ndr_flags
& NDR_SCALARS
) {
5895 NDR_CHECK(ndr_push_align(ndr
, 4));
5896 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->flags
));
5897 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->name
));
5898 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->description
));
5899 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
5901 if (ndr_flags
& NDR_BUFFERS
) {
5903 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
5904 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5905 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->name
, CH_UTF16
)));
5906 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->name
, ndr_charset_length(r
->name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5908 if (r
->description
) {
5909 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
5910 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5911 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->description
, CH_UTF16
)));
5912 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->description
, ndr_charset_length(r
->description
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5915 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
5916 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
5917 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
5918 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
5921 return NDR_ERR_SUCCESS
;
5924 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo1
*r
)
5927 TALLOC_CTX
*_mem_save_name_0
;
5928 uint32_t _ptr_description
;
5929 TALLOC_CTX
*_mem_save_description_0
;
5930 uint32_t _ptr_comment
;
5931 TALLOC_CTX
*_mem_save_comment_0
;
5932 if (ndr_flags
& NDR_SCALARS
) {
5933 NDR_CHECK(ndr_pull_align(ndr
, 4));
5934 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->flags
));
5935 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name
));
5937 NDR_PULL_ALLOC(ndr
, r
->name
);
5941 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
5942 if (_ptr_description
) {
5943 NDR_PULL_ALLOC(ndr
, r
->description
);
5945 r
->description
= NULL
;
5947 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
5949 NDR_PULL_ALLOC(ndr
, r
->comment
);
5954 if (ndr_flags
& NDR_BUFFERS
) {
5956 _mem_save_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5957 NDR_PULL_SET_MEM_CTX(ndr
, r
->name
, 0);
5958 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->name
));
5959 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->name
));
5960 if (ndr_get_array_length(ndr
, &r
->name
) > ndr_get_array_size(ndr
, &r
->name
)) {
5961 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
));
5963 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t)));
5964 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->name
, ndr_get_array_length(ndr
, &r
->name
), sizeof(uint16_t), CH_UTF16
));
5965 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_0
, 0);
5967 if (r
->description
) {
5968 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5969 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
5970 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->description
));
5971 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->description
));
5972 if (ndr_get_array_length(ndr
, &r
->description
) > ndr_get_array_size(ndr
, &r
->description
)) {
5973 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
));
5975 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t)));
5976 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->description
, ndr_get_array_length(ndr
, &r
->description
), sizeof(uint16_t), CH_UTF16
));
5977 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
5980 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
5981 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
5982 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
5983 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
5984 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
5985 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
));
5987 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
5988 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
5989 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
5992 return NDR_ERR_SUCCESS
;
5995 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo1
*r
)
5997 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo1");
5999 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->flags
);
6000 ndr_print_ptr(ndr
, "name", r
->name
);
6003 ndr_print_string(ndr
, "name", r
->name
);
6006 ndr_print_ptr(ndr
, "description", r
->description
);
6008 if (r
->description
) {
6009 ndr_print_string(ndr
, "description", r
->description
);
6012 ndr_print_ptr(ndr
, "comment", r
->comment
);
6015 ndr_print_string(ndr
, "comment", r
->comment
);
6021 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo2
*r
)
6023 if (ndr_flags
& NDR_SCALARS
) {
6024 NDR_CHECK(ndr_push_align(ndr
, 4));
6025 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6026 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6027 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sharename
));
6028 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
6029 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->drivername
));
6030 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->comment
));
6031 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->location
));
6032 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->devmode
));
6033 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->sepfile
));
6034 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printprocessor
));
6035 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
6036 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->parameters
));
6037 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->secdesc
));
6038 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6039 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->priority
));
6040 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->defaultpriority
));
6041 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->starttime
));
6042 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->untiltime
));
6043 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
6044 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->cjobs
));
6045 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->averageppm
));
6047 if (ndr_flags
& NDR_BUFFERS
) {
6048 if (r
->servername
) {
6049 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6050 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6051 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6052 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6054 if (r
->printername
) {
6055 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6056 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6057 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6058 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6061 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
6062 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6063 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sharename
, CH_UTF16
)));
6064 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sharename
, ndr_charset_length(r
->sharename
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6068 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6069 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6070 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6072 if (r
->drivername
) {
6073 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
6074 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6075 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->drivername
, CH_UTF16
)));
6076 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->drivername
, ndr_charset_length(r
->drivername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6079 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6080 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6081 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->comment
, CH_UTF16
)));
6082 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->comment
, ndr_charset_length(r
->comment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6085 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
6086 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6087 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->location
, CH_UTF16
)));
6088 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->location
, ndr_charset_length(r
->location
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6092 struct ndr_push
*_ndr_devmode
;
6093 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
6094 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
6095 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
6099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6100 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6101 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->sepfile
, CH_UTF16
)));
6102 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->sepfile
, ndr_charset_length(r
->sepfile
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6104 if (r
->printprocessor
) {
6105 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6106 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6107 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printprocessor
, CH_UTF16
)));
6108 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printprocessor
, ndr_charset_length(r
->printprocessor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6111 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6112 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6113 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
6114 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6116 if (r
->parameters
) {
6117 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6118 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6119 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->parameters
, CH_UTF16
)));
6120 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->parameters
, ndr_charset_length(r
->parameters
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6124 struct ndr_push
*_ndr_secdesc
;
6125 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
6126 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
6127 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
6131 return NDR_ERR_SUCCESS
;
6134 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo2
*r
)
6136 uint32_t _ptr_servername
;
6137 TALLOC_CTX
*_mem_save_servername_0
;
6138 uint32_t _ptr_printername
;
6139 TALLOC_CTX
*_mem_save_printername_0
;
6140 uint32_t _ptr_sharename
;
6141 TALLOC_CTX
*_mem_save_sharename_0
;
6142 uint32_t _ptr_portname
;
6143 TALLOC_CTX
*_mem_save_portname_0
;
6144 uint32_t _ptr_drivername
;
6145 TALLOC_CTX
*_mem_save_drivername_0
;
6146 uint32_t _ptr_comment
;
6147 TALLOC_CTX
*_mem_save_comment_0
;
6148 uint32_t _ptr_location
;
6149 TALLOC_CTX
*_mem_save_location_0
;
6150 uint32_t _ptr_devmode
;
6151 TALLOC_CTX
*_mem_save_devmode_0
;
6152 uint32_t _ptr_sepfile
;
6153 TALLOC_CTX
*_mem_save_sepfile_0
;
6154 uint32_t _ptr_printprocessor
;
6155 TALLOC_CTX
*_mem_save_printprocessor_0
;
6156 uint32_t _ptr_datatype
;
6157 TALLOC_CTX
*_mem_save_datatype_0
;
6158 uint32_t _ptr_parameters
;
6159 TALLOC_CTX
*_mem_save_parameters_0
;
6160 uint32_t _ptr_secdesc
;
6161 TALLOC_CTX
*_mem_save_secdesc_0
;
6162 if (ndr_flags
& NDR_SCALARS
) {
6163 NDR_CHECK(ndr_pull_align(ndr
, 4));
6164 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6165 if (_ptr_servername
) {
6166 NDR_PULL_ALLOC(ndr
, r
->servername
);
6168 r
->servername
= NULL
;
6170 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6171 if (_ptr_printername
) {
6172 NDR_PULL_ALLOC(ndr
, r
->printername
);
6174 r
->printername
= NULL
;
6176 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sharename
));
6177 if (_ptr_sharename
) {
6178 NDR_PULL_ALLOC(ndr
, r
->sharename
);
6180 r
->sharename
= NULL
;
6182 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
6183 if (_ptr_portname
) {
6184 NDR_PULL_ALLOC(ndr
, r
->portname
);
6188 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_drivername
));
6189 if (_ptr_drivername
) {
6190 NDR_PULL_ALLOC(ndr
, r
->drivername
);
6192 r
->drivername
= NULL
;
6194 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_comment
));
6196 NDR_PULL_ALLOC(ndr
, r
->comment
);
6200 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_location
));
6201 if (_ptr_location
) {
6202 NDR_PULL_ALLOC(ndr
, r
->location
);
6206 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_devmode
));
6208 NDR_PULL_ALLOC(ndr
, r
->devmode
);
6212 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_sepfile
));
6214 NDR_PULL_ALLOC(ndr
, r
->sepfile
);
6218 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printprocessor
));
6219 if (_ptr_printprocessor
) {
6220 NDR_PULL_ALLOC(ndr
, r
->printprocessor
);
6222 r
->printprocessor
= NULL
;
6224 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
6225 if (_ptr_datatype
) {
6226 NDR_PULL_ALLOC(ndr
, r
->datatype
);
6230 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_parameters
));
6231 if (_ptr_parameters
) {
6232 NDR_PULL_ALLOC(ndr
, r
->parameters
);
6234 r
->parameters
= NULL
;
6236 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_secdesc
));
6238 NDR_PULL_ALLOC(ndr
, r
->secdesc
);
6242 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6243 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->priority
));
6244 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->defaultpriority
));
6245 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->starttime
));
6246 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->untiltime
));
6247 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
6248 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->cjobs
));
6249 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->averageppm
));
6251 if (ndr_flags
& NDR_BUFFERS
) {
6252 if (r
->servername
) {
6253 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6254 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6255 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6256 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6257 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
6258 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
));
6260 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
6261 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
6262 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6264 if (r
->printername
) {
6265 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6266 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6267 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6268 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6269 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6270 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
));
6272 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6273 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6274 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6277 _mem_save_sharename_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6278 NDR_PULL_SET_MEM_CTX(ndr
, r
->sharename
, 0);
6279 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sharename
));
6280 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sharename
));
6281 if (ndr_get_array_length(ndr
, &r
->sharename
) > ndr_get_array_size(ndr
, &r
->sharename
)) {
6282 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
));
6284 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t)));
6285 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sharename
, ndr_get_array_length(ndr
, &r
->sharename
), sizeof(uint16_t), CH_UTF16
));
6286 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sharename_0
, 0);
6289 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6290 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
6291 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
6292 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
6293 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
6294 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
));
6296 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
6297 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
6298 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
6300 if (r
->drivername
) {
6301 _mem_save_drivername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6302 NDR_PULL_SET_MEM_CTX(ndr
, r
->drivername
, 0);
6303 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->drivername
));
6304 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->drivername
));
6305 if (ndr_get_array_length(ndr
, &r
->drivername
) > ndr_get_array_size(ndr
, &r
->drivername
)) {
6306 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
));
6308 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t)));
6309 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->drivername
, ndr_get_array_length(ndr
, &r
->drivername
), sizeof(uint16_t), CH_UTF16
));
6310 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_drivername_0
, 0);
6313 _mem_save_comment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6314 NDR_PULL_SET_MEM_CTX(ndr
, r
->comment
, 0);
6315 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->comment
));
6316 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->comment
));
6317 if (ndr_get_array_length(ndr
, &r
->comment
) > ndr_get_array_size(ndr
, &r
->comment
)) {
6318 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
));
6320 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t)));
6321 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->comment
, ndr_get_array_length(ndr
, &r
->comment
), sizeof(uint16_t), CH_UTF16
));
6322 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_comment_0
, 0);
6325 _mem_save_location_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6326 NDR_PULL_SET_MEM_CTX(ndr
, r
->location
, 0);
6327 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->location
));
6328 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->location
));
6329 if (ndr_get_array_length(ndr
, &r
->location
) > ndr_get_array_size(ndr
, &r
->location
)) {
6330 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
));
6332 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t)));
6333 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->location
, ndr_get_array_length(ndr
, &r
->location
), sizeof(uint16_t), CH_UTF16
));
6334 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_location_0
, 0);
6337 _mem_save_devmode_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6338 NDR_PULL_SET_MEM_CTX(ndr
, r
->devmode
, 0);
6340 struct ndr_pull
*_ndr_devmode
;
6341 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_devmode
, 0, -1));
6342 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode
, NDR_SCALARS
, r
->devmode
));
6343 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_devmode
, 0, -1));
6345 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_0
, 0);
6348 _mem_save_sepfile_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6349 NDR_PULL_SET_MEM_CTX(ndr
, r
->sepfile
, 0);
6350 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->sepfile
));
6351 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->sepfile
));
6352 if (ndr_get_array_length(ndr
, &r
->sepfile
) > ndr_get_array_size(ndr
, &r
->sepfile
)) {
6353 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
));
6355 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t)));
6356 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->sepfile
, ndr_get_array_length(ndr
, &r
->sepfile
), sizeof(uint16_t), CH_UTF16
));
6357 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_sepfile_0
, 0);
6359 if (r
->printprocessor
) {
6360 _mem_save_printprocessor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6361 NDR_PULL_SET_MEM_CTX(ndr
, r
->printprocessor
, 0);
6362 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printprocessor
));
6363 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printprocessor
));
6364 if (ndr_get_array_length(ndr
, &r
->printprocessor
) > ndr_get_array_size(ndr
, &r
->printprocessor
)) {
6365 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
));
6367 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t)));
6368 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printprocessor
, ndr_get_array_length(ndr
, &r
->printprocessor
), sizeof(uint16_t), CH_UTF16
));
6369 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printprocessor_0
, 0);
6372 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6373 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
6374 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
6375 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
6376 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
6377 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
));
6379 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
6380 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
6381 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
6383 if (r
->parameters
) {
6384 _mem_save_parameters_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6385 NDR_PULL_SET_MEM_CTX(ndr
, r
->parameters
, 0);
6386 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->parameters
));
6387 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->parameters
));
6388 if (ndr_get_array_length(ndr
, &r
->parameters
) > ndr_get_array_size(ndr
, &r
->parameters
)) {
6389 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
));
6391 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t)));
6392 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->parameters
, ndr_get_array_length(ndr
, &r
->parameters
), sizeof(uint16_t), CH_UTF16
));
6393 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_parameters_0
, 0);
6396 _mem_save_secdesc_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6397 NDR_PULL_SET_MEM_CTX(ndr
, r
->secdesc
, 0);
6399 struct ndr_pull
*_ndr_secdesc
;
6400 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_secdesc
, 0, -1));
6401 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc
, NDR_SCALARS
|NDR_BUFFERS
, r
->secdesc
));
6402 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_secdesc
, 0, -1));
6404 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_0
, 0);
6407 return NDR_ERR_SUCCESS
;
6410 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo2
*r
)
6412 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo2");
6414 ndr_print_ptr(ndr
, "servername", r
->servername
);
6416 if (r
->servername
) {
6417 ndr_print_string(ndr
, "servername", r
->servername
);
6420 ndr_print_ptr(ndr
, "printername", r
->printername
);
6422 if (r
->printername
) {
6423 ndr_print_string(ndr
, "printername", r
->printername
);
6426 ndr_print_ptr(ndr
, "sharename", r
->sharename
);
6429 ndr_print_string(ndr
, "sharename", r
->sharename
);
6432 ndr_print_ptr(ndr
, "portname", r
->portname
);
6435 ndr_print_string(ndr
, "portname", r
->portname
);
6438 ndr_print_ptr(ndr
, "drivername", r
->drivername
);
6440 if (r
->drivername
) {
6441 ndr_print_string(ndr
, "drivername", r
->drivername
);
6444 ndr_print_ptr(ndr
, "comment", r
->comment
);
6447 ndr_print_string(ndr
, "comment", r
->comment
);
6450 ndr_print_ptr(ndr
, "location", r
->location
);
6453 ndr_print_string(ndr
, "location", r
->location
);
6456 ndr_print_ptr(ndr
, "devmode", r
->devmode
);
6459 ndr_print_spoolss_DeviceMode(ndr
, "devmode", r
->devmode
);
6462 ndr_print_ptr(ndr
, "sepfile", r
->sepfile
);
6465 ndr_print_string(ndr
, "sepfile", r
->sepfile
);
6468 ndr_print_ptr(ndr
, "printprocessor", r
->printprocessor
);
6470 if (r
->printprocessor
) {
6471 ndr_print_string(ndr
, "printprocessor", r
->printprocessor
);
6474 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
6477 ndr_print_string(ndr
, "datatype", r
->datatype
);
6480 ndr_print_ptr(ndr
, "parameters", r
->parameters
);
6482 if (r
->parameters
) {
6483 ndr_print_string(ndr
, "parameters", r
->parameters
);
6486 ndr_print_ptr(ndr
, "secdesc", r
->secdesc
);
6489 ndr_print_security_descriptor(ndr
, "secdesc", r
->secdesc
);
6492 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
6493 ndr_print_uint32(ndr
, "priority", r
->priority
);
6494 ndr_print_uint32(ndr
, "defaultpriority", r
->defaultpriority
);
6495 ndr_print_uint32(ndr
, "starttime", r
->starttime
);
6496 ndr_print_uint32(ndr
, "untiltime", r
->untiltime
);
6497 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
6498 ndr_print_uint32(ndr
, "cjobs", r
->cjobs
);
6499 ndr_print_uint32(ndr
, "averageppm", r
->averageppm
);
6503 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo3
*r
)
6505 if (ndr_flags
& NDR_SCALARS
) {
6506 NDR_CHECK(ndr_push_align(ndr
, 4));
6507 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->sec_desc_ptr
));
6509 if (ndr_flags
& NDR_BUFFERS
) {
6511 return NDR_ERR_SUCCESS
;
6514 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo3
*r
)
6516 if (ndr_flags
& NDR_SCALARS
) {
6517 NDR_CHECK(ndr_pull_align(ndr
, 4));
6518 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->sec_desc_ptr
));
6520 if (ndr_flags
& NDR_BUFFERS
) {
6522 return NDR_ERR_SUCCESS
;
6525 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo3
*r
)
6527 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo3");
6529 ndr_print_uint32(ndr
, "sec_desc_ptr", r
->sec_desc_ptr
);
6533 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo4
*r
)
6535 if (ndr_flags
& NDR_SCALARS
) {
6536 NDR_CHECK(ndr_push_align(ndr
, 4));
6537 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6538 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->servername
));
6539 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6541 if (ndr_flags
& NDR_BUFFERS
) {
6542 if (r
->printername
) {
6543 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6544 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6545 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6546 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6548 if (r
->servername
) {
6549 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6550 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6551 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->servername
, CH_UTF16
)));
6552 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->servername
, ndr_charset_length(r
->servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6555 return NDR_ERR_SUCCESS
;
6558 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo4
*r
)
6560 uint32_t _ptr_printername
;
6561 TALLOC_CTX
*_mem_save_printername_0
;
6562 uint32_t _ptr_servername
;
6563 TALLOC_CTX
*_mem_save_servername_0
;
6564 if (ndr_flags
& NDR_SCALARS
) {
6565 NDR_CHECK(ndr_pull_align(ndr
, 4));
6566 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6567 if (_ptr_printername
) {
6568 NDR_PULL_ALLOC(ndr
, r
->printername
);
6570 r
->printername
= NULL
;
6572 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
6573 if (_ptr_servername
) {
6574 NDR_PULL_ALLOC(ndr
, r
->servername
);
6576 r
->servername
= NULL
;
6578 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6580 if (ndr_flags
& NDR_BUFFERS
) {
6581 if (r
->printername
) {
6582 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6583 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6584 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6585 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6586 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6587 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
));
6589 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6590 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6591 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6593 if (r
->servername
) {
6594 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6595 NDR_PULL_SET_MEM_CTX(ndr
, r
->servername
, 0);
6596 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->servername
));
6597 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->servername
));
6598 if (ndr_get_array_length(ndr
, &r
->servername
) > ndr_get_array_size(ndr
, &r
->servername
)) {
6599 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
));
6601 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t)));
6602 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->servername
, ndr_get_array_length(ndr
, &r
->servername
), sizeof(uint16_t), CH_UTF16
));
6603 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
6606 return NDR_ERR_SUCCESS
;
6609 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo4
*r
)
6611 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo4");
6613 ndr_print_ptr(ndr
, "printername", r
->printername
);
6615 if (r
->printername
) {
6616 ndr_print_string(ndr
, "printername", r
->printername
);
6619 ndr_print_ptr(ndr
, "servername", r
->servername
);
6621 if (r
->servername
) {
6622 ndr_print_string(ndr
, "servername", r
->servername
);
6625 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
6629 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo5
*r
)
6631 if (ndr_flags
& NDR_SCALARS
) {
6632 NDR_CHECK(ndr_push_align(ndr
, 4));
6633 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->printername
));
6634 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->portname
));
6635 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, r
->attributes
));
6636 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->device_not_selected_timeout
));
6637 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->transmission_retry_timeout
));
6639 if (ndr_flags
& NDR_BUFFERS
) {
6640 if (r
->printername
) {
6641 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6642 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6643 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->printername
, CH_UTF16
)));
6644 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->printername
, ndr_charset_length(r
->printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6647 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6648 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6649 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->portname
, CH_UTF16
)));
6650 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, ndr_charset_length(r
->portname
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6653 return NDR_ERR_SUCCESS
;
6656 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo5
*r
)
6658 uint32_t _ptr_printername
;
6659 TALLOC_CTX
*_mem_save_printername_0
;
6660 uint32_t _ptr_portname
;
6661 TALLOC_CTX
*_mem_save_portname_0
;
6662 if (ndr_flags
& NDR_SCALARS
) {
6663 NDR_CHECK(ndr_pull_align(ndr
, 4));
6664 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
6665 if (_ptr_printername
) {
6666 NDR_PULL_ALLOC(ndr
, r
->printername
);
6668 r
->printername
= NULL
;
6670 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_portname
));
6671 if (_ptr_portname
) {
6672 NDR_PULL_ALLOC(ndr
, r
->portname
);
6676 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr
, NDR_SCALARS
, &r
->attributes
));
6677 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->device_not_selected_timeout
));
6678 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->transmission_retry_timeout
));
6680 if (ndr_flags
& NDR_BUFFERS
) {
6681 if (r
->printername
) {
6682 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6683 NDR_PULL_SET_MEM_CTX(ndr
, r
->printername
, 0);
6684 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->printername
));
6685 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->printername
));
6686 if (ndr_get_array_length(ndr
, &r
->printername
) > ndr_get_array_size(ndr
, &r
->printername
)) {
6687 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
));
6689 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t)));
6690 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->printername
, ndr_get_array_length(ndr
, &r
->printername
), sizeof(uint16_t), CH_UTF16
));
6691 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
6694 _mem_save_portname_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6695 NDR_PULL_SET_MEM_CTX(ndr
, r
->portname
, 0);
6696 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->portname
));
6697 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->portname
));
6698 if (ndr_get_array_length(ndr
, &r
->portname
) > ndr_get_array_size(ndr
, &r
->portname
)) {
6699 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
));
6701 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t)));
6702 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, ndr_get_array_length(ndr
, &r
->portname
), sizeof(uint16_t), CH_UTF16
));
6703 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_portname_0
, 0);
6706 return NDR_ERR_SUCCESS
;
6709 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo5
*r
)
6711 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo5");
6713 ndr_print_ptr(ndr
, "printername", r
->printername
);
6715 if (r
->printername
) {
6716 ndr_print_string(ndr
, "printername", r
->printername
);
6719 ndr_print_ptr(ndr
, "portname", r
->portname
);
6722 ndr_print_string(ndr
, "portname", r
->portname
);
6725 ndr_print_spoolss_PrinterAttributes(ndr
, "attributes", r
->attributes
);
6726 ndr_print_uint32(ndr
, "device_not_selected_timeout", r
->device_not_selected_timeout
);
6727 ndr_print_uint32(ndr
, "transmission_retry_timeout", r
->transmission_retry_timeout
);
6731 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo6
*r
)
6733 if (ndr_flags
& NDR_SCALARS
) {
6734 NDR_CHECK(ndr_push_align(ndr
, 4));
6735 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, r
->status
));
6737 if (ndr_flags
& NDR_BUFFERS
) {
6739 return NDR_ERR_SUCCESS
;
6742 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo6
*r
)
6744 if (ndr_flags
& NDR_SCALARS
) {
6745 NDR_CHECK(ndr_pull_align(ndr
, 4));
6746 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr
, NDR_SCALARS
, &r
->status
));
6748 if (ndr_flags
& NDR_BUFFERS
) {
6750 return NDR_ERR_SUCCESS
;
6753 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo6
*r
)
6755 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo6");
6757 ndr_print_spoolss_PrinterStatus(ndr
, "status", r
->status
);
6761 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo7(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfo7
*r
)
6763 if (ndr_flags
& NDR_SCALARS
) {
6764 NDR_CHECK(ndr_push_align(ndr
, 4));
6765 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->guid
));
6766 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, r
->action
));
6768 if (ndr_flags
& NDR_BUFFERS
) {
6770 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
6771 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
6772 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->guid
, CH_UTF16
)));
6773 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->guid
, ndr_charset_length(r
->guid
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
6776 return NDR_ERR_SUCCESS
;
6779 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfo7
*r
)
6782 TALLOC_CTX
*_mem_save_guid_0
;
6783 if (ndr_flags
& NDR_SCALARS
) {
6784 NDR_CHECK(ndr_pull_align(ndr
, 4));
6785 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_guid
));
6787 NDR_PULL_ALLOC(ndr
, r
->guid
);
6791 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr
, NDR_SCALARS
, &r
->action
));
6793 if (ndr_flags
& NDR_BUFFERS
) {
6795 _mem_save_guid_0
= NDR_PULL_GET_MEM_CTX(ndr
);
6796 NDR_PULL_SET_MEM_CTX(ndr
, r
->guid
, 0);
6797 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->guid
));
6798 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->guid
));
6799 if (ndr_get_array_length(ndr
, &r
->guid
) > ndr_get_array_size(ndr
, &r
->guid
)) {
6800 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
));
6802 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t)));
6803 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->guid
, ndr_get_array_length(ndr
, &r
->guid
), sizeof(uint16_t), CH_UTF16
));
6804 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_guid_0
, 0);
6807 return NDR_ERR_SUCCESS
;
6810 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfo7
*r
)
6812 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfo7");
6814 ndr_print_ptr(ndr
, "guid", r
->guid
);
6817 ndr_print_string(ndr
, "guid", r
->guid
);
6820 ndr_print_spoolss_DsPrintAction(ndr
, "action", r
->action
);
6824 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_SetPrinterInfo
*r
)
6826 if (ndr_flags
& NDR_SCALARS
) {
6827 int level
= ndr_push_get_switch_value(ndr
, r
);
6828 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
6831 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
6835 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
6839 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
6843 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
6847 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
6851 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info5
));
6855 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
6859 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info7
));
6863 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
6867 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info9
));
6875 if (ndr_flags
& NDR_BUFFERS
) {
6876 int level
= ndr_push_get_switch_value(ndr
, r
);
6880 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
6886 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
6892 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
6898 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
6904 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
6910 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
6916 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
6922 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
6928 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
6934 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info9
));
6943 return NDR_ERR_SUCCESS
;
6946 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_SetPrinterInfo
*r
)
6950 TALLOC_CTX
*_mem_save_info0_0
;
6951 TALLOC_CTX
*_mem_save_info1_0
;
6952 TALLOC_CTX
*_mem_save_info2_0
;
6953 TALLOC_CTX
*_mem_save_info3_0
;
6954 TALLOC_CTX
*_mem_save_info4_0
;
6955 TALLOC_CTX
*_mem_save_info5_0
;
6956 TALLOC_CTX
*_mem_save_info6_0
;
6957 TALLOC_CTX
*_mem_save_info7_0
;
6958 TALLOC_CTX
*_mem_save_info8_0
;
6959 TALLOC_CTX
*_mem_save_info9_0
;
6960 level
= ndr_pull_get_switch_value(ndr
, r
);
6961 if (ndr_flags
& NDR_SCALARS
) {
6962 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
6963 if (_level
!= level
) {
6964 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
6968 uint32_t _ptr_info0
;
6969 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
6971 NDR_PULL_ALLOC(ndr
, r
->info0
);
6978 uint32_t _ptr_info1
;
6979 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
6981 NDR_PULL_ALLOC(ndr
, r
->info1
);
6988 uint32_t _ptr_info2
;
6989 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
6991 NDR_PULL_ALLOC(ndr
, r
->info2
);
6998 uint32_t _ptr_info3
;
6999 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
7001 NDR_PULL_ALLOC(ndr
, r
->info3
);
7008 uint32_t _ptr_info4
;
7009 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
7011 NDR_PULL_ALLOC(ndr
, r
->info4
);
7018 uint32_t _ptr_info5
;
7019 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info5
));
7021 NDR_PULL_ALLOC(ndr
, r
->info5
);
7028 uint32_t _ptr_info6
;
7029 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
7031 NDR_PULL_ALLOC(ndr
, r
->info6
);
7038 uint32_t _ptr_info7
;
7039 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info7
));
7041 NDR_PULL_ALLOC(ndr
, r
->info7
);
7048 uint32_t _ptr_info8
;
7049 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
7051 NDR_PULL_ALLOC(ndr
, r
->info8
);
7058 uint32_t _ptr_info9
;
7059 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info9
));
7061 NDR_PULL_ALLOC(ndr
, r
->info9
);
7072 if (ndr_flags
& NDR_BUFFERS
) {
7076 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7077 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
7078 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
7079 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
7085 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7086 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
7087 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
7088 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
7094 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7095 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
7096 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
7097 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
7103 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7104 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
7105 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr
, NDR_SCALARS
, r
->info3
));
7106 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
7112 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7113 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
7114 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
7115 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
7121 _mem_save_info5_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7122 NDR_PULL_SET_MEM_CTX(ndr
, r
->info5
, 0);
7123 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info5
));
7124 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info5_0
, 0);
7130 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7131 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
7132 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr
, NDR_SCALARS
, r
->info6
));
7133 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
7139 _mem_save_info7_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7140 NDR_PULL_SET_MEM_CTX(ndr
, r
->info7
, 0);
7141 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info7
));
7142 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info7_0
, 0);
7148 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7149 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
7150 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
7151 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
7157 _mem_save_info9_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7158 NDR_PULL_SET_MEM_CTX(ndr
, r
->info9
, 0);
7159 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info9
));
7160 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info9_0
, 0);
7169 return NDR_ERR_SUCCESS
;
7172 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_SetPrinterInfo
*r
)
7175 level
= ndr_print_get_switch_value(ndr
, r
);
7176 ndr_print_union(ndr
, name
, level
, "spoolss_SetPrinterInfo");
7179 ndr_print_ptr(ndr
, "info0", r
->info0
);
7182 ndr_print_spoolss_SetPrinterInfo0(ndr
, "info0", r
->info0
);
7188 ndr_print_ptr(ndr
, "info1", r
->info1
);
7191 ndr_print_spoolss_SetPrinterInfo1(ndr
, "info1", r
->info1
);
7197 ndr_print_ptr(ndr
, "info2", r
->info2
);
7200 ndr_print_spoolss_SetPrinterInfo2(ndr
, "info2", r
->info2
);
7206 ndr_print_ptr(ndr
, "info3", r
->info3
);
7209 ndr_print_spoolss_SetPrinterInfo3(ndr
, "info3", r
->info3
);
7215 ndr_print_ptr(ndr
, "info4", r
->info4
);
7218 ndr_print_spoolss_SetPrinterInfo4(ndr
, "info4", r
->info4
);
7224 ndr_print_ptr(ndr
, "info5", r
->info5
);
7227 ndr_print_spoolss_SetPrinterInfo5(ndr
, "info5", r
->info5
);
7233 ndr_print_ptr(ndr
, "info6", r
->info6
);
7236 ndr_print_spoolss_SetPrinterInfo6(ndr
, "info6", r
->info6
);
7242 ndr_print_ptr(ndr
, "info7", r
->info7
);
7245 ndr_print_spoolss_SetPrinterInfo7(ndr
, "info7", r
->info7
);
7251 ndr_print_ptr(ndr
, "info8", r
->info8
);
7254 ndr_print_spoolss_DeviceModeInfo(ndr
, "info8", r
->info8
);
7260 ndr_print_ptr(ndr
, "info9", r
->info9
);
7263 ndr_print_spoolss_DeviceModeInfo(ndr
, "info9", r
->info9
);
7274 static enum ndr_err_code
ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_SetPrinterInfoCtr
*r
)
7276 if (ndr_flags
& NDR_SCALARS
) {
7277 NDR_CHECK(ndr_push_align(ndr
, 4));
7278 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
7279 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
7280 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
7282 if (ndr_flags
& NDR_BUFFERS
) {
7283 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
7285 return NDR_ERR_SUCCESS
;
7288 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_SetPrinterInfoCtr
*r
)
7290 if (ndr_flags
& NDR_SCALARS
) {
7291 NDR_CHECK(ndr_pull_align(ndr
, 4));
7292 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
7293 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
7294 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_SCALARS
, &r
->info
));
7296 if (ndr_flags
& NDR_BUFFERS
) {
7297 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr
, NDR_BUFFERS
, &r
->info
));
7299 return NDR_ERR_SUCCESS
;
7302 _PUBLIC_
void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_SetPrinterInfoCtr
*r
)
7304 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterInfoCtr");
7306 ndr_print_uint32(ndr
, "level", r
->level
);
7307 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
7308 ndr_print_spoolss_SetPrinterInfo(ndr
, "info", &r
->info
);
7312 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_StringArray(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_StringArray
*r
)
7314 if (ndr_flags
& NDR_SCALARS
) {
7315 NDR_CHECK(ndr_push_align(ndr
, 4));
7316 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, (ndr_size_spoolss_StringArray(r
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2));
7318 uint32_t _flags_save_string_array
= ndr
->flags
;
7319 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7320 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string
));
7321 ndr
->flags
= _flags_save_string_array
;
7324 if (ndr_flags
& NDR_BUFFERS
) {
7326 return NDR_ERR_SUCCESS
;
7329 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_StringArray(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_StringArray
*r
)
7331 if (ndr_flags
& NDR_SCALARS
) {
7332 NDR_CHECK(ndr_pull_align(ndr
, 4));
7333 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
7335 uint32_t _flags_save_string_array
= ndr
->flags
;
7336 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
7337 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string
));
7338 ndr
->flags
= _flags_save_string_array
;
7341 if (ndr_flags
& NDR_BUFFERS
) {
7343 return NDR_ERR_SUCCESS
;
7346 _PUBLIC_
void ndr_print_spoolss_StringArray(struct ndr_print
*ndr
, const char *name
, const struct spoolss_StringArray
*r
)
7348 ndr_print_struct(ndr
, name
, "spoolss_StringArray");
7350 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
);
7351 ndr_print_string_array(ndr
, "string", r
->string
);
7355 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo1
*r
)
7357 if (ndr_flags
& NDR_SCALARS
) {
7358 NDR_CHECK(ndr_push_align(ndr
, 4));
7359 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7361 if (ndr_flags
& NDR_BUFFERS
) {
7362 if (r
->driver_name
) {
7363 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7364 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7365 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7366 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7369 return NDR_ERR_SUCCESS
;
7372 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo1
*r
)
7374 uint32_t _ptr_driver_name
;
7375 TALLOC_CTX
*_mem_save_driver_name_0
;
7376 if (ndr_flags
& NDR_SCALARS
) {
7377 NDR_CHECK(ndr_pull_align(ndr
, 4));
7378 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7379 if (_ptr_driver_name
) {
7380 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7382 r
->driver_name
= NULL
;
7385 if (ndr_flags
& NDR_BUFFERS
) {
7386 if (r
->driver_name
) {
7387 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7388 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7389 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
7390 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
7391 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
7392 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->driver_name
), ndr_get_array_length(ndr
, &r
->driver_name
));
7394 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
7395 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
7396 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
7399 return NDR_ERR_SUCCESS
;
7402 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo1
*r
)
7404 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo1");
7406 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
7408 if (r
->driver_name
) {
7409 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
7415 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverOSVersion(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion r
)
7417 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
7418 return NDR_ERR_SUCCESS
;
7421 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverOSVersion(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverOSVersion
*r
)
7424 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
7426 return NDR_ERR_SUCCESS
;
7429 _PUBLIC_
void ndr_print_spoolss_DriverOSVersion(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverOSVersion r
)
7431 const char *val
= NULL
;
7434 case SPOOLSS_DRIVER_VERSION_9X
: val
= "SPOOLSS_DRIVER_VERSION_9X"; break;
7435 case SPOOLSS_DRIVER_VERSION_NT35
: val
= "SPOOLSS_DRIVER_VERSION_NT35"; break;
7436 case SPOOLSS_DRIVER_VERSION_NT4
: val
= "SPOOLSS_DRIVER_VERSION_NT4"; break;
7437 case SPOOLSS_DRIVER_VERSION_200X
: val
= "SPOOLSS_DRIVER_VERSION_200X"; break;
7439 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
7442 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo2
*r
)
7444 if (ndr_flags
& NDR_SCALARS
) {
7445 NDR_CHECK(ndr_push_align(ndr
, 4));
7446 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
7447 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7448 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
7449 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
7450 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
7451 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
7453 if (ndr_flags
& NDR_BUFFERS
) {
7454 if (r
->driver_name
) {
7455 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7456 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7457 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7458 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7460 if (r
->architecture
) {
7461 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7462 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7464 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7466 if (r
->driver_path
) {
7467 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7468 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7469 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7470 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7473 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7474 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7475 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7476 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7478 if (r
->config_file
) {
7479 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7480 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7481 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7482 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7485 return NDR_ERR_SUCCESS
;
7488 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo2
*r
)
7490 uint32_t _ptr_driver_name
;
7491 TALLOC_CTX
*_mem_save_driver_name_0
;
7492 uint32_t _ptr_architecture
;
7493 TALLOC_CTX
*_mem_save_architecture_0
;
7494 uint32_t _ptr_driver_path
;
7495 TALLOC_CTX
*_mem_save_driver_path_0
;
7496 uint32_t _ptr_data_file
;
7497 TALLOC_CTX
*_mem_save_data_file_0
;
7498 uint32_t _ptr_config_file
;
7499 TALLOC_CTX
*_mem_save_config_file_0
;
7500 if (ndr_flags
& NDR_SCALARS
) {
7501 NDR_CHECK(ndr_pull_align(ndr
, 4));
7502 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
7503 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7504 if (_ptr_driver_name
) {
7505 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7507 r
->driver_name
= NULL
;
7509 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
7510 if (_ptr_architecture
) {
7511 NDR_PULL_ALLOC(ndr
, r
->architecture
);
7513 r
->architecture
= NULL
;
7515 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
7516 if (_ptr_driver_path
) {
7517 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
7519 r
->driver_path
= NULL
;
7521 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
7522 if (_ptr_data_file
) {
7523 NDR_PULL_ALLOC(ndr
, r
->data_file
);
7525 r
->data_file
= NULL
;
7527 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
7528 if (_ptr_config_file
) {
7529 NDR_PULL_ALLOC(ndr
, r
->config_file
);
7531 r
->config_file
= NULL
;
7534 if (ndr_flags
& NDR_BUFFERS
) {
7535 if (r
->driver_name
) {
7536 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7537 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7538 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
7539 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
7540 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
7541 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
));
7543 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
7544 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
7545 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
7547 if (r
->architecture
) {
7548 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7549 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
7550 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
7551 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
7552 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
7553 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
));
7555 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
7556 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
7557 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
7559 if (r
->driver_path
) {
7560 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7561 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
7562 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
7563 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
7564 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
7565 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
));
7567 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
7568 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
7569 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
7572 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7573 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
7574 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
7575 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
7576 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
7577 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
));
7579 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
7580 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
7581 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
7583 if (r
->config_file
) {
7584 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7585 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
7586 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
7587 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
7588 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
7589 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
));
7591 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
7592 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
7593 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
7596 return NDR_ERR_SUCCESS
;
7599 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo2
*r
)
7601 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo2");
7603 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
7604 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
7606 if (r
->driver_name
) {
7607 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
7610 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
7612 if (r
->architecture
) {
7613 ndr_print_string(ndr
, "architecture", r
->architecture
);
7616 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
7618 if (r
->driver_path
) {
7619 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
7622 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
7625 ndr_print_string(ndr
, "data_file", r
->data_file
);
7628 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
7630 if (r
->config_file
) {
7631 ndr_print_string(ndr
, "config_file", r
->config_file
);
7637 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo3
*r
)
7639 if (ndr_flags
& NDR_SCALARS
) {
7640 NDR_CHECK(ndr_push_align(ndr
, 4));
7641 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
7642 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7643 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
7644 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
7645 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
7646 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
7647 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
7648 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
7649 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
7650 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
7651 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
7653 if (ndr_flags
& NDR_BUFFERS
) {
7654 if (r
->driver_name
) {
7655 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7656 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7657 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7658 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7660 if (r
->architecture
) {
7661 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7662 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7663 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7664 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7666 if (r
->driver_path
) {
7667 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7668 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7669 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7670 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7673 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7674 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7675 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7676 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7678 if (r
->config_file
) {
7679 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7680 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7681 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
7682 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7685 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
7686 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7687 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
7688 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7690 if (r
->monitor_name
) {
7691 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
7692 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7693 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
7694 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7696 if (r
->default_datatype
) {
7697 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
7698 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7699 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
7700 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7702 if (r
->dependent_files
) {
7703 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
7706 return NDR_ERR_SUCCESS
;
7709 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo3
*r
)
7711 uint32_t _ptr_driver_name
;
7712 TALLOC_CTX
*_mem_save_driver_name_0
;
7713 uint32_t _ptr_architecture
;
7714 TALLOC_CTX
*_mem_save_architecture_0
;
7715 uint32_t _ptr_driver_path
;
7716 TALLOC_CTX
*_mem_save_driver_path_0
;
7717 uint32_t _ptr_data_file
;
7718 TALLOC_CTX
*_mem_save_data_file_0
;
7719 uint32_t _ptr_config_file
;
7720 TALLOC_CTX
*_mem_save_config_file_0
;
7721 uint32_t _ptr_help_file
;
7722 TALLOC_CTX
*_mem_save_help_file_0
;
7723 uint32_t _ptr_monitor_name
;
7724 TALLOC_CTX
*_mem_save_monitor_name_0
;
7725 uint32_t _ptr_default_datatype
;
7726 TALLOC_CTX
*_mem_save_default_datatype_0
;
7727 uint32_t _ptr_dependent_files
;
7728 TALLOC_CTX
*_mem_save_dependent_files_0
;
7729 if (ndr_flags
& NDR_SCALARS
) {
7730 NDR_CHECK(ndr_pull_align(ndr
, 4));
7731 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
7732 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
7733 if (_ptr_driver_name
) {
7734 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
7736 r
->driver_name
= NULL
;
7738 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
7739 if (_ptr_architecture
) {
7740 NDR_PULL_ALLOC(ndr
, r
->architecture
);
7742 r
->architecture
= NULL
;
7744 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
7745 if (_ptr_driver_path
) {
7746 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
7748 r
->driver_path
= NULL
;
7750 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
7751 if (_ptr_data_file
) {
7752 NDR_PULL_ALLOC(ndr
, r
->data_file
);
7754 r
->data_file
= NULL
;
7756 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
7757 if (_ptr_config_file
) {
7758 NDR_PULL_ALLOC(ndr
, r
->config_file
);
7760 r
->config_file
= NULL
;
7762 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
7763 if (_ptr_help_file
) {
7764 NDR_PULL_ALLOC(ndr
, r
->help_file
);
7766 r
->help_file
= NULL
;
7768 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
7769 if (_ptr_monitor_name
) {
7770 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
7772 r
->monitor_name
= NULL
;
7774 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
7775 if (_ptr_default_datatype
) {
7776 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
7778 r
->default_datatype
= NULL
;
7780 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
7781 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
7782 if (_ptr_dependent_files
) {
7783 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
7785 r
->dependent_files
= NULL
;
7788 if (ndr_flags
& NDR_BUFFERS
) {
7789 if (r
->driver_name
) {
7790 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7791 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
7792 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
7793 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
7794 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
7795 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
));
7797 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
7798 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
7799 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
7801 if (r
->architecture
) {
7802 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7803 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
7804 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
7805 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
7806 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
7807 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
));
7809 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
7810 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
7811 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
7813 if (r
->driver_path
) {
7814 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7815 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
7816 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
7817 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
7818 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
7819 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
));
7821 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
7822 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
7823 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
7826 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7827 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
7828 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
7829 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
7830 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
7831 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
));
7833 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
7834 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
7835 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
7837 if (r
->config_file
) {
7838 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7839 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
7840 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
7841 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
7842 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
7843 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
));
7845 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
7846 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
7847 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
7850 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7851 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
7852 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
7853 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
7854 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
7855 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
));
7857 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
7858 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
7859 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
7861 if (r
->monitor_name
) {
7862 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7863 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
7864 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
7865 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
7866 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
7867 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
));
7869 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
7870 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
7871 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
7873 if (r
->default_datatype
) {
7874 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7875 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
7876 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
7877 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
7878 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
7879 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
));
7881 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
7882 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
7883 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
7885 if (r
->dependent_files
) {
7886 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
7887 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
7888 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
7889 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
7892 return NDR_ERR_SUCCESS
;
7895 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo3
*r
)
7897 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo3");
7899 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
7900 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
7902 if (r
->driver_name
) {
7903 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
7906 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
7908 if (r
->architecture
) {
7909 ndr_print_string(ndr
, "architecture", r
->architecture
);
7912 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
7914 if (r
->driver_path
) {
7915 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
7918 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
7921 ndr_print_string(ndr
, "data_file", r
->data_file
);
7924 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
7926 if (r
->config_file
) {
7927 ndr_print_string(ndr
, "config_file", r
->config_file
);
7930 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
7933 ndr_print_string(ndr
, "help_file", r
->help_file
);
7936 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
7938 if (r
->monitor_name
) {
7939 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
7942 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
7944 if (r
->default_datatype
) {
7945 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
7948 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
);
7949 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
7951 if (r
->dependent_files
) {
7952 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
7958 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo4
*r
)
7960 if (ndr_flags
& NDR_SCALARS
) {
7961 NDR_CHECK(ndr_push_align(ndr
, 4));
7962 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
7963 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
7964 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
7965 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
7966 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
7967 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
7968 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
7969 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
7970 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
7971 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
7972 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
7973 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
7974 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
7976 if (ndr_flags
& NDR_BUFFERS
) {
7977 if (r
->driver_name
) {
7978 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7979 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7980 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
7981 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7983 if (r
->architecture
) {
7984 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7985 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7986 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
7987 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7989 if (r
->driver_path
) {
7990 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7991 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7992 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
7993 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
7996 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7997 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
7998 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
7999 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8001 if (r
->config_file
) {
8002 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8003 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8004 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8005 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8008 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8009 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8010 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8011 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8013 if (r
->monitor_name
) {
8014 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8015 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8016 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8017 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8019 if (r
->default_datatype
) {
8020 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8021 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8022 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8023 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8025 if (r
->dependent_files
) {
8026 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8028 if (r
->previous_names
) {
8029 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8032 return NDR_ERR_SUCCESS
;
8035 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo4
*r
)
8037 uint32_t _ptr_driver_name
;
8038 TALLOC_CTX
*_mem_save_driver_name_0
;
8039 uint32_t _ptr_architecture
;
8040 TALLOC_CTX
*_mem_save_architecture_0
;
8041 uint32_t _ptr_driver_path
;
8042 TALLOC_CTX
*_mem_save_driver_path_0
;
8043 uint32_t _ptr_data_file
;
8044 TALLOC_CTX
*_mem_save_data_file_0
;
8045 uint32_t _ptr_config_file
;
8046 TALLOC_CTX
*_mem_save_config_file_0
;
8047 uint32_t _ptr_help_file
;
8048 TALLOC_CTX
*_mem_save_help_file_0
;
8049 uint32_t _ptr_monitor_name
;
8050 TALLOC_CTX
*_mem_save_monitor_name_0
;
8051 uint32_t _ptr_default_datatype
;
8052 TALLOC_CTX
*_mem_save_default_datatype_0
;
8053 uint32_t _ptr_dependent_files
;
8054 TALLOC_CTX
*_mem_save_dependent_files_0
;
8055 uint32_t _ptr_previous_names
;
8056 TALLOC_CTX
*_mem_save_previous_names_0
;
8057 if (ndr_flags
& NDR_SCALARS
) {
8058 NDR_CHECK(ndr_pull_align(ndr
, 4));
8059 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8060 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8061 if (_ptr_driver_name
) {
8062 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8064 r
->driver_name
= NULL
;
8066 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8067 if (_ptr_architecture
) {
8068 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8070 r
->architecture
= NULL
;
8072 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8073 if (_ptr_driver_path
) {
8074 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8076 r
->driver_path
= NULL
;
8078 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8079 if (_ptr_data_file
) {
8080 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8082 r
->data_file
= NULL
;
8084 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8085 if (_ptr_config_file
) {
8086 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8088 r
->config_file
= NULL
;
8090 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8091 if (_ptr_help_file
) {
8092 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8094 r
->help_file
= NULL
;
8096 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8097 if (_ptr_monitor_name
) {
8098 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8100 r
->monitor_name
= NULL
;
8102 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8103 if (_ptr_default_datatype
) {
8104 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8106 r
->default_datatype
= NULL
;
8108 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8109 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8110 if (_ptr_dependent_files
) {
8111 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8113 r
->dependent_files
= NULL
;
8115 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
8116 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
8117 if (_ptr_previous_names
) {
8118 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
8120 r
->previous_names
= NULL
;
8123 if (ndr_flags
& NDR_BUFFERS
) {
8124 if (r
->driver_name
) {
8125 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8126 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8127 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8128 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8129 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8130 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
));
8132 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8133 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8134 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8136 if (r
->architecture
) {
8137 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8138 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8139 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8140 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8141 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8142 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
));
8144 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8145 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8146 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8148 if (r
->driver_path
) {
8149 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8150 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8151 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8152 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8153 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8154 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
));
8156 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8157 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8158 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8161 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8162 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8163 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8164 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8165 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8166 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
));
8168 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8169 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8170 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8172 if (r
->config_file
) {
8173 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8174 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8175 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8176 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8177 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8178 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
));
8180 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8181 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8182 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8185 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8186 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8187 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8188 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8189 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
8190 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
));
8192 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
8193 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
8194 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8196 if (r
->monitor_name
) {
8197 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8198 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8199 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8200 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8201 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
8202 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
));
8204 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
8205 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
8206 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8208 if (r
->default_datatype
) {
8209 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8210 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8211 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8212 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8213 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
8214 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
));
8216 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
8217 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
8218 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8220 if (r
->dependent_files
) {
8221 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8222 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8223 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8224 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8226 if (r
->previous_names
) {
8227 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8228 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
8229 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8230 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
8233 return NDR_ERR_SUCCESS
;
8236 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo4
*r
)
8238 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo4");
8240 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8241 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8243 if (r
->driver_name
) {
8244 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8247 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8249 if (r
->architecture
) {
8250 ndr_print_string(ndr
, "architecture", r
->architecture
);
8253 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8255 if (r
->driver_path
) {
8256 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8259 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8262 ndr_print_string(ndr
, "data_file", r
->data_file
);
8265 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8267 if (r
->config_file
) {
8268 ndr_print_string(ndr
, "config_file", r
->config_file
);
8271 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8274 ndr_print_string(ndr
, "help_file", r
->help_file
);
8277 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8279 if (r
->monitor_name
) {
8280 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8283 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8285 if (r
->default_datatype
) {
8286 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8289 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
);
8290 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8292 if (r
->dependent_files
) {
8293 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8296 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
);
8297 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
8299 if (r
->previous_names
) {
8300 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
8306 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo6
*r
)
8308 if (ndr_flags
& NDR_SCALARS
) {
8309 NDR_CHECK(ndr_push_align(ndr
, 8));
8310 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8311 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8312 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8313 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8314 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8315 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8316 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8317 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8318 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8319 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8320 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8321 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8322 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8323 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
8324 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
8325 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
8326 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
8327 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
8328 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
8330 if (ndr_flags
& NDR_BUFFERS
) {
8331 if (r
->driver_name
) {
8332 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8333 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8334 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8335 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8337 if (r
->architecture
) {
8338 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8339 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8340 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8341 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8343 if (r
->driver_path
) {
8344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8345 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8346 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8347 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8350 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8351 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8352 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8353 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8355 if (r
->config_file
) {
8356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8357 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8358 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8359 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8362 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8363 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8364 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8365 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8367 if (r
->monitor_name
) {
8368 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8369 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8370 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8371 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8373 if (r
->default_datatype
) {
8374 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8375 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8377 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8379 if (r
->dependent_files
) {
8380 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8382 if (r
->previous_names
) {
8383 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8385 if (r
->manufacturer_name
) {
8386 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8387 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8388 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8389 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8391 if (r
->manufacturer_url
) {
8392 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8393 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8394 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8395 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8397 if (r
->hardware_id
) {
8398 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8399 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8400 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8401 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8404 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8405 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8406 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8407 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8410 return NDR_ERR_SUCCESS
;
8413 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo6
*r
)
8415 uint32_t _ptr_driver_name
;
8416 TALLOC_CTX
*_mem_save_driver_name_0
;
8417 uint32_t _ptr_architecture
;
8418 TALLOC_CTX
*_mem_save_architecture_0
;
8419 uint32_t _ptr_driver_path
;
8420 TALLOC_CTX
*_mem_save_driver_path_0
;
8421 uint32_t _ptr_data_file
;
8422 TALLOC_CTX
*_mem_save_data_file_0
;
8423 uint32_t _ptr_config_file
;
8424 TALLOC_CTX
*_mem_save_config_file_0
;
8425 uint32_t _ptr_help_file
;
8426 TALLOC_CTX
*_mem_save_help_file_0
;
8427 uint32_t _ptr_monitor_name
;
8428 TALLOC_CTX
*_mem_save_monitor_name_0
;
8429 uint32_t _ptr_default_datatype
;
8430 TALLOC_CTX
*_mem_save_default_datatype_0
;
8431 uint32_t _ptr_dependent_files
;
8432 TALLOC_CTX
*_mem_save_dependent_files_0
;
8433 uint32_t _ptr_previous_names
;
8434 TALLOC_CTX
*_mem_save_previous_names_0
;
8435 uint32_t _ptr_manufacturer_name
;
8436 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
8437 uint32_t _ptr_manufacturer_url
;
8438 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
8439 uint32_t _ptr_hardware_id
;
8440 TALLOC_CTX
*_mem_save_hardware_id_0
;
8441 uint32_t _ptr_provider
;
8442 TALLOC_CTX
*_mem_save_provider_0
;
8443 if (ndr_flags
& NDR_SCALARS
) {
8444 NDR_CHECK(ndr_pull_align(ndr
, 8));
8445 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8446 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8447 if (_ptr_driver_name
) {
8448 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8450 r
->driver_name
= NULL
;
8452 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8453 if (_ptr_architecture
) {
8454 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8456 r
->architecture
= NULL
;
8458 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8459 if (_ptr_driver_path
) {
8460 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8462 r
->driver_path
= NULL
;
8464 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8465 if (_ptr_data_file
) {
8466 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8468 r
->data_file
= NULL
;
8470 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
8471 if (_ptr_config_file
) {
8472 NDR_PULL_ALLOC(ndr
, r
->config_file
);
8474 r
->config_file
= NULL
;
8476 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
8477 if (_ptr_help_file
) {
8478 NDR_PULL_ALLOC(ndr
, r
->help_file
);
8480 r
->help_file
= NULL
;
8482 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
8483 if (_ptr_monitor_name
) {
8484 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
8486 r
->monitor_name
= NULL
;
8488 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
8489 if (_ptr_default_datatype
) {
8490 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
8492 r
->default_datatype
= NULL
;
8494 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
8495 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
8496 if (_ptr_dependent_files
) {
8497 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
8499 r
->dependent_files
= NULL
;
8501 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
8502 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
8503 if (_ptr_previous_names
) {
8504 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
8506 r
->previous_names
= NULL
;
8508 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
8509 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
8510 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
8511 if (_ptr_manufacturer_name
) {
8512 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
8514 r
->manufacturer_name
= NULL
;
8516 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
8517 if (_ptr_manufacturer_url
) {
8518 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
8520 r
->manufacturer_url
= NULL
;
8522 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
8523 if (_ptr_hardware_id
) {
8524 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
8526 r
->hardware_id
= NULL
;
8528 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
8529 if (_ptr_provider
) {
8530 NDR_PULL_ALLOC(ndr
, r
->provider
);
8535 if (ndr_flags
& NDR_BUFFERS
) {
8536 if (r
->driver_name
) {
8537 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8538 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
8539 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
8540 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
8541 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
8542 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
));
8544 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
8545 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
8546 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
8548 if (r
->architecture
) {
8549 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8550 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
8551 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
8552 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
8553 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
8554 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
));
8556 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
8557 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
8558 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
8560 if (r
->driver_path
) {
8561 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8562 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
8563 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
8564 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
8565 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
8566 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
));
8568 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
8569 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
8570 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
8573 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8574 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
8575 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
8576 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
8577 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
8578 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
));
8580 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
8581 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
8582 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
8584 if (r
->config_file
) {
8585 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8586 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
8587 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
8588 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
8589 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
8590 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
));
8592 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
8593 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
8594 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
8597 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8598 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
8599 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
8600 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
8601 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
8602 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
));
8604 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
8605 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
8606 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
8608 if (r
->monitor_name
) {
8609 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8610 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
8611 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
8612 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
8613 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
8614 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
));
8616 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
8617 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
8618 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
8620 if (r
->default_datatype
) {
8621 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8622 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
8623 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
8624 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
8625 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
8626 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
));
8628 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
8629 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
8630 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
8632 if (r
->dependent_files
) {
8633 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8634 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
8635 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8636 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
8638 if (r
->previous_names
) {
8639 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8640 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
8641 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8642 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
8644 if (r
->manufacturer_name
) {
8645 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8646 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
8647 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
8648 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
8649 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
8650 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
));
8652 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
8653 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
8654 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
8656 if (r
->manufacturer_url
) {
8657 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8658 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
8659 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
8660 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
8661 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
8662 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
));
8664 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
8665 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
8666 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
8668 if (r
->hardware_id
) {
8669 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8670 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
8671 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
8672 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
8673 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
8674 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
));
8676 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
8677 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
8678 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
8681 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
8682 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
8683 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
8684 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
8685 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
8686 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
));
8688 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
8689 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
8690 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
8693 return NDR_ERR_SUCCESS
;
8696 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo6
*r
)
8698 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo6");
8700 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
8701 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
8703 if (r
->driver_name
) {
8704 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
8707 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
8709 if (r
->architecture
) {
8710 ndr_print_string(ndr
, "architecture", r
->architecture
);
8713 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
8715 if (r
->driver_path
) {
8716 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
8719 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
8722 ndr_print_string(ndr
, "data_file", r
->data_file
);
8725 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
8727 if (r
->config_file
) {
8728 ndr_print_string(ndr
, "config_file", r
->config_file
);
8731 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
8734 ndr_print_string(ndr
, "help_file", r
->help_file
);
8737 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
8739 if (r
->monitor_name
) {
8740 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
8743 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
8745 if (r
->default_datatype
) {
8746 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
8749 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
);
8750 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
8752 if (r
->dependent_files
) {
8753 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
8756 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
);
8757 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
8759 if (r
->previous_names
) {
8760 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
8763 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
8764 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
8765 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
8767 if (r
->manufacturer_name
) {
8768 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
8771 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
8773 if (r
->manufacturer_url
) {
8774 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
8777 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
8779 if (r
->hardware_id
) {
8780 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
8783 ndr_print_ptr(ndr
, "provider", r
->provider
);
8786 ndr_print_string(ndr
, "provider", r
->provider
);
8792 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfo8
*r
)
8794 if (ndr_flags
& NDR_SCALARS
) {
8795 NDR_CHECK(ndr_push_align(ndr
, 8));
8796 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
8797 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_name
));
8798 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->architecture
));
8799 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->driver_path
));
8800 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->data_file
));
8801 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->config_file
));
8802 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->help_file
));
8803 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->monitor_name
));
8804 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->default_datatype
));
8805 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->dependent_files
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8806 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->dependent_files
));
8807 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->previous_names
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8808 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->previous_names
));
8809 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
8810 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
8811 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_name
));
8812 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->manufacturer_url
));
8813 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->hardware_id
));
8814 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->provider
));
8815 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->print_processor
));
8816 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->vendor_setup
));
8817 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->color_profiles
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8818 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->color_profiles
));
8819 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->inf_path
));
8820 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
8821 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ((ndr_size_spoolss_StringArray(r
->core_driver_dependencies
, ndr
->iconv_convenience
, ndr
->flags
) - 4) / 2)));
8822 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->core_driver_dependencies
));
8823 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
8824 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
8826 if (ndr_flags
& NDR_BUFFERS
) {
8827 if (r
->driver_name
) {
8828 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8829 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8830 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_name
, CH_UTF16
)));
8831 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_name
, ndr_charset_length(r
->driver_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8833 if (r
->architecture
) {
8834 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8835 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8836 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->architecture
, CH_UTF16
)));
8837 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->architecture
, ndr_charset_length(r
->architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8839 if (r
->driver_path
) {
8840 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8841 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8842 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->driver_path
, CH_UTF16
)));
8843 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->driver_path
, ndr_charset_length(r
->driver_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8846 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8847 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8848 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->data_file
, CH_UTF16
)));
8849 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->data_file
, ndr_charset_length(r
->data_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8851 if (r
->config_file
) {
8852 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8853 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8854 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->config_file
, CH_UTF16
)));
8855 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->config_file
, ndr_charset_length(r
->config_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8858 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8859 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8860 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->help_file
, CH_UTF16
)));
8861 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->help_file
, ndr_charset_length(r
->help_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8863 if (r
->monitor_name
) {
8864 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8865 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8866 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->monitor_name
, CH_UTF16
)));
8867 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->monitor_name
, ndr_charset_length(r
->monitor_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8869 if (r
->default_datatype
) {
8870 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8871 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8872 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->default_datatype
, CH_UTF16
)));
8873 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->default_datatype
, ndr_charset_length(r
->default_datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8875 if (r
->dependent_files
) {
8876 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
8878 if (r
->previous_names
) {
8879 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
8881 if (r
->manufacturer_name
) {
8882 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8883 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8884 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
)));
8885 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_name
, ndr_charset_length(r
->manufacturer_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8887 if (r
->manufacturer_url
) {
8888 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8889 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8890 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
)));
8891 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->manufacturer_url
, ndr_charset_length(r
->manufacturer_url
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8893 if (r
->hardware_id
) {
8894 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8895 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8896 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->hardware_id
, CH_UTF16
)));
8897 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_id
, ndr_charset_length(r
->hardware_id
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8900 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8901 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8902 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->provider
, CH_UTF16
)));
8903 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->provider
, ndr_charset_length(r
->provider
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8905 if (r
->print_processor
) {
8906 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
8907 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8908 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->print_processor
, CH_UTF16
)));
8909 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->print_processor
, ndr_charset_length(r
->print_processor
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8911 if (r
->vendor_setup
) {
8912 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
8913 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8914 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
)));
8915 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->vendor_setup
, ndr_charset_length(r
->vendor_setup
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8917 if (r
->color_profiles
) {
8918 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
8921 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
8922 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
8923 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->inf_path
, CH_UTF16
)));
8924 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->inf_path
, ndr_charset_length(r
->inf_path
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
8926 if (r
->core_driver_dependencies
) {
8927 NDR_CHECK(ndr_push_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
8930 return NDR_ERR_SUCCESS
;
8933 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfo8
*r
)
8935 uint32_t _ptr_driver_name
;
8936 TALLOC_CTX
*_mem_save_driver_name_0
;
8937 uint32_t _ptr_architecture
;
8938 TALLOC_CTX
*_mem_save_architecture_0
;
8939 uint32_t _ptr_driver_path
;
8940 TALLOC_CTX
*_mem_save_driver_path_0
;
8941 uint32_t _ptr_data_file
;
8942 TALLOC_CTX
*_mem_save_data_file_0
;
8943 uint32_t _ptr_config_file
;
8944 TALLOC_CTX
*_mem_save_config_file_0
;
8945 uint32_t _ptr_help_file
;
8946 TALLOC_CTX
*_mem_save_help_file_0
;
8947 uint32_t _ptr_monitor_name
;
8948 TALLOC_CTX
*_mem_save_monitor_name_0
;
8949 uint32_t _ptr_default_datatype
;
8950 TALLOC_CTX
*_mem_save_default_datatype_0
;
8951 uint32_t _ptr_dependent_files
;
8952 TALLOC_CTX
*_mem_save_dependent_files_0
;
8953 uint32_t _ptr_previous_names
;
8954 TALLOC_CTX
*_mem_save_previous_names_0
;
8955 uint32_t _ptr_manufacturer_name
;
8956 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
8957 uint32_t _ptr_manufacturer_url
;
8958 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
8959 uint32_t _ptr_hardware_id
;
8960 TALLOC_CTX
*_mem_save_hardware_id_0
;
8961 uint32_t _ptr_provider
;
8962 TALLOC_CTX
*_mem_save_provider_0
;
8963 uint32_t _ptr_print_processor
;
8964 TALLOC_CTX
*_mem_save_print_processor_0
;
8965 uint32_t _ptr_vendor_setup
;
8966 TALLOC_CTX
*_mem_save_vendor_setup_0
;
8967 uint32_t _ptr_color_profiles
;
8968 TALLOC_CTX
*_mem_save_color_profiles_0
;
8969 uint32_t _ptr_inf_path
;
8970 TALLOC_CTX
*_mem_save_inf_path_0
;
8971 uint32_t _ptr_core_driver_dependencies
;
8972 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
8973 if (ndr_flags
& NDR_SCALARS
) {
8974 NDR_CHECK(ndr_pull_align(ndr
, 8));
8975 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
8976 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
8977 if (_ptr_driver_name
) {
8978 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
8980 r
->driver_name
= NULL
;
8982 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
8983 if (_ptr_architecture
) {
8984 NDR_PULL_ALLOC(ndr
, r
->architecture
);
8986 r
->architecture
= NULL
;
8988 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
8989 if (_ptr_driver_path
) {
8990 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
8992 r
->driver_path
= NULL
;
8994 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
8995 if (_ptr_data_file
) {
8996 NDR_PULL_ALLOC(ndr
, r
->data_file
);
8998 r
->data_file
= NULL
;
9000 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
9001 if (_ptr_config_file
) {
9002 NDR_PULL_ALLOC(ndr
, r
->config_file
);
9004 r
->config_file
= NULL
;
9006 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
9007 if (_ptr_help_file
) {
9008 NDR_PULL_ALLOC(ndr
, r
->help_file
);
9010 r
->help_file
= NULL
;
9012 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
9013 if (_ptr_monitor_name
) {
9014 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
9016 r
->monitor_name
= NULL
;
9018 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
9019 if (_ptr_default_datatype
) {
9020 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
9022 r
->default_datatype
= NULL
;
9024 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_dependent_files
));
9025 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
9026 if (_ptr_dependent_files
) {
9027 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
9029 r
->dependent_files
= NULL
;
9031 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_previous_names
));
9032 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
9033 if (_ptr_previous_names
) {
9034 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
9036 r
->previous_names
= NULL
;
9038 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
9039 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
9040 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
9041 if (_ptr_manufacturer_name
) {
9042 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
9044 r
->manufacturer_name
= NULL
;
9046 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
9047 if (_ptr_manufacturer_url
) {
9048 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
9050 r
->manufacturer_url
= NULL
;
9052 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
9053 if (_ptr_hardware_id
) {
9054 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
9056 r
->hardware_id
= NULL
;
9058 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
9059 if (_ptr_provider
) {
9060 NDR_PULL_ALLOC(ndr
, r
->provider
);
9064 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
9065 if (_ptr_print_processor
) {
9066 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
9068 r
->print_processor
= NULL
;
9070 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
9071 if (_ptr_vendor_setup
) {
9072 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
9074 r
->vendor_setup
= NULL
;
9076 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_color_profiles
));
9077 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
9078 if (_ptr_color_profiles
) {
9079 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
9081 r
->color_profiles
= NULL
;
9083 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
9084 if (_ptr_inf_path
) {
9085 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
9089 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
9090 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size_core_driver_dependencies
));
9091 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
9092 if (_ptr_core_driver_dependencies
) {
9093 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
9095 r
->core_driver_dependencies
= NULL
;
9097 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
9098 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
9100 if (ndr_flags
& NDR_BUFFERS
) {
9101 if (r
->driver_name
) {
9102 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9103 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9104 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_name
));
9105 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_name
));
9106 if (ndr_get_array_length(ndr
, &r
->driver_name
) > ndr_get_array_size(ndr
, &r
->driver_name
)) {
9107 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
));
9109 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t)));
9110 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_name
, ndr_get_array_length(ndr
, &r
->driver_name
), sizeof(uint16_t), CH_UTF16
));
9111 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9113 if (r
->architecture
) {
9114 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9115 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
9116 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->architecture
));
9117 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->architecture
));
9118 if (ndr_get_array_length(ndr
, &r
->architecture
) > ndr_get_array_size(ndr
, &r
->architecture
)) {
9119 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
));
9121 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t)));
9122 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->architecture
, ndr_get_array_length(ndr
, &r
->architecture
), sizeof(uint16_t), CH_UTF16
));
9123 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
9125 if (r
->driver_path
) {
9126 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9127 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
9128 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->driver_path
));
9129 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->driver_path
));
9130 if (ndr_get_array_length(ndr
, &r
->driver_path
) > ndr_get_array_size(ndr
, &r
->driver_path
)) {
9131 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
));
9133 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t)));
9134 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->driver_path
, ndr_get_array_length(ndr
, &r
->driver_path
), sizeof(uint16_t), CH_UTF16
));
9135 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
9138 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9139 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
9140 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->data_file
));
9141 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->data_file
));
9142 if (ndr_get_array_length(ndr
, &r
->data_file
) > ndr_get_array_size(ndr
, &r
->data_file
)) {
9143 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
));
9145 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t)));
9146 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->data_file
, ndr_get_array_length(ndr
, &r
->data_file
), sizeof(uint16_t), CH_UTF16
));
9147 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
9149 if (r
->config_file
) {
9150 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9151 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
9152 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->config_file
));
9153 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->config_file
));
9154 if (ndr_get_array_length(ndr
, &r
->config_file
) > ndr_get_array_size(ndr
, &r
->config_file
)) {
9155 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
));
9157 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t)));
9158 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->config_file
, ndr_get_array_length(ndr
, &r
->config_file
), sizeof(uint16_t), CH_UTF16
));
9159 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
9162 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9163 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
9164 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->help_file
));
9165 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->help_file
));
9166 if (ndr_get_array_length(ndr
, &r
->help_file
) > ndr_get_array_size(ndr
, &r
->help_file
)) {
9167 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
));
9169 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t)));
9170 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->help_file
, ndr_get_array_length(ndr
, &r
->help_file
), sizeof(uint16_t), CH_UTF16
));
9171 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
9173 if (r
->monitor_name
) {
9174 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9175 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
9176 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->monitor_name
));
9177 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->monitor_name
));
9178 if (ndr_get_array_length(ndr
, &r
->monitor_name
) > ndr_get_array_size(ndr
, &r
->monitor_name
)) {
9179 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
));
9181 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t)));
9182 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->monitor_name
, ndr_get_array_length(ndr
, &r
->monitor_name
), sizeof(uint16_t), CH_UTF16
));
9183 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
9185 if (r
->default_datatype
) {
9186 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9187 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
9188 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->default_datatype
));
9189 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->default_datatype
));
9190 if (ndr_get_array_length(ndr
, &r
->default_datatype
) > ndr_get_array_size(ndr
, &r
->default_datatype
)) {
9191 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
));
9193 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t)));
9194 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->default_datatype
, ndr_get_array_length(ndr
, &r
->default_datatype
), sizeof(uint16_t), CH_UTF16
));
9195 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
9197 if (r
->dependent_files
) {
9198 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9199 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
9200 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->dependent_files
));
9201 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
9203 if (r
->previous_names
) {
9204 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9205 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
9206 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->previous_names
));
9207 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
9209 if (r
->manufacturer_name
) {
9210 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9211 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
9212 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_name
));
9213 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_name
));
9214 if (ndr_get_array_length(ndr
, &r
->manufacturer_name
) > ndr_get_array_size(ndr
, &r
->manufacturer_name
)) {
9215 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
));
9217 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t)));
9218 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_name
, ndr_get_array_length(ndr
, &r
->manufacturer_name
), sizeof(uint16_t), CH_UTF16
));
9219 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
9221 if (r
->manufacturer_url
) {
9222 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9223 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
9224 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->manufacturer_url
));
9225 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->manufacturer_url
));
9226 if (ndr_get_array_length(ndr
, &r
->manufacturer_url
) > ndr_get_array_size(ndr
, &r
->manufacturer_url
)) {
9227 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
));
9229 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t)));
9230 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->manufacturer_url
, ndr_get_array_length(ndr
, &r
->manufacturer_url
), sizeof(uint16_t), CH_UTF16
));
9231 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
9233 if (r
->hardware_id
) {
9234 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9235 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
9236 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->hardware_id
));
9237 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->hardware_id
));
9238 if (ndr_get_array_length(ndr
, &r
->hardware_id
) > ndr_get_array_size(ndr
, &r
->hardware_id
)) {
9239 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
));
9241 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t)));
9242 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_id
, ndr_get_array_length(ndr
, &r
->hardware_id
), sizeof(uint16_t), CH_UTF16
));
9243 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
9246 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9247 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
9248 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->provider
));
9249 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->provider
));
9250 if (ndr_get_array_length(ndr
, &r
->provider
) > ndr_get_array_size(ndr
, &r
->provider
)) {
9251 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
));
9253 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t)));
9254 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->provider
, ndr_get_array_length(ndr
, &r
->provider
), sizeof(uint16_t), CH_UTF16
));
9255 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
9257 if (r
->print_processor
) {
9258 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9259 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
9260 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->print_processor
));
9261 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->print_processor
));
9262 if (ndr_get_array_length(ndr
, &r
->print_processor
) > ndr_get_array_size(ndr
, &r
->print_processor
)) {
9263 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
));
9265 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t)));
9266 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->print_processor
, ndr_get_array_length(ndr
, &r
->print_processor
), sizeof(uint16_t), CH_UTF16
));
9267 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
9269 if (r
->vendor_setup
) {
9270 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9271 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
9272 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->vendor_setup
));
9273 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->vendor_setup
));
9274 if (ndr_get_array_length(ndr
, &r
->vendor_setup
) > ndr_get_array_size(ndr
, &r
->vendor_setup
)) {
9275 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
));
9277 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t)));
9278 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->vendor_setup
, ndr_get_array_length(ndr
, &r
->vendor_setup
), sizeof(uint16_t), CH_UTF16
));
9279 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
9281 if (r
->color_profiles
) {
9282 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9283 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
9284 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->color_profiles
));
9285 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
9288 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9289 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
9290 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->inf_path
));
9291 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->inf_path
));
9292 if (ndr_get_array_length(ndr
, &r
->inf_path
) > ndr_get_array_size(ndr
, &r
->inf_path
)) {
9293 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
));
9295 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t)));
9296 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->inf_path
, ndr_get_array_length(ndr
, &r
->inf_path
), sizeof(uint16_t), CH_UTF16
));
9297 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
9299 if (r
->core_driver_dependencies
) {
9300 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9301 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
9302 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
9303 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
9306 return NDR_ERR_SUCCESS
;
9309 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfo8
*r
)
9311 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfo8");
9313 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
9314 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9316 if (r
->driver_name
) {
9317 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9320 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
9322 if (r
->architecture
) {
9323 ndr_print_string(ndr
, "architecture", r
->architecture
);
9326 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
9328 if (r
->driver_path
) {
9329 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
9332 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
9335 ndr_print_string(ndr
, "data_file", r
->data_file
);
9338 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
9340 if (r
->config_file
) {
9341 ndr_print_string(ndr
, "config_file", r
->config_file
);
9344 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
9347 ndr_print_string(ndr
, "help_file", r
->help_file
);
9350 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
9352 if (r
->monitor_name
) {
9353 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
9356 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
9358 if (r
->default_datatype
) {
9359 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
9362 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
);
9363 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
9365 if (r
->dependent_files
) {
9366 ndr_print_spoolss_StringArray(ndr
, "dependent_files", r
->dependent_files
);
9369 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
);
9370 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
9372 if (r
->previous_names
) {
9373 ndr_print_spoolss_StringArray(ndr
, "previous_names", r
->previous_names
);
9376 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
9377 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
9378 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
9380 if (r
->manufacturer_name
) {
9381 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
9384 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
9386 if (r
->manufacturer_url
) {
9387 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
9390 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
9392 if (r
->hardware_id
) {
9393 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
9396 ndr_print_ptr(ndr
, "provider", r
->provider
);
9399 ndr_print_string(ndr
, "provider", r
->provider
);
9402 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
9404 if (r
->print_processor
) {
9405 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
9408 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
9410 if (r
->vendor_setup
) {
9411 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
9414 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
);
9415 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
9417 if (r
->color_profiles
) {
9418 ndr_print_spoolss_StringArray(ndr
, "color_profiles", r
->color_profiles
);
9421 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
9424 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
9427 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
9428 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
);
9429 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
9431 if (r
->core_driver_dependencies
) {
9432 ndr_print_spoolss_StringArray(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
9435 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
9436 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
9440 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddDriverInfo
*r
)
9442 if (ndr_flags
& NDR_SCALARS
) {
9443 int level
= ndr_push_get_switch_value(ndr
, r
);
9444 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
9447 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
9451 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
9455 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info3
));
9459 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info4
));
9463 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info6
));
9467 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info8
));
9471 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
9474 if (ndr_flags
& NDR_BUFFERS
) {
9475 int level
= ndr_push_get_switch_value(ndr
, r
);
9479 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
9485 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
9491 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
9497 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
9503 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
9509 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
9514 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
9517 return NDR_ERR_SUCCESS
;
9520 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddDriverInfo
*r
)
9524 TALLOC_CTX
*_mem_save_info1_0
;
9525 TALLOC_CTX
*_mem_save_info2_0
;
9526 TALLOC_CTX
*_mem_save_info3_0
;
9527 TALLOC_CTX
*_mem_save_info4_0
;
9528 TALLOC_CTX
*_mem_save_info6_0
;
9529 TALLOC_CTX
*_mem_save_info8_0
;
9530 level
= ndr_pull_get_switch_value(ndr
, r
);
9531 if (ndr_flags
& NDR_SCALARS
) {
9532 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
9533 if (_level
!= level
) {
9534 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
9538 uint32_t _ptr_info1
;
9539 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
9541 NDR_PULL_ALLOC(ndr
, r
->info1
);
9548 uint32_t _ptr_info2
;
9549 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
9551 NDR_PULL_ALLOC(ndr
, r
->info2
);
9558 uint32_t _ptr_info3
;
9559 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info3
));
9561 NDR_PULL_ALLOC(ndr
, r
->info3
);
9568 uint32_t _ptr_info4
;
9569 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info4
));
9571 NDR_PULL_ALLOC(ndr
, r
->info4
);
9578 uint32_t _ptr_info6
;
9579 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info6
));
9581 NDR_PULL_ALLOC(ndr
, r
->info6
);
9588 uint32_t _ptr_info8
;
9589 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info8
));
9591 NDR_PULL_ALLOC(ndr
, r
->info8
);
9598 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
9601 if (ndr_flags
& NDR_BUFFERS
) {
9605 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9606 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
9607 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
9608 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
9614 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9615 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
9616 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
9617 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
9623 _mem_save_info3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9624 NDR_PULL_SET_MEM_CTX(ndr
, r
->info3
, 0);
9625 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info3
));
9626 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info3_0
, 0);
9632 _mem_save_info4_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9633 NDR_PULL_SET_MEM_CTX(ndr
, r
->info4
, 0);
9634 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info4
));
9635 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info4_0
, 0);
9641 _mem_save_info6_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9642 NDR_PULL_SET_MEM_CTX(ndr
, r
->info6
, 0);
9643 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info6
));
9644 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info6_0
, 0);
9650 _mem_save_info8_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9651 NDR_PULL_SET_MEM_CTX(ndr
, r
->info8
, 0);
9652 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info8
));
9653 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info8_0
, 0);
9658 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
9661 return NDR_ERR_SUCCESS
;
9664 _PUBLIC_
void ndr_print_spoolss_AddDriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddDriverInfo
*r
)
9667 level
= ndr_print_get_switch_value(ndr
, r
);
9668 ndr_print_union(ndr
, name
, level
, "spoolss_AddDriverInfo");
9671 ndr_print_ptr(ndr
, "info1", r
->info1
);
9674 ndr_print_spoolss_AddDriverInfo1(ndr
, "info1", r
->info1
);
9680 ndr_print_ptr(ndr
, "info2", r
->info2
);
9683 ndr_print_spoolss_AddDriverInfo2(ndr
, "info2", r
->info2
);
9689 ndr_print_ptr(ndr
, "info3", r
->info3
);
9692 ndr_print_spoolss_AddDriverInfo3(ndr
, "info3", r
->info3
);
9698 ndr_print_ptr(ndr
, "info4", r
->info4
);
9701 ndr_print_spoolss_AddDriverInfo4(ndr
, "info4", r
->info4
);
9707 ndr_print_ptr(ndr
, "info6", r
->info6
);
9710 ndr_print_spoolss_AddDriverInfo6(ndr
, "info6", r
->info6
);
9716 ndr_print_ptr(ndr
, "info8", r
->info8
);
9719 ndr_print_spoolss_AddDriverInfo8(ndr
, "info8", r
->info8
);
9725 ndr_print_bad_level(ndr
, name
, level
);
9729 static enum ndr_err_code
ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddDriverInfoCtr
*r
)
9731 if (ndr_flags
& NDR_SCALARS
) {
9732 NDR_CHECK(ndr_push_align(ndr
, 4));
9733 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
9734 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->info
, r
->level
));
9735 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
9737 if (ndr_flags
& NDR_BUFFERS
) {
9738 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
9740 return NDR_ERR_SUCCESS
;
9743 static enum ndr_err_code
ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddDriverInfoCtr
*r
)
9745 if (ndr_flags
& NDR_SCALARS
) {
9746 NDR_CHECK(ndr_pull_align(ndr
, 4));
9747 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
9748 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->info
, r
->level
));
9749 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_SCALARS
, &r
->info
));
9751 if (ndr_flags
& NDR_BUFFERS
) {
9752 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr
, NDR_BUFFERS
, &r
->info
));
9754 return NDR_ERR_SUCCESS
;
9757 _PUBLIC_
void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddDriverInfoCtr
*r
)
9759 ndr_print_struct(ndr
, name
, "spoolss_AddDriverInfoCtr");
9761 ndr_print_uint32(ndr
, "level", r
->level
);
9762 ndr_print_set_switch_value(ndr
, &r
->info
, r
->level
);
9763 ndr_print_spoolss_AddDriverInfo(ndr
, "info", &r
->info
);
9767 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo1
*r
)
9769 if (ndr_flags
& NDR_SCALARS
) {
9770 NDR_CHECK(ndr_push_align(ndr
, 4));
9772 uint32_t _flags_save_string
= ndr
->flags
;
9773 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9774 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
9775 ndr
->flags
= _flags_save_string
;
9778 if (ndr_flags
& NDR_BUFFERS
) {
9780 uint32_t _flags_save_string
= ndr
->flags
;
9781 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9782 if (r
->driver_name
) {
9783 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
9784 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
9786 ndr
->flags
= _flags_save_string
;
9789 return NDR_ERR_SUCCESS
;
9792 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo1
*r
)
9794 uint32_t _ptr_driver_name
;
9795 TALLOC_CTX
*_mem_save_driver_name_0
;
9796 if (ndr_flags
& NDR_SCALARS
) {
9797 NDR_CHECK(ndr_pull_align(ndr
, 4));
9799 uint32_t _flags_save_string
= ndr
->flags
;
9800 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9801 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9802 if (_ptr_driver_name
) {
9803 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9804 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
9806 r
->driver_name
= NULL
;
9808 ndr
->flags
= _flags_save_string
;
9811 if (ndr_flags
& NDR_BUFFERS
) {
9813 uint32_t _flags_save_string
= ndr
->flags
;
9814 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9815 if (r
->driver_name
) {
9816 uint32_t _relative_save_offset
;
9817 _relative_save_offset
= ndr
->offset
;
9818 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
9819 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
9820 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
9821 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
9822 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
9823 ndr
->offset
= _relative_save_offset
;
9825 ndr
->flags
= _flags_save_string
;
9828 return NDR_ERR_SUCCESS
;
9831 _PUBLIC_
void ndr_print_spoolss_DriverInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo1
*r
)
9833 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo1");
9835 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
9837 if (r
->driver_name
) {
9838 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
9844 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
9846 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo1
, ic
);
9849 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo2
*r
)
9851 if (ndr_flags
& NDR_SCALARS
) {
9852 NDR_CHECK(ndr_push_align(ndr
, 4));
9853 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
9855 uint32_t _flags_save_string
= ndr
->flags
;
9856 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9857 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
9858 ndr
->flags
= _flags_save_string
;
9861 uint32_t _flags_save_string
= ndr
->flags
;
9862 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9863 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
9864 ndr
->flags
= _flags_save_string
;
9867 uint32_t _flags_save_string
= ndr
->flags
;
9868 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9869 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
9870 ndr
->flags
= _flags_save_string
;
9873 uint32_t _flags_save_string
= ndr
->flags
;
9874 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9875 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
9876 ndr
->flags
= _flags_save_string
;
9879 uint32_t _flags_save_string
= ndr
->flags
;
9880 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9881 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
9882 ndr
->flags
= _flags_save_string
;
9885 if (ndr_flags
& NDR_BUFFERS
) {
9887 uint32_t _flags_save_string
= ndr
->flags
;
9888 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9889 if (r
->driver_name
) {
9890 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
9891 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
9893 ndr
->flags
= _flags_save_string
;
9896 uint32_t _flags_save_string
= ndr
->flags
;
9897 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9898 if (r
->architecture
) {
9899 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
9900 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
9902 ndr
->flags
= _flags_save_string
;
9905 uint32_t _flags_save_string
= ndr
->flags
;
9906 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9907 if (r
->driver_path
) {
9908 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
9909 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
9911 ndr
->flags
= _flags_save_string
;
9914 uint32_t _flags_save_string
= ndr
->flags
;
9915 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9917 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
9918 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
9920 ndr
->flags
= _flags_save_string
;
9923 uint32_t _flags_save_string
= ndr
->flags
;
9924 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9925 if (r
->config_file
) {
9926 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
9927 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
9929 ndr
->flags
= _flags_save_string
;
9932 return NDR_ERR_SUCCESS
;
9935 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo2
*r
)
9937 uint32_t _ptr_driver_name
;
9938 TALLOC_CTX
*_mem_save_driver_name_0
;
9939 uint32_t _ptr_architecture
;
9940 TALLOC_CTX
*_mem_save_architecture_0
;
9941 uint32_t _ptr_driver_path
;
9942 TALLOC_CTX
*_mem_save_driver_path_0
;
9943 uint32_t _ptr_data_file
;
9944 TALLOC_CTX
*_mem_save_data_file_0
;
9945 uint32_t _ptr_config_file
;
9946 TALLOC_CTX
*_mem_save_config_file_0
;
9947 if (ndr_flags
& NDR_SCALARS
) {
9948 NDR_CHECK(ndr_pull_align(ndr
, 4));
9949 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
9951 uint32_t _flags_save_string
= ndr
->flags
;
9952 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9953 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
9954 if (_ptr_driver_name
) {
9955 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
9956 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
9958 r
->driver_name
= NULL
;
9960 ndr
->flags
= _flags_save_string
;
9963 uint32_t _flags_save_string
= ndr
->flags
;
9964 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9965 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
9966 if (_ptr_architecture
) {
9967 NDR_PULL_ALLOC(ndr
, r
->architecture
);
9968 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
9970 r
->architecture
= NULL
;
9972 ndr
->flags
= _flags_save_string
;
9975 uint32_t _flags_save_string
= ndr
->flags
;
9976 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
9977 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
9978 if (_ptr_driver_path
) {
9979 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
9980 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
9982 r
->driver_path
= NULL
;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
9990 if (_ptr_data_file
) {
9991 NDR_PULL_ALLOC(ndr
, r
->data_file
);
9992 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
9994 r
->data_file
= NULL
;
9996 ndr
->flags
= _flags_save_string
;
9999 uint32_t _flags_save_string
= ndr
->flags
;
10000 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10001 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10002 if (_ptr_config_file
) {
10003 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10004 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10006 r
->config_file
= NULL
;
10008 ndr
->flags
= _flags_save_string
;
10011 if (ndr_flags
& NDR_BUFFERS
) {
10013 uint32_t _flags_save_string
= ndr
->flags
;
10014 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10015 if (r
->driver_name
) {
10016 uint32_t _relative_save_offset
;
10017 _relative_save_offset
= ndr
->offset
;
10018 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10019 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10020 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10021 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10022 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10023 ndr
->offset
= _relative_save_offset
;
10025 ndr
->flags
= _flags_save_string
;
10028 uint32_t _flags_save_string
= ndr
->flags
;
10029 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10030 if (r
->architecture
) {
10031 uint32_t _relative_save_offset
;
10032 _relative_save_offset
= ndr
->offset
;
10033 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
10034 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10035 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10036 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
10037 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10038 ndr
->offset
= _relative_save_offset
;
10040 ndr
->flags
= _flags_save_string
;
10043 uint32_t _flags_save_string
= ndr
->flags
;
10044 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10045 if (r
->driver_path
) {
10046 uint32_t _relative_save_offset
;
10047 _relative_save_offset
= ndr
->offset
;
10048 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
10049 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10050 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10051 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
10052 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10053 ndr
->offset
= _relative_save_offset
;
10055 ndr
->flags
= _flags_save_string
;
10058 uint32_t _flags_save_string
= ndr
->flags
;
10059 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10060 if (r
->data_file
) {
10061 uint32_t _relative_save_offset
;
10062 _relative_save_offset
= ndr
->offset
;
10063 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
10064 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10065 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10066 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
10067 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10068 ndr
->offset
= _relative_save_offset
;
10070 ndr
->flags
= _flags_save_string
;
10073 uint32_t _flags_save_string
= ndr
->flags
;
10074 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10075 if (r
->config_file
) {
10076 uint32_t _relative_save_offset
;
10077 _relative_save_offset
= ndr
->offset
;
10078 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
10079 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10080 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10081 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
10082 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10083 ndr
->offset
= _relative_save_offset
;
10085 ndr
->flags
= _flags_save_string
;
10088 return NDR_ERR_SUCCESS
;
10091 _PUBLIC_
void ndr_print_spoolss_DriverInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo2
*r
)
10093 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo2");
10095 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10096 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10098 if (r
->driver_name
) {
10099 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10102 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10104 if (r
->architecture
) {
10105 ndr_print_string(ndr
, "architecture", r
->architecture
);
10108 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10110 if (r
->driver_path
) {
10111 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10114 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10116 if (r
->data_file
) {
10117 ndr_print_string(ndr
, "data_file", r
->data_file
);
10120 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10122 if (r
->config_file
) {
10123 ndr_print_string(ndr
, "config_file", r
->config_file
);
10129 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10131 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo2
, ic
);
10134 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo3
*r
)
10136 if (ndr_flags
& NDR_SCALARS
) {
10137 NDR_CHECK(ndr_push_align(ndr
, 4));
10138 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10140 uint32_t _flags_save_string
= ndr
->flags
;
10141 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10142 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10143 ndr
->flags
= _flags_save_string
;
10146 uint32_t _flags_save_string
= ndr
->flags
;
10147 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10148 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10149 ndr
->flags
= _flags_save_string
;
10152 uint32_t _flags_save_string
= ndr
->flags
;
10153 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10154 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10155 ndr
->flags
= _flags_save_string
;
10158 uint32_t _flags_save_string
= ndr
->flags
;
10159 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10160 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10167 ndr
->flags
= _flags_save_string
;
10170 uint32_t _flags_save_string
= ndr
->flags
;
10171 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10172 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
10173 ndr
->flags
= _flags_save_string
;
10176 uint32_t _flags_save_string_array
= ndr
->flags
;
10177 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10178 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
10179 ndr
->flags
= _flags_save_string_array
;
10182 uint32_t _flags_save_string
= ndr
->flags
;
10183 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10184 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
10185 ndr
->flags
= _flags_save_string
;
10188 uint32_t _flags_save_string
= ndr
->flags
;
10189 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10190 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
10191 ndr
->flags
= _flags_save_string
;
10194 if (ndr_flags
& NDR_BUFFERS
) {
10196 uint32_t _flags_save_string
= ndr
->flags
;
10197 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10198 if (r
->driver_name
) {
10199 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10200 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10202 ndr
->flags
= _flags_save_string
;
10205 uint32_t _flags_save_string
= ndr
->flags
;
10206 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10207 if (r
->architecture
) {
10208 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
10209 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10211 ndr
->flags
= _flags_save_string
;
10214 uint32_t _flags_save_string
= ndr
->flags
;
10215 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10216 if (r
->driver_path
) {
10217 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
10218 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10220 ndr
->flags
= _flags_save_string
;
10223 uint32_t _flags_save_string
= ndr
->flags
;
10224 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10225 if (r
->data_file
) {
10226 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
10227 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10229 ndr
->flags
= _flags_save_string
;
10232 uint32_t _flags_save_string
= ndr
->flags
;
10233 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10234 if (r
->config_file
) {
10235 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
10236 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10238 ndr
->flags
= _flags_save_string
;
10241 uint32_t _flags_save_string
= ndr
->flags
;
10242 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10243 if (r
->help_file
) {
10244 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
10245 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
10247 ndr
->flags
= _flags_save_string
;
10250 uint32_t _flags_save_string_array
= ndr
->flags
;
10251 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10252 if (r
->dependent_files
) {
10253 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
10254 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
10256 ndr
->flags
= _flags_save_string_array
;
10259 uint32_t _flags_save_string
= ndr
->flags
;
10260 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10261 if (r
->monitor_name
) {
10262 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
10263 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
10265 ndr
->flags
= _flags_save_string
;
10268 uint32_t _flags_save_string
= ndr
->flags
;
10269 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10270 if (r
->default_datatype
) {
10271 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
10272 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
10274 ndr
->flags
= _flags_save_string
;
10277 return NDR_ERR_SUCCESS
;
10280 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo3
*r
)
10282 uint32_t _ptr_driver_name
;
10283 TALLOC_CTX
*_mem_save_driver_name_0
;
10284 uint32_t _ptr_architecture
;
10285 TALLOC_CTX
*_mem_save_architecture_0
;
10286 uint32_t _ptr_driver_path
;
10287 TALLOC_CTX
*_mem_save_driver_path_0
;
10288 uint32_t _ptr_data_file
;
10289 TALLOC_CTX
*_mem_save_data_file_0
;
10290 uint32_t _ptr_config_file
;
10291 TALLOC_CTX
*_mem_save_config_file_0
;
10292 uint32_t _ptr_help_file
;
10293 TALLOC_CTX
*_mem_save_help_file_0
;
10294 uint32_t _ptr_dependent_files
;
10295 TALLOC_CTX
*_mem_save_dependent_files_0
;
10296 uint32_t _ptr_monitor_name
;
10297 TALLOC_CTX
*_mem_save_monitor_name_0
;
10298 uint32_t _ptr_default_datatype
;
10299 TALLOC_CTX
*_mem_save_default_datatype_0
;
10300 if (ndr_flags
& NDR_SCALARS
) {
10301 NDR_CHECK(ndr_pull_align(ndr
, 4));
10302 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10304 uint32_t _flags_save_string
= ndr
->flags
;
10305 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10306 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10307 if (_ptr_driver_name
) {
10308 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10309 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10311 r
->driver_name
= NULL
;
10313 ndr
->flags
= _flags_save_string
;
10316 uint32_t _flags_save_string
= ndr
->flags
;
10317 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10318 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10319 if (_ptr_architecture
) {
10320 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10321 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10323 r
->architecture
= NULL
;
10325 ndr
->flags
= _flags_save_string
;
10328 uint32_t _flags_save_string
= ndr
->flags
;
10329 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10330 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10331 if (_ptr_driver_path
) {
10332 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10333 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10335 r
->driver_path
= NULL
;
10337 ndr
->flags
= _flags_save_string
;
10340 uint32_t _flags_save_string
= ndr
->flags
;
10341 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10342 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10343 if (_ptr_data_file
) {
10344 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10345 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10347 r
->data_file
= NULL
;
10349 ndr
->flags
= _flags_save_string
;
10352 uint32_t _flags_save_string
= ndr
->flags
;
10353 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10354 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10355 if (_ptr_config_file
) {
10356 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10357 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10359 r
->config_file
= NULL
;
10361 ndr
->flags
= _flags_save_string
;
10364 uint32_t _flags_save_string
= ndr
->flags
;
10365 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10366 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
10367 if (_ptr_help_file
) {
10368 NDR_PULL_ALLOC(ndr
, r
->help_file
);
10369 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
10371 r
->help_file
= NULL
;
10373 ndr
->flags
= _flags_save_string
;
10376 uint32_t _flags_save_string_array
= ndr
->flags
;
10377 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10378 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
10379 if (_ptr_dependent_files
) {
10380 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
10381 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
10383 r
->dependent_files
= NULL
;
10385 ndr
->flags
= _flags_save_string_array
;
10388 uint32_t _flags_save_string
= ndr
->flags
;
10389 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10390 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
10391 if (_ptr_monitor_name
) {
10392 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
10393 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
10395 r
->monitor_name
= NULL
;
10397 ndr
->flags
= _flags_save_string
;
10400 uint32_t _flags_save_string
= ndr
->flags
;
10401 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10402 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
10403 if (_ptr_default_datatype
) {
10404 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
10405 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
10407 r
->default_datatype
= NULL
;
10409 ndr
->flags
= _flags_save_string
;
10412 if (ndr_flags
& NDR_BUFFERS
) {
10414 uint32_t _flags_save_string
= ndr
->flags
;
10415 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10416 if (r
->driver_name
) {
10417 uint32_t _relative_save_offset
;
10418 _relative_save_offset
= ndr
->offset
;
10419 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10420 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10421 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10422 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10423 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10424 ndr
->offset
= _relative_save_offset
;
10426 ndr
->flags
= _flags_save_string
;
10429 uint32_t _flags_save_string
= ndr
->flags
;
10430 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10431 if (r
->architecture
) {
10432 uint32_t _relative_save_offset
;
10433 _relative_save_offset
= ndr
->offset
;
10434 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
10435 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10436 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10437 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
10438 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10439 ndr
->offset
= _relative_save_offset
;
10441 ndr
->flags
= _flags_save_string
;
10444 uint32_t _flags_save_string
= ndr
->flags
;
10445 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10446 if (r
->driver_path
) {
10447 uint32_t _relative_save_offset
;
10448 _relative_save_offset
= ndr
->offset
;
10449 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
10450 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10451 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10452 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
10453 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10454 ndr
->offset
= _relative_save_offset
;
10456 ndr
->flags
= _flags_save_string
;
10459 uint32_t _flags_save_string
= ndr
->flags
;
10460 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10461 if (r
->data_file
) {
10462 uint32_t _relative_save_offset
;
10463 _relative_save_offset
= ndr
->offset
;
10464 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
10465 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10466 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10467 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
10468 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10469 ndr
->offset
= _relative_save_offset
;
10471 ndr
->flags
= _flags_save_string
;
10474 uint32_t _flags_save_string
= ndr
->flags
;
10475 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10476 if (r
->config_file
) {
10477 uint32_t _relative_save_offset
;
10478 _relative_save_offset
= ndr
->offset
;
10479 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
10480 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10481 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10482 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
10483 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10484 ndr
->offset
= _relative_save_offset
;
10486 ndr
->flags
= _flags_save_string
;
10489 uint32_t _flags_save_string
= ndr
->flags
;
10490 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10491 if (r
->help_file
) {
10492 uint32_t _relative_save_offset
;
10493 _relative_save_offset
= ndr
->offset
;
10494 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
10495 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10496 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
10497 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
10498 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
10499 ndr
->offset
= _relative_save_offset
;
10501 ndr
->flags
= _flags_save_string
;
10504 uint32_t _flags_save_string_array
= ndr
->flags
;
10505 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10506 if (r
->dependent_files
) {
10507 uint32_t _relative_save_offset
;
10508 _relative_save_offset
= ndr
->offset
;
10509 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
10510 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10511 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
10512 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
10513 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
10514 ndr
->offset
= _relative_save_offset
;
10516 ndr
->flags
= _flags_save_string_array
;
10519 uint32_t _flags_save_string
= ndr
->flags
;
10520 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10521 if (r
->monitor_name
) {
10522 uint32_t _relative_save_offset
;
10523 _relative_save_offset
= ndr
->offset
;
10524 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
10525 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10526 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
10527 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
10528 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
10529 ndr
->offset
= _relative_save_offset
;
10531 ndr
->flags
= _flags_save_string
;
10534 uint32_t _flags_save_string
= ndr
->flags
;
10535 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10536 if (r
->default_datatype
) {
10537 uint32_t _relative_save_offset
;
10538 _relative_save_offset
= ndr
->offset
;
10539 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
10540 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10541 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
10542 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
10543 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
10544 ndr
->offset
= _relative_save_offset
;
10546 ndr
->flags
= _flags_save_string
;
10549 return NDR_ERR_SUCCESS
;
10552 _PUBLIC_
void ndr_print_spoolss_DriverInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo3
*r
)
10554 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo3");
10556 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
10557 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
10559 if (r
->driver_name
) {
10560 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
10563 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
10565 if (r
->architecture
) {
10566 ndr_print_string(ndr
, "architecture", r
->architecture
);
10569 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
10571 if (r
->driver_path
) {
10572 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
10575 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
10577 if (r
->data_file
) {
10578 ndr_print_string(ndr
, "data_file", r
->data_file
);
10581 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
10583 if (r
->config_file
) {
10584 ndr_print_string(ndr
, "config_file", r
->config_file
);
10587 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
10589 if (r
->help_file
) {
10590 ndr_print_string(ndr
, "help_file", r
->help_file
);
10593 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
10595 if (r
->dependent_files
) {
10596 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
10599 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
10601 if (r
->monitor_name
) {
10602 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
10605 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
10607 if (r
->default_datatype
) {
10608 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
10614 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
10616 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo3
, ic
);
10619 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo4(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo4
*r
)
10621 if (ndr_flags
& NDR_SCALARS
) {
10622 NDR_CHECK(ndr_push_align(ndr
, 4));
10623 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
10625 uint32_t _flags_save_string
= ndr
->flags
;
10626 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10627 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
10628 ndr
->flags
= _flags_save_string
;
10631 uint32_t _flags_save_string
= ndr
->flags
;
10632 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10633 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
10634 ndr
->flags
= _flags_save_string
;
10637 uint32_t _flags_save_string
= ndr
->flags
;
10638 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10639 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
10640 ndr
->flags
= _flags_save_string
;
10643 uint32_t _flags_save_string
= ndr
->flags
;
10644 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10645 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
10646 ndr
->flags
= _flags_save_string
;
10649 uint32_t _flags_save_string
= ndr
->flags
;
10650 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10651 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
10652 ndr
->flags
= _flags_save_string
;
10655 uint32_t _flags_save_string
= ndr
->flags
;
10656 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10657 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
10658 ndr
->flags
= _flags_save_string
;
10661 uint32_t _flags_save_string_array
= ndr
->flags
;
10662 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10663 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
10664 ndr
->flags
= _flags_save_string_array
;
10667 uint32_t _flags_save_string
= ndr
->flags
;
10668 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10669 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
10670 ndr
->flags
= _flags_save_string
;
10673 uint32_t _flags_save_string
= ndr
->flags
;
10674 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10675 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
10676 ndr
->flags
= _flags_save_string
;
10679 uint32_t _flags_save_string_array
= ndr
->flags
;
10680 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10681 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
10682 ndr
->flags
= _flags_save_string_array
;
10685 if (ndr_flags
& NDR_BUFFERS
) {
10687 uint32_t _flags_save_string
= ndr
->flags
;
10688 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10689 if (r
->driver_name
) {
10690 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
10691 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
10693 ndr
->flags
= _flags_save_string
;
10696 uint32_t _flags_save_string
= ndr
->flags
;
10697 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10698 if (r
->architecture
) {
10699 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
10700 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
10702 ndr
->flags
= _flags_save_string
;
10705 uint32_t _flags_save_string
= ndr
->flags
;
10706 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10707 if (r
->driver_path
) {
10708 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
10709 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
10711 ndr
->flags
= _flags_save_string
;
10714 uint32_t _flags_save_string
= ndr
->flags
;
10715 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10716 if (r
->data_file
) {
10717 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
10718 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
10720 ndr
->flags
= _flags_save_string
;
10723 uint32_t _flags_save_string
= ndr
->flags
;
10724 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10725 if (r
->config_file
) {
10726 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
10727 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
10729 ndr
->flags
= _flags_save_string
;
10732 uint32_t _flags_save_string
= ndr
->flags
;
10733 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10734 if (r
->help_file
) {
10735 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
10736 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
10738 ndr
->flags
= _flags_save_string
;
10741 uint32_t _flags_save_string_array
= ndr
->flags
;
10742 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10743 if (r
->dependent_files
) {
10744 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
10745 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
10747 ndr
->flags
= _flags_save_string_array
;
10750 uint32_t _flags_save_string
= ndr
->flags
;
10751 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10752 if (r
->monitor_name
) {
10753 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
10754 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
10756 ndr
->flags
= _flags_save_string
;
10759 uint32_t _flags_save_string
= ndr
->flags
;
10760 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10761 if (r
->default_datatype
) {
10762 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
10763 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
10765 ndr
->flags
= _flags_save_string
;
10768 uint32_t _flags_save_string_array
= ndr
->flags
;
10769 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10770 if (r
->previous_names
) {
10771 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
10772 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
10774 ndr
->flags
= _flags_save_string_array
;
10777 return NDR_ERR_SUCCESS
;
10780 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo4(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo4
*r
)
10782 uint32_t _ptr_driver_name
;
10783 TALLOC_CTX
*_mem_save_driver_name_0
;
10784 uint32_t _ptr_architecture
;
10785 TALLOC_CTX
*_mem_save_architecture_0
;
10786 uint32_t _ptr_driver_path
;
10787 TALLOC_CTX
*_mem_save_driver_path_0
;
10788 uint32_t _ptr_data_file
;
10789 TALLOC_CTX
*_mem_save_data_file_0
;
10790 uint32_t _ptr_config_file
;
10791 TALLOC_CTX
*_mem_save_config_file_0
;
10792 uint32_t _ptr_help_file
;
10793 TALLOC_CTX
*_mem_save_help_file_0
;
10794 uint32_t _ptr_dependent_files
;
10795 TALLOC_CTX
*_mem_save_dependent_files_0
;
10796 uint32_t _ptr_monitor_name
;
10797 TALLOC_CTX
*_mem_save_monitor_name_0
;
10798 uint32_t _ptr_default_datatype
;
10799 TALLOC_CTX
*_mem_save_default_datatype_0
;
10800 uint32_t _ptr_previous_names
;
10801 TALLOC_CTX
*_mem_save_previous_names_0
;
10802 if (ndr_flags
& NDR_SCALARS
) {
10803 NDR_CHECK(ndr_pull_align(ndr
, 4));
10804 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
10806 uint32_t _flags_save_string
= ndr
->flags
;
10807 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10808 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
10809 if (_ptr_driver_name
) {
10810 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
10811 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
10813 r
->driver_name
= NULL
;
10815 ndr
->flags
= _flags_save_string
;
10818 uint32_t _flags_save_string
= ndr
->flags
;
10819 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10820 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
10821 if (_ptr_architecture
) {
10822 NDR_PULL_ALLOC(ndr
, r
->architecture
);
10823 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
10825 r
->architecture
= NULL
;
10827 ndr
->flags
= _flags_save_string
;
10830 uint32_t _flags_save_string
= ndr
->flags
;
10831 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10832 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
10833 if (_ptr_driver_path
) {
10834 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
10835 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
10837 r
->driver_path
= NULL
;
10839 ndr
->flags
= _flags_save_string
;
10842 uint32_t _flags_save_string
= ndr
->flags
;
10843 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10844 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
10845 if (_ptr_data_file
) {
10846 NDR_PULL_ALLOC(ndr
, r
->data_file
);
10847 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
10849 r
->data_file
= NULL
;
10851 ndr
->flags
= _flags_save_string
;
10854 uint32_t _flags_save_string
= ndr
->flags
;
10855 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10856 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
10857 if (_ptr_config_file
) {
10858 NDR_PULL_ALLOC(ndr
, r
->config_file
);
10859 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
10861 r
->config_file
= NULL
;
10863 ndr
->flags
= _flags_save_string
;
10866 uint32_t _flags_save_string
= ndr
->flags
;
10867 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10868 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
10869 if (_ptr_help_file
) {
10870 NDR_PULL_ALLOC(ndr
, r
->help_file
);
10871 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
10873 r
->help_file
= NULL
;
10875 ndr
->flags
= _flags_save_string
;
10878 uint32_t _flags_save_string_array
= ndr
->flags
;
10879 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10880 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
10881 if (_ptr_dependent_files
) {
10882 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
10883 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
10885 r
->dependent_files
= NULL
;
10887 ndr
->flags
= _flags_save_string_array
;
10890 uint32_t _flags_save_string
= ndr
->flags
;
10891 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10892 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
10893 if (_ptr_monitor_name
) {
10894 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
10895 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
10897 r
->monitor_name
= NULL
;
10899 ndr
->flags
= _flags_save_string
;
10902 uint32_t _flags_save_string
= ndr
->flags
;
10903 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10904 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
10905 if (_ptr_default_datatype
) {
10906 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
10907 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
10909 r
->default_datatype
= NULL
;
10911 ndr
->flags
= _flags_save_string
;
10914 uint32_t _flags_save_string_array
= ndr
->flags
;
10915 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10916 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
10917 if (_ptr_previous_names
) {
10918 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
10919 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
10921 r
->previous_names
= NULL
;
10923 ndr
->flags
= _flags_save_string_array
;
10926 if (ndr_flags
& NDR_BUFFERS
) {
10928 uint32_t _flags_save_string
= ndr
->flags
;
10929 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10930 if (r
->driver_name
) {
10931 uint32_t _relative_save_offset
;
10932 _relative_save_offset
= ndr
->offset
;
10933 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
10934 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10935 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
10936 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
10937 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
10938 ndr
->offset
= _relative_save_offset
;
10940 ndr
->flags
= _flags_save_string
;
10943 uint32_t _flags_save_string
= ndr
->flags
;
10944 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10945 if (r
->architecture
) {
10946 uint32_t _relative_save_offset
;
10947 _relative_save_offset
= ndr
->offset
;
10948 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
10949 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10950 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
10951 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
10952 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
10953 ndr
->offset
= _relative_save_offset
;
10955 ndr
->flags
= _flags_save_string
;
10958 uint32_t _flags_save_string
= ndr
->flags
;
10959 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10960 if (r
->driver_path
) {
10961 uint32_t _relative_save_offset
;
10962 _relative_save_offset
= ndr
->offset
;
10963 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
10964 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10965 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
10966 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
10967 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
10968 ndr
->offset
= _relative_save_offset
;
10970 ndr
->flags
= _flags_save_string
;
10973 uint32_t _flags_save_string
= ndr
->flags
;
10974 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10975 if (r
->data_file
) {
10976 uint32_t _relative_save_offset
;
10977 _relative_save_offset
= ndr
->offset
;
10978 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
10979 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10980 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
10981 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
10982 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
10983 ndr
->offset
= _relative_save_offset
;
10985 ndr
->flags
= _flags_save_string
;
10988 uint32_t _flags_save_string
= ndr
->flags
;
10989 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
10990 if (r
->config_file
) {
10991 uint32_t _relative_save_offset
;
10992 _relative_save_offset
= ndr
->offset
;
10993 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
10994 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
10995 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
10996 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
10997 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
10998 ndr
->offset
= _relative_save_offset
;
11000 ndr
->flags
= _flags_save_string
;
11003 uint32_t _flags_save_string
= ndr
->flags
;
11004 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11005 if (r
->help_file
) {
11006 uint32_t _relative_save_offset
;
11007 _relative_save_offset
= ndr
->offset
;
11008 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11009 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11010 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11011 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11012 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11013 ndr
->offset
= _relative_save_offset
;
11015 ndr
->flags
= _flags_save_string
;
11018 uint32_t _flags_save_string_array
= ndr
->flags
;
11019 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11020 if (r
->dependent_files
) {
11021 uint32_t _relative_save_offset
;
11022 _relative_save_offset
= ndr
->offset
;
11023 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11024 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11025 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11026 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11027 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11028 ndr
->offset
= _relative_save_offset
;
11030 ndr
->flags
= _flags_save_string_array
;
11033 uint32_t _flags_save_string
= ndr
->flags
;
11034 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11035 if (r
->monitor_name
) {
11036 uint32_t _relative_save_offset
;
11037 _relative_save_offset
= ndr
->offset
;
11038 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11039 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11040 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11041 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11042 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11043 ndr
->offset
= _relative_save_offset
;
11045 ndr
->flags
= _flags_save_string
;
11048 uint32_t _flags_save_string
= ndr
->flags
;
11049 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11050 if (r
->default_datatype
) {
11051 uint32_t _relative_save_offset
;
11052 _relative_save_offset
= ndr
->offset
;
11053 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
11054 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11055 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
11056 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
11057 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
11058 ndr
->offset
= _relative_save_offset
;
11060 ndr
->flags
= _flags_save_string
;
11063 uint32_t _flags_save_string_array
= ndr
->flags
;
11064 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11065 if (r
->previous_names
) {
11066 uint32_t _relative_save_offset
;
11067 _relative_save_offset
= ndr
->offset
;
11068 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
11069 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11070 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
11071 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
11072 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
11073 ndr
->offset
= _relative_save_offset
;
11075 ndr
->flags
= _flags_save_string_array
;
11078 return NDR_ERR_SUCCESS
;
11081 _PUBLIC_
void ndr_print_spoolss_DriverInfo4(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo4
*r
)
11083 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo4");
11085 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11086 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11088 if (r
->driver_name
) {
11089 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11092 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11094 if (r
->architecture
) {
11095 ndr_print_string(ndr
, "architecture", r
->architecture
);
11098 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11100 if (r
->driver_path
) {
11101 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11104 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11106 if (r
->data_file
) {
11107 ndr_print_string(ndr
, "data_file", r
->data_file
);
11110 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11112 if (r
->config_file
) {
11113 ndr_print_string(ndr
, "config_file", r
->config_file
);
11116 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
11118 if (r
->help_file
) {
11119 ndr_print_string(ndr
, "help_file", r
->help_file
);
11122 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
11124 if (r
->dependent_files
) {
11125 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
11128 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
11130 if (r
->monitor_name
) {
11131 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
11134 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
11136 if (r
->default_datatype
) {
11137 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
11140 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
11142 if (r
->previous_names
) {
11143 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
11149 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11151 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo4
, ic
);
11154 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo5(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo5
*r
)
11156 if (ndr_flags
& NDR_SCALARS
) {
11157 NDR_CHECK(ndr_push_align(ndr
, 4));
11158 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11160 uint32_t _flags_save_string
= ndr
->flags
;
11161 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11162 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
11163 ndr
->flags
= _flags_save_string
;
11166 uint32_t _flags_save_string
= ndr
->flags
;
11167 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11168 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11169 ndr
->flags
= _flags_save_string
;
11172 uint32_t _flags_save_string
= ndr
->flags
;
11173 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11174 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11175 ndr
->flags
= _flags_save_string
;
11178 uint32_t _flags_save_string
= ndr
->flags
;
11179 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11180 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11181 ndr
->flags
= _flags_save_string
;
11184 uint32_t _flags_save_string
= ndr
->flags
;
11185 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11186 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11187 ndr
->flags
= _flags_save_string
;
11189 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->driver_attributes
));
11190 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->config_version
));
11191 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->driver_version
));
11193 if (ndr_flags
& NDR_BUFFERS
) {
11195 uint32_t _flags_save_string
= ndr
->flags
;
11196 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11197 if (r
->driver_name
) {
11198 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
11199 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
11201 ndr
->flags
= _flags_save_string
;
11204 uint32_t _flags_save_string
= ndr
->flags
;
11205 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11206 if (r
->architecture
) {
11207 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
11208 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11210 ndr
->flags
= _flags_save_string
;
11213 uint32_t _flags_save_string
= ndr
->flags
;
11214 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11215 if (r
->driver_path
) {
11216 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
11217 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
11219 ndr
->flags
= _flags_save_string
;
11222 uint32_t _flags_save_string
= ndr
->flags
;
11223 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11224 if (r
->data_file
) {
11225 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
11226 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11228 ndr
->flags
= _flags_save_string
;
11231 uint32_t _flags_save_string
= ndr
->flags
;
11232 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11233 if (r
->config_file
) {
11234 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
11235 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11237 ndr
->flags
= _flags_save_string
;
11240 return NDR_ERR_SUCCESS
;
11243 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo5(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo5
*r
)
11245 uint32_t _ptr_driver_name
;
11246 TALLOC_CTX
*_mem_save_driver_name_0
;
11247 uint32_t _ptr_architecture
;
11248 TALLOC_CTX
*_mem_save_architecture_0
;
11249 uint32_t _ptr_driver_path
;
11250 TALLOC_CTX
*_mem_save_driver_path_0
;
11251 uint32_t _ptr_data_file
;
11252 TALLOC_CTX
*_mem_save_data_file_0
;
11253 uint32_t _ptr_config_file
;
11254 TALLOC_CTX
*_mem_save_config_file_0
;
11255 if (ndr_flags
& NDR_SCALARS
) {
11256 NDR_CHECK(ndr_pull_align(ndr
, 4));
11257 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11259 uint32_t _flags_save_string
= ndr
->flags
;
11260 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11261 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11262 if (_ptr_driver_name
) {
11263 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11264 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11266 r
->driver_name
= NULL
;
11268 ndr
->flags
= _flags_save_string
;
11271 uint32_t _flags_save_string
= ndr
->flags
;
11272 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11273 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11274 if (_ptr_architecture
) {
11275 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11276 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11278 r
->architecture
= NULL
;
11280 ndr
->flags
= _flags_save_string
;
11283 uint32_t _flags_save_string
= ndr
->flags
;
11284 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11285 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11286 if (_ptr_driver_path
) {
11287 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11288 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11290 r
->driver_path
= NULL
;
11292 ndr
->flags
= _flags_save_string
;
11295 uint32_t _flags_save_string
= ndr
->flags
;
11296 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11297 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11298 if (_ptr_data_file
) {
11299 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11300 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11302 r
->data_file
= NULL
;
11304 ndr
->flags
= _flags_save_string
;
11307 uint32_t _flags_save_string
= ndr
->flags
;
11308 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11309 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11310 if (_ptr_config_file
) {
11311 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11312 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11314 r
->config_file
= NULL
;
11316 ndr
->flags
= _flags_save_string
;
11318 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->driver_attributes
));
11319 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->config_version
));
11320 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->driver_version
));
11322 if (ndr_flags
& NDR_BUFFERS
) {
11324 uint32_t _flags_save_string
= ndr
->flags
;
11325 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11326 if (r
->driver_name
) {
11327 uint32_t _relative_save_offset
;
11328 _relative_save_offset
= ndr
->offset
;
11329 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11330 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11331 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11332 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11333 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11334 ndr
->offset
= _relative_save_offset
;
11336 ndr
->flags
= _flags_save_string
;
11339 uint32_t _flags_save_string
= ndr
->flags
;
11340 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11341 if (r
->architecture
) {
11342 uint32_t _relative_save_offset
;
11343 _relative_save_offset
= ndr
->offset
;
11344 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11345 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11346 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11347 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11348 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11349 ndr
->offset
= _relative_save_offset
;
11351 ndr
->flags
= _flags_save_string
;
11354 uint32_t _flags_save_string
= ndr
->flags
;
11355 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11356 if (r
->driver_path
) {
11357 uint32_t _relative_save_offset
;
11358 _relative_save_offset
= ndr
->offset
;
11359 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11360 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11361 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11362 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11363 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11364 ndr
->offset
= _relative_save_offset
;
11366 ndr
->flags
= _flags_save_string
;
11369 uint32_t _flags_save_string
= ndr
->flags
;
11370 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11371 if (r
->data_file
) {
11372 uint32_t _relative_save_offset
;
11373 _relative_save_offset
= ndr
->offset
;
11374 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11375 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11376 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11377 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11378 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11379 ndr
->offset
= _relative_save_offset
;
11381 ndr
->flags
= _flags_save_string
;
11384 uint32_t _flags_save_string
= ndr
->flags
;
11385 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11386 if (r
->config_file
) {
11387 uint32_t _relative_save_offset
;
11388 _relative_save_offset
= ndr
->offset
;
11389 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11390 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11391 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11392 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11393 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11394 ndr
->offset
= _relative_save_offset
;
11396 ndr
->flags
= _flags_save_string
;
11399 return NDR_ERR_SUCCESS
;
11402 _PUBLIC_
void ndr_print_spoolss_DriverInfo5(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo5
*r
)
11404 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo5");
11406 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
11407 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
11409 if (r
->driver_name
) {
11410 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
11413 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
11415 if (r
->architecture
) {
11416 ndr_print_string(ndr
, "architecture", r
->architecture
);
11419 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
11421 if (r
->driver_path
) {
11422 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
11425 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
11427 if (r
->data_file
) {
11428 ndr_print_string(ndr
, "data_file", r
->data_file
);
11431 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
11433 if (r
->config_file
) {
11434 ndr_print_string(ndr
, "config_file", r
->config_file
);
11437 ndr_print_uint32(ndr
, "driver_attributes", r
->driver_attributes
);
11438 ndr_print_uint32(ndr
, "config_version", r
->config_version
);
11439 ndr_print_uint32(ndr
, "driver_version", r
->driver_version
);
11443 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5
*r
, struct smb_iconv_convenience
*ic
, int flags
)
11445 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo5
, ic
);
11448 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo6(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo6
*r
)
11450 if (ndr_flags
& NDR_SCALARS
) {
11451 NDR_CHECK(ndr_push_align(ndr
, 8));
11452 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
11454 uint32_t _flags_save_string
= ndr
->flags
;
11455 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11456 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
11463 ndr
->flags
= _flags_save_string
;
11466 uint32_t _flags_save_string
= ndr
->flags
;
11467 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11468 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
11469 ndr
->flags
= _flags_save_string
;
11472 uint32_t _flags_save_string
= ndr
->flags
;
11473 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11474 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
11475 ndr
->flags
= _flags_save_string
;
11478 uint32_t _flags_save_string
= ndr
->flags
;
11479 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11480 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
11481 ndr
->flags
= _flags_save_string
;
11484 uint32_t _flags_save_string
= ndr
->flags
;
11485 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11486 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
11487 ndr
->flags
= _flags_save_string
;
11490 uint32_t _flags_save_string_array
= ndr
->flags
;
11491 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11492 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
11493 ndr
->flags
= _flags_save_string_array
;
11496 uint32_t _flags_save_string
= ndr
->flags
;
11497 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11498 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
11499 ndr
->flags
= _flags_save_string
;
11502 uint32_t _flags_save_string
= ndr
->flags
;
11503 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11504 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
11505 ndr
->flags
= _flags_save_string
;
11508 uint32_t _flags_save_string_array
= ndr
->flags
;
11509 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11510 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
11511 ndr
->flags
= _flags_save_string_array
;
11513 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
11514 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
11516 uint32_t _flags_save_string
= ndr
->flags
;
11517 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11518 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
11519 ndr
->flags
= _flags_save_string
;
11522 uint32_t _flags_save_string
= ndr
->flags
;
11523 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11524 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
11525 ndr
->flags
= _flags_save_string
;
11528 uint32_t _flags_save_string
= ndr
->flags
;
11529 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11530 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
11531 ndr
->flags
= _flags_save_string
;
11534 uint32_t _flags_save_string
= ndr
->flags
;
11535 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11536 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
11537 ndr
->flags
= _flags_save_string
;
11540 if (ndr_flags
& NDR_BUFFERS
) {
11542 uint32_t _flags_save_string
= ndr
->flags
;
11543 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11544 if (r
->driver_name
) {
11545 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
11546 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, 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 if (r
->architecture
) {
11554 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
11555 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
11557 ndr
->flags
= _flags_save_string
;
11560 uint32_t _flags_save_string
= ndr
->flags
;
11561 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11562 if (r
->driver_path
) {
11563 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
11564 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
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 if (r
->data_file
) {
11572 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
11573 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
11575 ndr
->flags
= _flags_save_string
;
11578 uint32_t _flags_save_string
= ndr
->flags
;
11579 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11580 if (r
->config_file
) {
11581 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
11582 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
11584 ndr
->flags
= _flags_save_string
;
11587 uint32_t _flags_save_string
= ndr
->flags
;
11588 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11589 if (r
->help_file
) {
11590 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
11591 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
11593 ndr
->flags
= _flags_save_string
;
11596 uint32_t _flags_save_string_array
= ndr
->flags
;
11597 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11598 if (r
->dependent_files
) {
11599 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
11600 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
11602 ndr
->flags
= _flags_save_string_array
;
11605 uint32_t _flags_save_string
= ndr
->flags
;
11606 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11607 if (r
->monitor_name
) {
11608 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
11609 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
11611 ndr
->flags
= _flags_save_string
;
11614 uint32_t _flags_save_string
= ndr
->flags
;
11615 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11616 if (r
->default_datatype
) {
11617 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
11618 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
11620 ndr
->flags
= _flags_save_string
;
11623 uint32_t _flags_save_string_array
= ndr
->flags
;
11624 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11625 if (r
->previous_names
) {
11626 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
11627 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
11629 ndr
->flags
= _flags_save_string_array
;
11632 uint32_t _flags_save_string
= ndr
->flags
;
11633 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11634 if (r
->manufacturer_name
) {
11635 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_name
));
11636 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
11638 ndr
->flags
= _flags_save_string
;
11641 uint32_t _flags_save_string
= ndr
->flags
;
11642 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11643 if (r
->manufacturer_url
) {
11644 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_url
));
11645 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
11647 ndr
->flags
= _flags_save_string
;
11650 uint32_t _flags_save_string
= ndr
->flags
;
11651 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11652 if (r
->hardware_id
) {
11653 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->hardware_id
));
11654 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
11656 ndr
->flags
= _flags_save_string
;
11659 uint32_t _flags_save_string
= ndr
->flags
;
11660 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11662 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->provider
));
11663 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
11665 ndr
->flags
= _flags_save_string
;
11668 return NDR_ERR_SUCCESS
;
11671 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo6(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo6
*r
)
11673 uint32_t _ptr_driver_name
;
11674 TALLOC_CTX
*_mem_save_driver_name_0
;
11675 uint32_t _ptr_architecture
;
11676 TALLOC_CTX
*_mem_save_architecture_0
;
11677 uint32_t _ptr_driver_path
;
11678 TALLOC_CTX
*_mem_save_driver_path_0
;
11679 uint32_t _ptr_data_file
;
11680 TALLOC_CTX
*_mem_save_data_file_0
;
11681 uint32_t _ptr_config_file
;
11682 TALLOC_CTX
*_mem_save_config_file_0
;
11683 uint32_t _ptr_help_file
;
11684 TALLOC_CTX
*_mem_save_help_file_0
;
11685 uint32_t _ptr_dependent_files
;
11686 TALLOC_CTX
*_mem_save_dependent_files_0
;
11687 uint32_t _ptr_monitor_name
;
11688 TALLOC_CTX
*_mem_save_monitor_name_0
;
11689 uint32_t _ptr_default_datatype
;
11690 TALLOC_CTX
*_mem_save_default_datatype_0
;
11691 uint32_t _ptr_previous_names
;
11692 TALLOC_CTX
*_mem_save_previous_names_0
;
11693 uint32_t _ptr_manufacturer_name
;
11694 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
11695 uint32_t _ptr_manufacturer_url
;
11696 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
11697 uint32_t _ptr_hardware_id
;
11698 TALLOC_CTX
*_mem_save_hardware_id_0
;
11699 uint32_t _ptr_provider
;
11700 TALLOC_CTX
*_mem_save_provider_0
;
11701 if (ndr_flags
& NDR_SCALARS
) {
11702 NDR_CHECK(ndr_pull_align(ndr
, 8));
11703 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
11705 uint32_t _flags_save_string
= ndr
->flags
;
11706 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11707 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
11708 if (_ptr_driver_name
) {
11709 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
11710 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
11712 r
->driver_name
= NULL
;
11714 ndr
->flags
= _flags_save_string
;
11717 uint32_t _flags_save_string
= ndr
->flags
;
11718 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11719 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
11720 if (_ptr_architecture
) {
11721 NDR_PULL_ALLOC(ndr
, r
->architecture
);
11722 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
11724 r
->architecture
= NULL
;
11726 ndr
->flags
= _flags_save_string
;
11729 uint32_t _flags_save_string
= ndr
->flags
;
11730 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11731 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
11732 if (_ptr_driver_path
) {
11733 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
11734 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
11736 r
->driver_path
= NULL
;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
11744 if (_ptr_data_file
) {
11745 NDR_PULL_ALLOC(ndr
, r
->data_file
);
11746 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
11748 r
->data_file
= NULL
;
11750 ndr
->flags
= _flags_save_string
;
11753 uint32_t _flags_save_string
= ndr
->flags
;
11754 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11755 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
11756 if (_ptr_config_file
) {
11757 NDR_PULL_ALLOC(ndr
, r
->config_file
);
11758 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
11760 r
->config_file
= NULL
;
11762 ndr
->flags
= _flags_save_string
;
11765 uint32_t _flags_save_string
= ndr
->flags
;
11766 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11767 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
11768 if (_ptr_help_file
) {
11769 NDR_PULL_ALLOC(ndr
, r
->help_file
);
11770 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
11772 r
->help_file
= NULL
;
11774 ndr
->flags
= _flags_save_string
;
11777 uint32_t _flags_save_string_array
= ndr
->flags
;
11778 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11779 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
11780 if (_ptr_dependent_files
) {
11781 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
11782 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
11784 r
->dependent_files
= NULL
;
11786 ndr
->flags
= _flags_save_string_array
;
11789 uint32_t _flags_save_string
= ndr
->flags
;
11790 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11791 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
11792 if (_ptr_monitor_name
) {
11793 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
11794 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
11796 r
->monitor_name
= NULL
;
11798 ndr
->flags
= _flags_save_string
;
11801 uint32_t _flags_save_string
= ndr
->flags
;
11802 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11803 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
11804 if (_ptr_default_datatype
) {
11805 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
11806 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
11808 r
->default_datatype
= NULL
;
11810 ndr
->flags
= _flags_save_string
;
11813 uint32_t _flags_save_string_array
= ndr
->flags
;
11814 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11815 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
11816 if (_ptr_previous_names
) {
11817 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
11818 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
11820 r
->previous_names
= NULL
;
11822 ndr
->flags
= _flags_save_string_array
;
11824 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
11825 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
11827 uint32_t _flags_save_string
= ndr
->flags
;
11828 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11829 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
11830 if (_ptr_manufacturer_name
) {
11831 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
11832 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
11834 r
->manufacturer_name
= NULL
;
11836 ndr
->flags
= _flags_save_string
;
11839 uint32_t _flags_save_string
= ndr
->flags
;
11840 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11841 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
11842 if (_ptr_manufacturer_url
) {
11843 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
11844 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
11846 r
->manufacturer_url
= NULL
;
11848 ndr
->flags
= _flags_save_string
;
11851 uint32_t _flags_save_string
= ndr
->flags
;
11852 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11853 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
11854 if (_ptr_hardware_id
) {
11855 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
11856 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
11858 r
->hardware_id
= NULL
;
11860 ndr
->flags
= _flags_save_string
;
11863 uint32_t _flags_save_string
= ndr
->flags
;
11864 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11865 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
11866 if (_ptr_provider
) {
11867 NDR_PULL_ALLOC(ndr
, r
->provider
);
11868 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
11870 r
->provider
= NULL
;
11872 ndr
->flags
= _flags_save_string
;
11875 if (ndr_flags
& NDR_BUFFERS
) {
11877 uint32_t _flags_save_string
= ndr
->flags
;
11878 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11879 if (r
->driver_name
) {
11880 uint32_t _relative_save_offset
;
11881 _relative_save_offset
= ndr
->offset
;
11882 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
11883 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11884 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
11885 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
11886 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
11887 ndr
->offset
= _relative_save_offset
;
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 if (r
->architecture
) {
11895 uint32_t _relative_save_offset
;
11896 _relative_save_offset
= ndr
->offset
;
11897 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
11898 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11899 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
11900 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
11901 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
11902 ndr
->offset
= _relative_save_offset
;
11904 ndr
->flags
= _flags_save_string
;
11907 uint32_t _flags_save_string
= ndr
->flags
;
11908 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11909 if (r
->driver_path
) {
11910 uint32_t _relative_save_offset
;
11911 _relative_save_offset
= ndr
->offset
;
11912 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
11913 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11914 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
11915 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
11916 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
11917 ndr
->offset
= _relative_save_offset
;
11919 ndr
->flags
= _flags_save_string
;
11922 uint32_t _flags_save_string
= ndr
->flags
;
11923 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11924 if (r
->data_file
) {
11925 uint32_t _relative_save_offset
;
11926 _relative_save_offset
= ndr
->offset
;
11927 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
11928 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11929 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
11930 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
11931 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
11932 ndr
->offset
= _relative_save_offset
;
11934 ndr
->flags
= _flags_save_string
;
11937 uint32_t _flags_save_string
= ndr
->flags
;
11938 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11939 if (r
->config_file
) {
11940 uint32_t _relative_save_offset
;
11941 _relative_save_offset
= ndr
->offset
;
11942 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
11943 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11944 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
11945 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
11946 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
11947 ndr
->offset
= _relative_save_offset
;
11949 ndr
->flags
= _flags_save_string
;
11952 uint32_t _flags_save_string
= ndr
->flags
;
11953 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11954 if (r
->help_file
) {
11955 uint32_t _relative_save_offset
;
11956 _relative_save_offset
= ndr
->offset
;
11957 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
11958 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11959 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
11960 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
11961 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
11962 ndr
->offset
= _relative_save_offset
;
11964 ndr
->flags
= _flags_save_string
;
11967 uint32_t _flags_save_string_array
= ndr
->flags
;
11968 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11969 if (r
->dependent_files
) {
11970 uint32_t _relative_save_offset
;
11971 _relative_save_offset
= ndr
->offset
;
11972 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
11973 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11974 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
11975 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
11976 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
11977 ndr
->offset
= _relative_save_offset
;
11979 ndr
->flags
= _flags_save_string_array
;
11982 uint32_t _flags_save_string
= ndr
->flags
;
11983 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11984 if (r
->monitor_name
) {
11985 uint32_t _relative_save_offset
;
11986 _relative_save_offset
= ndr
->offset
;
11987 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
11988 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
11989 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
11990 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
11991 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
11992 ndr
->offset
= _relative_save_offset
;
11994 ndr
->flags
= _flags_save_string
;
11997 uint32_t _flags_save_string
= ndr
->flags
;
11998 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
11999 if (r
->default_datatype
) {
12000 uint32_t _relative_save_offset
;
12001 _relative_save_offset
= ndr
->offset
;
12002 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
12003 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12004 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
12005 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
12006 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
12007 ndr
->offset
= _relative_save_offset
;
12009 ndr
->flags
= _flags_save_string
;
12012 uint32_t _flags_save_string_array
= ndr
->flags
;
12013 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12014 if (r
->previous_names
) {
12015 uint32_t _relative_save_offset
;
12016 _relative_save_offset
= ndr
->offset
;
12017 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
12018 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12019 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
12020 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
12021 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
12022 ndr
->offset
= _relative_save_offset
;
12024 ndr
->flags
= _flags_save_string_array
;
12027 uint32_t _flags_save_string
= ndr
->flags
;
12028 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12029 if (r
->manufacturer_name
) {
12030 uint32_t _relative_save_offset
;
12031 _relative_save_offset
= ndr
->offset
;
12032 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
12033 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12034 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
12035 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
12036 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
12037 ndr
->offset
= _relative_save_offset
;
12039 ndr
->flags
= _flags_save_string
;
12042 uint32_t _flags_save_string
= ndr
->flags
;
12043 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12044 if (r
->manufacturer_url
) {
12045 uint32_t _relative_save_offset
;
12046 _relative_save_offset
= ndr
->offset
;
12047 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
12048 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12049 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
12050 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
12051 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
12052 ndr
->offset
= _relative_save_offset
;
12054 ndr
->flags
= _flags_save_string
;
12057 uint32_t _flags_save_string
= ndr
->flags
;
12058 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12059 if (r
->hardware_id
) {
12060 uint32_t _relative_save_offset
;
12061 _relative_save_offset
= ndr
->offset
;
12062 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
12063 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12064 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
12065 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
12066 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
12067 ndr
->offset
= _relative_save_offset
;
12069 ndr
->flags
= _flags_save_string
;
12072 uint32_t _flags_save_string
= ndr
->flags
;
12073 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12075 uint32_t _relative_save_offset
;
12076 _relative_save_offset
= ndr
->offset
;
12077 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
12078 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12079 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
12080 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
12081 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
12082 ndr
->offset
= _relative_save_offset
;
12084 ndr
->flags
= _flags_save_string
;
12087 return NDR_ERR_SUCCESS
;
12090 _PUBLIC_
void ndr_print_spoolss_DriverInfo6(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo6
*r
)
12092 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo6");
12094 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
12095 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
12097 if (r
->driver_name
) {
12098 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
12101 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
12103 if (r
->architecture
) {
12104 ndr_print_string(ndr
, "architecture", r
->architecture
);
12107 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
12109 if (r
->driver_path
) {
12110 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
12113 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
12115 if (r
->data_file
) {
12116 ndr_print_string(ndr
, "data_file", r
->data_file
);
12119 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
12121 if (r
->config_file
) {
12122 ndr_print_string(ndr
, "config_file", r
->config_file
);
12125 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
12127 if (r
->help_file
) {
12128 ndr_print_string(ndr
, "help_file", r
->help_file
);
12131 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
12133 if (r
->dependent_files
) {
12134 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
12137 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
12139 if (r
->monitor_name
) {
12140 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
12143 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
12145 if (r
->default_datatype
) {
12146 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
12149 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
12151 if (r
->previous_names
) {
12152 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
12155 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
12156 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
12157 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
12159 if (r
->manufacturer_name
) {
12160 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
12163 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
12165 if (r
->manufacturer_url
) {
12166 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
12169 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
12171 if (r
->hardware_id
) {
12172 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
12175 ndr_print_ptr(ndr
, "provider", r
->provider
);
12178 ndr_print_string(ndr
, "provider", r
->provider
);
12184 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6
*r
, struct smb_iconv_convenience
*ic
, int flags
)
12186 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo6
, ic
);
12189 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo8(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverInfo8
*r
)
12191 if (ndr_flags
& NDR_SCALARS
) {
12192 NDR_CHECK(ndr_push_align(ndr
, 8));
12193 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, r
->version
));
12195 uint32_t _flags_save_string
= ndr
->flags
;
12196 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12197 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_name
));
12198 ndr
->flags
= _flags_save_string
;
12201 uint32_t _flags_save_string
= ndr
->flags
;
12202 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12203 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->architecture
));
12204 ndr
->flags
= _flags_save_string
;
12207 uint32_t _flags_save_string
= ndr
->flags
;
12208 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12209 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->driver_path
));
12210 ndr
->flags
= _flags_save_string
;
12213 uint32_t _flags_save_string
= ndr
->flags
;
12214 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12215 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->data_file
));
12216 ndr
->flags
= _flags_save_string
;
12219 uint32_t _flags_save_string
= ndr
->flags
;
12220 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12221 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->config_file
));
12222 ndr
->flags
= _flags_save_string
;
12225 uint32_t _flags_save_string
= ndr
->flags
;
12226 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12227 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->help_file
));
12228 ndr
->flags
= _flags_save_string
;
12231 uint32_t _flags_save_string
= ndr
->flags
;
12232 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12233 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
12234 ndr
->flags
= _flags_save_string
;
12237 uint32_t _flags_save_string
= ndr
->flags
;
12238 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12239 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->default_datatype
));
12240 ndr
->flags
= _flags_save_string
;
12243 uint32_t _flags_save_string_array
= ndr
->flags
;
12244 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12245 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dependent_files
));
12246 ndr
->flags
= _flags_save_string_array
;
12249 uint32_t _flags_save_string_array
= ndr
->flags
;
12250 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12251 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->previous_names
));
12252 ndr
->flags
= _flags_save_string_array
;
12254 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->driver_date
));
12255 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->driver_version
));
12257 uint32_t _flags_save_string
= ndr
->flags
;
12258 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12259 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_name
));
12260 ndr
->flags
= _flags_save_string
;
12263 uint32_t _flags_save_string
= ndr
->flags
;
12264 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12265 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->manufacturer_url
));
12266 ndr
->flags
= _flags_save_string
;
12269 uint32_t _flags_save_string
= ndr
->flags
;
12270 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12271 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->hardware_id
));
12272 ndr
->flags
= _flags_save_string
;
12275 uint32_t _flags_save_string
= ndr
->flags
;
12276 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12277 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->provider
));
12278 ndr
->flags
= _flags_save_string
;
12281 uint32_t _flags_save_string
= ndr
->flags
;
12282 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12283 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor
));
12284 ndr
->flags
= _flags_save_string
;
12287 uint32_t _flags_save_string
= ndr
->flags
;
12288 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12289 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->vendor_setup
));
12290 ndr
->flags
= _flags_save_string
;
12293 uint32_t _flags_save_string_array
= ndr
->flags
;
12294 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12295 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->color_profiles
));
12296 ndr
->flags
= _flags_save_string_array
;
12299 uint32_t _flags_save_string
= ndr
->flags
;
12300 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12301 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->inf_path
));
12302 ndr
->flags
= _flags_save_string
;
12304 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->printer_driver_attributes
));
12306 uint32_t _flags_save_string_array
= ndr
->flags
;
12307 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12308 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->core_driver_dependencies
));
12309 ndr
->flags
= _flags_save_string_array
;
12311 NDR_CHECK(ndr_push_NTTIME(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_date
));
12312 NDR_CHECK(ndr_push_hyper(ndr
, NDR_SCALARS
, r
->min_inbox_driver_ver_version
));
12314 if (ndr_flags
& NDR_BUFFERS
) {
12316 uint32_t _flags_save_string
= ndr
->flags
;
12317 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12318 if (r
->driver_name
) {
12319 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_name
));
12320 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_name
));
12322 ndr
->flags
= _flags_save_string
;
12325 uint32_t _flags_save_string
= ndr
->flags
;
12326 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12327 if (r
->architecture
) {
12328 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->architecture
));
12329 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->architecture
));
12331 ndr
->flags
= _flags_save_string
;
12334 uint32_t _flags_save_string
= ndr
->flags
;
12335 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12336 if (r
->driver_path
) {
12337 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->driver_path
));
12338 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->driver_path
));
12340 ndr
->flags
= _flags_save_string
;
12343 uint32_t _flags_save_string
= ndr
->flags
;
12344 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12345 if (r
->data_file
) {
12346 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->data_file
));
12347 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->data_file
));
12349 ndr
->flags
= _flags_save_string
;
12352 uint32_t _flags_save_string
= ndr
->flags
;
12353 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12354 if (r
->config_file
) {
12355 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->config_file
));
12356 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->config_file
));
12358 ndr
->flags
= _flags_save_string
;
12361 uint32_t _flags_save_string
= ndr
->flags
;
12362 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12363 if (r
->help_file
) {
12364 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->help_file
));
12365 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->help_file
));
12367 ndr
->flags
= _flags_save_string
;
12370 uint32_t _flags_save_string
= ndr
->flags
;
12371 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12372 if (r
->monitor_name
) {
12373 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
12374 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
12376 ndr
->flags
= _flags_save_string
;
12379 uint32_t _flags_save_string
= ndr
->flags
;
12380 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12381 if (r
->default_datatype
) {
12382 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->default_datatype
));
12383 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->default_datatype
));
12385 ndr
->flags
= _flags_save_string
;
12388 uint32_t _flags_save_string_array
= ndr
->flags
;
12389 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12390 if (r
->dependent_files
) {
12391 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dependent_files
));
12392 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->dependent_files
));
12394 ndr
->flags
= _flags_save_string_array
;
12397 uint32_t _flags_save_string_array
= ndr
->flags
;
12398 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12399 if (r
->previous_names
) {
12400 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->previous_names
));
12401 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->previous_names
));
12403 ndr
->flags
= _flags_save_string_array
;
12406 uint32_t _flags_save_string
= ndr
->flags
;
12407 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12408 if (r
->manufacturer_name
) {
12409 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_name
));
12410 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_name
));
12412 ndr
->flags
= _flags_save_string
;
12415 uint32_t _flags_save_string
= ndr
->flags
;
12416 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12417 if (r
->manufacturer_url
) {
12418 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->manufacturer_url
));
12419 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->manufacturer_url
));
12421 ndr
->flags
= _flags_save_string
;
12424 uint32_t _flags_save_string
= ndr
->flags
;
12425 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12426 if (r
->hardware_id
) {
12427 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->hardware_id
));
12428 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->hardware_id
));
12430 ndr
->flags
= _flags_save_string
;
12433 uint32_t _flags_save_string
= ndr
->flags
;
12434 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12436 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->provider
));
12437 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->provider
));
12439 ndr
->flags
= _flags_save_string
;
12442 uint32_t _flags_save_string
= ndr
->flags
;
12443 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12444 if (r
->print_processor
) {
12445 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor
));
12446 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor
));
12448 ndr
->flags
= _flags_save_string
;
12451 uint32_t _flags_save_string
= ndr
->flags
;
12452 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12453 if (r
->vendor_setup
) {
12454 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->vendor_setup
));
12455 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->vendor_setup
));
12457 ndr
->flags
= _flags_save_string
;
12460 uint32_t _flags_save_string_array
= ndr
->flags
;
12461 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12462 if (r
->color_profiles
) {
12463 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->color_profiles
));
12464 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->color_profiles
));
12466 ndr
->flags
= _flags_save_string_array
;
12469 uint32_t _flags_save_string
= ndr
->flags
;
12470 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12472 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->inf_path
));
12473 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->inf_path
));
12475 ndr
->flags
= _flags_save_string
;
12478 uint32_t _flags_save_string_array
= ndr
->flags
;
12479 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12480 if (r
->core_driver_dependencies
) {
12481 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->core_driver_dependencies
));
12482 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->core_driver_dependencies
));
12484 ndr
->flags
= _flags_save_string_array
;
12487 return NDR_ERR_SUCCESS
;
12490 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo8(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverInfo8
*r
)
12492 uint32_t _ptr_driver_name
;
12493 TALLOC_CTX
*_mem_save_driver_name_0
;
12494 uint32_t _ptr_architecture
;
12495 TALLOC_CTX
*_mem_save_architecture_0
;
12496 uint32_t _ptr_driver_path
;
12497 TALLOC_CTX
*_mem_save_driver_path_0
;
12498 uint32_t _ptr_data_file
;
12499 TALLOC_CTX
*_mem_save_data_file_0
;
12500 uint32_t _ptr_config_file
;
12501 TALLOC_CTX
*_mem_save_config_file_0
;
12502 uint32_t _ptr_help_file
;
12503 TALLOC_CTX
*_mem_save_help_file_0
;
12504 uint32_t _ptr_monitor_name
;
12505 TALLOC_CTX
*_mem_save_monitor_name_0
;
12506 uint32_t _ptr_default_datatype
;
12507 TALLOC_CTX
*_mem_save_default_datatype_0
;
12508 uint32_t _ptr_dependent_files
;
12509 TALLOC_CTX
*_mem_save_dependent_files_0
;
12510 uint32_t _ptr_previous_names
;
12511 TALLOC_CTX
*_mem_save_previous_names_0
;
12512 uint32_t _ptr_manufacturer_name
;
12513 TALLOC_CTX
*_mem_save_manufacturer_name_0
;
12514 uint32_t _ptr_manufacturer_url
;
12515 TALLOC_CTX
*_mem_save_manufacturer_url_0
;
12516 uint32_t _ptr_hardware_id
;
12517 TALLOC_CTX
*_mem_save_hardware_id_0
;
12518 uint32_t _ptr_provider
;
12519 TALLOC_CTX
*_mem_save_provider_0
;
12520 uint32_t _ptr_print_processor
;
12521 TALLOC_CTX
*_mem_save_print_processor_0
;
12522 uint32_t _ptr_vendor_setup
;
12523 TALLOC_CTX
*_mem_save_vendor_setup_0
;
12524 uint32_t _ptr_color_profiles
;
12525 TALLOC_CTX
*_mem_save_color_profiles_0
;
12526 uint32_t _ptr_inf_path
;
12527 TALLOC_CTX
*_mem_save_inf_path_0
;
12528 uint32_t _ptr_core_driver_dependencies
;
12529 TALLOC_CTX
*_mem_save_core_driver_dependencies_0
;
12530 if (ndr_flags
& NDR_SCALARS
) {
12531 NDR_CHECK(ndr_pull_align(ndr
, 8));
12532 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr
, NDR_SCALARS
, &r
->version
));
12534 uint32_t _flags_save_string
= ndr
->flags
;
12535 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12536 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_name
));
12537 if (_ptr_driver_name
) {
12538 NDR_PULL_ALLOC(ndr
, r
->driver_name
);
12539 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_name
, _ptr_driver_name
));
12541 r
->driver_name
= NULL
;
12543 ndr
->flags
= _flags_save_string
;
12546 uint32_t _flags_save_string
= ndr
->flags
;
12547 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12548 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
12549 if (_ptr_architecture
) {
12550 NDR_PULL_ALLOC(ndr
, r
->architecture
);
12551 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->architecture
, _ptr_architecture
));
12553 r
->architecture
= NULL
;
12555 ndr
->flags
= _flags_save_string
;
12558 uint32_t _flags_save_string
= ndr
->flags
;
12559 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12560 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_driver_path
));
12561 if (_ptr_driver_path
) {
12562 NDR_PULL_ALLOC(ndr
, r
->driver_path
);
12563 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->driver_path
, _ptr_driver_path
));
12565 r
->driver_path
= NULL
;
12567 ndr
->flags
= _flags_save_string
;
12570 uint32_t _flags_save_string
= ndr
->flags
;
12571 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12572 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_file
));
12573 if (_ptr_data_file
) {
12574 NDR_PULL_ALLOC(ndr
, r
->data_file
);
12575 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->data_file
, _ptr_data_file
));
12577 r
->data_file
= NULL
;
12579 ndr
->flags
= _flags_save_string
;
12582 uint32_t _flags_save_string
= ndr
->flags
;
12583 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12584 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_config_file
));
12585 if (_ptr_config_file
) {
12586 NDR_PULL_ALLOC(ndr
, r
->config_file
);
12587 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->config_file
, _ptr_config_file
));
12589 r
->config_file
= NULL
;
12591 ndr
->flags
= _flags_save_string
;
12594 uint32_t _flags_save_string
= ndr
->flags
;
12595 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12596 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_help_file
));
12597 if (_ptr_help_file
) {
12598 NDR_PULL_ALLOC(ndr
, r
->help_file
);
12599 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->help_file
, _ptr_help_file
));
12601 r
->help_file
= NULL
;
12603 ndr
->flags
= _flags_save_string
;
12606 uint32_t _flags_save_string
= ndr
->flags
;
12607 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12608 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
12609 if (_ptr_monitor_name
) {
12610 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
12611 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
12613 r
->monitor_name
= NULL
;
12615 ndr
->flags
= _flags_save_string
;
12618 uint32_t _flags_save_string
= ndr
->flags
;
12619 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12620 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_default_datatype
));
12621 if (_ptr_default_datatype
) {
12622 NDR_PULL_ALLOC(ndr
, r
->default_datatype
);
12623 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->default_datatype
, _ptr_default_datatype
));
12625 r
->default_datatype
= NULL
;
12627 ndr
->flags
= _flags_save_string
;
12630 uint32_t _flags_save_string_array
= ndr
->flags
;
12631 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12632 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dependent_files
));
12633 if (_ptr_dependent_files
) {
12634 NDR_PULL_ALLOC(ndr
, r
->dependent_files
);
12635 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dependent_files
, _ptr_dependent_files
));
12637 r
->dependent_files
= NULL
;
12639 ndr
->flags
= _flags_save_string_array
;
12642 uint32_t _flags_save_string_array
= ndr
->flags
;
12643 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12644 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_previous_names
));
12645 if (_ptr_previous_names
) {
12646 NDR_PULL_ALLOC(ndr
, r
->previous_names
);
12647 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->previous_names
, _ptr_previous_names
));
12649 r
->previous_names
= NULL
;
12651 ndr
->flags
= _flags_save_string_array
;
12653 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->driver_date
));
12654 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->driver_version
));
12656 uint32_t _flags_save_string
= ndr
->flags
;
12657 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12658 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_name
));
12659 if (_ptr_manufacturer_name
) {
12660 NDR_PULL_ALLOC(ndr
, r
->manufacturer_name
);
12661 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_name
, _ptr_manufacturer_name
));
12663 r
->manufacturer_name
= NULL
;
12665 ndr
->flags
= _flags_save_string
;
12668 uint32_t _flags_save_string
= ndr
->flags
;
12669 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12670 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_manufacturer_url
));
12671 if (_ptr_manufacturer_url
) {
12672 NDR_PULL_ALLOC(ndr
, r
->manufacturer_url
);
12673 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->manufacturer_url
, _ptr_manufacturer_url
));
12675 r
->manufacturer_url
= NULL
;
12677 ndr
->flags
= _flags_save_string
;
12680 uint32_t _flags_save_string
= ndr
->flags
;
12681 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12682 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_hardware_id
));
12683 if (_ptr_hardware_id
) {
12684 NDR_PULL_ALLOC(ndr
, r
->hardware_id
);
12685 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->hardware_id
, _ptr_hardware_id
));
12687 r
->hardware_id
= NULL
;
12689 ndr
->flags
= _flags_save_string
;
12692 uint32_t _flags_save_string
= ndr
->flags
;
12693 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12694 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_provider
));
12695 if (_ptr_provider
) {
12696 NDR_PULL_ALLOC(ndr
, r
->provider
);
12697 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->provider
, _ptr_provider
));
12699 r
->provider
= NULL
;
12701 ndr
->flags
= _flags_save_string
;
12704 uint32_t _flags_save_string
= ndr
->flags
;
12705 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12706 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor
));
12707 if (_ptr_print_processor
) {
12708 NDR_PULL_ALLOC(ndr
, r
->print_processor
);
12709 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor
, _ptr_print_processor
));
12711 r
->print_processor
= NULL
;
12713 ndr
->flags
= _flags_save_string
;
12716 uint32_t _flags_save_string
= ndr
->flags
;
12717 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12718 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_vendor_setup
));
12719 if (_ptr_vendor_setup
) {
12720 NDR_PULL_ALLOC(ndr
, r
->vendor_setup
);
12721 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->vendor_setup
, _ptr_vendor_setup
));
12723 r
->vendor_setup
= NULL
;
12725 ndr
->flags
= _flags_save_string
;
12728 uint32_t _flags_save_string_array
= ndr
->flags
;
12729 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12730 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_color_profiles
));
12731 if (_ptr_color_profiles
) {
12732 NDR_PULL_ALLOC(ndr
, r
->color_profiles
);
12733 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->color_profiles
, _ptr_color_profiles
));
12735 r
->color_profiles
= NULL
;
12737 ndr
->flags
= _flags_save_string_array
;
12740 uint32_t _flags_save_string
= ndr
->flags
;
12741 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12742 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_inf_path
));
12743 if (_ptr_inf_path
) {
12744 NDR_PULL_ALLOC(ndr
, r
->inf_path
);
12745 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->inf_path
, _ptr_inf_path
));
12747 r
->inf_path
= NULL
;
12749 ndr
->flags
= _flags_save_string
;
12751 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->printer_driver_attributes
));
12753 uint32_t _flags_save_string_array
= ndr
->flags
;
12754 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12755 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_core_driver_dependencies
));
12756 if (_ptr_core_driver_dependencies
) {
12757 NDR_PULL_ALLOC(ndr
, r
->core_driver_dependencies
);
12758 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->core_driver_dependencies
, _ptr_core_driver_dependencies
));
12760 r
->core_driver_dependencies
= NULL
;
12762 ndr
->flags
= _flags_save_string_array
;
12764 NDR_CHECK(ndr_pull_NTTIME(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_date
));
12765 NDR_CHECK(ndr_pull_hyper(ndr
, NDR_SCALARS
, &r
->min_inbox_driver_ver_version
));
12767 if (ndr_flags
& NDR_BUFFERS
) {
12769 uint32_t _flags_save_string
= ndr
->flags
;
12770 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12771 if (r
->driver_name
) {
12772 uint32_t _relative_save_offset
;
12773 _relative_save_offset
= ndr
->offset
;
12774 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_name
));
12775 _mem_save_driver_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12776 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_name
, 0);
12777 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_name
));
12778 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_name_0
, 0);
12779 ndr
->offset
= _relative_save_offset
;
12781 ndr
->flags
= _flags_save_string
;
12784 uint32_t _flags_save_string
= ndr
->flags
;
12785 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12786 if (r
->architecture
) {
12787 uint32_t _relative_save_offset
;
12788 _relative_save_offset
= ndr
->offset
;
12789 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->architecture
));
12790 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12791 NDR_PULL_SET_MEM_CTX(ndr
, r
->architecture
, 0);
12792 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->architecture
));
12793 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
12794 ndr
->offset
= _relative_save_offset
;
12796 ndr
->flags
= _flags_save_string
;
12799 uint32_t _flags_save_string
= ndr
->flags
;
12800 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12801 if (r
->driver_path
) {
12802 uint32_t _relative_save_offset
;
12803 _relative_save_offset
= ndr
->offset
;
12804 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->driver_path
));
12805 _mem_save_driver_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12806 NDR_PULL_SET_MEM_CTX(ndr
, r
->driver_path
, 0);
12807 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->driver_path
));
12808 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_driver_path_0
, 0);
12809 ndr
->offset
= _relative_save_offset
;
12811 ndr
->flags
= _flags_save_string
;
12814 uint32_t _flags_save_string
= ndr
->flags
;
12815 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12816 if (r
->data_file
) {
12817 uint32_t _relative_save_offset
;
12818 _relative_save_offset
= ndr
->offset
;
12819 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->data_file
));
12820 _mem_save_data_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12821 NDR_PULL_SET_MEM_CTX(ndr
, r
->data_file
, 0);
12822 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->data_file
));
12823 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_file_0
, 0);
12824 ndr
->offset
= _relative_save_offset
;
12826 ndr
->flags
= _flags_save_string
;
12829 uint32_t _flags_save_string
= ndr
->flags
;
12830 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12831 if (r
->config_file
) {
12832 uint32_t _relative_save_offset
;
12833 _relative_save_offset
= ndr
->offset
;
12834 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->config_file
));
12835 _mem_save_config_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12836 NDR_PULL_SET_MEM_CTX(ndr
, r
->config_file
, 0);
12837 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->config_file
));
12838 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_config_file_0
, 0);
12839 ndr
->offset
= _relative_save_offset
;
12841 ndr
->flags
= _flags_save_string
;
12844 uint32_t _flags_save_string
= ndr
->flags
;
12845 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12846 if (r
->help_file
) {
12847 uint32_t _relative_save_offset
;
12848 _relative_save_offset
= ndr
->offset
;
12849 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->help_file
));
12850 _mem_save_help_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12851 NDR_PULL_SET_MEM_CTX(ndr
, r
->help_file
, 0);
12852 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->help_file
));
12853 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_help_file_0
, 0);
12854 ndr
->offset
= _relative_save_offset
;
12856 ndr
->flags
= _flags_save_string
;
12859 uint32_t _flags_save_string
= ndr
->flags
;
12860 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12861 if (r
->monitor_name
) {
12862 uint32_t _relative_save_offset
;
12863 _relative_save_offset
= ndr
->offset
;
12864 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
12865 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12866 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
12867 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
12868 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
12869 ndr
->offset
= _relative_save_offset
;
12871 ndr
->flags
= _flags_save_string
;
12874 uint32_t _flags_save_string
= ndr
->flags
;
12875 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12876 if (r
->default_datatype
) {
12877 uint32_t _relative_save_offset
;
12878 _relative_save_offset
= ndr
->offset
;
12879 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->default_datatype
));
12880 _mem_save_default_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12881 NDR_PULL_SET_MEM_CTX(ndr
, r
->default_datatype
, 0);
12882 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->default_datatype
));
12883 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_default_datatype_0
, 0);
12884 ndr
->offset
= _relative_save_offset
;
12886 ndr
->flags
= _flags_save_string
;
12889 uint32_t _flags_save_string_array
= ndr
->flags
;
12890 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12891 if (r
->dependent_files
) {
12892 uint32_t _relative_save_offset
;
12893 _relative_save_offset
= ndr
->offset
;
12894 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dependent_files
));
12895 _mem_save_dependent_files_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12896 NDR_PULL_SET_MEM_CTX(ndr
, r
->dependent_files
, 0);
12897 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->dependent_files
));
12898 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dependent_files_0
, 0);
12899 ndr
->offset
= _relative_save_offset
;
12901 ndr
->flags
= _flags_save_string_array
;
12904 uint32_t _flags_save_string_array
= ndr
->flags
;
12905 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12906 if (r
->previous_names
) {
12907 uint32_t _relative_save_offset
;
12908 _relative_save_offset
= ndr
->offset
;
12909 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->previous_names
));
12910 _mem_save_previous_names_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12911 NDR_PULL_SET_MEM_CTX(ndr
, r
->previous_names
, 0);
12912 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->previous_names
));
12913 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_previous_names_0
, 0);
12914 ndr
->offset
= _relative_save_offset
;
12916 ndr
->flags
= _flags_save_string_array
;
12919 uint32_t _flags_save_string
= ndr
->flags
;
12920 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12921 if (r
->manufacturer_name
) {
12922 uint32_t _relative_save_offset
;
12923 _relative_save_offset
= ndr
->offset
;
12924 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_name
));
12925 _mem_save_manufacturer_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12926 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_name
, 0);
12927 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_name
));
12928 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_name_0
, 0);
12929 ndr
->offset
= _relative_save_offset
;
12931 ndr
->flags
= _flags_save_string
;
12934 uint32_t _flags_save_string
= ndr
->flags
;
12935 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12936 if (r
->manufacturer_url
) {
12937 uint32_t _relative_save_offset
;
12938 _relative_save_offset
= ndr
->offset
;
12939 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->manufacturer_url
));
12940 _mem_save_manufacturer_url_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12941 NDR_PULL_SET_MEM_CTX(ndr
, r
->manufacturer_url
, 0);
12942 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->manufacturer_url
));
12943 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_manufacturer_url_0
, 0);
12944 ndr
->offset
= _relative_save_offset
;
12946 ndr
->flags
= _flags_save_string
;
12949 uint32_t _flags_save_string
= ndr
->flags
;
12950 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12951 if (r
->hardware_id
) {
12952 uint32_t _relative_save_offset
;
12953 _relative_save_offset
= ndr
->offset
;
12954 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->hardware_id
));
12955 _mem_save_hardware_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12956 NDR_PULL_SET_MEM_CTX(ndr
, r
->hardware_id
, 0);
12957 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->hardware_id
));
12958 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_hardware_id_0
, 0);
12959 ndr
->offset
= _relative_save_offset
;
12961 ndr
->flags
= _flags_save_string
;
12964 uint32_t _flags_save_string
= ndr
->flags
;
12965 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12967 uint32_t _relative_save_offset
;
12968 _relative_save_offset
= ndr
->offset
;
12969 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->provider
));
12970 _mem_save_provider_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12971 NDR_PULL_SET_MEM_CTX(ndr
, r
->provider
, 0);
12972 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->provider
));
12973 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_provider_0
, 0);
12974 ndr
->offset
= _relative_save_offset
;
12976 ndr
->flags
= _flags_save_string
;
12979 uint32_t _flags_save_string
= ndr
->flags
;
12980 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12981 if (r
->print_processor
) {
12982 uint32_t _relative_save_offset
;
12983 _relative_save_offset
= ndr
->offset
;
12984 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor
));
12985 _mem_save_print_processor_0
= NDR_PULL_GET_MEM_CTX(ndr
);
12986 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor
, 0);
12987 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor
));
12988 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_0
, 0);
12989 ndr
->offset
= _relative_save_offset
;
12991 ndr
->flags
= _flags_save_string
;
12994 uint32_t _flags_save_string
= ndr
->flags
;
12995 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
12996 if (r
->vendor_setup
) {
12997 uint32_t _relative_save_offset
;
12998 _relative_save_offset
= ndr
->offset
;
12999 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->vendor_setup
));
13000 _mem_save_vendor_setup_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13001 NDR_PULL_SET_MEM_CTX(ndr
, r
->vendor_setup
, 0);
13002 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->vendor_setup
));
13003 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_vendor_setup_0
, 0);
13004 ndr
->offset
= _relative_save_offset
;
13006 ndr
->flags
= _flags_save_string
;
13009 uint32_t _flags_save_string_array
= ndr
->flags
;
13010 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13011 if (r
->color_profiles
) {
13012 uint32_t _relative_save_offset
;
13013 _relative_save_offset
= ndr
->offset
;
13014 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->color_profiles
));
13015 _mem_save_color_profiles_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13016 NDR_PULL_SET_MEM_CTX(ndr
, r
->color_profiles
, 0);
13017 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->color_profiles
));
13018 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_color_profiles_0
, 0);
13019 ndr
->offset
= _relative_save_offset
;
13021 ndr
->flags
= _flags_save_string_array
;
13024 uint32_t _flags_save_string
= ndr
->flags
;
13025 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13027 uint32_t _relative_save_offset
;
13028 _relative_save_offset
= ndr
->offset
;
13029 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->inf_path
));
13030 _mem_save_inf_path_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13031 NDR_PULL_SET_MEM_CTX(ndr
, r
->inf_path
, 0);
13032 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->inf_path
));
13033 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_inf_path_0
, 0);
13034 ndr
->offset
= _relative_save_offset
;
13036 ndr
->flags
= _flags_save_string
;
13039 uint32_t _flags_save_string_array
= ndr
->flags
;
13040 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13041 if (r
->core_driver_dependencies
) {
13042 uint32_t _relative_save_offset
;
13043 _relative_save_offset
= ndr
->offset
;
13044 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->core_driver_dependencies
));
13045 _mem_save_core_driver_dependencies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13046 NDR_PULL_SET_MEM_CTX(ndr
, r
->core_driver_dependencies
, 0);
13047 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->core_driver_dependencies
));
13048 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_core_driver_dependencies_0
, 0);
13049 ndr
->offset
= _relative_save_offset
;
13051 ndr
->flags
= _flags_save_string_array
;
13054 return NDR_ERR_SUCCESS
;
13057 _PUBLIC_
void ndr_print_spoolss_DriverInfo8(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo8
*r
)
13059 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo8");
13061 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13062 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13064 if (r
->driver_name
) {
13065 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13068 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13070 if (r
->architecture
) {
13071 ndr_print_string(ndr
, "architecture", r
->architecture
);
13074 ndr_print_ptr(ndr
, "driver_path", r
->driver_path
);
13076 if (r
->driver_path
) {
13077 ndr_print_string(ndr
, "driver_path", r
->driver_path
);
13080 ndr_print_ptr(ndr
, "data_file", r
->data_file
);
13082 if (r
->data_file
) {
13083 ndr_print_string(ndr
, "data_file", r
->data_file
);
13086 ndr_print_ptr(ndr
, "config_file", r
->config_file
);
13088 if (r
->config_file
) {
13089 ndr_print_string(ndr
, "config_file", r
->config_file
);
13092 ndr_print_ptr(ndr
, "help_file", r
->help_file
);
13094 if (r
->help_file
) {
13095 ndr_print_string(ndr
, "help_file", r
->help_file
);
13098 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13100 if (r
->monitor_name
) {
13101 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
13104 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
13106 if (r
->default_datatype
) {
13107 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
13110 ndr_print_ptr(ndr
, "dependent_files", r
->dependent_files
);
13112 if (r
->dependent_files
) {
13113 ndr_print_string_array(ndr
, "dependent_files", r
->dependent_files
);
13116 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
13118 if (r
->previous_names
) {
13119 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
13122 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
13123 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
13124 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
13126 if (r
->manufacturer_name
) {
13127 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
13130 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
13132 if (r
->manufacturer_url
) {
13133 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
13136 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
13138 if (r
->hardware_id
) {
13139 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
13142 ndr_print_ptr(ndr
, "provider", r
->provider
);
13145 ndr_print_string(ndr
, "provider", r
->provider
);
13148 ndr_print_ptr(ndr
, "print_processor", r
->print_processor
);
13150 if (r
->print_processor
) {
13151 ndr_print_string(ndr
, "print_processor", r
->print_processor
);
13154 ndr_print_ptr(ndr
, "vendor_setup", r
->vendor_setup
);
13156 if (r
->vendor_setup
) {
13157 ndr_print_string(ndr
, "vendor_setup", r
->vendor_setup
);
13160 ndr_print_ptr(ndr
, "color_profiles", r
->color_profiles
);
13162 if (r
->color_profiles
) {
13163 ndr_print_string_array(ndr
, "color_profiles", r
->color_profiles
);
13166 ndr_print_ptr(ndr
, "inf_path", r
->inf_path
);
13169 ndr_print_string(ndr
, "inf_path", r
->inf_path
);
13172 ndr_print_uint32(ndr
, "printer_driver_attributes", r
->printer_driver_attributes
);
13173 ndr_print_ptr(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
13175 if (r
->core_driver_dependencies
) {
13176 ndr_print_string_array(ndr
, "core_driver_dependencies", r
->core_driver_dependencies
);
13179 ndr_print_NTTIME(ndr
, "min_inbox_driver_ver_date", r
->min_inbox_driver_ver_date
);
13180 ndr_print_hyper(ndr
, "min_inbox_driver_ver_version", r
->min_inbox_driver_ver_version
);
13184 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13186 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo8
, ic
);
13189 static enum ndr_err_code
ndr_push_spoolss_DriverFileType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_DriverFileType r
)
13191 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
13192 return NDR_ERR_SUCCESS
;
13195 static enum ndr_err_code
ndr_pull_spoolss_DriverFileType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_DriverFileType
*r
)
13198 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
13200 return NDR_ERR_SUCCESS
;
13203 _PUBLIC_
void ndr_print_spoolss_DriverFileType(struct ndr_print
*ndr
, const char *name
, enum spoolss_DriverFileType r
)
13205 const char *val
= NULL
;
13208 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING
: val
= "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13209 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION
: val
= "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13210 case SPOOLSS_DRIVER_FILE_TYPE_DATA
: val
= "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13211 case SPOOLSS_DRIVER_FILE_TYPE_HELP
: val
= "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13212 case SPOOLSS_DRIVER_FILE_TYPE_OTHER
: val
= "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13214 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
13217 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverFileInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverFileInfo
*r
)
13219 if (ndr_flags
& NDR_SCALARS
) {
13220 NDR_CHECK(ndr_push_align(ndr
, 4));
13222 uint32_t _flags_save_string
= ndr
->flags
;
13223 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13224 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->file_name
));
13225 ndr
->flags
= _flags_save_string
;
13227 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr
, NDR_SCALARS
, r
->file_type
));
13228 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->file_version
));
13230 if (ndr_flags
& NDR_BUFFERS
) {
13232 uint32_t _flags_save_string
= ndr
->flags
;
13233 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13234 if (r
->file_name
) {
13235 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->file_name
));
13236 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->file_name
));
13238 ndr
->flags
= _flags_save_string
;
13241 return NDR_ERR_SUCCESS
;
13244 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverFileInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverFileInfo
*r
)
13246 uint32_t _ptr_file_name
;
13247 TALLOC_CTX
*_mem_save_file_name_0
;
13248 if (ndr_flags
& NDR_SCALARS
) {
13249 NDR_CHECK(ndr_pull_align(ndr
, 4));
13251 uint32_t _flags_save_string
= ndr
->flags
;
13252 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13253 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_file_name
));
13254 if (_ptr_file_name
) {
13255 NDR_PULL_ALLOC(ndr
, r
->file_name
);
13256 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->file_name
, _ptr_file_name
));
13258 r
->file_name
= NULL
;
13260 ndr
->flags
= _flags_save_string
;
13262 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr
, NDR_SCALARS
, &r
->file_type
));
13263 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->file_version
));
13265 if (ndr_flags
& NDR_BUFFERS
) {
13267 uint32_t _flags_save_string
= ndr
->flags
;
13268 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13269 if (r
->file_name
) {
13270 uint32_t _relative_save_offset
;
13271 _relative_save_offset
= ndr
->offset
;
13272 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->file_name
));
13273 _mem_save_file_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13274 NDR_PULL_SET_MEM_CTX(ndr
, r
->file_name
, 0);
13275 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->file_name
));
13276 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_file_name_0
, 0);
13277 ndr
->offset
= _relative_save_offset
;
13279 ndr
->flags
= _flags_save_string
;
13282 return NDR_ERR_SUCCESS
;
13285 _PUBLIC_
void ndr_print_spoolss_DriverFileInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverFileInfo
*r
)
13287 ndr_print_struct(ndr
, name
, "spoolss_DriverFileInfo");
13289 ndr_print_ptr(ndr
, "file_name", r
->file_name
);
13291 if (r
->file_name
) {
13292 ndr_print_string(ndr
, "file_name", r
->file_name
);
13295 ndr_print_spoolss_DriverFileType(ndr
, "file_type", r
->file_type
);
13296 ndr_print_uint32(ndr
, "file_version", r
->file_version
);
13300 _PUBLIC_
void ndr_print_spoolss_DriverInfo101(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverInfo101
*r
)
13302 uint32_t cntr_file_info_1
;
13303 ndr_print_struct(ndr
, name
, "spoolss_DriverInfo101");
13305 ndr_print_spoolss_DriverOSVersion(ndr
, "version", r
->version
);
13306 ndr_print_ptr(ndr
, "driver_name", r
->driver_name
);
13308 if (r
->driver_name
) {
13309 ndr_print_string(ndr
, "driver_name", r
->driver_name
);
13312 ndr_print_ptr(ndr
, "architecture", r
->architecture
);
13314 if (r
->architecture
) {
13315 ndr_print_string(ndr
, "architecture", r
->architecture
);
13318 ndr_print_ptr(ndr
, "file_info", r
->file_info
);
13320 if (r
->file_info
) {
13321 ndr
->print(ndr
, "%s: ARRAY(%d)", "file_info", (int)r
->file_count
);
13323 for (cntr_file_info_1
=0;cntr_file_info_1
<r
->file_count
;cntr_file_info_1
++) {
13325 if (asprintf(&idx_1
, "[%d]", cntr_file_info_1
) != -1) {
13326 ndr_print_spoolss_DriverFileInfo(ndr
, "file_info", &r
->file_info
[cntr_file_info_1
]);
13333 ndr_print_uint32(ndr
, "file_count", r
->file_count
);
13334 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
13336 if (r
->monitor_name
) {
13337 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
13340 ndr_print_ptr(ndr
, "default_datatype", r
->default_datatype
);
13342 if (r
->default_datatype
) {
13343 ndr_print_string(ndr
, "default_datatype", r
->default_datatype
);
13346 ndr_print_ptr(ndr
, "previous_names", r
->previous_names
);
13348 if (r
->previous_names
) {
13349 ndr_print_string_array(ndr
, "previous_names", r
->previous_names
);
13352 ndr_print_NTTIME(ndr
, "driver_date", r
->driver_date
);
13353 ndr_print_hyper(ndr
, "driver_version", r
->driver_version
);
13354 ndr_print_ptr(ndr
, "manufacturer_name", r
->manufacturer_name
);
13356 if (r
->manufacturer_name
) {
13357 ndr_print_string(ndr
, "manufacturer_name", r
->manufacturer_name
);
13360 ndr_print_ptr(ndr
, "manufacturer_url", r
->manufacturer_url
);
13362 if (r
->manufacturer_url
) {
13363 ndr_print_string(ndr
, "manufacturer_url", r
->manufacturer_url
);
13366 ndr_print_ptr(ndr
, "hardware_id", r
->hardware_id
);
13368 if (r
->hardware_id
) {
13369 ndr_print_string(ndr
, "hardware_id", r
->hardware_id
);
13372 ndr_print_ptr(ndr
, "provider", r
->provider
);
13375 ndr_print_string(ndr
, "provider", r
->provider
);
13381 _PUBLIC_
size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13383 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverInfo101
, ic
);
13386 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverInfo
*r
)
13388 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
13389 if (ndr_flags
& NDR_SCALARS
) {
13390 int level
= ndr_push_get_switch_value(ndr
, r
);
13393 NDR_CHECK(ndr_push_align(ndr
, 4));
13394 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13395 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13399 NDR_CHECK(ndr_push_align(ndr
, 4));
13400 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13401 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
13405 NDR_CHECK(ndr_push_align(ndr
, 4));
13406 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13407 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
13411 NDR_CHECK(ndr_push_align(ndr
, 4));
13412 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13413 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
13417 NDR_CHECK(ndr_push_align(ndr
, 4));
13418 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13419 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
13423 NDR_CHECK(ndr_push_align(ndr
, 8));
13424 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13425 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
13429 NDR_CHECK(ndr_push_align(ndr
, 8));
13430 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13431 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
13435 NDR_CHECK(ndr_push_align(ndr
, 8));
13436 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13437 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
13445 if (ndr_flags
& NDR_BUFFERS
) {
13446 int level
= ndr_push_get_switch_value(ndr
, r
);
13447 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
13450 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13454 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
13458 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
13462 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
13466 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
13470 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
13474 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
13478 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
13486 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13487 return NDR_ERR_SUCCESS
;
13490 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverInfo
*r
)
13492 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
13494 level
= ndr_pull_get_switch_value(ndr
, r
);
13495 if (ndr_flags
& NDR_SCALARS
) {
13498 NDR_CHECK(ndr_pull_align(ndr
, 4));
13499 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13500 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13504 NDR_CHECK(ndr_pull_align(ndr
, 4));
13505 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13506 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
13510 NDR_CHECK(ndr_pull_align(ndr
, 4));
13511 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13512 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
13516 NDR_CHECK(ndr_pull_align(ndr
, 4));
13517 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13518 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_SCALARS
, &r
->info4
));
13522 NDR_CHECK(ndr_pull_align(ndr
, 4));
13523 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13524 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_SCALARS
, &r
->info5
));
13528 NDR_CHECK(ndr_pull_align(ndr
, 8));
13529 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13530 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_SCALARS
, &r
->info6
));
13534 NDR_CHECK(ndr_pull_align(ndr
, 8));
13535 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13536 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_SCALARS
, &r
->info8
));
13540 NDR_CHECK(ndr_pull_align(ndr
, 8));
13541 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13542 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_SCALARS
, &r
->info101
));
13550 if (ndr_flags
& NDR_BUFFERS
) {
13551 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
13554 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13558 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
13562 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
13566 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr
, NDR_BUFFERS
, &r
->info4
));
13570 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr
, NDR_BUFFERS
, &r
->info5
));
13574 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr
, NDR_BUFFERS
, &r
->info6
));
13578 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr
, NDR_BUFFERS
, &r
->info8
));
13582 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr
, NDR_BUFFERS
, &r
->info101
));
13590 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13591 return NDR_ERR_SUCCESS
;
13594 _PUBLIC_
void ndr_print_spoolss_DriverInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverInfo
*r
)
13597 level
= ndr_print_get_switch_value(ndr
, r
);
13598 ndr_print_union(ndr
, name
, level
, "spoolss_DriverInfo");
13601 ndr_print_spoolss_DriverInfo1(ndr
, "info1", &r
->info1
);
13605 ndr_print_spoolss_DriverInfo2(ndr
, "info2", &r
->info2
);
13609 ndr_print_spoolss_DriverInfo3(ndr
, "info3", &r
->info3
);
13613 ndr_print_spoolss_DriverInfo4(ndr
, "info4", &r
->info4
);
13617 ndr_print_spoolss_DriverInfo5(ndr
, "info5", &r
->info5
);
13621 ndr_print_spoolss_DriverInfo6(ndr
, "info6", &r
->info6
);
13625 ndr_print_spoolss_DriverInfo8(ndr
, "info8", &r
->info8
);
13629 ndr_print_spoolss_DriverInfo101(ndr
, "info101", &r
->info101
);
13638 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DriverDirectoryInfo1
*r
)
13640 if (ndr_flags
& NDR_SCALARS
) {
13641 NDR_CHECK(ndr_push_align(ndr
, 4));
13643 uint32_t _flags_save_string
= ndr
->flags
;
13644 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13645 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
13646 ndr
->flags
= _flags_save_string
;
13649 if (ndr_flags
& NDR_BUFFERS
) {
13651 return NDR_ERR_SUCCESS
;
13654 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DriverDirectoryInfo1
*r
)
13656 if (ndr_flags
& NDR_SCALARS
) {
13657 NDR_CHECK(ndr_pull_align(ndr
, 4));
13659 uint32_t _flags_save_string
= ndr
->flags
;
13660 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13661 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
13662 ndr
->flags
= _flags_save_string
;
13665 if (ndr_flags
& NDR_BUFFERS
) {
13667 return NDR_ERR_SUCCESS
;
13670 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DriverDirectoryInfo1
*r
)
13672 ndr_print_struct(ndr
, name
, "spoolss_DriverDirectoryInfo1");
13674 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
13678 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13680 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo1
, ic
);
13683 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DriverDirectoryInfo
*r
)
13685 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
13686 if (ndr_flags
& NDR_SCALARS
) {
13687 int level
= ndr_push_get_switch_value(ndr
, r
);
13690 NDR_CHECK(ndr_push_align(ndr
, 4));
13691 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13692 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13696 NDR_CHECK(ndr_push_align(ndr
, 4));
13697 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13698 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13703 if (ndr_flags
& NDR_BUFFERS
) {
13704 int level
= ndr_push_get_switch_value(ndr
, r
);
13705 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
13715 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13716 return NDR_ERR_SUCCESS
;
13719 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DriverDirectoryInfo
*r
)
13721 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
13723 level
= ndr_pull_get_switch_value(ndr
, r
);
13724 if (ndr_flags
& NDR_SCALARS
) {
13727 NDR_CHECK(ndr_pull_align(ndr
, 4));
13728 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13729 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13733 NDR_CHECK(ndr_pull_align(ndr
, 4));
13734 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13735 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13740 if (ndr_flags
& NDR_BUFFERS
) {
13741 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
13751 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13752 return NDR_ERR_SUCCESS
;
13755 _PUBLIC_
void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DriverDirectoryInfo
*r
)
13758 level
= ndr_print_get_switch_value(ndr
, r
);
13759 ndr_print_union(ndr
, name
, level
, "spoolss_DriverDirectoryInfo");
13762 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
13766 ndr_print_spoolss_DriverDirectoryInfo1(ndr
, "info1", &r
->info1
);
13772 _PUBLIC_
size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
13774 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_DriverDirectoryInfo
, ic
);
13777 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorInfo1
*r
)
13779 if (ndr_flags
& NDR_SCALARS
) {
13780 NDR_CHECK(ndr_push_align(ndr
, 4));
13782 uint32_t _flags_save_string
= ndr
->flags
;
13783 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13784 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->print_processor_name
));
13785 ndr
->flags
= _flags_save_string
;
13788 if (ndr_flags
& NDR_BUFFERS
) {
13790 uint32_t _flags_save_string
= ndr
->flags
;
13791 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13792 if (r
->print_processor_name
) {
13793 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->print_processor_name
));
13794 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->print_processor_name
));
13796 ndr
->flags
= _flags_save_string
;
13799 return NDR_ERR_SUCCESS
;
13802 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorInfo1
*r
)
13804 uint32_t _ptr_print_processor_name
;
13805 TALLOC_CTX
*_mem_save_print_processor_name_0
;
13806 if (ndr_flags
& NDR_SCALARS
) {
13807 NDR_CHECK(ndr_pull_align(ndr
, 4));
13809 uint32_t _flags_save_string
= ndr
->flags
;
13810 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13811 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
13812 if (_ptr_print_processor_name
) {
13813 NDR_PULL_ALLOC(ndr
, r
->print_processor_name
);
13814 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->print_processor_name
, _ptr_print_processor_name
));
13816 r
->print_processor_name
= NULL
;
13818 ndr
->flags
= _flags_save_string
;
13821 if (ndr_flags
& NDR_BUFFERS
) {
13823 uint32_t _flags_save_string
= ndr
->flags
;
13824 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13825 if (r
->print_processor_name
) {
13826 uint32_t _relative_save_offset
;
13827 _relative_save_offset
= ndr
->offset
;
13828 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->print_processor_name
));
13829 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
13830 NDR_PULL_SET_MEM_CTX(ndr
, r
->print_processor_name
, 0);
13831 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->print_processor_name
));
13832 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
13833 ndr
->offset
= _relative_save_offset
;
13835 ndr
->flags
= _flags_save_string
;
13838 return NDR_ERR_SUCCESS
;
13841 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorInfo1
*r
)
13843 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorInfo1");
13845 ndr_print_ptr(ndr
, "print_processor_name", r
->print_processor_name
);
13847 if (r
->print_processor_name
) {
13848 ndr_print_string(ndr
, "print_processor_name", r
->print_processor_name
);
13854 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13856 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorInfo1
, ic
);
13859 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorInfo
*r
)
13861 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
13862 if (ndr_flags
& NDR_SCALARS
) {
13863 int level
= ndr_push_get_switch_value(ndr
, r
);
13866 NDR_CHECK(ndr_push_align(ndr
, 4));
13867 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13868 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13876 if (ndr_flags
& NDR_BUFFERS
) {
13877 int level
= ndr_push_get_switch_value(ndr
, r
);
13878 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
13881 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13889 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13890 return NDR_ERR_SUCCESS
;
13893 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorInfo
*r
)
13895 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
13897 level
= ndr_pull_get_switch_value(ndr
, r
);
13898 if (ndr_flags
& NDR_SCALARS
) {
13901 NDR_CHECK(ndr_pull_align(ndr
, 4));
13902 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13903 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
13911 if (ndr_flags
& NDR_BUFFERS
) {
13912 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
13915 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
13923 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
13924 return NDR_ERR_SUCCESS
;
13927 _PUBLIC_
void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorInfo
*r
)
13930 level
= ndr_print_get_switch_value(ndr
, r
);
13931 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorInfo");
13934 ndr_print_spoolss_PrintProcessorInfo1(ndr
, "info1", &r
->info1
);
13943 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
13945 if (ndr_flags
& NDR_SCALARS
) {
13946 NDR_CHECK(ndr_push_align(ndr
, 4));
13948 uint32_t _flags_save_string
= ndr
->flags
;
13949 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13950 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->directory_name
));
13951 ndr
->flags
= _flags_save_string
;
13954 if (ndr_flags
& NDR_BUFFERS
) {
13956 return NDR_ERR_SUCCESS
;
13959 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcessorDirectoryInfo1
*r
)
13961 if (ndr_flags
& NDR_SCALARS
) {
13962 NDR_CHECK(ndr_pull_align(ndr
, 4));
13964 uint32_t _flags_save_string
= ndr
->flags
;
13965 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
13966 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->directory_name
));
13967 ndr
->flags
= _flags_save_string
;
13970 if (ndr_flags
& NDR_BUFFERS
) {
13972 return NDR_ERR_SUCCESS
;
13975 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcessorDirectoryInfo1
*r
)
13977 ndr_print_struct(ndr
, name
, "spoolss_PrintProcessorDirectoryInfo1");
13979 ndr_print_string(ndr
, "directory_name", r
->directory_name
);
13983 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
13985 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo1
, ic
);
13988 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
13990 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
13991 if (ndr_flags
& NDR_SCALARS
) {
13992 int level
= ndr_push_get_switch_value(ndr
, r
);
13995 NDR_CHECK(ndr_push_align(ndr
, 4));
13996 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
13997 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14001 NDR_CHECK(ndr_push_align(ndr
, 4));
14002 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14003 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14008 if (ndr_flags
& NDR_BUFFERS
) {
14009 int level
= ndr_push_get_switch_value(ndr
, r
);
14010 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
14020 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14021 return NDR_ERR_SUCCESS
;
14024 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcessorDirectoryInfo
*r
)
14026 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
14028 level
= ndr_pull_get_switch_value(ndr
, r
);
14029 if (ndr_flags
& NDR_SCALARS
) {
14032 NDR_CHECK(ndr_pull_align(ndr
, 4));
14033 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14034 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14038 NDR_CHECK(ndr_pull_align(ndr
, 4));
14039 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
14040 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
14045 if (ndr_flags
& NDR_BUFFERS
) {
14046 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
14056 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
14057 return NDR_ERR_SUCCESS
;
14060 _PUBLIC_
void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcessorDirectoryInfo
*r
)
14063 level
= ndr_print_get_switch_value(ndr
, r
);
14064 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcessorDirectoryInfo");
14067 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
14071 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr
, "info1", &r
->info1
);
14077 _PUBLIC_
size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14079 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcessorDirectoryInfo
, ic
);
14082 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_DocumentInfo1
*r
)
14084 if (ndr_flags
& NDR_SCALARS
) {
14085 NDR_CHECK(ndr_push_align(ndr
, 4));
14086 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->document_name
));
14087 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->output_file
));
14088 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->datatype
));
14090 if (ndr_flags
& NDR_BUFFERS
) {
14091 if (r
->document_name
) {
14092 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
14093 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14094 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->document_name
, CH_UTF16
)));
14095 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->document_name
, ndr_charset_length(r
->document_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14097 if (r
->output_file
) {
14098 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
14099 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14100 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->output_file
, CH_UTF16
)));
14101 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->output_file
, ndr_charset_length(r
->output_file
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14104 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
14105 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
14106 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->datatype
, CH_UTF16
)));
14107 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->datatype
, ndr_charset_length(r
->datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
14110 return NDR_ERR_SUCCESS
;
14113 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_DocumentInfo1
*r
)
14115 uint32_t _ptr_document_name
;
14116 TALLOC_CTX
*_mem_save_document_name_0
;
14117 uint32_t _ptr_output_file
;
14118 TALLOC_CTX
*_mem_save_output_file_0
;
14119 uint32_t _ptr_datatype
;
14120 TALLOC_CTX
*_mem_save_datatype_0
;
14121 if (ndr_flags
& NDR_SCALARS
) {
14122 NDR_CHECK(ndr_pull_align(ndr
, 4));
14123 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_document_name
));
14124 if (_ptr_document_name
) {
14125 NDR_PULL_ALLOC(ndr
, r
->document_name
);
14127 r
->document_name
= NULL
;
14129 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_output_file
));
14130 if (_ptr_output_file
) {
14131 NDR_PULL_ALLOC(ndr
, r
->output_file
);
14133 r
->output_file
= NULL
;
14135 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
14136 if (_ptr_datatype
) {
14137 NDR_PULL_ALLOC(ndr
, r
->datatype
);
14139 r
->datatype
= NULL
;
14142 if (ndr_flags
& NDR_BUFFERS
) {
14143 if (r
->document_name
) {
14144 _mem_save_document_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14145 NDR_PULL_SET_MEM_CTX(ndr
, r
->document_name
, 0);
14146 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->document_name
));
14147 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->document_name
));
14148 if (ndr_get_array_length(ndr
, &r
->document_name
) > ndr_get_array_size(ndr
, &r
->document_name
)) {
14149 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
));
14151 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t)));
14152 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->document_name
, ndr_get_array_length(ndr
, &r
->document_name
), sizeof(uint16_t), CH_UTF16
));
14153 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_document_name_0
, 0);
14155 if (r
->output_file
) {
14156 _mem_save_output_file_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14157 NDR_PULL_SET_MEM_CTX(ndr
, r
->output_file
, 0);
14158 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->output_file
));
14159 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->output_file
));
14160 if (ndr_get_array_length(ndr
, &r
->output_file
) > ndr_get_array_size(ndr
, &r
->output_file
)) {
14161 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
));
14163 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t)));
14164 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->output_file
, ndr_get_array_length(ndr
, &r
->output_file
), sizeof(uint16_t), CH_UTF16
));
14165 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_output_file_0
, 0);
14168 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14169 NDR_PULL_SET_MEM_CTX(ndr
, r
->datatype
, 0);
14170 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->datatype
));
14171 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->datatype
));
14172 if (ndr_get_array_length(ndr
, &r
->datatype
) > ndr_get_array_size(ndr
, &r
->datatype
)) {
14173 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
));
14175 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t)));
14176 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->datatype
, ndr_get_array_length(ndr
, &r
->datatype
), sizeof(uint16_t), CH_UTF16
));
14177 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
14180 return NDR_ERR_SUCCESS
;
14183 _PUBLIC_
void ndr_print_spoolss_DocumentInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_DocumentInfo1
*r
)
14185 ndr_print_struct(ndr
, name
, "spoolss_DocumentInfo1");
14187 ndr_print_ptr(ndr
, "document_name", r
->document_name
);
14189 if (r
->document_name
) {
14190 ndr_print_string(ndr
, "document_name", r
->document_name
);
14193 ndr_print_ptr(ndr
, "output_file", r
->output_file
);
14195 if (r
->output_file
) {
14196 ndr_print_string(ndr
, "output_file", r
->output_file
);
14199 ndr_print_ptr(ndr
, "datatype", r
->datatype
);
14202 ndr_print_string(ndr
, "datatype", r
->datatype
);
14208 static enum ndr_err_code
ndr_push_spoolss_DocumentInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_DocumentInfo
*r
)
14210 if (ndr_flags
& NDR_SCALARS
) {
14211 int level
= ndr_push_get_switch_value(ndr
, r
);
14212 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
14215 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
14229 if (ndr_flags
& NDR_BUFFERS
) {
14230 int level
= ndr_push_get_switch_value(ndr
, r
);
14234 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
14249 return NDR_ERR_SUCCESS
;
14252 static enum ndr_err_code
ndr_pull_spoolss_DocumentInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_DocumentInfo
*r
)
14256 TALLOC_CTX
*_mem_save_info1_0
;
14257 level
= ndr_pull_get_switch_value(ndr
, r
);
14258 if (ndr_flags
& NDR_SCALARS
) {
14259 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
14260 if (_level
!= level
) {
14261 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
14265 uint32_t _ptr_info1
;
14266 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
14268 NDR_PULL_ALLOC(ndr
, r
->info1
);
14285 if (ndr_flags
& NDR_BUFFERS
) {
14289 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14290 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
14291 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
14292 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
14307 return NDR_ERR_SUCCESS
;
14310 _PUBLIC_
void ndr_print_spoolss_DocumentInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_DocumentInfo
*r
)
14313 level
= ndr_print_get_switch_value(ndr
, r
);
14314 ndr_print_union(ndr
, name
, level
, "spoolss_DocumentInfo");
14317 ndr_print_ptr(ndr
, "info1", r
->info1
);
14320 ndr_print_spoolss_DocumentInfo1(ndr
, "info1", r
->info1
);
14337 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersion(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersion
*r
)
14339 if (ndr_flags
& NDR_SCALARS
) {
14340 NDR_CHECK(ndr_push_align(ndr
, 4));
14341 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersion(r
, ndr
->iconv_convenience
, ndr
->flags
)));
14342 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
14343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
14344 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
14345 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
14347 uint32_t _flags_save_string
= ndr
->flags
;
14348 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14350 struct ndr_push
*_ndr_extra_string
;
14351 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
14352 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
14353 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
14355 ndr
->flags
= _flags_save_string
;
14358 if (ndr_flags
& NDR_BUFFERS
) {
14360 return NDR_ERR_SUCCESS
;
14363 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersion(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersion
*r
)
14365 if (ndr_flags
& NDR_SCALARS
) {
14366 NDR_CHECK(ndr_pull_align(ndr
, 4));
14367 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
14368 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
14369 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
14370 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
14371 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown
));
14373 uint32_t _flags_save_string
= ndr
->flags
;
14374 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14376 struct ndr_pull
*_ndr_extra_string
;
14377 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
14378 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
14379 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
14381 ndr
->flags
= _flags_save_string
;
14384 if (ndr_flags
& NDR_BUFFERS
) {
14386 return NDR_ERR_SUCCESS
;
14389 _PUBLIC_
void ndr_print_spoolss_OSVersion(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersion
*r
)
14391 ndr_print_struct(ndr
, name
, "spoolss_OSVersion");
14393 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
);
14394 ndr_print_uint32(ndr
, "major", r
->major
);
14395 ndr_print_uint32(ndr
, "minor", r
->minor
);
14396 ndr_print_uint32(ndr
, "build", r
->build
);
14397 ndr_print_uint32(ndr
, "unknown", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->unknown
);
14398 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
14402 _PUBLIC_
size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14404 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersion
, ic
);
14407 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OSVersionEx(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_OSVersionEx
*r
)
14409 if (ndr_flags
& NDR_SCALARS
) {
14410 NDR_CHECK(ndr_push_align(ndr
, 4));
14411 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_size_spoolss_OSVersionEx(r
, ndr
->iconv_convenience
, ndr
->flags
)));
14412 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->major
));
14413 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->minor
));
14414 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
14415 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
14417 uint32_t _flags_save_string
= ndr
->flags
;
14418 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14420 struct ndr_push
*_ndr_extra_string
;
14421 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
14422 NDR_CHECK(ndr_push_string(_ndr_extra_string
, NDR_SCALARS
, r
->extra_string
));
14423 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
14425 ndr
->flags
= _flags_save_string
;
14427 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown2
));
14428 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->unknown3
));
14430 if (ndr_flags
& NDR_BUFFERS
) {
14432 return NDR_ERR_SUCCESS
;
14435 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OSVersionEx(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_OSVersionEx
*r
)
14437 if (ndr_flags
& NDR_SCALARS
) {
14438 NDR_CHECK(ndr_pull_align(ndr
, 4));
14439 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->_ndr_size
));
14440 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->major
));
14441 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->minor
));
14442 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
14443 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown1
));
14445 uint32_t _flags_save_string
= ndr
->flags
;
14446 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14448 struct ndr_pull
*_ndr_extra_string
;
14449 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_extra_string
, 0, 256));
14450 NDR_CHECK(ndr_pull_string(_ndr_extra_string
, NDR_SCALARS
, &r
->extra_string
));
14451 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_extra_string
, 0, 256));
14453 ndr
->flags
= _flags_save_string
;
14455 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown2
));
14456 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->unknown3
));
14458 if (ndr_flags
& NDR_BUFFERS
) {
14460 return NDR_ERR_SUCCESS
;
14463 _PUBLIC_
void ndr_print_spoolss_OSVersionEx(struct ndr_print
*ndr
, const char *name
, const struct spoolss_OSVersionEx
*r
)
14465 ndr_print_struct(ndr
, name
, "spoolss_OSVersionEx");
14467 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
);
14468 ndr_print_uint32(ndr
, "major", r
->major
);
14469 ndr_print_uint32(ndr
, "minor", r
->minor
);
14470 ndr_print_uint32(ndr
, "build", r
->build
);
14471 ndr_print_uint32(ndr
, "unknown1", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->unknown1
);
14472 ndr_print_string(ndr
, "extra_string", r
->extra_string
);
14473 ndr_print_uint32(ndr
, "unknown2", r
->unknown2
);
14474 ndr_print_uint32(ndr
, "unknown3", r
->unknown3
);
14478 _PUBLIC_
size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14480 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_OSVersionEx
, ic
);
14483 static enum ndr_err_code
ndr_push_spoolss_PrinterDataType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PrinterDataType r
)
14485 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
14486 return NDR_ERR_SUCCESS
;
14489 static enum ndr_err_code
ndr_pull_spoolss_PrinterDataType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PrinterDataType
*r
)
14492 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
14494 return NDR_ERR_SUCCESS
;
14497 _PUBLIC_
void ndr_print_spoolss_PrinterDataType(struct ndr_print
*ndr
, const char *name
, enum spoolss_PrinterDataType r
)
14499 const char *val
= NULL
;
14502 case SPOOLSS_PRINTER_DATA_TYPE_NULL
: val
= "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
14503 case SPOOLSS_PRINTER_DATA_TYPE_STRING
: val
= "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
14504 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
: val
= "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
14505 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
: val
= "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
14506 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
: val
= "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
14508 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
14511 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrinterData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrinterData
*r
)
14513 if (ndr_flags
& NDR_SCALARS
) {
14514 int level
= ndr_push_get_switch_value(ndr
, r
);
14516 case SPOOLSS_PRINTER_DATA_TYPE_NULL
: {
14519 case SPOOLSS_PRINTER_DATA_TYPE_STRING
: {
14521 uint32_t _flags_save_string
= ndr
->flags
;
14522 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14523 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->string
));
14524 ndr
->flags
= _flags_save_string
;
14528 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
: {
14530 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
14531 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
14532 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->binary
));
14533 ndr
->flags
= _flags_save_DATA_BLOB
;
14537 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
: {
14538 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->value
));
14541 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
: {
14543 uint32_t _flags_save_string_array
= ndr
->flags
;
14544 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14545 NDR_CHECK(ndr_push_string_array(ndr
, NDR_SCALARS
, r
->string_array
));
14546 ndr
->flags
= _flags_save_string_array
;
14552 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
14553 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
14554 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->data
));
14555 ndr
->flags
= _flags_save_DATA_BLOB
;
14561 if (ndr_flags
& NDR_BUFFERS
) {
14562 int level
= ndr_push_get_switch_value(ndr
, r
);
14564 case SPOOLSS_PRINTER_DATA_TYPE_NULL
:
14567 case SPOOLSS_PRINTER_DATA_TYPE_STRING
:
14570 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
:
14573 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
:
14576 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
:
14584 return NDR_ERR_SUCCESS
;
14587 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrinterData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrinterData
*r
)
14590 level
= ndr_pull_get_switch_value(ndr
, r
);
14591 if (ndr_flags
& NDR_SCALARS
) {
14593 case SPOOLSS_PRINTER_DATA_TYPE_NULL
: {
14596 case SPOOLSS_PRINTER_DATA_TYPE_STRING
: {
14598 uint32_t _flags_save_string
= ndr
->flags
;
14599 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14600 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->string
));
14601 ndr
->flags
= _flags_save_string
;
14605 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
: {
14607 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
14608 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
14609 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->binary
));
14610 ndr
->flags
= _flags_save_DATA_BLOB
;
14614 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
: {
14615 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->value
));
14618 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
: {
14620 uint32_t _flags_save_string_array
= ndr
->flags
;
14621 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14622 NDR_CHECK(ndr_pull_string_array(ndr
, NDR_SCALARS
, &r
->string_array
));
14623 ndr
->flags
= _flags_save_string_array
;
14629 uint32_t _flags_save_DATA_BLOB
= ndr
->flags
;
14630 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_REMAINING
);
14631 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->data
));
14632 ndr
->flags
= _flags_save_DATA_BLOB
;
14638 if (ndr_flags
& NDR_BUFFERS
) {
14640 case SPOOLSS_PRINTER_DATA_TYPE_NULL
:
14643 case SPOOLSS_PRINTER_DATA_TYPE_STRING
:
14646 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
:
14649 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
:
14652 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
:
14660 return NDR_ERR_SUCCESS
;
14663 _PUBLIC_
void ndr_print_spoolss_PrinterData(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrinterData
*r
)
14666 level
= ndr_print_get_switch_value(ndr
, r
);
14667 ndr_print_union(ndr
, name
, level
, "spoolss_PrinterData");
14669 case SPOOLSS_PRINTER_DATA_TYPE_NULL
:
14672 case SPOOLSS_PRINTER_DATA_TYPE_STRING
:
14673 ndr_print_string(ndr
, "string", r
->string
);
14676 case SPOOLSS_PRINTER_DATA_TYPE_BINARY
:
14677 ndr_print_DATA_BLOB(ndr
, "binary", r
->binary
);
14680 case SPOOLSS_PRINTER_DATA_TYPE_UINT32
:
14681 ndr_print_uint32(ndr
, "value", r
->value
);
14684 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY
:
14685 ndr_print_string_array(ndr
, "string_array", r
->string_array
);
14689 ndr_print_DATA_BLOB(ndr
, "data", r
->data
);
14695 _PUBLIC_
size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
14697 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrinterData
, ic
);
14700 static enum ndr_err_code
ndr_push_spoolss_FormFlags(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_FormFlags r
)
14702 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
14703 return NDR_ERR_SUCCESS
;
14706 static enum ndr_err_code
ndr_pull_spoolss_FormFlags(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_FormFlags
*r
)
14709 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
14711 return NDR_ERR_SUCCESS
;
14714 _PUBLIC_
void ndr_print_spoolss_FormFlags(struct ndr_print
*ndr
, const char *name
, enum spoolss_FormFlags r
)
14716 const char *val
= NULL
;
14719 case SPOOLSS_FORM_USER
: val
= "SPOOLSS_FORM_USER"; break;
14720 case SPOOLSS_FORM_BUILTIN
: val
= "SPOOLSS_FORM_BUILTIN"; break;
14721 case SPOOLSS_FORM_PRINTER
: val
= "SPOOLSS_FORM_PRINTER"; break;
14723 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
14726 static enum ndr_err_code
ndr_push_spoolss_FormSize(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormSize
*r
)
14728 if (ndr_flags
& NDR_SCALARS
) {
14729 NDR_CHECK(ndr_push_align(ndr
, 4));
14730 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->width
));
14731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->height
));
14733 if (ndr_flags
& NDR_BUFFERS
) {
14735 return NDR_ERR_SUCCESS
;
14738 static enum ndr_err_code
ndr_pull_spoolss_FormSize(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormSize
*r
)
14740 if (ndr_flags
& NDR_SCALARS
) {
14741 NDR_CHECK(ndr_pull_align(ndr
, 4));
14742 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->width
));
14743 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->height
));
14745 if (ndr_flags
& NDR_BUFFERS
) {
14747 return NDR_ERR_SUCCESS
;
14750 _PUBLIC_
void ndr_print_spoolss_FormSize(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormSize
*r
)
14752 ndr_print_struct(ndr
, name
, "spoolss_FormSize");
14754 ndr_print_uint32(ndr
, "width", r
->width
);
14755 ndr_print_uint32(ndr
, "height", r
->height
);
14759 static enum ndr_err_code
ndr_push_spoolss_FormArea(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormArea
*r
)
14761 if (ndr_flags
& NDR_SCALARS
) {
14762 NDR_CHECK(ndr_push_align(ndr
, 4));
14763 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->left
));
14764 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->top
));
14765 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->right
));
14766 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->bottom
));
14768 if (ndr_flags
& NDR_BUFFERS
) {
14770 return NDR_ERR_SUCCESS
;
14773 static enum ndr_err_code
ndr_pull_spoolss_FormArea(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormArea
*r
)
14775 if (ndr_flags
& NDR_SCALARS
) {
14776 NDR_CHECK(ndr_pull_align(ndr
, 4));
14777 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->left
));
14778 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->top
));
14779 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->right
));
14780 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->bottom
));
14782 if (ndr_flags
& NDR_BUFFERS
) {
14784 return NDR_ERR_SUCCESS
;
14787 _PUBLIC_
void ndr_print_spoolss_FormArea(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormArea
*r
)
14789 ndr_print_struct(ndr
, name
, "spoolss_FormArea");
14791 ndr_print_uint32(ndr
, "left", r
->left
);
14792 ndr_print_uint32(ndr
, "top", r
->top
);
14793 ndr_print_uint32(ndr
, "right", r
->right
);
14794 ndr_print_uint32(ndr
, "bottom", r
->bottom
);
14798 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo1
*r
)
14800 if (ndr_flags
& NDR_SCALARS
) {
14801 NDR_CHECK(ndr_push_align(ndr
, 4));
14802 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
14804 uint32_t _flags_save_string
= ndr
->flags
;
14805 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14806 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
14807 ndr
->flags
= _flags_save_string
;
14809 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
14810 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
14812 if (ndr_flags
& NDR_BUFFERS
) {
14814 uint32_t _flags_save_string
= ndr
->flags
;
14815 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14816 if (r
->form_name
) {
14817 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->form_name
));
14818 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
14820 ndr
->flags
= _flags_save_string
;
14823 return NDR_ERR_SUCCESS
;
14826 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo1
*r
)
14828 uint32_t _ptr_form_name
;
14829 TALLOC_CTX
*_mem_save_form_name_0
;
14830 if (ndr_flags
& NDR_SCALARS
) {
14831 NDR_CHECK(ndr_pull_align(ndr
, 4));
14832 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
14834 uint32_t _flags_save_string
= ndr
->flags
;
14835 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14836 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
14837 if (_ptr_form_name
) {
14838 NDR_PULL_ALLOC(ndr
, r
->form_name
);
14839 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
14841 r
->form_name
= NULL
;
14843 ndr
->flags
= _flags_save_string
;
14845 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
14846 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
14848 if (ndr_flags
& NDR_BUFFERS
) {
14850 uint32_t _flags_save_string
= ndr
->flags
;
14851 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14852 if (r
->form_name
) {
14853 uint32_t _relative_save_offset
;
14854 _relative_save_offset
= ndr
->offset
;
14855 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
14856 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
14857 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
14858 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
14859 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
14860 ndr
->offset
= _relative_save_offset
;
14862 ndr
->flags
= _flags_save_string
;
14865 return NDR_ERR_SUCCESS
;
14868 _PUBLIC_
void ndr_print_spoolss_FormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo1
*r
)
14870 ndr_print_struct(ndr
, name
, "spoolss_FormInfo1");
14872 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
14873 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
14875 if (r
->form_name
) {
14876 ndr_print_string(ndr
, "form_name", r
->form_name
);
14879 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
14880 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
14884 _PUBLIC_
size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
14886 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo1
, ic
);
14889 static enum ndr_err_code
ndr_push_spoolss_FormStringType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
14891 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
14892 return NDR_ERR_SUCCESS
;
14895 static enum ndr_err_code
ndr_pull_spoolss_FormStringType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
14898 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
14900 return NDR_ERR_SUCCESS
;
14903 _PUBLIC_
void ndr_print_spoolss_FormStringType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
14905 ndr_print_uint32(ndr
, name
, r
);
14907 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE
, r
);
14908 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL
, r
);
14909 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR
, r
);
14913 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_FormInfo2
*r
)
14915 if (ndr_flags
& NDR_SCALARS
) {
14916 NDR_CHECK(ndr_push_align(ndr
, 4));
14917 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
14919 uint32_t _flags_save_string
= ndr
->flags
;
14920 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14921 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->form_name
));
14922 ndr
->flags
= _flags_save_string
;
14924 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
14925 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
14927 uint32_t _flags_save_string
= ndr
->flags
;
14928 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
14929 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->keyword
));
14930 ndr
->flags
= _flags_save_string
;
14932 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
14934 uint32_t _flags_save_string
= ndr
->flags
;
14935 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14936 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->mui_dll
));
14937 ndr
->flags
= _flags_save_string
;
14939 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
14941 uint32_t _flags_save_string
= ndr
->flags
;
14942 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14943 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->display_name
));
14944 ndr
->flags
= _flags_save_string
;
14946 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
14948 if (ndr_flags
& NDR_BUFFERS
) {
14950 uint32_t _flags_save_string
= ndr
->flags
;
14951 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14952 if (r
->form_name
) {
14953 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->form_name
));
14954 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->form_name
));
14956 ndr
->flags
= _flags_save_string
;
14959 uint32_t _flags_save_string
= ndr
->flags
;
14960 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
14962 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->keyword
));
14963 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->keyword
));
14965 ndr
->flags
= _flags_save_string
;
14968 uint32_t _flags_save_string
= ndr
->flags
;
14969 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14971 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->mui_dll
));
14972 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->mui_dll
));
14974 ndr
->flags
= _flags_save_string
;
14977 uint32_t _flags_save_string
= ndr
->flags
;
14978 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
14979 if (r
->display_name
) {
14980 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->display_name
));
14981 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->display_name
));
14983 ndr
->flags
= _flags_save_string
;
14986 return NDR_ERR_SUCCESS
;
14989 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_FormInfo2
*r
)
14991 uint32_t _ptr_form_name
;
14992 TALLOC_CTX
*_mem_save_form_name_0
;
14993 uint32_t _ptr_keyword
;
14994 TALLOC_CTX
*_mem_save_keyword_0
;
14995 uint32_t _ptr_mui_dll
;
14996 TALLOC_CTX
*_mem_save_mui_dll_0
;
14997 uint32_t _ptr_display_name
;
14998 TALLOC_CTX
*_mem_save_display_name_0
;
14999 if (ndr_flags
& NDR_SCALARS
) {
15000 NDR_CHECK(ndr_pull_align(ndr
, 4));
15001 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15003 uint32_t _flags_save_string
= ndr
->flags
;
15004 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15005 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15006 if (_ptr_form_name
) {
15007 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15008 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->form_name
, _ptr_form_name
));
15010 r
->form_name
= NULL
;
15012 ndr
->flags
= _flags_save_string
;
15014 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15015 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15017 uint32_t _flags_save_string
= ndr
->flags
;
15018 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15019 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
15020 if (_ptr_keyword
) {
15021 NDR_PULL_ALLOC(ndr
, r
->keyword
);
15022 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->keyword
, _ptr_keyword
));
15026 ndr
->flags
= _flags_save_string
;
15028 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
15030 uint32_t _flags_save_string
= ndr
->flags
;
15031 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15032 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
15033 if (_ptr_mui_dll
) {
15034 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
15035 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->mui_dll
, _ptr_mui_dll
));
15039 ndr
->flags
= _flags_save_string
;
15041 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
15043 uint32_t _flags_save_string
= ndr
->flags
;
15044 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15045 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
15046 if (_ptr_display_name
) {
15047 NDR_PULL_ALLOC(ndr
, r
->display_name
);
15048 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->display_name
, _ptr_display_name
));
15050 r
->display_name
= NULL
;
15052 ndr
->flags
= _flags_save_string
;
15054 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
15056 if (ndr_flags
& NDR_BUFFERS
) {
15058 uint32_t _flags_save_string
= ndr
->flags
;
15059 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15060 if (r
->form_name
) {
15061 uint32_t _relative_save_offset
;
15062 _relative_save_offset
= ndr
->offset
;
15063 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->form_name
));
15064 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15065 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15066 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->form_name
));
15067 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15068 ndr
->offset
= _relative_save_offset
;
15070 ndr
->flags
= _flags_save_string
;
15073 uint32_t _flags_save_string
= ndr
->flags
;
15074 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_ASCII
|LIBNDR_FLAG_STR_NULLTERM
);
15076 uint32_t _relative_save_offset
;
15077 _relative_save_offset
= ndr
->offset
;
15078 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->keyword
));
15079 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15080 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
15081 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->keyword
));
15082 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
15083 ndr
->offset
= _relative_save_offset
;
15085 ndr
->flags
= _flags_save_string
;
15088 uint32_t _flags_save_string
= ndr
->flags
;
15089 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15091 uint32_t _relative_save_offset
;
15092 _relative_save_offset
= ndr
->offset
;
15093 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->mui_dll
));
15094 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15095 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
15096 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->mui_dll
));
15097 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
15098 ndr
->offset
= _relative_save_offset
;
15100 ndr
->flags
= _flags_save_string
;
15103 uint32_t _flags_save_string
= ndr
->flags
;
15104 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15105 if (r
->display_name
) {
15106 uint32_t _relative_save_offset
;
15107 _relative_save_offset
= ndr
->offset
;
15108 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->display_name
));
15109 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15110 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
15111 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->display_name
));
15112 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
15113 ndr
->offset
= _relative_save_offset
;
15115 ndr
->flags
= _flags_save_string
;
15118 return NDR_ERR_SUCCESS
;
15121 _PUBLIC_
void ndr_print_spoolss_FormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_FormInfo2
*r
)
15123 ndr_print_struct(ndr
, name
, "spoolss_FormInfo2");
15125 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15126 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15128 if (r
->form_name
) {
15129 ndr_print_string(ndr
, "form_name", r
->form_name
);
15132 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15133 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15134 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
15137 ndr_print_string(ndr
, "keyword", r
->keyword
);
15140 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
15141 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
15144 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
15147 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
15148 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
15150 if (r
->display_name
) {
15151 ndr_print_string(ndr
, "display_name", r
->display_name
);
15154 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
15158 _PUBLIC_
size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15160 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo2
, ic
);
15163 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_FormInfo
*r
)
15165 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
15166 if (ndr_flags
& NDR_SCALARS
) {
15167 int level
= ndr_push_get_switch_value(ndr
, r
);
15170 NDR_CHECK(ndr_push_align(ndr
, 4));
15171 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15172 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15176 NDR_CHECK(ndr_push_align(ndr
, 4));
15177 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15178 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15186 if (ndr_flags
& NDR_BUFFERS
) {
15187 int level
= ndr_push_get_switch_value(ndr
, r
);
15188 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
15191 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15195 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15203 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15204 return NDR_ERR_SUCCESS
;
15207 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_FormInfo
*r
)
15209 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
15211 level
= ndr_pull_get_switch_value(ndr
, r
);
15212 if (ndr_flags
& NDR_SCALARS
) {
15215 NDR_CHECK(ndr_pull_align(ndr
, 4));
15216 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15217 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
15221 NDR_CHECK(ndr_pull_align(ndr
, 4));
15222 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
15223 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
15231 if (ndr_flags
& NDR_BUFFERS
) {
15232 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
15235 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
15239 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
15247 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
15248 return NDR_ERR_SUCCESS
;
15251 _PUBLIC_
void ndr_print_spoolss_FormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_FormInfo
*r
)
15254 level
= ndr_print_get_switch_value(ndr
, r
);
15255 ndr_print_union(ndr
, name
, level
, "spoolss_FormInfo");
15258 ndr_print_spoolss_FormInfo1(ndr
, "info1", &r
->info1
);
15262 ndr_print_spoolss_FormInfo2(ndr
, "info2", &r
->info2
);
15271 _PUBLIC_
size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo
*r
, uint32_t level
, struct smb_iconv_convenience
*ic
, int flags
)
15273 return ndr_size_union(r
, flags
, level
, (ndr_push_flags_fn_t
)ndr_push_spoolss_FormInfo
, ic
);
15276 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo1
*r
)
15278 if (ndr_flags
& NDR_SCALARS
) {
15279 NDR_CHECK(ndr_push_align(ndr
, 4));
15280 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15281 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
15282 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15283 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15285 if (ndr_flags
& NDR_BUFFERS
) {
15286 if (r
->form_name
) {
15287 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15288 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15289 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15290 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15293 return NDR_ERR_SUCCESS
;
15296 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo1
*r
)
15298 uint32_t _ptr_form_name
;
15299 TALLOC_CTX
*_mem_save_form_name_0
;
15300 if (ndr_flags
& NDR_SCALARS
) {
15301 NDR_CHECK(ndr_pull_align(ndr
, 4));
15302 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15303 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15304 if (_ptr_form_name
) {
15305 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15307 r
->form_name
= NULL
;
15309 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15310 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15312 if (ndr_flags
& NDR_BUFFERS
) {
15313 if (r
->form_name
) {
15314 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15315 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15316 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
15317 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
15318 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
15319 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
));
15321 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
15322 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
15323 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15326 return NDR_ERR_SUCCESS
;
15329 _PUBLIC_
void ndr_print_spoolss_AddFormInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo1
*r
)
15331 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo1");
15333 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15334 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15336 if (r
->form_name
) {
15337 ndr_print_string(ndr
, "form_name", r
->form_name
);
15340 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15341 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15345 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_AddFormInfo2
*r
)
15347 if (ndr_flags
& NDR_SCALARS
) {
15348 NDR_CHECK(ndr_push_align(ndr
, 4));
15349 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr
, NDR_SCALARS
, r
->flags
));
15350 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->form_name
));
15351 NDR_CHECK(ndr_push_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15352 NDR_CHECK(ndr_push_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15353 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->keyword
));
15354 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr
, NDR_SCALARS
, r
->string_type
));
15355 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->mui_dll
));
15356 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->ressource_id
));
15357 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->display_name
));
15358 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->lang_id
));
15360 if (ndr_flags
& NDR_BUFFERS
) {
15361 if (r
->form_name
) {
15362 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15363 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15364 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->form_name
, CH_UTF16
)));
15365 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->form_name
, ndr_charset_length(r
->form_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15368 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
15369 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15370 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->keyword
, CH_DOS
)));
15371 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->keyword
, ndr_charset_length(r
->keyword
, CH_DOS
), sizeof(uint8_t), CH_DOS
));
15374 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
15375 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->mui_dll
, CH_UTF16
)));
15377 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->mui_dll
, ndr_charset_length(r
->mui_dll
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15379 if (r
->display_name
) {
15380 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
15381 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
15382 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->display_name
, CH_UTF16
)));
15383 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->display_name
, ndr_charset_length(r
->display_name
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
15386 return NDR_ERR_SUCCESS
;
15389 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_AddFormInfo2
*r
)
15391 uint32_t _ptr_form_name
;
15392 TALLOC_CTX
*_mem_save_form_name_0
;
15393 uint32_t _ptr_keyword
;
15394 TALLOC_CTX
*_mem_save_keyword_0
;
15395 uint32_t _ptr_mui_dll
;
15396 TALLOC_CTX
*_mem_save_mui_dll_0
;
15397 uint32_t _ptr_display_name
;
15398 TALLOC_CTX
*_mem_save_display_name_0
;
15399 if (ndr_flags
& NDR_SCALARS
) {
15400 NDR_CHECK(ndr_pull_align(ndr
, 4));
15401 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr
, NDR_SCALARS
, &r
->flags
));
15402 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_form_name
));
15403 if (_ptr_form_name
) {
15404 NDR_PULL_ALLOC(ndr
, r
->form_name
);
15406 r
->form_name
= NULL
;
15408 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr
, NDR_SCALARS
, &r
->size
));
15409 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr
, NDR_SCALARS
, &r
->area
));
15410 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_keyword
));
15411 if (_ptr_keyword
) {
15412 NDR_PULL_ALLOC(ndr
, r
->keyword
);
15416 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr
, NDR_SCALARS
, &r
->string_type
));
15417 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_mui_dll
));
15418 if (_ptr_mui_dll
) {
15419 NDR_PULL_ALLOC(ndr
, r
->mui_dll
);
15423 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->ressource_id
));
15424 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_display_name
));
15425 if (_ptr_display_name
) {
15426 NDR_PULL_ALLOC(ndr
, r
->display_name
);
15428 r
->display_name
= NULL
;
15430 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->lang_id
));
15432 if (ndr_flags
& NDR_BUFFERS
) {
15433 if (r
->form_name
) {
15434 _mem_save_form_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15435 NDR_PULL_SET_MEM_CTX(ndr
, r
->form_name
, 0);
15436 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->form_name
));
15437 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->form_name
));
15438 if (ndr_get_array_length(ndr
, &r
->form_name
) > ndr_get_array_size(ndr
, &r
->form_name
)) {
15439 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
));
15441 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t)));
15442 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->form_name
, ndr_get_array_length(ndr
, &r
->form_name
), sizeof(uint16_t), CH_UTF16
));
15443 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_form_name_0
, 0);
15446 _mem_save_keyword_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15447 NDR_PULL_SET_MEM_CTX(ndr
, r
->keyword
, 0);
15448 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->keyword
));
15449 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->keyword
));
15450 if (ndr_get_array_length(ndr
, &r
->keyword
) > ndr_get_array_size(ndr
, &r
->keyword
)) {
15451 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
));
15453 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t)));
15454 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->keyword
, ndr_get_array_length(ndr
, &r
->keyword
), sizeof(uint8_t), CH_DOS
));
15455 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_keyword_0
, 0);
15458 _mem_save_mui_dll_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15459 NDR_PULL_SET_MEM_CTX(ndr
, r
->mui_dll
, 0);
15460 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->mui_dll
));
15461 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->mui_dll
));
15462 if (ndr_get_array_length(ndr
, &r
->mui_dll
) > ndr_get_array_size(ndr
, &r
->mui_dll
)) {
15463 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
));
15465 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t)));
15466 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->mui_dll
, ndr_get_array_length(ndr
, &r
->mui_dll
), sizeof(uint16_t), CH_UTF16
));
15467 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_mui_dll_0
, 0);
15469 if (r
->display_name
) {
15470 _mem_save_display_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15471 NDR_PULL_SET_MEM_CTX(ndr
, r
->display_name
, 0);
15472 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->display_name
));
15473 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->display_name
));
15474 if (ndr_get_array_length(ndr
, &r
->display_name
) > ndr_get_array_size(ndr
, &r
->display_name
)) {
15475 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
));
15477 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t)));
15478 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->display_name
, ndr_get_array_length(ndr
, &r
->display_name
), sizeof(uint16_t), CH_UTF16
));
15479 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_display_name_0
, 0);
15482 return NDR_ERR_SUCCESS
;
15485 _PUBLIC_
void ndr_print_spoolss_AddFormInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_AddFormInfo2
*r
)
15487 ndr_print_struct(ndr
, name
, "spoolss_AddFormInfo2");
15489 ndr_print_spoolss_FormFlags(ndr
, "flags", r
->flags
);
15490 ndr_print_ptr(ndr
, "form_name", r
->form_name
);
15492 if (r
->form_name
) {
15493 ndr_print_string(ndr
, "form_name", r
->form_name
);
15496 ndr_print_spoolss_FormSize(ndr
, "size", &r
->size
);
15497 ndr_print_spoolss_FormArea(ndr
, "area", &r
->area
);
15498 ndr_print_ptr(ndr
, "keyword", r
->keyword
);
15501 ndr_print_string(ndr
, "keyword", r
->keyword
);
15504 ndr_print_spoolss_FormStringType(ndr
, "string_type", r
->string_type
);
15505 ndr_print_ptr(ndr
, "mui_dll", r
->mui_dll
);
15508 ndr_print_string(ndr
, "mui_dll", r
->mui_dll
);
15511 ndr_print_uint32(ndr
, "ressource_id", r
->ressource_id
);
15512 ndr_print_ptr(ndr
, "display_name", r
->display_name
);
15514 if (r
->display_name
) {
15515 ndr_print_string(ndr
, "display_name", r
->display_name
);
15518 ndr_print_uint32(ndr
, "lang_id", r
->lang_id
);
15522 static enum ndr_err_code
ndr_push_spoolss_AddFormInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_AddFormInfo
*r
)
15524 if (ndr_flags
& NDR_SCALARS
) {
15525 int level
= ndr_push_get_switch_value(ndr
, r
);
15526 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
15529 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info1
));
15533 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info2
));
15537 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15540 if (ndr_flags
& NDR_BUFFERS
) {
15541 int level
= ndr_push_get_switch_value(ndr
, r
);
15545 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
15551 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
15556 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15559 return NDR_ERR_SUCCESS
;
15562 static enum ndr_err_code
ndr_pull_spoolss_AddFormInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_AddFormInfo
*r
)
15566 TALLOC_CTX
*_mem_save_info1_0
;
15567 TALLOC_CTX
*_mem_save_info2_0
;
15568 level
= ndr_pull_get_switch_value(ndr
, r
);
15569 if (ndr_flags
& NDR_SCALARS
) {
15570 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
15571 if (_level
!= level
) {
15572 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
15576 uint32_t _ptr_info1
;
15577 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info1
));
15579 NDR_PULL_ALLOC(ndr
, r
->info1
);
15586 uint32_t _ptr_info2
;
15587 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info2
));
15589 NDR_PULL_ALLOC(ndr
, r
->info2
);
15596 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15599 if (ndr_flags
& NDR_BUFFERS
) {
15603 _mem_save_info1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15604 NDR_PULL_SET_MEM_CTX(ndr
, r
->info1
, 0);
15605 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info1
));
15606 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info1_0
, 0);
15612 _mem_save_info2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15613 NDR_PULL_SET_MEM_CTX(ndr
, r
->info2
, 0);
15614 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info2
));
15615 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info2_0
, 0);
15620 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
15623 return NDR_ERR_SUCCESS
;
15626 _PUBLIC_
void ndr_print_spoolss_AddFormInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_AddFormInfo
*r
)
15629 level
= ndr_print_get_switch_value(ndr
, r
);
15630 ndr_print_union(ndr
, name
, level
, "spoolss_AddFormInfo");
15633 ndr_print_ptr(ndr
, "info1", r
->info1
);
15636 ndr_print_spoolss_AddFormInfo1(ndr
, "info1", r
->info1
);
15642 ndr_print_ptr(ndr
, "info2", r
->info2
);
15645 ndr_print_spoolss_AddFormInfo2(ndr
, "info2", r
->info2
);
15651 ndr_print_bad_level(ndr
, name
, level
);
15655 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo1
*r
)
15657 if (ndr_flags
& NDR_SCALARS
) {
15658 NDR_CHECK(ndr_push_align(ndr
, 4));
15660 uint32_t _flags_save_string
= ndr
->flags
;
15661 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15662 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
15663 ndr
->flags
= _flags_save_string
;
15666 if (ndr_flags
& NDR_BUFFERS
) {
15668 uint32_t _flags_save_string
= ndr
->flags
;
15669 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15670 if (r
->port_name
) {
15671 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
15672 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
15674 ndr
->flags
= _flags_save_string
;
15677 return NDR_ERR_SUCCESS
;
15680 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo1
*r
)
15682 uint32_t _ptr_port_name
;
15683 TALLOC_CTX
*_mem_save_port_name_0
;
15684 if (ndr_flags
& NDR_SCALARS
) {
15685 NDR_CHECK(ndr_pull_align(ndr
, 4));
15687 uint32_t _flags_save_string
= ndr
->flags
;
15688 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15689 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
15690 if (_ptr_port_name
) {
15691 NDR_PULL_ALLOC(ndr
, r
->port_name
);
15692 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
15694 r
->port_name
= NULL
;
15696 ndr
->flags
= _flags_save_string
;
15699 if (ndr_flags
& NDR_BUFFERS
) {
15701 uint32_t _flags_save_string
= ndr
->flags
;
15702 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15703 if (r
->port_name
) {
15704 uint32_t _relative_save_offset
;
15705 _relative_save_offset
= ndr
->offset
;
15706 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
15707 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15708 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
15709 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
15710 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
15711 ndr
->offset
= _relative_save_offset
;
15713 ndr
->flags
= _flags_save_string
;
15716 return NDR_ERR_SUCCESS
;
15719 _PUBLIC_
void ndr_print_spoolss_PortInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo1
*r
)
15721 ndr_print_struct(ndr
, name
, "spoolss_PortInfo1");
15723 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
15725 if (r
->port_name
) {
15726 ndr_print_string(ndr
, "port_name", r
->port_name
);
15732 _PUBLIC_
size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15734 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo1
, ic
);
15737 static enum ndr_err_code
ndr_push_spoolss_PortType(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
15739 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15740 return NDR_ERR_SUCCESS
;
15743 static enum ndr_err_code
ndr_pull_spoolss_PortType(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
15746 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
15748 return NDR_ERR_SUCCESS
;
15751 _PUBLIC_
void ndr_print_spoolss_PortType(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
15753 ndr_print_uint32(ndr
, name
, r
);
15755 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE
, r
);
15756 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ
, r
);
15757 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED
, r
);
15758 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED
, r
);
15762 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo2
*r
)
15764 if (ndr_flags
& NDR_SCALARS
) {
15765 NDR_CHECK(ndr_push_align(ndr
, 4));
15767 uint32_t _flags_save_string
= ndr
->flags
;
15768 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15769 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
15770 ndr
->flags
= _flags_save_string
;
15773 uint32_t _flags_save_string
= ndr
->flags
;
15774 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15775 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
15776 ndr
->flags
= _flags_save_string
;
15779 uint32_t _flags_save_string
= ndr
->flags
;
15780 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15781 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->description
));
15782 ndr
->flags
= _flags_save_string
;
15784 NDR_CHECK(ndr_push_spoolss_PortType(ndr
, NDR_SCALARS
, r
->port_type
));
15785 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
15787 if (ndr_flags
& NDR_BUFFERS
) {
15789 uint32_t _flags_save_string
= ndr
->flags
;
15790 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15791 if (r
->port_name
) {
15792 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
15793 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
15795 ndr
->flags
= _flags_save_string
;
15798 uint32_t _flags_save_string
= ndr
->flags
;
15799 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15800 if (r
->monitor_name
) {
15801 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
15802 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
15804 ndr
->flags
= _flags_save_string
;
15807 uint32_t _flags_save_string
= ndr
->flags
;
15808 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15809 if (r
->description
) {
15810 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->description
));
15811 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->description
));
15813 ndr
->flags
= _flags_save_string
;
15816 return NDR_ERR_SUCCESS
;
15819 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo2
*r
)
15821 uint32_t _ptr_port_name
;
15822 TALLOC_CTX
*_mem_save_port_name_0
;
15823 uint32_t _ptr_monitor_name
;
15824 TALLOC_CTX
*_mem_save_monitor_name_0
;
15825 uint32_t _ptr_description
;
15826 TALLOC_CTX
*_mem_save_description_0
;
15827 if (ndr_flags
& NDR_SCALARS
) {
15828 NDR_CHECK(ndr_pull_align(ndr
, 4));
15830 uint32_t _flags_save_string
= ndr
->flags
;
15831 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15832 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
15833 if (_ptr_port_name
) {
15834 NDR_PULL_ALLOC(ndr
, r
->port_name
);
15835 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
15837 r
->port_name
= NULL
;
15839 ndr
->flags
= _flags_save_string
;
15842 uint32_t _flags_save_string
= ndr
->flags
;
15843 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15844 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
15845 if (_ptr_monitor_name
) {
15846 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
15847 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
15849 r
->monitor_name
= NULL
;
15851 ndr
->flags
= _flags_save_string
;
15854 uint32_t _flags_save_string
= ndr
->flags
;
15855 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15856 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_description
));
15857 if (_ptr_description
) {
15858 NDR_PULL_ALLOC(ndr
, r
->description
);
15859 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->description
, _ptr_description
));
15861 r
->description
= NULL
;
15863 ndr
->flags
= _flags_save_string
;
15865 NDR_CHECK(ndr_pull_spoolss_PortType(ndr
, NDR_SCALARS
, &r
->port_type
));
15866 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
15868 if (ndr_flags
& NDR_BUFFERS
) {
15870 uint32_t _flags_save_string
= ndr
->flags
;
15871 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15872 if (r
->port_name
) {
15873 uint32_t _relative_save_offset
;
15874 _relative_save_offset
= ndr
->offset
;
15875 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
15876 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15877 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
15878 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
15879 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
15880 ndr
->offset
= _relative_save_offset
;
15882 ndr
->flags
= _flags_save_string
;
15885 uint32_t _flags_save_string
= ndr
->flags
;
15886 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15887 if (r
->monitor_name
) {
15888 uint32_t _relative_save_offset
;
15889 _relative_save_offset
= ndr
->offset
;
15890 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
15891 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15892 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
15893 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
15894 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
15895 ndr
->offset
= _relative_save_offset
;
15897 ndr
->flags
= _flags_save_string
;
15900 uint32_t _flags_save_string
= ndr
->flags
;
15901 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
15902 if (r
->description
) {
15903 uint32_t _relative_save_offset
;
15904 _relative_save_offset
= ndr
->offset
;
15905 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->description
));
15906 _mem_save_description_0
= NDR_PULL_GET_MEM_CTX(ndr
);
15907 NDR_PULL_SET_MEM_CTX(ndr
, r
->description
, 0);
15908 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->description
));
15909 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_description_0
, 0);
15910 ndr
->offset
= _relative_save_offset
;
15912 ndr
->flags
= _flags_save_string
;
15915 return NDR_ERR_SUCCESS
;
15918 _PUBLIC_
void ndr_print_spoolss_PortInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo2
*r
)
15920 ndr_print_struct(ndr
, name
, "spoolss_PortInfo2");
15922 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
15924 if (r
->port_name
) {
15925 ndr_print_string(ndr
, "port_name", r
->port_name
);
15928 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
15930 if (r
->monitor_name
) {
15931 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
15934 ndr_print_ptr(ndr
, "description", r
->description
);
15936 if (r
->description
) {
15937 ndr_print_string(ndr
, "description", r
->description
);
15940 ndr_print_spoolss_PortType(ndr
, "port_type", r
->port_type
);
15941 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
15945 _PUBLIC_
size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
15947 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo2
, ic
);
15950 static enum ndr_err_code
ndr_push_spoolss_PortStatus(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortStatus r
)
15952 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15953 return NDR_ERR_SUCCESS
;
15956 static enum ndr_err_code
ndr_pull_spoolss_PortStatus(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortStatus
*r
)
15959 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
15961 return NDR_ERR_SUCCESS
;
15964 _PUBLIC_
void ndr_print_spoolss_PortStatus(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortStatus r
)
15966 const char *val
= NULL
;
15969 case PORT_STATUS_CLEAR
: val
= "PORT_STATUS_CLEAR"; break;
15970 case PORT_STATUS_OFFLINE
: val
= "PORT_STATUS_OFFLINE"; break;
15971 case PORT_STATUS_PAPER_JAM
: val
= "PORT_STATUS_PAPER_JAM"; break;
15972 case PORT_STATUS_PAPER_OUT
: val
= "PORT_STATUS_PAPER_OUT"; break;
15973 case PORT_STATUS_OUTPUT_BIN_FULL
: val
= "PORT_STATUS_OUTPUT_BIN_FULL"; break;
15974 case PORT_STATUS_PAPER_PROBLEM
: val
= "PORT_STATUS_PAPER_PROBLEM"; break;
15975 case PORT_STATUS_NO_TONER
: val
= "PORT_STATUS_NO_TONER"; break;
15976 case PORT_STATUS_DOOR_OPEN
: val
= "PORT_STATUS_DOOR_OPEN"; break;
15977 case PORT_STATUS_USER_INTERVENTION
: val
= "PORT_STATUS_USER_INTERVENTION"; break;
15978 case PORT_STATUS_OUT_OF_MEMORY
: val
= "PORT_STATUS_OUT_OF_MEMORY"; break;
15979 case PORT_STATUS_TONER_LOW
: val
= "PORT_STATUS_TONER_LOW"; break;
15980 case PORT_STATUS_WARMING_UP
: val
= "PORT_STATUS_WARMING_UP"; break;
15981 case PORT_STATUS_POWER_SAVE
: val
= "PORT_STATUS_POWER_SAVE"; break;
15983 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
15986 static enum ndr_err_code
ndr_push_spoolss_PortSeverity(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortSeverity r
)
15988 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
15989 return NDR_ERR_SUCCESS
;
15992 static enum ndr_err_code
ndr_pull_spoolss_PortSeverity(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortSeverity
*r
)
15995 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
15997 return NDR_ERR_SUCCESS
;
16000 _PUBLIC_
void ndr_print_spoolss_PortSeverity(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortSeverity r
)
16002 const char *val
= NULL
;
16005 case PORT_STATUS_TYPE_ERROR
: val
= "PORT_STATUS_TYPE_ERROR"; break;
16006 case PORT_STATUS_TYPE_WARNING
: val
= "PORT_STATUS_TYPE_WARNING"; break;
16007 case PORT_STATUS_TYPE_INFO
: val
= "PORT_STATUS_TYPE_INFO"; break;
16009 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16012 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfo3
*r
)
16014 if (ndr_flags
& NDR_SCALARS
) {
16015 NDR_CHECK(ndr_push_align(ndr
, 4));
16016 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr
, NDR_SCALARS
, r
->status
));
16018 uint32_t _flags_save_string
= ndr
->flags
;
16019 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16020 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->status_string
));
16021 ndr
->flags
= _flags_save_string
;
16023 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr
, NDR_SCALARS
, r
->severity
));
16025 if (ndr_flags
& NDR_BUFFERS
) {
16027 uint32_t _flags_save_string
= ndr
->flags
;
16028 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16029 if (r
->status_string
) {
16030 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->status_string
));
16031 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->status_string
));
16033 ndr
->flags
= _flags_save_string
;
16036 return NDR_ERR_SUCCESS
;
16039 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfo3
*r
)
16041 uint32_t _ptr_status_string
;
16042 TALLOC_CTX
*_mem_save_status_string_0
;
16043 if (ndr_flags
& NDR_SCALARS
) {
16044 NDR_CHECK(ndr_pull_align(ndr
, 4));
16045 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr
, NDR_SCALARS
, &r
->status
));
16047 uint32_t _flags_save_string
= ndr
->flags
;
16048 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16049 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_status_string
));
16050 if (_ptr_status_string
) {
16051 NDR_PULL_ALLOC(ndr
, r
->status_string
);
16052 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->status_string
, _ptr_status_string
));
16054 r
->status_string
= NULL
;
16056 ndr
->flags
= _flags_save_string
;
16058 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr
, NDR_SCALARS
, &r
->severity
));
16060 if (ndr_flags
& NDR_BUFFERS
) {
16062 uint32_t _flags_save_string
= ndr
->flags
;
16063 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16064 if (r
->status_string
) {
16065 uint32_t _relative_save_offset
;
16066 _relative_save_offset
= ndr
->offset
;
16067 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->status_string
));
16068 _mem_save_status_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16069 NDR_PULL_SET_MEM_CTX(ndr
, r
->status_string
, 0);
16070 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->status_string
));
16071 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_string_0
, 0);
16072 ndr
->offset
= _relative_save_offset
;
16074 ndr
->flags
= _flags_save_string
;
16077 return NDR_ERR_SUCCESS
;
16080 _PUBLIC_
void ndr_print_spoolss_PortInfo3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfo3
*r
)
16082 ndr_print_struct(ndr
, name
, "spoolss_PortInfo3");
16084 ndr_print_spoolss_PortStatus(ndr
, "status", r
->status
);
16085 ndr_print_ptr(ndr
, "status_string", r
->status_string
);
16087 if (r
->status_string
) {
16088 ndr_print_string(ndr
, "status_string", r
->status_string
);
16091 ndr_print_spoolss_PortSeverity(ndr
, "severity", r
->severity
);
16095 _PUBLIC_
size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16097 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfo3
, ic
);
16100 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfoFF(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortInfoFF
*r
)
16102 if (ndr_flags
& NDR_SCALARS
) {
16103 NDR_CHECK(ndr_push_align(ndr
, 4));
16105 uint32_t _flags_save_string
= ndr
->flags
;
16106 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16107 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->port_name
));
16108 ndr
->flags
= _flags_save_string
;
16110 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->monitor_data
));
16112 if (ndr_flags
& NDR_BUFFERS
) {
16114 uint32_t _flags_save_string
= ndr
->flags
;
16115 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16116 if (r
->port_name
) {
16117 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->port_name
));
16118 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->port_name
));
16120 ndr
->flags
= _flags_save_string
;
16123 return NDR_ERR_SUCCESS
;
16126 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfoFF(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortInfoFF
*r
)
16128 uint32_t _ptr_port_name
;
16129 TALLOC_CTX
*_mem_save_port_name_0
;
16130 if (ndr_flags
& NDR_SCALARS
) {
16131 NDR_CHECK(ndr_pull_align(ndr
, 4));
16133 uint32_t _flags_save_string
= ndr
->flags
;
16134 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16135 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_port_name
));
16136 if (_ptr_port_name
) {
16137 NDR_PULL_ALLOC(ndr
, r
->port_name
);
16138 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->port_name
, _ptr_port_name
));
16140 r
->port_name
= NULL
;
16142 ndr
->flags
= _flags_save_string
;
16144 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->monitor_data
));
16146 if (ndr_flags
& NDR_BUFFERS
) {
16148 uint32_t _flags_save_string
= ndr
->flags
;
16149 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16150 if (r
->port_name
) {
16151 uint32_t _relative_save_offset
;
16152 _relative_save_offset
= ndr
->offset
;
16153 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->port_name
));
16154 _mem_save_port_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16155 NDR_PULL_SET_MEM_CTX(ndr
, r
->port_name
, 0);
16156 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->port_name
));
16157 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_port_name_0
, 0);
16158 ndr
->offset
= _relative_save_offset
;
16160 ndr
->flags
= _flags_save_string
;
16163 return NDR_ERR_SUCCESS
;
16166 _PUBLIC_
void ndr_print_spoolss_PortInfoFF(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortInfoFF
*r
)
16168 ndr_print_struct(ndr
, name
, "spoolss_PortInfoFF");
16170 ndr_print_ptr(ndr
, "port_name", r
->port_name
);
16172 if (r
->port_name
) {
16173 ndr_print_string(ndr
, "port_name", r
->port_name
);
16176 ndr_print_DATA_BLOB(ndr
, "monitor_data", r
->monitor_data
);
16180 _PUBLIC_
size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16182 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PortInfoFF
, ic
);
16185 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PortInfo
*r
)
16187 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16188 if (ndr_flags
& NDR_SCALARS
) {
16189 int level
= ndr_push_get_switch_value(ndr
, r
);
16192 NDR_CHECK(ndr_push_align(ndr
, 4));
16193 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16194 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16198 NDR_CHECK(ndr_push_align(ndr
, 4));
16199 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16200 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16204 NDR_CHECK(ndr_push_align(ndr
, 4));
16205 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16206 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
16210 NDR_CHECK(ndr_push_align(ndr
, 4));
16211 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16212 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
16220 if (ndr_flags
& NDR_BUFFERS
) {
16221 int level
= ndr_push_get_switch_value(ndr
, r
);
16222 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16225 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16229 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16233 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
16237 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
16245 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16246 return NDR_ERR_SUCCESS
;
16249 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PortInfo
*r
)
16251 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16253 level
= ndr_pull_get_switch_value(ndr
, r
);
16254 if (ndr_flags
& NDR_SCALARS
) {
16257 NDR_CHECK(ndr_pull_align(ndr
, 4));
16258 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16259 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16263 NDR_CHECK(ndr_pull_align(ndr
, 4));
16264 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16265 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16269 NDR_CHECK(ndr_pull_align(ndr
, 4));
16270 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16271 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_SCALARS
, &r
->info3
));
16275 NDR_CHECK(ndr_pull_align(ndr
, 4));
16276 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16277 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_SCALARS
, &r
->infoFF
));
16285 if (ndr_flags
& NDR_BUFFERS
) {
16286 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
16289 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16293 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16297 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr
, NDR_BUFFERS
, &r
->info3
));
16301 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr
, NDR_BUFFERS
, &r
->infoFF
));
16309 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16310 return NDR_ERR_SUCCESS
;
16313 _PUBLIC_
void ndr_print_spoolss_PortInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PortInfo
*r
)
16316 level
= ndr_print_get_switch_value(ndr
, r
);
16317 ndr_print_union(ndr
, name
, level
, "spoolss_PortInfo");
16320 ndr_print_spoolss_PortInfo1(ndr
, "info1", &r
->info1
);
16324 ndr_print_spoolss_PortInfo2(ndr
, "info2", &r
->info2
);
16328 ndr_print_spoolss_PortInfo3(ndr
, "info3", &r
->info3
);
16332 ndr_print_spoolss_PortInfoFF(ndr
, "infoFF", &r
->infoFF
);
16341 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo1
*r
)
16343 if (ndr_flags
& NDR_SCALARS
) {
16344 NDR_CHECK(ndr_push_align(ndr
, 4));
16346 uint32_t _flags_save_string
= ndr
->flags
;
16347 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16348 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
16349 ndr
->flags
= _flags_save_string
;
16352 if (ndr_flags
& NDR_BUFFERS
) {
16354 uint32_t _flags_save_string
= ndr
->flags
;
16355 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16356 if (r
->monitor_name
) {
16357 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
16358 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
16360 ndr
->flags
= _flags_save_string
;
16363 return NDR_ERR_SUCCESS
;
16366 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo1
*r
)
16368 uint32_t _ptr_monitor_name
;
16369 TALLOC_CTX
*_mem_save_monitor_name_0
;
16370 if (ndr_flags
& NDR_SCALARS
) {
16371 NDR_CHECK(ndr_pull_align(ndr
, 4));
16373 uint32_t _flags_save_string
= ndr
->flags
;
16374 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16375 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
16376 if (_ptr_monitor_name
) {
16377 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
16378 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
16380 r
->monitor_name
= NULL
;
16382 ndr
->flags
= _flags_save_string
;
16385 if (ndr_flags
& NDR_BUFFERS
) {
16387 uint32_t _flags_save_string
= ndr
->flags
;
16388 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16389 if (r
->monitor_name
) {
16390 uint32_t _relative_save_offset
;
16391 _relative_save_offset
= ndr
->offset
;
16392 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
16393 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16394 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
16395 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
16396 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
16397 ndr
->offset
= _relative_save_offset
;
16399 ndr
->flags
= _flags_save_string
;
16402 return NDR_ERR_SUCCESS
;
16405 _PUBLIC_
void ndr_print_spoolss_MonitorInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo1
*r
)
16407 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo1");
16409 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
16411 if (r
->monitor_name
) {
16412 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
16418 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16420 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo1
, ic
);
16423 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorInfo2
*r
)
16425 if (ndr_flags
& NDR_SCALARS
) {
16426 NDR_CHECK(ndr_push_align(ndr
, 4));
16428 uint32_t _flags_save_string
= ndr
->flags
;
16429 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16430 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->monitor_name
));
16431 ndr
->flags
= _flags_save_string
;
16434 uint32_t _flags_save_string
= ndr
->flags
;
16435 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16436 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->environment
));
16437 ndr
->flags
= _flags_save_string
;
16440 uint32_t _flags_save_string
= ndr
->flags
;
16441 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16442 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->dll_name
));
16443 ndr
->flags
= _flags_save_string
;
16446 if (ndr_flags
& NDR_BUFFERS
) {
16448 uint32_t _flags_save_string
= ndr
->flags
;
16449 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16450 if (r
->monitor_name
) {
16451 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->monitor_name
));
16452 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->monitor_name
));
16454 ndr
->flags
= _flags_save_string
;
16457 uint32_t _flags_save_string
= ndr
->flags
;
16458 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16459 if (r
->environment
) {
16460 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->environment
));
16461 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->environment
));
16463 ndr
->flags
= _flags_save_string
;
16466 uint32_t _flags_save_string
= ndr
->flags
;
16467 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16469 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->dll_name
));
16470 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
16472 ndr
->flags
= _flags_save_string
;
16475 return NDR_ERR_SUCCESS
;
16478 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorInfo2
*r
)
16480 uint32_t _ptr_monitor_name
;
16481 TALLOC_CTX
*_mem_save_monitor_name_0
;
16482 uint32_t _ptr_environment
;
16483 TALLOC_CTX
*_mem_save_environment_0
;
16484 uint32_t _ptr_dll_name
;
16485 TALLOC_CTX
*_mem_save_dll_name_0
;
16486 if (ndr_flags
& NDR_SCALARS
) {
16487 NDR_CHECK(ndr_pull_align(ndr
, 4));
16489 uint32_t _flags_save_string
= ndr
->flags
;
16490 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16491 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_monitor_name
));
16492 if (_ptr_monitor_name
) {
16493 NDR_PULL_ALLOC(ndr
, r
->monitor_name
);
16494 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->monitor_name
, _ptr_monitor_name
));
16496 r
->monitor_name
= NULL
;
16498 ndr
->flags
= _flags_save_string
;
16501 uint32_t _flags_save_string
= ndr
->flags
;
16502 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16503 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
16504 if (_ptr_environment
) {
16505 NDR_PULL_ALLOC(ndr
, r
->environment
);
16506 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->environment
, _ptr_environment
));
16508 r
->environment
= NULL
;
16510 ndr
->flags
= _flags_save_string
;
16513 uint32_t _flags_save_string
= ndr
->flags
;
16514 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16515 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_dll_name
));
16516 if (_ptr_dll_name
) {
16517 NDR_PULL_ALLOC(ndr
, r
->dll_name
);
16518 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->dll_name
, _ptr_dll_name
));
16520 r
->dll_name
= NULL
;
16522 ndr
->flags
= _flags_save_string
;
16525 if (ndr_flags
& NDR_BUFFERS
) {
16527 uint32_t _flags_save_string
= ndr
->flags
;
16528 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16529 if (r
->monitor_name
) {
16530 uint32_t _relative_save_offset
;
16531 _relative_save_offset
= ndr
->offset
;
16532 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->monitor_name
));
16533 _mem_save_monitor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16534 NDR_PULL_SET_MEM_CTX(ndr
, r
->monitor_name
, 0);
16535 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->monitor_name
));
16536 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_monitor_name_0
, 0);
16537 ndr
->offset
= _relative_save_offset
;
16539 ndr
->flags
= _flags_save_string
;
16542 uint32_t _flags_save_string
= ndr
->flags
;
16543 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16544 if (r
->environment
) {
16545 uint32_t _relative_save_offset
;
16546 _relative_save_offset
= ndr
->offset
;
16547 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->environment
));
16548 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16549 NDR_PULL_SET_MEM_CTX(ndr
, r
->environment
, 0);
16550 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->environment
));
16551 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
16552 ndr
->offset
= _relative_save_offset
;
16554 ndr
->flags
= _flags_save_string
;
16557 uint32_t _flags_save_string
= ndr
->flags
;
16558 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16560 uint32_t _relative_save_offset
;
16561 _relative_save_offset
= ndr
->offset
;
16562 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->dll_name
));
16563 _mem_save_dll_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16564 NDR_PULL_SET_MEM_CTX(ndr
, r
->dll_name
, 0);
16565 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
16566 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_dll_name_0
, 0);
16567 ndr
->offset
= _relative_save_offset
;
16569 ndr
->flags
= _flags_save_string
;
16572 return NDR_ERR_SUCCESS
;
16575 _PUBLIC_
void ndr_print_spoolss_MonitorInfo2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorInfo2
*r
)
16577 ndr_print_struct(ndr
, name
, "spoolss_MonitorInfo2");
16579 ndr_print_ptr(ndr
, "monitor_name", r
->monitor_name
);
16581 if (r
->monitor_name
) {
16582 ndr_print_string(ndr
, "monitor_name", r
->monitor_name
);
16585 ndr_print_ptr(ndr
, "environment", r
->environment
);
16587 if (r
->environment
) {
16588 ndr_print_string(ndr
, "environment", r
->environment
);
16591 ndr_print_ptr(ndr
, "dll_name", r
->dll_name
);
16594 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
16600 _PUBLIC_
size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16602 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_MonitorInfo2
, ic
);
16605 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_MonitorInfo
*r
)
16607 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16608 if (ndr_flags
& NDR_SCALARS
) {
16609 int level
= ndr_push_get_switch_value(ndr
, r
);
16612 NDR_CHECK(ndr_push_align(ndr
, 4));
16613 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16614 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16618 NDR_CHECK(ndr_push_align(ndr
, 4));
16619 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16620 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16628 if (ndr_flags
& NDR_BUFFERS
) {
16629 int level
= ndr_push_get_switch_value(ndr
, r
);
16630 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16633 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16637 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16645 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16646 return NDR_ERR_SUCCESS
;
16649 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_MonitorInfo
*r
)
16651 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16653 level
= ndr_pull_get_switch_value(ndr
, r
);
16654 if (ndr_flags
& NDR_SCALARS
) {
16657 NDR_CHECK(ndr_pull_align(ndr
, 4));
16658 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16659 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16663 NDR_CHECK(ndr_pull_align(ndr
, 4));
16664 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16665 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_SCALARS
, &r
->info2
));
16673 if (ndr_flags
& NDR_BUFFERS
) {
16674 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
16677 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16681 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr
, NDR_BUFFERS
, &r
->info2
));
16689 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16690 return NDR_ERR_SUCCESS
;
16693 _PUBLIC_
void ndr_print_spoolss_MonitorInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_MonitorInfo
*r
)
16696 level
= ndr_print_get_switch_value(ndr
, r
);
16697 ndr_print_union(ndr
, name
, level
, "spoolss_MonitorInfo");
16700 ndr_print_spoolss_MonitorInfo1(ndr
, "info1", &r
->info1
);
16704 ndr_print_spoolss_MonitorInfo2(ndr
, "info2", &r
->info2
);
16713 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
16715 if (ndr_flags
& NDR_SCALARS
) {
16716 NDR_CHECK(ndr_push_align(ndr
, 4));
16718 uint32_t _flags_save_string
= ndr
->flags
;
16719 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16720 NDR_CHECK(ndr_push_relative_ptr1(ndr
, r
->name_array
));
16721 ndr
->flags
= _flags_save_string
;
16724 if (ndr_flags
& NDR_BUFFERS
) {
16726 uint32_t _flags_save_string
= ndr
->flags
;
16727 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16728 if (r
->name_array
) {
16729 NDR_CHECK(ndr_push_relative_ptr2(ndr
, r
->name_array
));
16730 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->name_array
));
16732 ndr
->flags
= _flags_save_string
;
16735 return NDR_ERR_SUCCESS
;
16738 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PrintProcDataTypesInfo1
*r
)
16740 uint32_t _ptr_name_array
;
16741 TALLOC_CTX
*_mem_save_name_array_0
;
16742 if (ndr_flags
& NDR_SCALARS
) {
16743 NDR_CHECK(ndr_pull_align(ndr
, 4));
16745 uint32_t _flags_save_string
= ndr
->flags
;
16746 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16747 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_name_array
));
16748 if (_ptr_name_array
) {
16749 NDR_PULL_ALLOC(ndr
, r
->name_array
);
16750 NDR_CHECK(ndr_pull_relative_ptr1(ndr
, r
->name_array
, _ptr_name_array
));
16752 r
->name_array
= NULL
;
16754 ndr
->flags
= _flags_save_string
;
16757 if (ndr_flags
& NDR_BUFFERS
) {
16759 uint32_t _flags_save_string
= ndr
->flags
;
16760 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
16761 if (r
->name_array
) {
16762 uint32_t _relative_save_offset
;
16763 _relative_save_offset
= ndr
->offset
;
16764 NDR_CHECK(ndr_pull_relative_ptr2(ndr
, r
->name_array
));
16765 _mem_save_name_array_0
= NDR_PULL_GET_MEM_CTX(ndr
);
16766 NDR_PULL_SET_MEM_CTX(ndr
, r
->name_array
, 0);
16767 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->name_array
));
16768 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_name_array_0
, 0);
16769 ndr
->offset
= _relative_save_offset
;
16771 ndr
->flags
= _flags_save_string
;
16774 return NDR_ERR_SUCCESS
;
16777 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PrintProcDataTypesInfo1
*r
)
16779 ndr_print_struct(ndr
, name
, "spoolss_PrintProcDataTypesInfo1");
16781 ndr_print_ptr(ndr
, "name_array", r
->name_array
);
16783 if (r
->name_array
) {
16784 ndr_print_string(ndr
, "name_array", r
->name_array
);
16790 _PUBLIC_
size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1
*r
, struct smb_iconv_convenience
*ic
, int flags
)
16792 return ndr_size_struct(r
, flags
, (ndr_push_flags_fn_t
)ndr_push_spoolss_PrintProcDataTypesInfo1
, ic
);
16795 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_PrintProcDataTypesInfo
*r
)
16797 uint32_t _save_relative_base_offset
= ndr_push_get_relative_base_offset(ndr
);
16798 if (ndr_flags
& NDR_SCALARS
) {
16799 int level
= ndr_push_get_switch_value(ndr
, r
);
16802 NDR_CHECK(ndr_push_align(ndr
, 4));
16803 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16804 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16812 if (ndr_flags
& NDR_BUFFERS
) {
16813 int level
= ndr_push_get_switch_value(ndr
, r
);
16814 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr
, r
));
16817 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16825 ndr_push_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16826 return NDR_ERR_SUCCESS
;
16829 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_PrintProcDataTypesInfo
*r
)
16831 uint32_t _save_relative_base_offset
= ndr_pull_get_relative_base_offset(ndr
);
16833 level
= ndr_pull_get_switch_value(ndr
, r
);
16834 if (ndr_flags
& NDR_SCALARS
) {
16837 NDR_CHECK(ndr_pull_align(ndr
, 4));
16838 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr
, r
, ndr
->offset
));
16839 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_SCALARS
, &r
->info1
));
16847 if (ndr_flags
& NDR_BUFFERS
) {
16848 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr
, r
));
16851 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr
, NDR_BUFFERS
, &r
->info1
));
16859 ndr_pull_restore_relative_base_offset(ndr
, _save_relative_base_offset
);
16860 return NDR_ERR_SUCCESS
;
16863 _PUBLIC_
void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_PrintProcDataTypesInfo
*r
)
16866 level
= ndr_print_get_switch_value(ndr
, r
);
16867 ndr_print_union(ndr
, name
, level
, "spoolss_PrintProcDataTypesInfo");
16870 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr
, "info1", &r
->info1
);
16879 static enum ndr_err_code
ndr_push_spoolss_PrinterChangeFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
16881 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
16882 return NDR_ERR_SUCCESS
;
16885 static enum ndr_err_code
ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
16888 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
16890 return NDR_ERR_SUCCESS
;
16893 _PUBLIC_
void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
16895 ndr_print_uint32(ndr
, name
, r
);
16897 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER
, r
);
16898 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER
, r
);
16899 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER
, r
);
16900 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER
, r
);
16901 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB
, r
);
16902 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB
, r
);
16903 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB
, r
);
16904 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB
, r
);
16905 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM
, r
);
16906 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM
, r
);
16907 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM
, r
);
16908 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT
, r
);
16909 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT
, r
);
16910 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT
, r
);
16911 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR
, r
);
16912 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR
, r
);
16913 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER
, r
);
16914 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER
, r
);
16915 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER
, r
);
16916 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER
, r
);
16917 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT
, r
);
16921 static enum ndr_err_code
ndr_push_spoolss_Field(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_Field r
)
16923 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
16924 return NDR_ERR_SUCCESS
;
16927 static enum ndr_err_code
ndr_pull_spoolss_Field(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_Field
*r
)
16930 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
16932 return NDR_ERR_SUCCESS
;
16935 _PUBLIC_
void ndr_print_spoolss_Field(struct ndr_print
*ndr
, const char *name
, enum spoolss_Field r
)
16937 const char *val
= NULL
;
16940 case SPOOLSS_FIELD_SERVER_NAME
: val
= "SPOOLSS_FIELD_SERVER_NAME"; break;
16941 case SPOOLSS_FIELD_PRINTER_NAME
: val
= "SPOOLSS_FIELD_PRINTER_NAME"; break;
16942 case SPOOLSS_FIELD_SHARE_NAME
: val
= "SPOOLSS_FIELD_SHARE_NAME"; break;
16943 case SPOOLSS_FIELD_PORT_NAME
: val
= "SPOOLSS_FIELD_PORT_NAME"; break;
16944 case SPOOLSS_FIELD_DRIVER_NAME
: val
= "SPOOLSS_FIELD_DRIVER_NAME"; break;
16945 case SPOOLSS_FIELD_COMMENT
: val
= "SPOOLSS_FIELD_COMMENT"; break;
16946 case SPOOLSS_FIELD_LOCATION
: val
= "SPOOLSS_FIELD_LOCATION"; break;
16947 case SPOOLSS_FIELD_DEVMODE
: val
= "SPOOLSS_FIELD_DEVMODE"; break;
16948 case SPOOLSS_FIELD_SEPFILE
: val
= "SPOOLSS_FIELD_SEPFILE"; break;
16949 case SPOOLSS_FIELD_PRINT_PROCESSOR
: val
= "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
16950 case SPOOLSS_FIELD_PARAMETERS
: val
= "SPOOLSS_FIELD_PARAMETERS"; break;
16951 case SPOOLSS_FIELD_DATATYPE
: val
= "SPOOLSS_FIELD_DATATYPE"; break;
16952 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR
: val
= "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
16953 case SPOOLSS_FIELD_ATTRIBUTES
: val
= "SPOOLSS_FIELD_ATTRIBUTES"; break;
16954 case SPOOLSS_FIELD_PRIORITY
: val
= "SPOOLSS_FIELD_PRIORITY"; break;
16955 case SPOOLSS_FIELD_DEFAULT_PRIORITY
: val
= "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
16956 case SPOOLSS_FIELD_START_TIME
: val
= "SPOOLSS_FIELD_START_TIME"; break;
16957 case SPOOLSS_FIELD_UNTIL_TIME
: val
= "SPOOLSS_FIELD_UNTIL_TIME"; break;
16958 case SPOOLSS_FIELD_STATUS
: val
= "SPOOLSS_FIELD_STATUS"; break;
16959 case SPOOLSS_FIELD_STATUS_STRING
: val
= "SPOOLSS_FIELD_STATUS_STRING"; break;
16960 case SPOOLSS_FIELD_CJOBS
: val
= "SPOOLSS_FIELD_CJOBS"; break;
16961 case SPOOLSS_FIELD_AVERAGE_PPM
: val
= "SPOOLSS_FIELD_AVERAGE_PPM"; break;
16962 case SPOOLSS_FIELD_TOTAL_PAGES
: val
= "SPOOLSS_FIELD_TOTAL_PAGES"; break;
16963 case SPOOLSS_FIELD_PAGES_PRINTED
: val
= "SPOOLSS_FIELD_PAGES_PRINTED"; break;
16964 case SPOOLSS_FIELD_TOTAL_BYTES
: val
= "SPOOLSS_FIELD_TOTAL_BYTES"; break;
16965 case SPOOLSS_FIELD_BYTES_PRINTED
: val
= "SPOOLSS_FIELD_BYTES_PRINTED"; break;
16967 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16970 static enum ndr_err_code
ndr_push_spoolss_NotifyType(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyType r
)
16972 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
));
16973 return NDR_ERR_SUCCESS
;
16976 static enum ndr_err_code
ndr_pull_spoolss_NotifyType(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyType
*r
)
16979 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &v
));
16981 return NDR_ERR_SUCCESS
;
16984 _PUBLIC_
void ndr_print_spoolss_NotifyType(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyType r
)
16986 const char *val
= NULL
;
16989 case SPOOLSS_NOTIFY_PRINTER
: val
= "SPOOLSS_NOTIFY_PRINTER"; break;
16990 case SPOOLSS_NOTIFY_JOB
: val
= "SPOOLSS_NOTIFY_JOB"; break;
16992 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
16995 static enum ndr_err_code
ndr_push_spoolss_NotifyOptionType(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOptionType
*r
)
16997 uint32_t cntr_fields_1
;
16998 if (ndr_flags
& NDR_SCALARS
) {
16999 NDR_CHECK(ndr_push_align(ndr
, 4));
17000 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
17001 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->u1
));
17002 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u2
));
17003 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->u3
));
17004 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17005 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->fields
));
17007 if (ndr_flags
& NDR_BUFFERS
) {
17009 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17010 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
17011 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, r
->fields
[cntr_fields_1
]));
17015 return NDR_ERR_SUCCESS
;
17018 static enum ndr_err_code
ndr_pull_spoolss_NotifyOptionType(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOptionType
*r
)
17020 uint32_t _ptr_fields
;
17021 uint32_t cntr_fields_1
;
17022 TALLOC_CTX
*_mem_save_fields_0
;
17023 TALLOC_CTX
*_mem_save_fields_1
;
17024 if (ndr_flags
& NDR_SCALARS
) {
17025 NDR_CHECK(ndr_pull_align(ndr
, 4));
17026 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
17027 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->u1
));
17028 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u2
));
17029 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->u3
));
17030 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
17031 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_fields
));
17033 NDR_PULL_ALLOC(ndr
, r
->fields
);
17038 if (ndr_flags
& NDR_BUFFERS
) {
17040 _mem_save_fields_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17041 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
17042 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->fields
));
17043 NDR_PULL_ALLOC_N(ndr
, r
->fields
, ndr_get_array_size(ndr
, &r
->fields
));
17044 _mem_save_fields_1
= NDR_PULL_GET_MEM_CTX(ndr
);
17045 NDR_PULL_SET_MEM_CTX(ndr
, r
->fields
, 0);
17046 for (cntr_fields_1
= 0; cntr_fields_1
< r
->count
; cntr_fields_1
++) {
17047 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->fields
[cntr_fields_1
]));
17049 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_1
, 0);
17050 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_fields_0
, 0);
17053 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->fields
, r
->count
));
17056 return NDR_ERR_SUCCESS
;
17059 _PUBLIC_
void ndr_print_spoolss_NotifyOptionType(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOptionType
*r
)
17061 uint32_t cntr_fields_1
;
17062 ndr_print_struct(ndr
, name
, "spoolss_NotifyOptionType");
17064 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
17065 ndr_print_uint16(ndr
, "u1", r
->u1
);
17066 ndr_print_uint32(ndr
, "u2", r
->u2
);
17067 ndr_print_uint32(ndr
, "u3", r
->u3
);
17068 ndr_print_uint32(ndr
, "count", r
->count
);
17069 ndr_print_ptr(ndr
, "fields", r
->fields
);
17072 ndr
->print(ndr
, "%s: ARRAY(%d)", "fields", (int)r
->count
);
17074 for (cntr_fields_1
=0;cntr_fields_1
<r
->count
;cntr_fields_1
++) {
17076 if (asprintf(&idx_1
, "[%d]", cntr_fields_1
) != -1) {
17077 ndr_print_spoolss_Field(ndr
, "fields", r
->fields
[cntr_fields_1
]);
17087 static enum ndr_err_code
ndr_push_spoolssNotifyOptionFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17089 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17090 return NDR_ERR_SUCCESS
;
17093 static enum ndr_err_code
ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17096 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17098 return NDR_ERR_SUCCESS
;
17101 _PUBLIC_
void ndr_print_spoolssNotifyOptionFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17103 ndr_print_uint32(ndr
, name
, r
);
17105 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH
, r
);
17109 static enum ndr_err_code
ndr_push_spoolss_NotifyOption(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyOption
*r
)
17111 uint32_t cntr_types_1
;
17112 if (ndr_flags
& NDR_SCALARS
) {
17113 NDR_CHECK(ndr_push_align(ndr
, 4));
17114 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
17115 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, r
->flags
));
17116 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17117 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->types
));
17119 if (ndr_flags
& NDR_BUFFERS
) {
17121 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17122 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17123 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
17125 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17126 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
17130 return NDR_ERR_SUCCESS
;
17133 static enum ndr_err_code
ndr_pull_spoolss_NotifyOption(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyOption
*r
)
17135 uint32_t _ptr_types
;
17136 uint32_t cntr_types_1
;
17137 TALLOC_CTX
*_mem_save_types_0
;
17138 TALLOC_CTX
*_mem_save_types_1
;
17139 if (ndr_flags
& NDR_SCALARS
) {
17140 NDR_CHECK(ndr_pull_align(ndr
, 4));
17141 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
17142 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr
, NDR_SCALARS
, &r
->flags
));
17143 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
17144 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_types
));
17146 NDR_PULL_ALLOC(ndr
, r
->types
);
17151 if (ndr_flags
& NDR_BUFFERS
) {
17153 _mem_save_types_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17154 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
17155 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->types
));
17156 NDR_PULL_ALLOC_N(ndr
, r
->types
, ndr_get_array_size(ndr
, &r
->types
));
17157 _mem_save_types_1
= NDR_PULL_GET_MEM_CTX(ndr
);
17158 NDR_PULL_SET_MEM_CTX(ndr
, r
->types
, 0);
17159 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17160 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_SCALARS
, &r
->types
[cntr_types_1
]));
17162 for (cntr_types_1
= 0; cntr_types_1
< r
->count
; cntr_types_1
++) {
17163 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr
, NDR_BUFFERS
, &r
->types
[cntr_types_1
]));
17165 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_1
, 0);
17166 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_types_0
, 0);
17169 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->types
, r
->count
));
17172 return NDR_ERR_SUCCESS
;
17175 _PUBLIC_
void ndr_print_spoolss_NotifyOption(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyOption
*r
)
17177 uint32_t cntr_types_1
;
17178 ndr_print_struct(ndr
, name
, "spoolss_NotifyOption");
17180 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
17181 ndr_print_spoolssNotifyOptionFlags(ndr
, "flags", r
->flags
);
17182 ndr_print_uint32(ndr
, "count", r
->count
);
17183 ndr_print_ptr(ndr
, "types", r
->types
);
17186 ndr
->print(ndr
, "%s: ARRAY(%d)", "types", (int)r
->count
);
17188 for (cntr_types_1
=0;cntr_types_1
<r
->count
;cntr_types_1
++) {
17190 if (asprintf(&idx_1
, "[%d]", cntr_types_1
) != -1) {
17191 ndr_print_spoolss_NotifyOptionType(ndr
, "types", &r
->types
[cntr_types_1
]);
17201 static enum ndr_err_code
ndr_push_spoolss_NotifyString(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyString
*r
)
17203 if (ndr_flags
& NDR_SCALARS
) {
17204 NDR_CHECK(ndr_push_align(ndr
, 4));
17205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
17206 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->string
));
17208 if (ndr_flags
& NDR_BUFFERS
) {
17210 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
/ 2));
17211 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->string
, r
->size
/ 2, sizeof(uint16_t), CH_UTF16
));
17214 return NDR_ERR_SUCCESS
;
17217 static enum ndr_err_code
ndr_pull_spoolss_NotifyString(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyString
*r
)
17219 uint32_t _ptr_string
;
17220 TALLOC_CTX
*_mem_save_string_0
;
17221 if (ndr_flags
& NDR_SCALARS
) {
17222 NDR_CHECK(ndr_pull_align(ndr
, 4));
17223 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
17224 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_string
));
17226 NDR_PULL_ALLOC(ndr
, r
->string
);
17231 if (ndr_flags
& NDR_BUFFERS
) {
17233 _mem_save_string_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17234 NDR_PULL_SET_MEM_CTX(ndr
, r
->string
, 0);
17235 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->string
));
17236 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->string
, ndr_get_array_size(ndr
, &r
->string
), sizeof(uint16_t), CH_UTF16
));
17237 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_string_0
, 0);
17240 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->string
, r
->size
/ 2));
17243 return NDR_ERR_SUCCESS
;
17246 _PUBLIC_
void ndr_print_spoolss_NotifyString(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyString
*r
)
17248 ndr_print_struct(ndr
, name
, "spoolss_NotifyString");
17250 ndr_print_uint32(ndr
, "size", r
->size
);
17251 ndr_print_ptr(ndr
, "string", r
->string
);
17254 ndr_print_string(ndr
, "string", r
->string
);
17260 static enum ndr_err_code
ndr_push_spoolss_NotifyTable(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_NotifyTable r
)
17262 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17263 return NDR_ERR_SUCCESS
;
17266 static enum ndr_err_code
ndr_pull_spoolss_NotifyTable(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_NotifyTable
*r
)
17269 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17271 return NDR_ERR_SUCCESS
;
17274 _PUBLIC_
void ndr_print_spoolss_NotifyTable(struct ndr_print
*ndr
, const char *name
, enum spoolss_NotifyTable r
)
17276 const char *val
= NULL
;
17279 case NOTIFY_TABLE_DWORD
: val
= "NOTIFY_TABLE_DWORD"; break;
17280 case NOTIFY_TABLE_STRING
: val
= "NOTIFY_TABLE_STRING"; break;
17281 case NOTIFY_TABLE_DEVMODE
: val
= "NOTIFY_TABLE_DEVMODE"; break;
17282 case NOTIFY_TABLE_TIME
: val
= "NOTIFY_TABLE_TIME"; break;
17283 case NOTIFY_TABLE_SECURITYDESCRIPTOR
: val
= "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
17285 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
17288 static enum ndr_err_code
ndr_push_spoolss_NotifyData(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_NotifyData
*r
)
17290 if (ndr_flags
& NDR_SCALARS
) {
17291 int level
= ndr_push_get_switch_value(ndr
, r
);
17292 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
17295 uint32_t cntr_integer_0
;
17296 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
17297 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->integer
[cntr_integer_0
]));
17302 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
17306 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
17310 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
17314 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
17318 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17321 if (ndr_flags
& NDR_BUFFERS
) {
17322 int level
= ndr_push_get_switch_value(ndr
, r
);
17328 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
17332 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
17336 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
17340 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
17344 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17347 return NDR_ERR_SUCCESS
;
17350 static enum ndr_err_code
ndr_pull_spoolss_NotifyData(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_NotifyData
*r
)
17354 level
= ndr_pull_get_switch_value(ndr
, r
);
17355 if (ndr_flags
& NDR_SCALARS
) {
17356 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
17357 if (_level
!= level
) {
17358 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
17362 uint32_t cntr_integer_0
;
17363 for (cntr_integer_0
= 0; cntr_integer_0
< 2; cntr_integer_0
++) {
17364 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->integer
[cntr_integer_0
]));
17369 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_SCALARS
, &r
->string
));
17373 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
, &r
->devmode
));
17377 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_SCALARS
, &r
->time
));
17381 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
, &r
->sd
));
17385 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17388 if (ndr_flags
& NDR_BUFFERS
) {
17394 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr
, NDR_BUFFERS
, &r
->string
));
17398 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_BUFFERS
, &r
->devmode
));
17402 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr
, NDR_BUFFERS
, &r
->time
));
17406 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_BUFFERS
, &r
->sd
));
17410 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17413 return NDR_ERR_SUCCESS
;
17416 _PUBLIC_
void ndr_print_spoolss_NotifyData(struct ndr_print
*ndr
, const char *name
, const union spoolss_NotifyData
*r
)
17419 uint32_t cntr_integer_0
;
17420 level
= ndr_print_get_switch_value(ndr
, r
);
17421 ndr_print_union(ndr
, name
, level
, "spoolss_NotifyData");
17424 ndr
->print(ndr
, "%s: ARRAY(%d)", "integer", (int)2);
17426 for (cntr_integer_0
=0;cntr_integer_0
<2;cntr_integer_0
++) {
17428 if (asprintf(&idx_0
, "[%d]", cntr_integer_0
) != -1) {
17429 ndr_print_uint32(ndr
, "integer", r
->integer
[cntr_integer_0
]);
17437 ndr_print_spoolss_NotifyString(ndr
, "string", &r
->string
);
17441 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode", &r
->devmode
);
17445 ndr_print_spoolss_TimeCtr(ndr
, "time", &r
->time
);
17449 ndr_print_sec_desc_buf(ndr
, "sd", &r
->sd
);
17453 ndr_print_bad_level(ndr
, name
, level
);
17457 static enum ndr_err_code
ndr_push_spoolss_Notify(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_Notify
*r
)
17459 if (ndr_flags
& NDR_SCALARS
) {
17460 NDR_CHECK(ndr_push_align(ndr
, 4));
17461 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr
, NDR_SCALARS
, r
->type
));
17462 NDR_CHECK(ndr_push_spoolss_Field(ndr
, NDR_SCALARS
, r
->field
));
17463 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr
, NDR_SCALARS
, r
->variable_type
));
17464 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->job_id
));
17465 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
17466 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
17468 if (ndr_flags
& NDR_BUFFERS
) {
17469 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
17471 return NDR_ERR_SUCCESS
;
17474 static enum ndr_err_code
ndr_pull_spoolss_Notify(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_Notify
*r
)
17476 if (ndr_flags
& NDR_SCALARS
) {
17477 NDR_CHECK(ndr_pull_align(ndr
, 4));
17478 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr
, NDR_SCALARS
, &r
->type
));
17479 NDR_CHECK(ndr_pull_spoolss_Field(ndr
, NDR_SCALARS
, &r
->field
));
17480 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr
, NDR_SCALARS
, &r
->variable_type
));
17481 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->job_id
));
17482 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->data
, r
->variable_type
));
17483 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_SCALARS
, &r
->data
));
17485 if (ndr_flags
& NDR_BUFFERS
) {
17486 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr
, NDR_BUFFERS
, &r
->data
));
17488 return NDR_ERR_SUCCESS
;
17491 _PUBLIC_
void ndr_print_spoolss_Notify(struct ndr_print
*ndr
, const char *name
, const struct spoolss_Notify
*r
)
17493 ndr_print_struct(ndr
, name
, "spoolss_Notify");
17495 ndr_print_spoolss_NotifyType(ndr
, "type", r
->type
);
17496 ndr_print_spoolss_Field(ndr
, "field", r
->field
);
17497 ndr_print_spoolss_NotifyTable(ndr
, "variable_type", r
->variable_type
);
17498 ndr_print_uint32(ndr
, "job_id", r
->job_id
);
17499 ndr_print_set_switch_value(ndr
, &r
->data
, r
->variable_type
);
17500 ndr_print_spoolss_NotifyData(ndr
, "data", &r
->data
);
17504 static enum ndr_err_code
ndr_push_spoolss_NotifyInfo(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_NotifyInfo
*r
)
17506 uint32_t cntr_notifies_0
;
17507 if (ndr_flags
& NDR_SCALARS
) {
17508 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17509 NDR_CHECK(ndr_push_align(ndr
, 4));
17510 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 2));
17511 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
17512 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->count
));
17513 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
17514 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
17517 if (ndr_flags
& NDR_BUFFERS
) {
17518 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
17519 NDR_CHECK(ndr_push_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
17522 return NDR_ERR_SUCCESS
;
17525 static enum ndr_err_code
ndr_pull_spoolss_NotifyInfo(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_NotifyInfo
*r
)
17527 uint32_t cntr_notifies_0
;
17528 TALLOC_CTX
*_mem_save_notifies_0
;
17529 if (ndr_flags
& NDR_SCALARS
) {
17530 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->notifies
));
17531 NDR_CHECK(ndr_pull_align(ndr
, 4));
17532 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
17533 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
17534 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->count
));
17535 NDR_PULL_ALLOC_N(ndr
, r
->notifies
, ndr_get_array_size(ndr
, &r
->notifies
));
17536 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17537 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
17538 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
17539 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_SCALARS
, &r
->notifies
[cntr_notifies_0
]));
17541 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
17543 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->notifies
, r
->count
));
17546 if (ndr_flags
& NDR_BUFFERS
) {
17547 _mem_save_notifies_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17548 NDR_PULL_SET_MEM_CTX(ndr
, r
->notifies
, 0);
17549 for (cntr_notifies_0
= 0; cntr_notifies_0
< r
->count
; cntr_notifies_0
++) {
17550 NDR_CHECK(ndr_pull_spoolss_Notify(ndr
, NDR_BUFFERS
, &r
->notifies
[cntr_notifies_0
]));
17552 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notifies_0
, 0);
17554 return NDR_ERR_SUCCESS
;
17557 _PUBLIC_
void ndr_print_spoolss_NotifyInfo(struct ndr_print
*ndr
, const char *name
, const struct spoolss_NotifyInfo
*r
)
17559 uint32_t cntr_notifies_0
;
17560 ndr_print_struct(ndr
, name
, "spoolss_NotifyInfo");
17562 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?2:r
->version
);
17563 ndr_print_uint32(ndr
, "flags", r
->flags
);
17564 ndr_print_uint32(ndr
, "count", r
->count
);
17565 ndr
->print(ndr
, "%s: ARRAY(%d)", "notifies", (int)r
->count
);
17567 for (cntr_notifies_0
=0;cntr_notifies_0
<r
->count
;cntr_notifies_0
++) {
17569 if (asprintf(&idx_0
, "[%d]", cntr_notifies_0
) != -1) {
17570 ndr_print_spoolss_Notify(ndr
, "notifies", &r
->notifies
[cntr_notifies_0
]);
17578 static enum ndr_err_code
ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_ReplyPrinterInfo
*r
)
17580 if (ndr_flags
& NDR_SCALARS
) {
17581 int level
= ndr_push_get_switch_value(ndr
, r
);
17582 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
17585 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->info0
));
17589 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17592 if (ndr_flags
& NDR_BUFFERS
) {
17593 int level
= ndr_push_get_switch_value(ndr
, r
);
17597 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
17602 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17605 return NDR_ERR_SUCCESS
;
17608 static enum ndr_err_code
ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_ReplyPrinterInfo
*r
)
17612 TALLOC_CTX
*_mem_save_info0_0
;
17613 level
= ndr_pull_get_switch_value(ndr
, r
);
17614 if (ndr_flags
& NDR_SCALARS
) {
17615 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
17616 if (_level
!= level
) {
17617 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
17621 uint32_t _ptr_info0
;
17622 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info0
));
17624 NDR_PULL_ALLOC(ndr
, r
->info0
);
17631 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17634 if (ndr_flags
& NDR_BUFFERS
) {
17638 _mem_save_info0_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17639 NDR_PULL_SET_MEM_CTX(ndr
, r
->info0
, 0);
17640 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->info0
));
17641 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info0_0
, 0);
17646 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17649 return NDR_ERR_SUCCESS
;
17652 _PUBLIC_
void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print
*ndr
, const char *name
, const union spoolss_ReplyPrinterInfo
*r
)
17655 level
= ndr_print_get_switch_value(ndr
, r
);
17656 ndr_print_union(ndr
, name
, level
, "spoolss_ReplyPrinterInfo");
17659 ndr_print_ptr(ndr
, "info0", r
->info0
);
17662 ndr_print_spoolss_NotifyInfo(ndr
, "info0", r
->info0
);
17668 ndr_print_bad_level(ndr
, name
, level
);
17672 static enum ndr_err_code
ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
17674 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
17675 return NDR_ERR_SUCCESS
;
17678 static enum ndr_err_code
ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
17681 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
17683 return NDR_ERR_SUCCESS
;
17686 _PUBLIC_
void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
17688 ndr_print_uint32(ndr
, name
, r
);
17690 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED
, r
);
17691 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED
, r
);
17692 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH
, r
);
17696 static enum ndr_err_code
ndr_push_spoolss_UserLevel1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel1
*r
)
17698 if (ndr_flags
& NDR_SCALARS
) {
17699 NDR_CHECK(ndr_push_align(ndr
, 4));
17700 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
17701 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
17702 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
17703 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
17704 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
17705 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
17706 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
17708 if (ndr_flags
& NDR_BUFFERS
) {
17710 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
17711 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17712 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
17713 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17716 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
17717 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17718 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
17719 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17722 return NDR_ERR_SUCCESS
;
17725 static enum ndr_err_code
ndr_pull_spoolss_UserLevel1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel1
*r
)
17727 uint32_t _ptr_client
;
17728 TALLOC_CTX
*_mem_save_client_0
;
17729 uint32_t _ptr_user
;
17730 TALLOC_CTX
*_mem_save_user_0
;
17731 if (ndr_flags
& NDR_SCALARS
) {
17732 NDR_CHECK(ndr_pull_align(ndr
, 4));
17733 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
17734 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
17736 NDR_PULL_ALLOC(ndr
, r
->client
);
17740 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
17742 NDR_PULL_ALLOC(ndr
, r
->user
);
17746 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
17747 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
17748 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
17749 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
17751 if (ndr_flags
& NDR_BUFFERS
) {
17753 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17754 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
17755 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
17756 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
17757 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
17758 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
));
17760 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
17761 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
17762 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
17765 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17766 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
17767 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
17768 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
17769 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
17770 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
));
17772 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
17773 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
17774 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
17777 return NDR_ERR_SUCCESS
;
17780 _PUBLIC_
void ndr_print_spoolss_UserLevel1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel1
*r
)
17782 ndr_print_struct(ndr
, name
, "spoolss_UserLevel1");
17784 ndr_print_uint32(ndr
, "size", r
->size
);
17785 ndr_print_ptr(ndr
, "client", r
->client
);
17788 ndr_print_string(ndr
, "client", r
->client
);
17791 ndr_print_ptr(ndr
, "user", r
->user
);
17794 ndr_print_string(ndr
, "user", r
->user
);
17797 ndr_print_uint32(ndr
, "build", r
->build
);
17798 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
17799 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
17800 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
17804 static enum ndr_err_code
ndr_push_spoolss_UserLevel2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel2
*r
)
17806 if (ndr_flags
& NDR_SCALARS
) {
17807 NDR_CHECK(ndr_push_align(ndr
, 4));
17808 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->not_used
));
17810 if (ndr_flags
& NDR_BUFFERS
) {
17812 return NDR_ERR_SUCCESS
;
17815 static enum ndr_err_code
ndr_pull_spoolss_UserLevel2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel2
*r
)
17817 if (ndr_flags
& NDR_SCALARS
) {
17818 NDR_CHECK(ndr_pull_align(ndr
, 4));
17819 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->not_used
));
17821 if (ndr_flags
& NDR_BUFFERS
) {
17823 return NDR_ERR_SUCCESS
;
17826 _PUBLIC_
void ndr_print_spoolss_UserLevel2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel2
*r
)
17828 ndr_print_struct(ndr
, name
, "spoolss_UserLevel2");
17830 ndr_print_uint32(ndr
, "not_used", r
->not_used
);
17834 static enum ndr_err_code
ndr_push_spoolss_UserLevel3(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevel3
*r
)
17836 if (ndr_flags
& NDR_SCALARS
) {
17837 NDR_CHECK(ndr_push_align(ndr
, 4));
17838 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size
));
17839 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->flags
));
17840 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->size2
));
17841 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->client
));
17842 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->user
));
17843 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->build
));
17844 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr
, NDR_SCALARS
, r
->major
));
17845 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr
, NDR_SCALARS
, r
->minor
));
17846 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, r
->processor
));
17847 NDR_CHECK(ndr_push_udlong(ndr
, NDR_SCALARS
, r
->reserved
));
17849 if (ndr_flags
& NDR_BUFFERS
) {
17851 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
17852 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17853 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->client
, CH_UTF16
)));
17854 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->client
, ndr_charset_length(r
->client
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17857 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
17858 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
17859 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->user
, CH_UTF16
)));
17860 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->user
, ndr_charset_length(r
->user
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
17863 return NDR_ERR_SUCCESS
;
17866 static enum ndr_err_code
ndr_pull_spoolss_UserLevel3(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevel3
*r
)
17868 uint32_t _ptr_client
;
17869 TALLOC_CTX
*_mem_save_client_0
;
17870 uint32_t _ptr_user
;
17871 TALLOC_CTX
*_mem_save_user_0
;
17872 if (ndr_flags
& NDR_SCALARS
) {
17873 NDR_CHECK(ndr_pull_align(ndr
, 4));
17874 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
17875 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->flags
));
17876 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size2
));
17877 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_client
));
17879 NDR_PULL_ALLOC(ndr
, r
->client
);
17883 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_user
));
17885 NDR_PULL_ALLOC(ndr
, r
->user
);
17889 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->build
));
17890 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr
, NDR_SCALARS
, &r
->major
));
17891 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr
, NDR_SCALARS
, &r
->minor
));
17892 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr
, NDR_SCALARS
, &r
->processor
));
17893 NDR_CHECK(ndr_pull_udlong(ndr
, NDR_SCALARS
, &r
->reserved
));
17895 if (ndr_flags
& NDR_BUFFERS
) {
17897 _mem_save_client_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17898 NDR_PULL_SET_MEM_CTX(ndr
, r
->client
, 0);
17899 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->client
));
17900 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->client
));
17901 if (ndr_get_array_length(ndr
, &r
->client
) > ndr_get_array_size(ndr
, &r
->client
)) {
17902 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
));
17904 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t)));
17905 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->client
, ndr_get_array_length(ndr
, &r
->client
), sizeof(uint16_t), CH_UTF16
));
17906 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_client_0
, 0);
17909 _mem_save_user_0
= NDR_PULL_GET_MEM_CTX(ndr
);
17910 NDR_PULL_SET_MEM_CTX(ndr
, r
->user
, 0);
17911 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->user
));
17912 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->user
));
17913 if (ndr_get_array_length(ndr
, &r
->user
) > ndr_get_array_size(ndr
, &r
->user
)) {
17914 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
));
17916 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t)));
17917 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->user
, ndr_get_array_length(ndr
, &r
->user
), sizeof(uint16_t), CH_UTF16
));
17918 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_user_0
, 0);
17921 return NDR_ERR_SUCCESS
;
17924 _PUBLIC_
void ndr_print_spoolss_UserLevel3(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevel3
*r
)
17926 ndr_print_struct(ndr
, name
, "spoolss_UserLevel3");
17928 ndr_print_uint32(ndr
, "size", r
->size
);
17929 ndr_print_uint32(ndr
, "flags", r
->flags
);
17930 ndr_print_uint32(ndr
, "size2", r
->size2
);
17931 ndr_print_ptr(ndr
, "client", r
->client
);
17934 ndr_print_string(ndr
, "client", r
->client
);
17937 ndr_print_ptr(ndr
, "user", r
->user
);
17940 ndr_print_string(ndr
, "user", r
->user
);
17943 ndr_print_uint32(ndr
, "build", r
->build
);
17944 ndr_print_spoolss_MajorVersion(ndr
, "major", r
->major
);
17945 ndr_print_spoolss_MinorVersion(ndr
, "minor", r
->minor
);
17946 ndr_print_spoolss_ProcessorArchitecture(ndr
, "processor", r
->processor
);
17947 ndr_print_udlong(ndr
, "reserved", r
->reserved
);
17951 static enum ndr_err_code
ndr_push_spoolss_UserLevel(struct ndr_push
*ndr
, int ndr_flags
, const union spoolss_UserLevel
*r
)
17953 if (ndr_flags
& NDR_SCALARS
) {
17954 int level
= ndr_push_get_switch_value(ndr
, r
);
17955 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, level
));
17958 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level1
));
17962 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level2
));
17966 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->level3
));
17970 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17973 if (ndr_flags
& NDR_BUFFERS
) {
17974 int level
= ndr_push_get_switch_value(ndr
, r
);
17978 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
17984 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
17990 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
17995 return ndr_push_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
17998 return NDR_ERR_SUCCESS
;
18001 static enum ndr_err_code
ndr_pull_spoolss_UserLevel(struct ndr_pull
*ndr
, int ndr_flags
, union spoolss_UserLevel
*r
)
18005 TALLOC_CTX
*_mem_save_level1_0
;
18006 TALLOC_CTX
*_mem_save_level2_0
;
18007 TALLOC_CTX
*_mem_save_level3_0
;
18008 level
= ndr_pull_get_switch_value(ndr
, r
);
18009 if (ndr_flags
& NDR_SCALARS
) {
18010 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &_level
));
18011 if (_level
!= level
) {
18012 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u for r", _level
);
18016 uint32_t _ptr_level1
;
18017 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level1
));
18019 NDR_PULL_ALLOC(ndr
, r
->level1
);
18026 uint32_t _ptr_level2
;
18027 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level2
));
18029 NDR_PULL_ALLOC(ndr
, r
->level2
);
18036 uint32_t _ptr_level3
;
18037 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_level3
));
18039 NDR_PULL_ALLOC(ndr
, r
->level3
);
18046 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18049 if (ndr_flags
& NDR_BUFFERS
) {
18053 _mem_save_level1_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18054 NDR_PULL_SET_MEM_CTX(ndr
, r
->level1
, 0);
18055 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level1
));
18056 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level1_0
, 0);
18062 _mem_save_level2_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18063 NDR_PULL_SET_MEM_CTX(ndr
, r
->level2
, 0);
18064 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr
, NDR_SCALARS
, r
->level2
));
18065 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level2_0
, 0);
18071 _mem_save_level3_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18072 NDR_PULL_SET_MEM_CTX(ndr
, r
->level3
, 0);
18073 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->level3
));
18074 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_level3_0
, 0);
18079 return ndr_pull_error(ndr
, NDR_ERR_BAD_SWITCH
, "Bad switch value %u", level
);
18082 return NDR_ERR_SUCCESS
;
18085 _PUBLIC_
void ndr_print_spoolss_UserLevel(struct ndr_print
*ndr
, const char *name
, const union spoolss_UserLevel
*r
)
18088 level
= ndr_print_get_switch_value(ndr
, r
);
18089 ndr_print_union(ndr
, name
, level
, "spoolss_UserLevel");
18092 ndr_print_ptr(ndr
, "level1", r
->level1
);
18095 ndr_print_spoolss_UserLevel1(ndr
, "level1", r
->level1
);
18101 ndr_print_ptr(ndr
, "level2", r
->level2
);
18104 ndr_print_spoolss_UserLevel2(ndr
, "level2", r
->level2
);
18110 ndr_print_ptr(ndr
, "level3", r
->level3
);
18113 ndr_print_spoolss_UserLevel3(ndr
, "level3", r
->level3
);
18119 ndr_print_bad_level(ndr
, name
, level
);
18123 static enum ndr_err_code
ndr_push_spoolss_UserLevelCtr(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_UserLevelCtr
*r
)
18125 if (ndr_flags
& NDR_SCALARS
) {
18126 NDR_CHECK(ndr_push_align(ndr
, 4));
18127 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->level
));
18128 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->user_info
, r
->level
));
18129 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
18131 if (ndr_flags
& NDR_BUFFERS
) {
18132 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
18134 return NDR_ERR_SUCCESS
;
18137 static enum ndr_err_code
ndr_pull_spoolss_UserLevelCtr(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_UserLevelCtr
*r
)
18139 if (ndr_flags
& NDR_SCALARS
) {
18140 NDR_CHECK(ndr_pull_align(ndr
, 4));
18141 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->level
));
18142 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->user_info
, r
->level
));
18143 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
, &r
->user_info
));
18145 if (ndr_flags
& NDR_BUFFERS
) {
18146 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_BUFFERS
, &r
->user_info
));
18148 return NDR_ERR_SUCCESS
;
18151 _PUBLIC_
void ndr_print_spoolss_UserLevelCtr(struct ndr_print
*ndr
, const char *name
, const struct spoolss_UserLevelCtr
*r
)
18153 ndr_print_struct(ndr
, name
, "spoolss_UserLevelCtr");
18155 ndr_print_uint32(ndr
, "level", r
->level
);
18156 ndr_print_set_switch_value(ndr
, &r
->user_info
, r
->level
);
18157 ndr_print_spoolss_UserLevel(ndr
, "user_info", &r
->user_info
);
18161 static enum ndr_err_code
ndr_push_spoolss_AccessRights(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18163 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18164 return NDR_ERR_SUCCESS
;
18167 static enum ndr_err_code
ndr_pull_spoolss_AccessRights(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18170 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18172 return NDR_ERR_SUCCESS
;
18175 _PUBLIC_
void ndr_print_spoolss_AccessRights(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18177 ndr_print_uint32(ndr
, name
, r
);
18179 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER
, r
);
18180 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE
, r
);
18181 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER
, r
);
18182 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE
, r
);
18183 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER
, r
);
18184 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ
, r
);
18188 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_DeleteDriverFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18190 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18191 return NDR_ERR_SUCCESS
;
18194 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18197 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18199 return NDR_ERR_SUCCESS
;
18202 _PUBLIC_
void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18204 ndr_print_uint32(ndr
, name
, r
);
18206 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES
, r
);
18207 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION
, r
);
18208 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES
, r
);
18212 static enum ndr_err_code
ndr_push_spoolss_PortProtocol(struct ndr_push
*ndr
, int ndr_flags
, enum spoolss_PortProtocol r
)
18214 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18215 return NDR_ERR_SUCCESS
;
18218 static enum ndr_err_code
ndr_pull_spoolss_PortProtocol(struct ndr_pull
*ndr
, int ndr_flags
, enum spoolss_PortProtocol
*r
)
18221 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18223 return NDR_ERR_SUCCESS
;
18226 _PUBLIC_
void ndr_print_spoolss_PortProtocol(struct ndr_print
*ndr
, const char *name
, enum spoolss_PortProtocol r
)
18228 const char *val
= NULL
;
18231 case PROTOCOL_RAWTCP_TYPE
: val
= "PROTOCOL_RAWTCP_TYPE"; break;
18232 case PROTOCOL_LPR_TYPE
: val
= "PROTOCOL_LPR_TYPE"; break;
18234 ndr_print_enum(ndr
, name
, "ENUM", val
, r
);
18237 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData1(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData1
*r
)
18239 if (ndr_flags
& NDR_SCALARS
) {
18240 NDR_CHECK(ndr_push_align(ndr
, 4));
18241 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
18242 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000001));
18243 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
18244 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
18245 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
18246 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
18247 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
18248 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
18249 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
18250 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
18251 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
18252 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
18253 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
18254 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
18255 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
18257 if (ndr_flags
& NDR_BUFFERS
) {
18259 return NDR_ERR_SUCCESS
;
18262 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData1(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData1
*r
)
18264 if (ndr_flags
& NDR_SCALARS
) {
18265 NDR_CHECK(ndr_pull_align(ndr
, 4));
18266 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
18267 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
18268 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
18269 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18270 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
18271 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 49, sizeof(uint16_t), CH_UTF16
));
18272 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
18273 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
18274 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
18275 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->ip_address
, 16, sizeof(uint16_t), CH_UTF16
));
18276 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hardware_address
, 13, sizeof(uint16_t), CH_UTF16
));
18277 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
18278 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
18279 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
18280 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
18282 if (ndr_flags
& NDR_BUFFERS
) {
18284 return NDR_ERR_SUCCESS
;
18287 _PUBLIC_
void ndr_print_spoolss_PortData1(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData1
*r
)
18289 ndr_print_struct(ndr
, name
, "spoolss_PortData1");
18291 ndr_print_string(ndr
, "portname", r
->portname
);
18292 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000001:r
->version
);
18293 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
18294 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
18295 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
18296 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
18297 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
18298 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
18299 ndr_print_string(ndr
, "queue", r
->queue
);
18300 ndr_print_string(ndr
, "ip_address", r
->ip_address
);
18301 ndr_print_string(ndr
, "hardware_address", r
->hardware_address
);
18302 ndr_print_string(ndr
, "device_type", r
->device_type
);
18303 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
18304 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
18305 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
18309 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_PortData2(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_PortData2
*r
)
18311 if (ndr_flags
& NDR_SCALARS
) {
18312 NDR_CHECK(ndr_push_align(ndr
, 4));
18313 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
18314 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0x00000002));
18315 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr
, NDR_SCALARS
, r
->protocol
));
18316 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, sizeof(r
)));
18317 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->reserved
));
18318 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
18319 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
18320 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->dblspool
));
18321 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
18322 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
18323 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_number
));
18324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_enabled
));
18325 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->snmp_dev_index
));
18326 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->port_monitor_mib_index
));
18328 if (ndr_flags
& NDR_BUFFERS
) {
18330 return NDR_ERR_SUCCESS
;
18333 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_PortData2(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_PortData2
*r
)
18335 if (ndr_flags
& NDR_SCALARS
) {
18336 NDR_CHECK(ndr_pull_align(ndr
, 4));
18337 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->portname
, 64, sizeof(uint16_t), CH_UTF16
));
18338 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->version
));
18339 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr
, NDR_SCALARS
, &r
->protocol
));
18340 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->size
));
18341 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->reserved
));
18342 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->hostaddress
, 128, sizeof(uint16_t), CH_UTF16
));
18343 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->snmpcommunity
, 33, sizeof(uint16_t), CH_UTF16
));
18344 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->dblspool
));
18345 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->queue
, 33, sizeof(uint16_t), CH_UTF16
));
18346 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->device_type
, 257, sizeof(uint16_t), CH_UTF16
));
18347 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_number
));
18348 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_enabled
));
18349 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->snmp_dev_index
));
18350 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->port_monitor_mib_index
));
18352 if (ndr_flags
& NDR_BUFFERS
) {
18354 return NDR_ERR_SUCCESS
;
18357 _PUBLIC_
void ndr_print_spoolss_PortData2(struct ndr_print
*ndr
, const char *name
, const struct spoolss_PortData2
*r
)
18359 ndr_print_struct(ndr
, name
, "spoolss_PortData2");
18361 ndr_print_string(ndr
, "portname", r
->portname
);
18362 ndr_print_uint32(ndr
, "version", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?0x00000002:r
->version
);
18363 ndr_print_spoolss_PortProtocol(ndr
, "protocol", r
->protocol
);
18364 ndr_print_uint32(ndr
, "size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?sizeof(r
):r
->size
);
18365 ndr_print_uint32(ndr
, "reserved", r
->reserved
);
18366 ndr_print_string(ndr
, "hostaddress", r
->hostaddress
);
18367 ndr_print_string(ndr
, "snmpcommunity", r
->snmpcommunity
);
18368 ndr_print_uint32(ndr
, "dblspool", r
->dblspool
);
18369 ndr_print_string(ndr
, "queue", r
->queue
);
18370 ndr_print_string(ndr
, "device_type", r
->device_type
);
18371 ndr_print_uint32(ndr
, "port_number", r
->port_number
);
18372 ndr_print_uint32(ndr
, "snmp_enabled", r
->snmp_enabled
);
18373 ndr_print_uint32(ndr
, "snmp_dev_index", r
->snmp_dev_index
);
18374 ndr_print_uint32(ndr
, "port_monitor_mib_index", r
->port_monitor_mib_index
);
18378 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_MonitorUi(struct ndr_push
*ndr
, int ndr_flags
, const struct spoolss_MonitorUi
*r
)
18380 if (ndr_flags
& NDR_SCALARS
) {
18381 NDR_CHECK(ndr_push_align(ndr
, 4));
18383 uint32_t _flags_save_string
= ndr
->flags
;
18384 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18385 NDR_CHECK(ndr_push_string(ndr
, NDR_SCALARS
, r
->dll_name
));
18386 ndr
->flags
= _flags_save_string
;
18389 if (ndr_flags
& NDR_BUFFERS
) {
18391 return NDR_ERR_SUCCESS
;
18394 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_MonitorUi(struct ndr_pull
*ndr
, int ndr_flags
, struct spoolss_MonitorUi
*r
)
18396 if (ndr_flags
& NDR_SCALARS
) {
18397 NDR_CHECK(ndr_pull_align(ndr
, 4));
18399 uint32_t _flags_save_string
= ndr
->flags
;
18400 ndr_set_flags(&ndr
->flags
, LIBNDR_FLAG_STR_NULLTERM
);
18401 NDR_CHECK(ndr_pull_string(ndr
, NDR_SCALARS
, &r
->dll_name
));
18402 ndr
->flags
= _flags_save_string
;
18405 if (ndr_flags
& NDR_BUFFERS
) {
18407 return NDR_ERR_SUCCESS
;
18410 _PUBLIC_
void ndr_print_spoolss_MonitorUi(struct ndr_print
*ndr
, const char *name
, const struct spoolss_MonitorUi
*r
)
18412 ndr_print_struct(ndr
, name
, "spoolss_MonitorUi");
18414 ndr_print_string(ndr
, "dll_name", r
->dll_name
);
18418 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push
*ndr
, int ndr_flags
, uint32_t r
)
18420 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
));
18421 return NDR_ERR_SUCCESS
;
18424 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull
*ndr
, int ndr_flags
, uint32_t *r
)
18427 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &v
));
18429 return NDR_ERR_SUCCESS
;
18432 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print
*ndr
, const char *name
, uint32_t r
)
18434 ndr_print_uint32(ndr
, name
, r
);
18436 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE
, r
);
18437 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE
, r
);
18438 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES
, r
);
18439 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES
, r
);
18440 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY
, r
);
18441 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER
, r
);
18442 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS
, r
);
18443 ndr_print_bitmap_flag(ndr
, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE
, r
);
18447 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinters
*r
)
18449 if (flags
& NDR_IN
) {
18450 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
18451 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
18452 if (r
->in
.server
) {
18453 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
18454 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18455 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
18456 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18458 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18459 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
18460 if (r
->in
.buffer
) {
18461 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
18463 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
18465 if (flags
& NDR_OUT
) {
18466 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
18468 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
18470 if (r
->out
.needed
== NULL
) {
18471 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18473 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
18474 if (r
->out
.count
== NULL
) {
18475 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18477 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
18478 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18480 return NDR_ERR_SUCCESS
;
18483 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinters
*r
)
18485 uint32_t _ptr_server
;
18486 uint32_t _ptr_buffer
;
18487 uint32_t _ptr_info
;
18488 TALLOC_CTX
*_mem_save_server_0
;
18489 TALLOC_CTX
*_mem_save_buffer_0
;
18490 TALLOC_CTX
*_mem_save_info_0
;
18491 TALLOC_CTX
*_mem_save_needed_0
;
18492 TALLOC_CTX
*_mem_save_count_0
;
18493 if (flags
& NDR_IN
) {
18494 ZERO_STRUCT(r
->out
);
18496 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
18497 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
18499 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
18501 r
->in
.server
= NULL
;
18503 if (r
->in
.server
) {
18504 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18505 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
18506 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
18507 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
18508 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
18509 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
));
18511 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
18512 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
18513 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
18515 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
18516 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
18518 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
18520 r
->in
.buffer
= NULL
;
18522 if (r
->in
.buffer
) {
18523 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18524 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
18525 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
18526 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
18528 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
18529 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18530 ZERO_STRUCTP(r
->out
.needed
);
18531 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
18532 ZERO_STRUCTP(r
->out
.count
);
18534 if (flags
& NDR_OUT
) {
18535 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
18537 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
18539 r
->out
.info
= NULL
;
18542 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18543 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
18544 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
18545 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
18547 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18548 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18550 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18551 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
18552 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
18553 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
18554 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18555 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
18557 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18558 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
18559 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
18560 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
18561 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18563 return NDR_ERR_SUCCESS
;
18566 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinters(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinters
*r
)
18568 uint32_t cntr_info_0
;
18569 if (flags
& NDR_IN
) {
18570 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18571 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
18573 if (flags
& NDR_OUT
) {
18574 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18575 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
18576 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
18578 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18579 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
18582 return NDR_ERR_SUCCESS
;
18585 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinters(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinters
*r
)
18587 uint32_t cntr_info_0
;
18588 TALLOC_CTX
*_mem_save_info_0
;
18589 if (flags
& NDR_IN
) {
18590 ZERO_STRUCT(r
->out
);
18592 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
18593 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
18595 if (flags
& NDR_OUT
) {
18596 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
18597 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18598 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
18599 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18600 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
18601 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
18603 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
18604 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
18606 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
18608 return NDR_ERR_SUCCESS
;
18611 _PUBLIC_
void ndr_print_spoolss_EnumPrinters(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinters
*r
)
18613 uint32_t cntr_info_2
;
18614 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinters");
18616 if (flags
& NDR_SET_VALUES
) {
18617 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
18619 if (flags
& NDR_IN
) {
18620 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinters");
18622 ndr_print_spoolss_EnumPrinterFlags(ndr
, "flags", r
->in
.flags
);
18623 ndr_print_ptr(ndr
, "server", r
->in
.server
);
18625 if (r
->in
.server
) {
18626 ndr_print_string(ndr
, "server", r
->in
.server
);
18629 ndr_print_uint32(ndr
, "level", r
->in
.level
);
18630 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
18632 if (r
->in
.buffer
) {
18633 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
18636 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
18639 if (flags
& NDR_OUT
) {
18640 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinters");
18642 ndr_print_ptr(ndr
, "count", r
->out
.count
);
18644 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
18646 ndr_print_ptr(ndr
, "info", r
->out
.info
);
18648 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
18650 if (*r
->out
.info
) {
18651 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
18653 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
18655 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
18656 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
18657 ndr_print_spoolss_PrinterInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
18665 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
18667 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
18669 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
18675 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinter
*r
)
18677 if (flags
& NDR_IN
) {
18678 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
18679 if (r
->in
.printername
) {
18680 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
18681 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18682 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
18683 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18685 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
18686 if (r
->in
.datatype
) {
18687 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
18688 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
18689 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
18690 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
18692 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
18693 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
18695 if (flags
& NDR_OUT
) {
18696 if (r
->out
.handle
== NULL
) {
18697 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18699 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
18700 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18702 return NDR_ERR_SUCCESS
;
18705 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinter
*r
)
18707 uint32_t _ptr_printername
;
18708 uint32_t _ptr_datatype
;
18709 TALLOC_CTX
*_mem_save_printername_0
;
18710 TALLOC_CTX
*_mem_save_datatype_0
;
18711 TALLOC_CTX
*_mem_save_handle_0
;
18712 if (flags
& NDR_IN
) {
18713 ZERO_STRUCT(r
->out
);
18715 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
18716 if (_ptr_printername
) {
18717 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
18719 r
->in
.printername
= NULL
;
18721 if (r
->in
.printername
) {
18722 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18723 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
18724 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
18725 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
18726 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
18727 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
));
18729 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
18730 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
18731 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
18733 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
18734 if (_ptr_datatype
) {
18735 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
18737 r
->in
.datatype
= NULL
;
18739 if (r
->in
.datatype
) {
18740 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18741 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
18742 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
18743 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
18744 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
18745 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
));
18747 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
18748 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
18749 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
18751 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
18752 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
18753 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
18754 ZERO_STRUCTP(r
->out
.handle
);
18756 if (flags
& NDR_OUT
) {
18757 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18758 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
18760 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18761 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
18762 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
18763 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
18764 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18766 return NDR_ERR_SUCCESS
;
18769 _PUBLIC_
void ndr_print_spoolss_OpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinter
*r
)
18771 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinter");
18773 if (flags
& NDR_SET_VALUES
) {
18774 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
18776 if (flags
& NDR_IN
) {
18777 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinter");
18779 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
18781 if (r
->in
.printername
) {
18782 ndr_print_string(ndr
, "printername", r
->in
.printername
);
18785 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
18787 if (r
->in
.datatype
) {
18788 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
18791 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
18792 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
18795 if (flags
& NDR_OUT
) {
18796 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinter");
18798 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
18800 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
18802 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
18808 static enum ndr_err_code
ndr_push_spoolss_SetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetJob
*r
)
18810 if (flags
& NDR_IN
) {
18811 if (r
->in
.handle
== NULL
) {
18812 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18814 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
18815 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
18816 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.ctr
));
18818 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
18820 NDR_CHECK(ndr_push_spoolss_JobControl(ndr
, NDR_SCALARS
, r
->in
.command
));
18822 if (flags
& NDR_OUT
) {
18823 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18825 return NDR_ERR_SUCCESS
;
18828 static enum ndr_err_code
ndr_pull_spoolss_SetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetJob
*r
)
18831 TALLOC_CTX
*_mem_save_handle_0
;
18832 TALLOC_CTX
*_mem_save_ctr_0
;
18833 if (flags
& NDR_IN
) {
18834 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18835 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
18837 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18838 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
18839 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
18840 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
18841 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
18842 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_ctr
));
18844 NDR_PULL_ALLOC(ndr
, r
->in
.ctr
);
18849 _mem_save_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18850 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.ctr
, 0);
18851 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.ctr
));
18852 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_ctr_0
, 0);
18854 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
18856 if (flags
& NDR_OUT
) {
18857 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18859 return NDR_ERR_SUCCESS
;
18862 _PUBLIC_
void ndr_print_spoolss_SetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetJob
*r
)
18864 ndr_print_struct(ndr
, name
, "spoolss_SetJob");
18866 if (flags
& NDR_SET_VALUES
) {
18867 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
18869 if (flags
& NDR_IN
) {
18870 ndr_print_struct(ndr
, "in", "spoolss_SetJob");
18872 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
18874 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
18876 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
18877 ndr_print_ptr(ndr
, "ctr", r
->in
.ctr
);
18880 ndr_print_spoolss_JobInfoContainer(ndr
, "ctr", r
->in
.ctr
);
18883 ndr_print_spoolss_JobControl(ndr
, "command", r
->in
.command
);
18886 if (flags
& NDR_OUT
) {
18887 ndr_print_struct(ndr
, "out", "spoolss_SetJob");
18889 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
18895 static enum ndr_err_code
ndr_push_spoolss_GetJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetJob
*r
)
18897 if (flags
& NDR_IN
) {
18898 if (r
->in
.handle
== NULL
) {
18899 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18901 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
18902 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.job_id
));
18903 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
18904 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
18905 if (r
->in
.buffer
) {
18906 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
18908 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
18910 if (flags
& NDR_OUT
) {
18911 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
18914 struct ndr_push
*_ndr_info
;
18915 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
18916 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
18917 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
18918 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
18921 if (r
->out
.needed
== NULL
) {
18922 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
18924 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
18925 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
18927 return NDR_ERR_SUCCESS
;
18930 static enum ndr_err_code
ndr_pull_spoolss_GetJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetJob
*r
)
18932 uint32_t _ptr_buffer
;
18933 uint32_t _ptr_info
;
18934 TALLOC_CTX
*_mem_save_handle_0
;
18935 TALLOC_CTX
*_mem_save_buffer_0
;
18936 TALLOC_CTX
*_mem_save_info_0
;
18937 TALLOC_CTX
*_mem_save_needed_0
;
18938 if (flags
& NDR_IN
) {
18939 ZERO_STRUCT(r
->out
);
18941 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18942 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
18944 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18945 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
18946 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
18947 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
18948 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.job_id
));
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
);
18966 if (flags
& NDR_OUT
) {
18967 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
18969 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
18971 r
->out
.info
= NULL
;
18974 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18975 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
18977 struct ndr_pull
*_ndr_info
;
18978 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
18979 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
18980 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
18981 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
18983 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
18985 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
18986 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
18988 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
18989 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
18990 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
18991 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
18992 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
18994 return NDR_ERR_SUCCESS
;
18997 _PUBLIC_
void ndr_print_spoolss_GetJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetJob
*r
)
18999 ndr_print_struct(ndr
, name
, "spoolss_GetJob");
19001 if (flags
& NDR_SET_VALUES
) {
19002 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19004 if (flags
& NDR_IN
) {
19005 ndr_print_struct(ndr
, "in", "spoolss_GetJob");
19007 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19009 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19011 ndr_print_uint32(ndr
, "job_id", r
->in
.job_id
);
19012 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19013 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19015 if (r
->in
.buffer
) {
19016 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19019 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19022 if (flags
& NDR_OUT
) {
19023 ndr_print_struct(ndr
, "out", "spoolss_GetJob");
19025 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19028 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
19029 ndr_print_spoolss_JobInfo(ndr
, "info", r
->out
.info
);
19032 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19034 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19036 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19042 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumJobs
*r
)
19044 if (flags
& NDR_IN
) {
19045 if (r
->in
.handle
== NULL
) {
19046 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19048 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19049 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.firstjob
));
19050 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.numjobs
));
19051 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19052 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19053 if (r
->in
.buffer
) {
19054 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19056 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19058 if (flags
& NDR_OUT
) {
19059 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19061 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
19063 if (r
->out
.needed
== NULL
) {
19064 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19066 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19067 if (r
->out
.count
== NULL
) {
19068 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19070 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
19071 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19073 return NDR_ERR_SUCCESS
;
19076 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumJobs
*r
)
19078 uint32_t _ptr_buffer
;
19079 uint32_t _ptr_info
;
19080 TALLOC_CTX
*_mem_save_handle_0
;
19081 TALLOC_CTX
*_mem_save_buffer_0
;
19082 TALLOC_CTX
*_mem_save_info_0
;
19083 TALLOC_CTX
*_mem_save_needed_0
;
19084 TALLOC_CTX
*_mem_save_count_0
;
19085 if (flags
& NDR_IN
) {
19086 ZERO_STRUCT(r
->out
);
19088 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19089 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19091 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19092 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19093 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19094 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19095 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.firstjob
));
19096 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.numjobs
));
19097 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19098 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19100 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19102 r
->in
.buffer
= NULL
;
19104 if (r
->in
.buffer
) {
19105 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19106 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19107 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19108 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19110 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19111 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19112 ZERO_STRUCTP(r
->out
.needed
);
19113 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19114 ZERO_STRUCTP(r
->out
.count
);
19116 if (flags
& NDR_OUT
) {
19117 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19119 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19121 r
->out
.info
= NULL
;
19124 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19125 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19126 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
19127 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19129 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19130 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19132 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19133 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19134 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19135 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19136 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19137 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19139 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19140 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
19141 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
19142 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
19143 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19145 return NDR_ERR_SUCCESS
;
19148 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumJobs(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumJobs
*r
)
19150 uint32_t cntr_info_0
;
19151 if (flags
& NDR_IN
) {
19152 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19153 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
19155 if (flags
& NDR_OUT
) {
19156 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19157 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19158 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19160 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19161 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19164 return NDR_ERR_SUCCESS
;
19167 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumJobs(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumJobs
*r
)
19169 uint32_t cntr_info_0
;
19170 TALLOC_CTX
*_mem_save_info_0
;
19171 if (flags
& NDR_IN
) {
19172 ZERO_STRUCT(r
->out
);
19174 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19175 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
19177 if (flags
& NDR_OUT
) {
19178 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
19179 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19180 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19181 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19182 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19183 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19185 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19186 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19188 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19190 return NDR_ERR_SUCCESS
;
19193 _PUBLIC_
void ndr_print_spoolss_EnumJobs(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumJobs
*r
)
19195 uint32_t cntr_info_2
;
19196 ndr_print_struct(ndr
, name
, "spoolss_EnumJobs");
19198 if (flags
& NDR_SET_VALUES
) {
19199 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19201 if (flags
& NDR_IN
) {
19202 ndr_print_struct(ndr
, "in", "spoolss_EnumJobs");
19204 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19206 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19208 ndr_print_uint32(ndr
, "firstjob", r
->in
.firstjob
);
19209 ndr_print_uint32(ndr
, "numjobs", r
->in
.numjobs
);
19210 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19211 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19213 if (r
->in
.buffer
) {
19214 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19217 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19220 if (flags
& NDR_OUT
) {
19221 ndr_print_struct(ndr
, "out", "spoolss_EnumJobs");
19223 ndr_print_ptr(ndr
, "count", r
->out
.count
);
19225 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
19227 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19229 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
19231 if (*r
->out
.info
) {
19232 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
19234 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
19236 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
19237 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
19238 ndr_print_spoolss_JobInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
19246 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19248 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19250 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19256 static enum ndr_err_code
ndr_push_spoolss_AddPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinter
*r
)
19258 if (flags
& NDR_IN
) {
19260 if (flags
& NDR_OUT
) {
19261 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19263 return NDR_ERR_SUCCESS
;
19266 static enum ndr_err_code
ndr_pull_spoolss_AddPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinter
*r
)
19268 if (flags
& NDR_IN
) {
19270 if (flags
& NDR_OUT
) {
19271 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19273 return NDR_ERR_SUCCESS
;
19276 _PUBLIC_
void ndr_print_spoolss_AddPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinter
*r
)
19278 ndr_print_struct(ndr
, name
, "spoolss_AddPrinter");
19280 if (flags
& NDR_SET_VALUES
) {
19281 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19283 if (flags
& NDR_IN
) {
19284 ndr_print_struct(ndr
, "in", "spoolss_AddPrinter");
19288 if (flags
& NDR_OUT
) {
19289 ndr_print_struct(ndr
, "out", "spoolss_AddPrinter");
19291 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19297 static enum ndr_err_code
ndr_push_spoolss_DeletePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinter
*r
)
19299 if (flags
& NDR_IN
) {
19300 if (r
->in
.handle
== NULL
) {
19301 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19303 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19305 if (flags
& NDR_OUT
) {
19306 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19308 return NDR_ERR_SUCCESS
;
19311 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinter
*r
)
19313 TALLOC_CTX
*_mem_save_handle_0
;
19314 if (flags
& NDR_IN
) {
19315 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19316 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19318 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19319 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19320 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19321 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19323 if (flags
& NDR_OUT
) {
19324 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19326 return NDR_ERR_SUCCESS
;
19329 _PUBLIC_
void ndr_print_spoolss_DeletePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinter
*r
)
19331 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinter");
19333 if (flags
& NDR_SET_VALUES
) {
19334 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19336 if (flags
& NDR_IN
) {
19337 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinter");
19339 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19341 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19345 if (flags
& NDR_OUT
) {
19346 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinter");
19348 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19354 static enum ndr_err_code
ndr_push_spoolss_SetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinter
*r
)
19356 if (flags
& NDR_IN
) {
19357 if (r
->in
.handle
== NULL
) {
19358 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19360 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19361 if (r
->in
.info_ctr
== NULL
) {
19362 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19364 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
19365 if (r
->in
.devmode_ctr
== NULL
) {
19366 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19368 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
19369 if (r
->in
.secdesc_ctr
== NULL
) {
19370 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19372 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
19373 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr
, NDR_SCALARS
, r
->in
.command
));
19375 if (flags
& NDR_OUT
) {
19376 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19378 return NDR_ERR_SUCCESS
;
19381 static enum ndr_err_code
ndr_pull_spoolss_SetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinter
*r
)
19383 TALLOC_CTX
*_mem_save_handle_0
;
19384 TALLOC_CTX
*_mem_save_info_ctr_0
;
19385 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
19386 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
19387 if (flags
& NDR_IN
) {
19388 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19389 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19391 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19392 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19393 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19394 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19395 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19396 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
19398 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19399 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
19400 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
19401 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
19402 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19403 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
19405 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19406 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
19407 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
19408 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
19409 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19410 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
19412 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19413 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
19414 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
19415 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
19416 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr
, NDR_SCALARS
, &r
->in
.command
));
19418 if (flags
& NDR_OUT
) {
19419 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19421 return NDR_ERR_SUCCESS
;
19424 _PUBLIC_
void ndr_print_spoolss_SetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinter
*r
)
19426 ndr_print_struct(ndr
, name
, "spoolss_SetPrinter");
19428 if (flags
& NDR_SET_VALUES
) {
19429 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19431 if (flags
& NDR_IN
) {
19432 ndr_print_struct(ndr
, "in", "spoolss_SetPrinter");
19434 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19436 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19438 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
19440 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
19442 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
19444 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
19446 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
19448 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
19450 ndr_print_spoolss_PrinterControl(ndr
, "command", r
->in
.command
);
19453 if (flags
& NDR_OUT
) {
19454 ndr_print_struct(ndr
, "out", "spoolss_SetPrinter");
19456 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19462 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinter
*r
)
19464 if (flags
& NDR_IN
) {
19465 if (r
->in
.handle
== NULL
) {
19466 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19468 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19469 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19470 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19471 if (r
->in
.buffer
) {
19472 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19474 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19476 if (flags
& NDR_OUT
) {
19477 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19480 struct ndr_push
*_ndr_info
;
19481 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
19482 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
19483 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
19484 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
19487 if (r
->out
.needed
== NULL
) {
19488 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19490 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19491 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19493 return NDR_ERR_SUCCESS
;
19496 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinter
*r
)
19498 uint32_t _ptr_buffer
;
19499 uint32_t _ptr_info
;
19500 TALLOC_CTX
*_mem_save_handle_0
;
19501 TALLOC_CTX
*_mem_save_buffer_0
;
19502 TALLOC_CTX
*_mem_save_info_0
;
19503 TALLOC_CTX
*_mem_save_needed_0
;
19504 if (flags
& NDR_IN
) {
19505 ZERO_STRUCT(r
->out
);
19507 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19508 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
19510 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19511 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
19512 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
19513 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
19514 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19515 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19517 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19519 r
->in
.buffer
= NULL
;
19521 if (r
->in
.buffer
) {
19522 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19523 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19524 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19525 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19527 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19528 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19529 ZERO_STRUCTP(r
->out
.needed
);
19531 if (flags
& NDR_OUT
) {
19532 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19534 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19536 r
->out
.info
= NULL
;
19539 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19540 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19542 struct ndr_pull
*_ndr_info
;
19543 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
19544 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
19545 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
19546 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
19548 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19550 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19551 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19553 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19554 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19555 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19556 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19557 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19559 return NDR_ERR_SUCCESS
;
19562 _PUBLIC_
void ndr_print_spoolss_GetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinter
*r
)
19564 ndr_print_struct(ndr
, name
, "spoolss_GetPrinter");
19566 if (flags
& NDR_SET_VALUES
) {
19567 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19569 if (flags
& NDR_IN
) {
19570 ndr_print_struct(ndr
, "in", "spoolss_GetPrinter");
19572 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
19574 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
19576 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19577 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19579 if (r
->in
.buffer
) {
19580 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19583 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19586 if (flags
& NDR_OUT
) {
19587 ndr_print_struct(ndr
, "out", "spoolss_GetPrinter");
19589 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19592 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
19593 ndr_print_spoolss_PrinterInfo(ndr
, "info", r
->out
.info
);
19596 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19598 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19600 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19606 static enum ndr_err_code
ndr_push_spoolss_AddPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
19608 if (flags
& NDR_IN
) {
19609 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
19610 if (r
->in
.servername
) {
19611 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
19612 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19613 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
19614 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19616 if (r
->in
.info_ctr
== NULL
) {
19617 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19619 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
19621 if (flags
& NDR_OUT
) {
19622 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19624 return NDR_ERR_SUCCESS
;
19627 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriver
*r
)
19629 uint32_t _ptr_servername
;
19630 TALLOC_CTX
*_mem_save_servername_0
;
19631 TALLOC_CTX
*_mem_save_info_ctr_0
;
19632 if (flags
& NDR_IN
) {
19633 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
19634 if (_ptr_servername
) {
19635 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
19637 r
->in
.servername
= NULL
;
19639 if (r
->in
.servername
) {
19640 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19641 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
19642 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
19643 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
19644 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
19645 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
));
19647 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
19648 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
19649 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
19651 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19652 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
19654 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19655 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
19656 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
19657 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
19659 if (flags
& NDR_OUT
) {
19660 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19662 return NDR_ERR_SUCCESS
;
19665 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriver
*r
)
19667 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriver");
19669 if (flags
& NDR_SET_VALUES
) {
19670 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19672 if (flags
& NDR_IN
) {
19673 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriver");
19675 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
19677 if (r
->in
.servername
) {
19678 ndr_print_string(ndr
, "servername", r
->in
.servername
);
19681 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
19683 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
19687 if (flags
& NDR_OUT
) {
19688 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriver");
19690 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19696 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrinterDrivers
*r
)
19698 if (flags
& NDR_IN
) {
19699 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
19700 if (r
->in
.server
) {
19701 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
19702 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19703 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
19704 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19706 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
19707 if (r
->in
.environment
) {
19708 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
19709 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
19710 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
19711 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
19713 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19714 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
19715 if (r
->in
.buffer
) {
19716 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
19718 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
19720 if (flags
& NDR_OUT
) {
19721 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
19723 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
19725 if (r
->out
.needed
== NULL
) {
19726 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19728 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
19729 if (r
->out
.count
== NULL
) {
19730 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
19732 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
19733 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19735 return NDR_ERR_SUCCESS
;
19738 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrinterDrivers
*r
)
19740 uint32_t _ptr_server
;
19741 uint32_t _ptr_environment
;
19742 uint32_t _ptr_buffer
;
19743 uint32_t _ptr_info
;
19744 TALLOC_CTX
*_mem_save_server_0
;
19745 TALLOC_CTX
*_mem_save_environment_0
;
19746 TALLOC_CTX
*_mem_save_buffer_0
;
19747 TALLOC_CTX
*_mem_save_info_0
;
19748 TALLOC_CTX
*_mem_save_needed_0
;
19749 TALLOC_CTX
*_mem_save_count_0
;
19750 if (flags
& NDR_IN
) {
19751 ZERO_STRUCT(r
->out
);
19753 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
19755 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
19757 r
->in
.server
= NULL
;
19759 if (r
->in
.server
) {
19760 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19761 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
19762 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
19763 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
19764 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
19765 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
));
19767 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
19768 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
19769 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
19771 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
19772 if (_ptr_environment
) {
19773 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
19775 r
->in
.environment
= NULL
;
19777 if (r
->in
.environment
) {
19778 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19779 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
19780 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
19781 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
19782 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
19783 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
));
19785 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
19786 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
19787 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
19789 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19790 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
19792 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
19794 r
->in
.buffer
= NULL
;
19796 if (r
->in
.buffer
) {
19797 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19798 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
19799 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
19800 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
19802 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
19803 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19804 ZERO_STRUCTP(r
->out
.needed
);
19805 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19806 ZERO_STRUCTP(r
->out
.count
);
19808 if (flags
& NDR_OUT
) {
19809 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
19811 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
19813 r
->out
.info
= NULL
;
19816 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19817 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19818 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
19819 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19821 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19822 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
19824 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19825 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
19826 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
19827 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
19828 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
19829 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
19831 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19832 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
19833 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
19834 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
19835 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19837 return NDR_ERR_SUCCESS
;
19840 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrinterDrivers
*r
)
19842 uint32_t cntr_info_0
;
19843 if (flags
& NDR_IN
) {
19844 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
19845 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
19847 if (flags
& NDR_OUT
) {
19848 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19849 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19850 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19852 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19853 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19856 return NDR_ERR_SUCCESS
;
19859 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrinterDrivers
*r
)
19861 uint32_t cntr_info_0
;
19862 TALLOC_CTX
*_mem_save_info_0
;
19863 if (flags
& NDR_IN
) {
19864 ZERO_STRUCT(r
->out
);
19866 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
19867 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
19869 if (flags
& NDR_OUT
) {
19870 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
19871 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
19872 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
19873 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19874 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
19875 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
19877 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
19878 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
19880 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
19882 return NDR_ERR_SUCCESS
;
19885 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDrivers
*r
)
19887 uint32_t cntr_info_2
;
19888 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDrivers");
19890 if (flags
& NDR_SET_VALUES
) {
19891 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19893 if (flags
& NDR_IN
) {
19894 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDrivers");
19896 ndr_print_ptr(ndr
, "server", r
->in
.server
);
19898 if (r
->in
.server
) {
19899 ndr_print_string(ndr
, "server", r
->in
.server
);
19902 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
19904 if (r
->in
.environment
) {
19905 ndr_print_string(ndr
, "environment", r
->in
.environment
);
19908 ndr_print_uint32(ndr
, "level", r
->in
.level
);
19909 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
19911 if (r
->in
.buffer
) {
19912 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
19915 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
19918 if (flags
& NDR_OUT
) {
19919 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDrivers");
19921 ndr_print_ptr(ndr
, "count", r
->out
.count
);
19923 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
19925 ndr_print_ptr(ndr
, "info", r
->out
.info
);
19927 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
19929 if (*r
->out
.info
) {
19930 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
19932 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
19934 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
19935 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
19936 ndr_print_spoolss_DriverInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
19944 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
19946 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
19948 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19954 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
19956 if (flags
& NDR_IN
) {
19958 if (flags
& NDR_OUT
) {
19959 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
19961 return NDR_ERR_SUCCESS
;
19964 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver
*r
)
19966 if (flags
& NDR_IN
) {
19968 if (flags
& NDR_OUT
) {
19969 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
19971 return NDR_ERR_SUCCESS
;
19974 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver
*r
)
19976 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver");
19978 if (flags
& NDR_SET_VALUES
) {
19979 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
19981 if (flags
& NDR_IN
) {
19982 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver");
19986 if (flags
& NDR_OUT
) {
19987 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver");
19989 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
19995 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
19997 if (flags
& NDR_IN
) {
19998 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
19999 if (r
->in
.server
) {
20000 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20001 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20002 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20003 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20005 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
20006 if (r
->in
.environment
) {
20007 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20008 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20009 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20010 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20012 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20013 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20014 if (r
->in
.buffer
) {
20015 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20017 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20019 if (flags
& NDR_OUT
) {
20020 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20023 struct ndr_push
*_ndr_info
;
20024 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20025 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20026 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
20027 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20030 if (r
->out
.needed
== NULL
) {
20031 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20033 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20034 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20036 return NDR_ERR_SUCCESS
;
20039 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriverDirectory
*r
)
20041 uint32_t _ptr_server
;
20042 uint32_t _ptr_environment
;
20043 uint32_t _ptr_buffer
;
20044 uint32_t _ptr_info
;
20045 TALLOC_CTX
*_mem_save_server_0
;
20046 TALLOC_CTX
*_mem_save_environment_0
;
20047 TALLOC_CTX
*_mem_save_buffer_0
;
20048 TALLOC_CTX
*_mem_save_info_0
;
20049 TALLOC_CTX
*_mem_save_needed_0
;
20050 if (flags
& NDR_IN
) {
20051 ZERO_STRUCT(r
->out
);
20053 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20055 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20057 r
->in
.server
= NULL
;
20059 if (r
->in
.server
) {
20060 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20061 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20062 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20063 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20064 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20065 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
));
20067 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20068 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20069 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20071 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
20072 if (_ptr_environment
) {
20073 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
20075 r
->in
.environment
= NULL
;
20077 if (r
->in
.environment
) {
20078 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20079 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
20080 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
20081 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
20082 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
20083 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
));
20085 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
20086 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
20087 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
20089 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20090 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20092 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20094 r
->in
.buffer
= NULL
;
20096 if (r
->in
.buffer
) {
20097 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20098 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20099 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20100 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20102 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20103 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20104 ZERO_STRUCTP(r
->out
.needed
);
20106 if (flags
& NDR_OUT
) {
20107 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20109 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20111 r
->out
.info
= NULL
;
20114 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20115 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20117 struct ndr_pull
*_ndr_info
;
20118 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20119 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20120 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
20121 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20123 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20125 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20126 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20128 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20129 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20130 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20131 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20132 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20134 return NDR_ERR_SUCCESS
;
20137 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriverDirectory
*r
)
20139 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriverDirectory");
20141 if (flags
& NDR_SET_VALUES
) {
20142 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20144 if (flags
& NDR_IN
) {
20145 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriverDirectory");
20147 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20149 if (r
->in
.server
) {
20150 ndr_print_string(ndr
, "server", r
->in
.server
);
20153 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
20155 if (r
->in
.environment
) {
20156 ndr_print_string(ndr
, "environment", r
->in
.environment
);
20159 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20160 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20162 if (r
->in
.buffer
) {
20163 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20166 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20169 if (flags
& NDR_OUT
) {
20170 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriverDirectory");
20172 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20175 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
20176 ndr_print_spoolss_DriverDirectoryInfo(ndr
, "info", r
->out
.info
);
20179 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20181 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20183 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20189 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriver(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
20191 if (flags
& NDR_IN
) {
20192 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20193 if (r
->in
.server
) {
20194 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20195 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20196 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20197 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20199 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
20200 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20201 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
20202 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20203 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
20204 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20205 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
20206 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20208 if (flags
& NDR_OUT
) {
20209 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20211 return NDR_ERR_SUCCESS
;
20214 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriver
*r
)
20216 uint32_t _ptr_server
;
20217 TALLOC_CTX
*_mem_save_server_0
;
20218 if (flags
& NDR_IN
) {
20219 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20221 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20223 r
->in
.server
= NULL
;
20225 if (r
->in
.server
) {
20226 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20227 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20228 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20229 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20230 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20231 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
));
20233 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20234 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20235 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20237 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
20238 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
20239 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
20240 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
));
20242 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
20243 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
20244 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
20245 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
20246 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
20247 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
));
20249 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
20250 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
20252 if (flags
& NDR_OUT
) {
20253 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20255 return NDR_ERR_SUCCESS
;
20258 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriver
*r
)
20260 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriver");
20262 if (flags
& NDR_SET_VALUES
) {
20263 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20265 if (flags
& NDR_IN
) {
20266 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriver");
20268 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20270 if (r
->in
.server
) {
20271 ndr_print_string(ndr
, "server", r
->in
.server
);
20274 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
20275 ndr_print_string(ndr
, "driver", r
->in
.driver
);
20278 if (flags
& NDR_OUT
) {
20279 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriver");
20281 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20287 static enum ndr_err_code
ndr_push_spoolss_AddPrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
20289 if (flags
& NDR_IN
) {
20290 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20291 if (r
->in
.server
) {
20292 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20293 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20294 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20295 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20297 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
20298 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20299 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
20300 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20301 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
20302 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20303 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.path_name
, CH_UTF16
)));
20304 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
));
20305 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
20306 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20307 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
20308 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
));
20310 if (flags
& NDR_OUT
) {
20311 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20313 return NDR_ERR_SUCCESS
;
20316 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProcessor
*r
)
20318 uint32_t _ptr_server
;
20319 TALLOC_CTX
*_mem_save_server_0
;
20320 if (flags
& NDR_IN
) {
20321 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20323 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20325 r
->in
.server
= NULL
;
20327 if (r
->in
.server
) {
20328 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20329 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20330 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20331 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20332 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20333 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
));
20335 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20336 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20337 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20339 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
20340 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
20341 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
20342 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
));
20344 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
20345 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
20346 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.path_name
));
20347 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.path_name
));
20348 if (ndr_get_array_length(ndr
, &r
->in
.path_name
) > ndr_get_array_size(ndr
, &r
->in
.path_name
)) {
20349 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
));
20351 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.path_name
), sizeof(uint16_t)));
20352 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
));
20353 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
20354 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
20355 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
20356 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
));
20358 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
20359 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
));
20361 if (flags
& NDR_OUT
) {
20362 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20364 return NDR_ERR_SUCCESS
;
20367 _PUBLIC_
void ndr_print_spoolss_AddPrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProcessor
*r
)
20369 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProcessor");
20371 if (flags
& NDR_SET_VALUES
) {
20372 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20374 if (flags
& NDR_IN
) {
20375 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProcessor");
20377 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20379 if (r
->in
.server
) {
20380 ndr_print_string(ndr
, "server", r
->in
.server
);
20383 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
20384 ndr_print_string(ndr
, "path_name", r
->in
.path_name
);
20385 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
20388 if (flags
& NDR_OUT
) {
20389 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProcessor");
20391 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20397 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcessors
*r
)
20399 if (flags
& NDR_IN
) {
20400 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
20401 if (r
->in
.servername
) {
20402 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20403 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20404 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
20405 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20407 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
20408 if (r
->in
.environment
) {
20409 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20410 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20411 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20412 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20414 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20415 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20416 if (r
->in
.buffer
) {
20417 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20421 if (flags
& NDR_OUT
) {
20422 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20424 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
20426 if (r
->out
.needed
== NULL
) {
20427 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20429 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20430 if (r
->out
.count
== NULL
) {
20431 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20433 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
20434 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20436 return NDR_ERR_SUCCESS
;
20439 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcessors
*r
)
20441 uint32_t _ptr_servername
;
20442 uint32_t _ptr_environment
;
20443 uint32_t _ptr_buffer
;
20444 uint32_t _ptr_info
;
20445 TALLOC_CTX
*_mem_save_servername_0
;
20446 TALLOC_CTX
*_mem_save_environment_0
;
20447 TALLOC_CTX
*_mem_save_buffer_0
;
20448 TALLOC_CTX
*_mem_save_info_0
;
20449 TALLOC_CTX
*_mem_save_needed_0
;
20450 TALLOC_CTX
*_mem_save_count_0
;
20451 if (flags
& NDR_IN
) {
20452 ZERO_STRUCT(r
->out
);
20454 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
20455 if (_ptr_servername
) {
20456 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
20458 r
->in
.servername
= NULL
;
20460 if (r
->in
.servername
) {
20461 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20462 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
20463 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
20464 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
20465 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
20466 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.servername
), ndr_get_array_length(ndr
, &r
->in
.servername
));
20468 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
20469 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
20470 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
20472 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
20473 if (_ptr_environment
) {
20474 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
20476 r
->in
.environment
= NULL
;
20478 if (r
->in
.environment
) {
20479 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20480 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
20481 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
20482 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
20483 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
20484 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
));
20486 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
20487 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
20488 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
20490 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20491 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20493 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20495 r
->in
.buffer
= NULL
;
20497 if (r
->in
.buffer
) {
20498 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20499 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20500 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20501 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20503 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20504 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20505 ZERO_STRUCTP(r
->out
.needed
);
20506 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20507 ZERO_STRUCTP(r
->out
.count
);
20509 if (flags
& NDR_OUT
) {
20510 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20512 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20514 r
->out
.info
= NULL
;
20517 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20518 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20519 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
20520 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20522 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20523 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20525 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20526 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20527 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20528 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20529 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20530 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
20532 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20533 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
20534 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
20535 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
20536 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20538 return NDR_ERR_SUCCESS
;
20541 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcessors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcessors
*r
)
20543 uint32_t cntr_info_0
;
20544 if (flags
& NDR_IN
) {
20545 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20546 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
20548 if (flags
& NDR_OUT
) {
20549 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20550 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20551 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20553 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20554 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20557 return NDR_ERR_SUCCESS
;
20560 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcessors
*r
)
20562 uint32_t cntr_info_0
;
20563 TALLOC_CTX
*_mem_save_info_0
;
20564 if (flags
& NDR_IN
) {
20565 ZERO_STRUCT(r
->out
);
20567 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20568 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
20570 if (flags
& NDR_OUT
) {
20571 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
20572 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20573 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20574 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20575 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
20576 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
20578 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
20579 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
20581 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20583 return NDR_ERR_SUCCESS
;
20586 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcessors
*r
)
20588 uint32_t cntr_info_2
;
20589 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcessors");
20591 if (flags
& NDR_SET_VALUES
) {
20592 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20594 if (flags
& NDR_IN
) {
20595 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcessors");
20597 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
20599 if (r
->in
.servername
) {
20600 ndr_print_string(ndr
, "servername", r
->in
.servername
);
20603 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
20605 if (r
->in
.environment
) {
20606 ndr_print_string(ndr
, "environment", r
->in
.environment
);
20609 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20610 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20612 if (r
->in
.buffer
) {
20613 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20616 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20619 if (flags
& NDR_OUT
) {
20620 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcessors");
20622 ndr_print_ptr(ndr
, "count", r
->out
.count
);
20624 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
20626 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20628 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
20630 if (*r
->out
.info
) {
20631 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
20633 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
20635 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
20636 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
20637 ndr_print_spoolss_PrintProcessorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
20645 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20647 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20649 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20655 static enum ndr_err_code
ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
20657 if (flags
& NDR_IN
) {
20658 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
20659 if (r
->in
.server
) {
20660 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20661 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20662 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
20663 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20665 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.environment
));
20666 if (r
->in
.environment
) {
20667 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20668 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
20669 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.environment
, CH_UTF16
)));
20670 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.environment
, ndr_charset_length(r
->in
.environment
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
20672 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20673 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
20674 if (r
->in
.buffer
) {
20675 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
20677 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
20679 if (flags
& NDR_OUT
) {
20680 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
20683 struct ndr_push
*_ndr_info
;
20684 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20685 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20686 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
20687 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20690 if (r
->out
.needed
== NULL
) {
20691 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20693 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
20694 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20696 return NDR_ERR_SUCCESS
;
20699 static enum ndr_err_code
ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrintProcessorDirectory
*r
)
20701 uint32_t _ptr_server
;
20702 uint32_t _ptr_environment
;
20703 uint32_t _ptr_buffer
;
20704 uint32_t _ptr_info
;
20705 TALLOC_CTX
*_mem_save_server_0
;
20706 TALLOC_CTX
*_mem_save_environment_0
;
20707 TALLOC_CTX
*_mem_save_buffer_0
;
20708 TALLOC_CTX
*_mem_save_info_0
;
20709 TALLOC_CTX
*_mem_save_needed_0
;
20710 if (flags
& NDR_IN
) {
20711 ZERO_STRUCT(r
->out
);
20713 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
20715 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
20717 r
->in
.server
= NULL
;
20719 if (r
->in
.server
) {
20720 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20721 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
20722 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
20723 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
20724 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
20725 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
));
20727 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
20728 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
20729 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
20731 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_environment
));
20732 if (_ptr_environment
) {
20733 NDR_PULL_ALLOC(ndr
, r
->in
.environment
);
20735 r
->in
.environment
= NULL
;
20737 if (r
->in
.environment
) {
20738 _mem_save_environment_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20739 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.environment
, 0);
20740 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.environment
));
20741 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.environment
));
20742 if (ndr_get_array_length(ndr
, &r
->in
.environment
) > ndr_get_array_size(ndr
, &r
->in
.environment
)) {
20743 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
));
20745 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t)));
20746 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.environment
, ndr_get_array_length(ndr
, &r
->in
.environment
), sizeof(uint16_t), CH_UTF16
));
20747 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_environment_0
, 0);
20749 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20750 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
20752 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
20754 r
->in
.buffer
= NULL
;
20756 if (r
->in
.buffer
) {
20757 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20758 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
20759 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
20760 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
20762 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
20763 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20764 ZERO_STRUCTP(r
->out
.needed
);
20766 if (flags
& NDR_OUT
) {
20767 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
20769 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
20771 r
->out
.info
= NULL
;
20774 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20775 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
20777 struct ndr_pull
*_ndr_info
;
20778 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
20779 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
20780 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info
, NDR_SCALARS
, r
->out
.info
));
20781 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
20783 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
20785 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20786 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
20788 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20789 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
20790 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
20791 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
20792 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20794 return NDR_ERR_SUCCESS
;
20797 _PUBLIC_
void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrintProcessorDirectory
*r
)
20799 ndr_print_struct(ndr
, name
, "spoolss_GetPrintProcessorDirectory");
20801 if (flags
& NDR_SET_VALUES
) {
20802 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20804 if (flags
& NDR_IN
) {
20805 ndr_print_struct(ndr
, "in", "spoolss_GetPrintProcessorDirectory");
20807 ndr_print_ptr(ndr
, "server", r
->in
.server
);
20809 if (r
->in
.server
) {
20810 ndr_print_string(ndr
, "server", r
->in
.server
);
20813 ndr_print_ptr(ndr
, "environment", r
->in
.environment
);
20815 if (r
->in
.environment
) {
20816 ndr_print_string(ndr
, "environment", r
->in
.environment
);
20819 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20820 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
20822 if (r
->in
.buffer
) {
20823 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
20826 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
20829 if (flags
& NDR_OUT
) {
20830 ndr_print_struct(ndr
, "out", "spoolss_GetPrintProcessorDirectory");
20832 ndr_print_ptr(ndr
, "info", r
->out
.info
);
20835 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
20836 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr
, "info", r
->out
.info
);
20839 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
20841 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
20843 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20849 static enum ndr_err_code
ndr_push_spoolss_StartDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartDocPrinter
*r
)
20851 if (flags
& NDR_IN
) {
20852 if (r
->in
.handle
== NULL
) {
20853 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20855 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20856 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
20857 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
20858 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
20860 if (flags
& NDR_OUT
) {
20861 if (r
->out
.job_id
== NULL
) {
20862 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20864 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.job_id
));
20865 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20867 return NDR_ERR_SUCCESS
;
20870 static enum ndr_err_code
ndr_pull_spoolss_StartDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartDocPrinter
*r
)
20872 TALLOC_CTX
*_mem_save_handle_0
;
20873 TALLOC_CTX
*_mem_save_job_id_0
;
20874 if (flags
& NDR_IN
) {
20875 ZERO_STRUCT(r
->out
);
20877 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20878 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20880 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20881 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20882 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20883 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20884 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
20885 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
20886 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
20887 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
20888 ZERO_STRUCTP(r
->out
.job_id
);
20890 if (flags
& NDR_OUT
) {
20891 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20892 NDR_PULL_ALLOC(ndr
, r
->out
.job_id
);
20894 _mem_save_job_id_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20895 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.job_id
, LIBNDR_FLAG_REF_ALLOC
);
20896 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.job_id
));
20897 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_job_id_0
, LIBNDR_FLAG_REF_ALLOC
);
20898 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20900 return NDR_ERR_SUCCESS
;
20903 _PUBLIC_
void ndr_print_spoolss_StartDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartDocPrinter
*r
)
20905 ndr_print_struct(ndr
, name
, "spoolss_StartDocPrinter");
20907 if (flags
& NDR_SET_VALUES
) {
20908 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20910 if (flags
& NDR_IN
) {
20911 ndr_print_struct(ndr
, "in", "spoolss_StartDocPrinter");
20913 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20915 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20917 ndr_print_uint32(ndr
, "level", r
->in
.level
);
20918 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
20919 ndr_print_spoolss_DocumentInfo(ndr
, "info", &r
->in
.info
);
20922 if (flags
& NDR_OUT
) {
20923 ndr_print_struct(ndr
, "out", "spoolss_StartDocPrinter");
20925 ndr_print_ptr(ndr
, "job_id", r
->out
.job_id
);
20927 ndr_print_uint32(ndr
, "job_id", *r
->out
.job_id
);
20929 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20935 static enum ndr_err_code
ndr_push_spoolss_StartPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_StartPagePrinter
*r
)
20937 if (flags
& NDR_IN
) {
20938 if (r
->in
.handle
== NULL
) {
20939 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20941 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20943 if (flags
& NDR_OUT
) {
20944 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
20946 return NDR_ERR_SUCCESS
;
20949 static enum ndr_err_code
ndr_pull_spoolss_StartPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_StartPagePrinter
*r
)
20951 TALLOC_CTX
*_mem_save_handle_0
;
20952 if (flags
& NDR_IN
) {
20953 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
20954 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
20956 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
20957 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
20958 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20959 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
20961 if (flags
& NDR_OUT
) {
20962 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
20964 return NDR_ERR_SUCCESS
;
20967 _PUBLIC_
void ndr_print_spoolss_StartPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_StartPagePrinter
*r
)
20969 ndr_print_struct(ndr
, name
, "spoolss_StartPagePrinter");
20971 if (flags
& NDR_SET_VALUES
) {
20972 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
20974 if (flags
& NDR_IN
) {
20975 ndr_print_struct(ndr
, "in", "spoolss_StartPagePrinter");
20977 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
20979 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
20983 if (flags
& NDR_OUT
) {
20984 ndr_print_struct(ndr
, "out", "spoolss_StartPagePrinter");
20986 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
20992 static enum ndr_err_code
ndr_push_spoolss_WritePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_WritePrinter
*r
)
20994 if (flags
& NDR_IN
) {
20995 if (r
->in
.handle
== NULL
) {
20996 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
20998 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
20999 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
21000 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data
.length
));
21002 if (flags
& NDR_OUT
) {
21003 if (r
->out
.num_written
== NULL
) {
21004 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21006 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.num_written
));
21007 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21009 return NDR_ERR_SUCCESS
;
21012 static enum ndr_err_code
ndr_pull_spoolss_WritePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_WritePrinter
*r
)
21014 TALLOC_CTX
*_mem_save_handle_0
;
21015 TALLOC_CTX
*_mem_save_num_written_0
;
21016 if (flags
& NDR_IN
) {
21017 ZERO_STRUCT(r
->out
);
21019 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21020 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21022 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21023 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21024 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21025 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21026 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.data
));
21027 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._data_size
));
21028 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
21029 ZERO_STRUCTP(r
->out
.num_written
);
21031 if (flags
& NDR_OUT
) {
21032 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21033 NDR_PULL_ALLOC(ndr
, r
->out
.num_written
);
21035 _mem_save_num_written_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21036 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.num_written
, LIBNDR_FLAG_REF_ALLOC
);
21037 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.num_written
));
21038 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_num_written_0
, LIBNDR_FLAG_REF_ALLOC
);
21039 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21041 return NDR_ERR_SUCCESS
;
21044 _PUBLIC_
void ndr_print_spoolss_WritePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WritePrinter
*r
)
21046 ndr_print_struct(ndr
, name
, "spoolss_WritePrinter");
21048 if (flags
& NDR_SET_VALUES
) {
21049 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21051 if (flags
& NDR_IN
) {
21052 ndr_print_struct(ndr
, "in", "spoolss_WritePrinter");
21054 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21056 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21058 ndr_print_DATA_BLOB(ndr
, "data", r
->in
.data
);
21059 ndr_print_uint32(ndr
, "_data_size", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.data
.length
:r
->in
._data_size
);
21062 if (flags
& NDR_OUT
) {
21063 ndr_print_struct(ndr
, "out", "spoolss_WritePrinter");
21065 ndr_print_ptr(ndr
, "num_written", r
->out
.num_written
);
21067 ndr_print_uint32(ndr
, "num_written", *r
->out
.num_written
);
21069 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21075 static enum ndr_err_code
ndr_push_spoolss_EndPagePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndPagePrinter
*r
)
21077 if (flags
& NDR_IN
) {
21078 if (r
->in
.handle
== NULL
) {
21079 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21081 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21083 if (flags
& NDR_OUT
) {
21084 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21086 return NDR_ERR_SUCCESS
;
21089 static enum ndr_err_code
ndr_pull_spoolss_EndPagePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndPagePrinter
*r
)
21091 TALLOC_CTX
*_mem_save_handle_0
;
21092 if (flags
& NDR_IN
) {
21093 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21094 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21096 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21097 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21098 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21099 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21101 if (flags
& NDR_OUT
) {
21102 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21104 return NDR_ERR_SUCCESS
;
21107 _PUBLIC_
void ndr_print_spoolss_EndPagePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndPagePrinter
*r
)
21109 ndr_print_struct(ndr
, name
, "spoolss_EndPagePrinter");
21111 if (flags
& NDR_SET_VALUES
) {
21112 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21114 if (flags
& NDR_IN
) {
21115 ndr_print_struct(ndr
, "in", "spoolss_EndPagePrinter");
21117 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21119 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21123 if (flags
& NDR_OUT
) {
21124 ndr_print_struct(ndr
, "out", "spoolss_EndPagePrinter");
21126 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21132 static enum ndr_err_code
ndr_push_spoolss_AbortPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_AbortPrinter
*r
)
21134 if (flags
& NDR_IN
) {
21135 if (r
->in
.handle
== NULL
) {
21136 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21138 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21140 if (flags
& NDR_OUT
) {
21141 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21143 return NDR_ERR_SUCCESS
;
21146 static enum ndr_err_code
ndr_pull_spoolss_AbortPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_AbortPrinter
*r
)
21148 TALLOC_CTX
*_mem_save_handle_0
;
21149 if (flags
& NDR_IN
) {
21150 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21151 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21153 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21154 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21155 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21156 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21158 if (flags
& NDR_OUT
) {
21159 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21161 return NDR_ERR_SUCCESS
;
21164 _PUBLIC_
void ndr_print_spoolss_AbortPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AbortPrinter
*r
)
21166 ndr_print_struct(ndr
, name
, "spoolss_AbortPrinter");
21168 if (flags
& NDR_SET_VALUES
) {
21169 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21171 if (flags
& NDR_IN
) {
21172 ndr_print_struct(ndr
, "in", "spoolss_AbortPrinter");
21174 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21176 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21180 if (flags
& NDR_OUT
) {
21181 ndr_print_struct(ndr
, "out", "spoolss_AbortPrinter");
21183 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21189 static enum ndr_err_code
ndr_push_spoolss_ReadPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReadPrinter
*r
)
21191 if (flags
& NDR_IN
) {
21192 if (r
->in
.handle
== NULL
) {
21193 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21195 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21196 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
21198 if (flags
& NDR_OUT
) {
21199 if (r
->out
.data
== NULL
) {
21200 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21202 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_size
));
21203 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, r
->in
.data_size
));
21204 if (r
->out
._data_size
== NULL
) {
21205 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21207 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
._data_size
));
21208 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21210 return NDR_ERR_SUCCESS
;
21213 static enum ndr_err_code
ndr_pull_spoolss_ReadPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReadPrinter
*r
)
21215 TALLOC_CTX
*_mem_save_handle_0
;
21216 TALLOC_CTX
*_mem_save__data_size_0
;
21217 if (flags
& NDR_IN
) {
21218 ZERO_STRUCT(r
->out
);
21220 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21221 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21223 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21224 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21225 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21226 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21227 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_size
));
21228 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, r
->in
.data_size
);
21229 memset(r
->out
.data
, 0, (r
->in
.data_size
) * sizeof(*r
->out
.data
));
21230 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
21231 ZERO_STRUCTP(r
->out
._data_size
);
21233 if (flags
& NDR_OUT
) {
21234 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.data
));
21235 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21236 NDR_PULL_ALLOC_N(ndr
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
));
21238 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.data
, ndr_get_array_size(ndr
, &r
->out
.data
)));
21239 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21240 NDR_PULL_ALLOC(ndr
, r
->out
._data_size
);
21242 _mem_save__data_size_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21243 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
._data_size
, LIBNDR_FLAG_REF_ALLOC
);
21244 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
._data_size
));
21245 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save__data_size_0
, LIBNDR_FLAG_REF_ALLOC
);
21246 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21248 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.data
, r
->in
.data_size
));
21251 return NDR_ERR_SUCCESS
;
21254 _PUBLIC_
void ndr_print_spoolss_ReadPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReadPrinter
*r
)
21256 ndr_print_struct(ndr
, name
, "spoolss_ReadPrinter");
21258 if (flags
& NDR_SET_VALUES
) {
21259 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21261 if (flags
& NDR_IN
) {
21262 ndr_print_struct(ndr
, "in", "spoolss_ReadPrinter");
21264 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21266 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21268 ndr_print_uint32(ndr
, "data_size", r
->in
.data_size
);
21271 if (flags
& NDR_OUT
) {
21272 ndr_print_struct(ndr
, "out", "spoolss_ReadPrinter");
21274 ndr_print_ptr(ndr
, "data", r
->out
.data
);
21276 ndr_print_array_uint8(ndr
, "data", r
->out
.data
, r
->in
.data_size
);
21278 ndr_print_ptr(ndr
, "_data_size", r
->out
._data_size
);
21280 ndr_print_uint32(ndr
, "_data_size", *r
->out
._data_size
);
21282 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21288 static enum ndr_err_code
ndr_push_spoolss_EndDocPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_EndDocPrinter
*r
)
21290 if (flags
& NDR_IN
) {
21291 if (r
->in
.handle
== NULL
) {
21292 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21294 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21296 if (flags
& NDR_OUT
) {
21297 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21299 return NDR_ERR_SUCCESS
;
21302 static enum ndr_err_code
ndr_pull_spoolss_EndDocPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_EndDocPrinter
*r
)
21304 TALLOC_CTX
*_mem_save_handle_0
;
21305 if (flags
& NDR_IN
) {
21306 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21307 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21309 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21310 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21311 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21312 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21314 if (flags
& NDR_OUT
) {
21315 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21317 return NDR_ERR_SUCCESS
;
21320 _PUBLIC_
void ndr_print_spoolss_EndDocPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EndDocPrinter
*r
)
21322 ndr_print_struct(ndr
, name
, "spoolss_EndDocPrinter");
21324 if (flags
& NDR_SET_VALUES
) {
21325 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21327 if (flags
& NDR_IN
) {
21328 ndr_print_struct(ndr
, "in", "spoolss_EndDocPrinter");
21330 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21332 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21336 if (flags
& NDR_OUT
) {
21337 ndr_print_struct(ndr
, "out", "spoolss_EndDocPrinter");
21339 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21345 static enum ndr_err_code
ndr_push_spoolss_AddJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddJob
*r
)
21347 if (flags
& NDR_IN
) {
21348 if (r
->in
.handle
== NULL
) {
21349 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21351 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21352 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21353 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
21354 if (r
->in
.buffer
) {
21355 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21356 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
21358 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21360 if (flags
& NDR_OUT
) {
21361 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.buffer
));
21362 if (r
->out
.buffer
) {
21363 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21364 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
21366 if (r
->out
.needed
== NULL
) {
21367 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21369 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21370 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21372 return NDR_ERR_SUCCESS
;
21375 static enum ndr_err_code
ndr_pull_spoolss_AddJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddJob
*r
)
21377 uint32_t _ptr_buffer
;
21378 TALLOC_CTX
*_mem_save_handle_0
;
21379 TALLOC_CTX
*_mem_save_buffer_0
;
21380 TALLOC_CTX
*_mem_save_needed_0
;
21381 if (flags
& NDR_IN
) {
21382 ZERO_STRUCT(r
->out
);
21384 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21385 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21387 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21388 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21389 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21390 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21391 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21392 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21394 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
21396 r
->in
.buffer
= NULL
;
21398 if (r
->in
.buffer
) {
21399 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21400 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
21401 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
21402 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
21403 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
21404 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21406 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21407 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21408 ZERO_STRUCTP(r
->out
.needed
);
21409 if (r
->in
.buffer
) {
21410 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
21413 if (flags
& NDR_OUT
) {
21414 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
21416 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
21418 r
->out
.buffer
= NULL
;
21420 if (r
->out
.buffer
) {
21421 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21422 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, 0);
21423 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
21424 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
21425 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
21426 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
21428 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21429 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21431 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21432 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21433 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21434 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21435 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21436 if (r
->out
.buffer
) {
21437 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
21440 return NDR_ERR_SUCCESS
;
21443 _PUBLIC_
void ndr_print_spoolss_AddJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddJob
*r
)
21445 ndr_print_struct(ndr
, name
, "spoolss_AddJob");
21447 if (flags
& NDR_SET_VALUES
) {
21448 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21450 if (flags
& NDR_IN
) {
21451 ndr_print_struct(ndr
, "in", "spoolss_AddJob");
21453 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21455 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21457 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21458 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
21460 if (r
->in
.buffer
) {
21461 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
21464 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21467 if (flags
& NDR_OUT
) {
21468 ndr_print_struct(ndr
, "out", "spoolss_AddJob");
21470 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
21472 if (r
->out
.buffer
) {
21473 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
21476 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21478 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21480 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21486 static enum ndr_err_code
ndr_push_spoolss_ScheduleJob(struct ndr_push
*ndr
, int flags
, const struct spoolss_ScheduleJob
*r
)
21488 if (flags
& NDR_IN
) {
21489 if (r
->in
.handle
== NULL
) {
21490 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21492 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21493 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.jobid
));
21495 if (flags
& NDR_OUT
) {
21496 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21498 return NDR_ERR_SUCCESS
;
21501 static enum ndr_err_code
ndr_pull_spoolss_ScheduleJob(struct ndr_pull
*ndr
, int flags
, struct spoolss_ScheduleJob
*r
)
21503 TALLOC_CTX
*_mem_save_handle_0
;
21504 if (flags
& NDR_IN
) {
21505 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21506 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21508 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21509 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21510 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21511 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21512 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.jobid
));
21514 if (flags
& NDR_OUT
) {
21515 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21517 return NDR_ERR_SUCCESS
;
21520 _PUBLIC_
void ndr_print_spoolss_ScheduleJob(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ScheduleJob
*r
)
21522 ndr_print_struct(ndr
, name
, "spoolss_ScheduleJob");
21524 if (flags
& NDR_SET_VALUES
) {
21525 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21527 if (flags
& NDR_IN
) {
21528 ndr_print_struct(ndr
, "in", "spoolss_ScheduleJob");
21530 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21532 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21534 ndr_print_uint32(ndr
, "jobid", r
->in
.jobid
);
21537 if (flags
& NDR_OUT
) {
21538 ndr_print_struct(ndr
, "out", "spoolss_ScheduleJob");
21540 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21546 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_GetPrinterData
*r
)
21548 if (flags
& NDR_IN
) {
21549 if (r
->in
.handle
== NULL
) {
21550 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21552 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21553 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
21554 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21555 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
21556 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
));
21557 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
21559 if (flags
& NDR_OUT
) {
21560 if (r
->out
.type
== NULL
) {
21561 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21563 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, *r
->out
.type
));
21564 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.data
));
21565 if (r
->out
.needed
== NULL
) {
21566 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21568 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
21569 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21571 return NDR_ERR_SUCCESS
;
21574 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct _spoolss_GetPrinterData
*r
)
21576 TALLOC_CTX
*_mem_save_handle_0
;
21577 TALLOC_CTX
*_mem_save_type_0
;
21578 TALLOC_CTX
*_mem_save_needed_0
;
21579 if (flags
& NDR_IN
) {
21580 ZERO_STRUCT(r
->out
);
21582 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21583 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21585 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21586 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21587 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21588 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21589 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
21590 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
21591 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
21592 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
));
21594 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
21595 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
));
21596 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
21597 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
21598 ZERO_STRUCTP(r
->out
.type
);
21599 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21600 ZERO_STRUCTP(r
->out
.needed
);
21602 if (flags
& NDR_OUT
) {
21603 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21604 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
21606 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21607 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
21608 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, r
->out
.type
));
21609 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
21610 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->out
.data
));
21611 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21612 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
21614 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21615 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
21616 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
21617 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
21618 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21620 return NDR_ERR_SUCCESS
;
21623 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_GetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_GetPrinterData
*r
)
21625 if (flags
& NDR_IN
) {
21626 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, r
->in
.type
));
21628 if (flags
& NDR_OUT
) {
21629 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.data
, r
->in
.type
));
21630 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->out
.data
));
21632 return NDR_ERR_SUCCESS
;
21635 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_GetPrinterData(struct ndr_pull
*ndr
, int flags
, struct __spoolss_GetPrinterData
*r
)
21637 if (flags
& NDR_IN
) {
21638 ZERO_STRUCT(r
->out
);
21640 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, &r
->in
.type
));
21642 if (flags
& NDR_OUT
) {
21643 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.data
, r
->in
.type
));
21644 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->out
.data
));
21646 return NDR_ERR_SUCCESS
;
21649 _PUBLIC_
void ndr_print_spoolss_GetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterData
*r
)
21651 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterData");
21653 if (flags
& NDR_SET_VALUES
) {
21654 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21656 if (flags
& NDR_IN
) {
21657 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterData");
21659 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21661 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21663 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
21664 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
21667 if (flags
& NDR_OUT
) {
21668 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterData");
21670 ndr_print_ptr(ndr
, "type", r
->out
.type
);
21672 ndr_print_spoolss_PrinterDataType(ndr
, "type", *r
->out
.type
);
21674 ndr_print_set_switch_value(ndr
, &r
->out
.data
, *r
->out
.type
);
21675 ndr_print_spoolss_PrinterData(ndr
, "data", &r
->out
.data
);
21676 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
21678 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
21680 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21686 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct _spoolss_SetPrinterData
*r
)
21688 if (flags
& NDR_IN
) {
21689 if (r
->in
.handle
== NULL
) {
21690 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21692 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21693 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
21694 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21695 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
21696 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
));
21697 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, r
->in
.type
));
21698 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.data
));
21699 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
._offered
));
21701 if (flags
& NDR_OUT
) {
21702 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21704 return NDR_ERR_SUCCESS
;
21707 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_SetPrinterData(struct ndr_push
*ndr
, int flags
, const struct __spoolss_SetPrinterData
*r
)
21709 if (flags
& NDR_IN
) {
21710 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, r
->in
.type
));
21712 if (flags
& NDR_OUT
) {
21713 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.data
, r
->in
.type
));
21714 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->out
.data
));
21716 return NDR_ERR_SUCCESS
;
21719 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterData
*r
)
21721 TALLOC_CTX
*_mem_save_handle_0
;
21722 if (flags
& NDR_IN
) {
21723 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21724 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21726 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21727 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21728 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21729 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21730 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
21731 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
21732 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
21733 return ndr_pull_error(ndr
, NDR_ERR_ARRAY_SIZE
, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr
, &r
->in
.value_name
), ndr_get_array_length(ndr
, &r
->in
.value_name
));
21735 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
21736 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
));
21737 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr
, NDR_SCALARS
, &r
->in
.type
));
21739 struct ndr_pull
*_ndr_data
;
21740 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_data
, 4, -1));
21741 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data
, &r
->in
.data
, r
->in
.type
));
21742 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.data
));
21743 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_data
, 4, -1));
21745 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._offered
));
21747 if (flags
& NDR_OUT
) {
21748 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21750 return NDR_ERR_SUCCESS
;
21753 _PUBLIC_
void ndr_print_spoolss_SetPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterData
*r
)
21755 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterData");
21757 if (flags
& NDR_SET_VALUES
) {
21758 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21760 if (flags
& NDR_IN
) {
21761 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterData");
21763 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21765 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21767 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
21768 ndr_print_spoolss_PrinterDataType(ndr
, "type", r
->in
.type
);
21769 ndr_print_set_switch_value(ndr
, &r
->in
.data
, r
->in
.type
);
21770 ndr_print_spoolss_PrinterData(ndr
, "data", &r
->in
.data
);
21771 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
);
21774 if (flags
& NDR_OUT
) {
21775 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterData");
21777 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21783 static enum ndr_err_code
ndr_push_spoolss_WaitForPrinterChange(struct ndr_push
*ndr
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
21785 if (flags
& NDR_IN
) {
21787 if (flags
& NDR_OUT
) {
21788 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21790 return NDR_ERR_SUCCESS
;
21793 static enum ndr_err_code
ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull
*ndr
, int flags
, struct spoolss_WaitForPrinterChange
*r
)
21795 if (flags
& NDR_IN
) {
21797 if (flags
& NDR_OUT
) {
21798 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21800 return NDR_ERR_SUCCESS
;
21803 _PUBLIC_
void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_WaitForPrinterChange
*r
)
21805 ndr_print_struct(ndr
, name
, "spoolss_WaitForPrinterChange");
21807 if (flags
& NDR_SET_VALUES
) {
21808 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21810 if (flags
& NDR_IN
) {
21811 ndr_print_struct(ndr
, "in", "spoolss_WaitForPrinterChange");
21815 if (flags
& NDR_OUT
) {
21816 ndr_print_struct(ndr
, "out", "spoolss_WaitForPrinterChange");
21818 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21824 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ClosePrinter
*r
)
21826 if (flags
& NDR_IN
) {
21827 if (r
->in
.handle
== NULL
) {
21828 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21830 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21832 if (flags
& NDR_OUT
) {
21833 if (r
->out
.handle
== NULL
) {
21834 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21836 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
21837 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21839 return NDR_ERR_SUCCESS
;
21842 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ClosePrinter
*r
)
21844 TALLOC_CTX
*_mem_save_handle_0
;
21845 if (flags
& NDR_IN
) {
21846 ZERO_STRUCT(r
->out
);
21848 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21849 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21851 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21852 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21853 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21854 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21855 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
21856 *r
->out
.handle
= *r
->in
.handle
;
21858 if (flags
& NDR_OUT
) {
21859 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21860 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
21862 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21863 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21864 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
21865 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21866 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21868 return NDR_ERR_SUCCESS
;
21871 _PUBLIC_
void ndr_print_spoolss_ClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ClosePrinter
*r
)
21873 ndr_print_struct(ndr
, name
, "spoolss_ClosePrinter");
21875 if (flags
& NDR_SET_VALUES
) {
21876 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21878 if (flags
& NDR_IN
) {
21879 ndr_print_struct(ndr
, "in", "spoolss_ClosePrinter");
21881 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21883 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21887 if (flags
& NDR_OUT
) {
21888 ndr_print_struct(ndr
, "out", "spoolss_ClosePrinter");
21890 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
21892 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
21894 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21900 static enum ndr_err_code
ndr_push_spoolss_AddForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddForm
*r
)
21902 if (flags
& NDR_IN
) {
21903 if (r
->in
.handle
== NULL
) {
21904 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21906 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21907 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
21908 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
21909 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
21911 if (flags
& NDR_OUT
) {
21912 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21914 return NDR_ERR_SUCCESS
;
21917 static enum ndr_err_code
ndr_pull_spoolss_AddForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddForm
*r
)
21919 TALLOC_CTX
*_mem_save_handle_0
;
21920 if (flags
& NDR_IN
) {
21921 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21922 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21924 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21925 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21926 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21927 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21928 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
21929 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
21930 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
21932 if (flags
& NDR_OUT
) {
21933 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
21935 return NDR_ERR_SUCCESS
;
21938 _PUBLIC_
void ndr_print_spoolss_AddForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddForm
*r
)
21940 ndr_print_struct(ndr
, name
, "spoolss_AddForm");
21942 if (flags
& NDR_SET_VALUES
) {
21943 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
21945 if (flags
& NDR_IN
) {
21946 ndr_print_struct(ndr
, "in", "spoolss_AddForm");
21948 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
21950 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
21952 ndr_print_uint32(ndr
, "level", r
->in
.level
);
21953 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
21954 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
21957 if (flags
& NDR_OUT
) {
21958 ndr_print_struct(ndr
, "out", "spoolss_AddForm");
21960 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
21966 static enum ndr_err_code
ndr_push_spoolss_DeleteForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteForm
*r
)
21968 if (flags
& NDR_IN
) {
21969 if (r
->in
.handle
== NULL
) {
21970 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
21972 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21973 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
21974 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
21975 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
21976 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
));
21978 if (flags
& NDR_OUT
) {
21979 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
21981 return NDR_ERR_SUCCESS
;
21984 static enum ndr_err_code
ndr_pull_spoolss_DeleteForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteForm
*r
)
21986 TALLOC_CTX
*_mem_save_handle_0
;
21987 if (flags
& NDR_IN
) {
21988 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
21989 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
21991 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
21992 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
21993 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
21994 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
21995 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
21996 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
21997 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
21998 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
));
22000 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
22001 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
));
22003 if (flags
& NDR_OUT
) {
22004 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22006 return NDR_ERR_SUCCESS
;
22009 _PUBLIC_
void ndr_print_spoolss_DeleteForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteForm
*r
)
22011 ndr_print_struct(ndr
, name
, "spoolss_DeleteForm");
22013 if (flags
& NDR_SET_VALUES
) {
22014 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22016 if (flags
& NDR_IN
) {
22017 ndr_print_struct(ndr
, "in", "spoolss_DeleteForm");
22019 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22021 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22023 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
22026 if (flags
& NDR_OUT
) {
22027 ndr_print_struct(ndr
, "out", "spoolss_DeleteForm");
22029 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22035 static enum ndr_err_code
ndr_push_spoolss_GetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetForm
*r
)
22037 if (flags
& NDR_IN
) {
22038 if (r
->in
.handle
== NULL
) {
22039 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22041 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22042 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22043 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22044 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22045 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
));
22046 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22047 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22048 if (r
->in
.buffer
) {
22049 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22051 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22053 if (flags
& NDR_OUT
) {
22054 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22057 struct ndr_push
*_ndr_info
;
22058 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22059 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22060 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
22061 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22064 if (r
->out
.needed
== NULL
) {
22065 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22067 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22068 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22070 return NDR_ERR_SUCCESS
;
22073 static enum ndr_err_code
ndr_pull_spoolss_GetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetForm
*r
)
22075 uint32_t _ptr_buffer
;
22076 uint32_t _ptr_info
;
22077 TALLOC_CTX
*_mem_save_handle_0
;
22078 TALLOC_CTX
*_mem_save_buffer_0
;
22079 TALLOC_CTX
*_mem_save_info_0
;
22080 TALLOC_CTX
*_mem_save_needed_0
;
22081 if (flags
& NDR_IN
) {
22082 ZERO_STRUCT(r
->out
);
22084 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22085 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22087 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22088 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22089 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22090 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22091 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
22092 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
22093 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
22094 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
));
22096 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
22097 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
));
22098 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22099 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22101 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22103 r
->in
.buffer
= NULL
;
22105 if (r
->in
.buffer
) {
22106 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22107 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22108 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22109 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22111 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22112 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22113 ZERO_STRUCTP(r
->out
.needed
);
22115 if (flags
& NDR_OUT
) {
22116 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22118 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22120 r
->out
.info
= NULL
;
22123 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22124 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22126 struct ndr_pull
*_ndr_info
;
22127 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
22128 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
22129 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
22130 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
22132 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22134 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22135 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22137 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22138 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22139 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22140 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22141 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22143 return NDR_ERR_SUCCESS
;
22146 _PUBLIC_
void ndr_print_spoolss_GetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetForm
*r
)
22148 ndr_print_struct(ndr
, name
, "spoolss_GetForm");
22150 if (flags
& NDR_SET_VALUES
) {
22151 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22153 if (flags
& NDR_IN
) {
22154 ndr_print_struct(ndr
, "in", "spoolss_GetForm");
22156 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22158 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22160 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
22161 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22162 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22164 if (r
->in
.buffer
) {
22165 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22168 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22171 if (flags
& NDR_OUT
) {
22172 ndr_print_struct(ndr
, "out", "spoolss_GetForm");
22174 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22177 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
22178 ndr_print_spoolss_FormInfo(ndr
, "info", r
->out
.info
);
22181 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22183 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22185 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22191 static enum ndr_err_code
ndr_push_spoolss_SetForm(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetForm
*r
)
22193 if (flags
& NDR_IN
) {
22194 if (r
->in
.handle
== NULL
) {
22195 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22197 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22198 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22199 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22200 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.form_name
, CH_UTF16
)));
22201 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
));
22202 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22203 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22204 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22206 if (flags
& NDR_OUT
) {
22207 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22209 return NDR_ERR_SUCCESS
;
22212 static enum ndr_err_code
ndr_pull_spoolss_SetForm(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetForm
*r
)
22214 TALLOC_CTX
*_mem_save_handle_0
;
22215 if (flags
& NDR_IN
) {
22216 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22217 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22219 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22220 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22221 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22222 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22223 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.form_name
));
22224 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.form_name
));
22225 if (ndr_get_array_length(ndr
, &r
->in
.form_name
) > ndr_get_array_size(ndr
, &r
->in
.form_name
)) {
22226 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
));
22228 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.form_name
), sizeof(uint16_t)));
22229 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
));
22230 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22231 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
));
22232 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
22234 if (flags
& NDR_OUT
) {
22235 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22237 return NDR_ERR_SUCCESS
;
22240 _PUBLIC_
void ndr_print_spoolss_SetForm(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetForm
*r
)
22242 ndr_print_struct(ndr
, name
, "spoolss_SetForm");
22244 if (flags
& NDR_SET_VALUES
) {
22245 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22247 if (flags
& NDR_IN
) {
22248 ndr_print_struct(ndr
, "in", "spoolss_SetForm");
22250 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22252 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22254 ndr_print_string(ndr
, "form_name", r
->in
.form_name
);
22255 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22256 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.level
);
22257 ndr_print_spoolss_AddFormInfo(ndr
, "info", &r
->in
.info
);
22260 if (flags
& NDR_OUT
) {
22261 ndr_print_struct(ndr
, "out", "spoolss_SetForm");
22263 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22269 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumForms
*r
)
22271 if (flags
& NDR_IN
) {
22272 if (r
->in
.handle
== NULL
) {
22273 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22275 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22276 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22277 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22278 if (r
->in
.buffer
) {
22279 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22281 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22283 if (flags
& NDR_OUT
) {
22284 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22286 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
22288 if (r
->out
.needed
== NULL
) {
22289 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22291 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22292 if (r
->out
.count
== NULL
) {
22293 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22295 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
22296 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22298 return NDR_ERR_SUCCESS
;
22301 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumForms
*r
)
22303 uint32_t _ptr_buffer
;
22304 uint32_t _ptr_info
;
22305 TALLOC_CTX
*_mem_save_handle_0
;
22306 TALLOC_CTX
*_mem_save_buffer_0
;
22307 TALLOC_CTX
*_mem_save_info_0
;
22308 TALLOC_CTX
*_mem_save_needed_0
;
22309 TALLOC_CTX
*_mem_save_count_0
;
22310 if (flags
& NDR_IN
) {
22311 ZERO_STRUCT(r
->out
);
22313 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22314 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
22316 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22317 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
22318 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
22319 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
22320 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22321 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22323 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22325 r
->in
.buffer
= NULL
;
22327 if (r
->in
.buffer
) {
22328 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22329 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22330 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22331 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22333 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22334 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22335 ZERO_STRUCTP(r
->out
.needed
);
22336 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22337 ZERO_STRUCTP(r
->out
.count
);
22339 if (flags
& NDR_OUT
) {
22340 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22342 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22344 r
->out
.info
= NULL
;
22347 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22348 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22349 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
22350 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22352 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22353 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22355 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22356 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22357 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22358 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22359 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22360 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22362 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22363 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
22364 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
22365 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
22366 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22368 return NDR_ERR_SUCCESS
;
22371 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumForms(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumForms
*r
)
22373 uint32_t cntr_info_0
;
22374 if (flags
& NDR_IN
) {
22375 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22376 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
22378 if (flags
& NDR_OUT
) {
22379 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22380 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22381 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22383 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22384 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22387 return NDR_ERR_SUCCESS
;
22390 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumForms(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumForms
*r
)
22392 uint32_t cntr_info_0
;
22393 TALLOC_CTX
*_mem_save_info_0
;
22394 if (flags
& NDR_IN
) {
22395 ZERO_STRUCT(r
->out
);
22397 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22398 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
22400 if (flags
& NDR_OUT
) {
22401 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
22402 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22403 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22404 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22405 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22406 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22408 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22409 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22411 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22413 return NDR_ERR_SUCCESS
;
22416 _PUBLIC_
void ndr_print_spoolss_EnumForms(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumForms
*r
)
22418 uint32_t cntr_info_2
;
22419 ndr_print_struct(ndr
, name
, "spoolss_EnumForms");
22421 if (flags
& NDR_SET_VALUES
) {
22422 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22424 if (flags
& NDR_IN
) {
22425 ndr_print_struct(ndr
, "in", "spoolss_EnumForms");
22427 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
22429 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
22431 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22432 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22434 if (r
->in
.buffer
) {
22435 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22438 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22441 if (flags
& NDR_OUT
) {
22442 ndr_print_struct(ndr
, "out", "spoolss_EnumForms");
22444 ndr_print_ptr(ndr
, "count", r
->out
.count
);
22446 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
22448 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22450 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
22452 if (*r
->out
.info
) {
22453 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
22455 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
22457 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
22458 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
22459 ndr_print_spoolss_FormInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
22467 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22469 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22471 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22477 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPorts
*r
)
22479 if (flags
& NDR_IN
) {
22480 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
22481 if (r
->in
.servername
) {
22482 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22483 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22484 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22485 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22487 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22488 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22489 if (r
->in
.buffer
) {
22490 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22492 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22494 if (flags
& NDR_OUT
) {
22495 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22497 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
22499 if (r
->out
.needed
== NULL
) {
22500 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22502 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22503 if (r
->out
.count
== NULL
) {
22504 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22506 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
22507 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22509 return NDR_ERR_SUCCESS
;
22512 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPorts
*r
)
22514 uint32_t _ptr_servername
;
22515 uint32_t _ptr_buffer
;
22516 uint32_t _ptr_info
;
22517 TALLOC_CTX
*_mem_save_servername_0
;
22518 TALLOC_CTX
*_mem_save_buffer_0
;
22519 TALLOC_CTX
*_mem_save_info_0
;
22520 TALLOC_CTX
*_mem_save_needed_0
;
22521 TALLOC_CTX
*_mem_save_count_0
;
22522 if (flags
& NDR_IN
) {
22523 ZERO_STRUCT(r
->out
);
22525 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
22526 if (_ptr_servername
) {
22527 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
22529 r
->in
.servername
= NULL
;
22531 if (r
->in
.servername
) {
22532 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22533 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
22534 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
22535 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
22536 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
22537 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
));
22539 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
22540 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
22541 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
22543 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22544 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22546 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22548 r
->in
.buffer
= NULL
;
22550 if (r
->in
.buffer
) {
22551 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22552 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22553 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22554 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22556 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22557 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22558 ZERO_STRUCTP(r
->out
.needed
);
22559 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22560 ZERO_STRUCTP(r
->out
.count
);
22562 if (flags
& NDR_OUT
) {
22563 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22565 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22567 r
->out
.info
= NULL
;
22570 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22571 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22572 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
22573 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22575 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22576 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22578 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22579 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22580 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22581 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22582 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22583 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22585 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22586 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
22587 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
22588 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
22589 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22591 return NDR_ERR_SUCCESS
;
22594 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPorts(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPorts
*r
)
22596 uint32_t cntr_info_0
;
22597 if (flags
& NDR_IN
) {
22598 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22599 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
22601 if (flags
& NDR_OUT
) {
22602 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22603 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22604 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22606 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22607 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22610 return NDR_ERR_SUCCESS
;
22613 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPorts(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPorts
*r
)
22615 uint32_t cntr_info_0
;
22616 TALLOC_CTX
*_mem_save_info_0
;
22617 if (flags
& NDR_IN
) {
22618 ZERO_STRUCT(r
->out
);
22620 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22621 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
22623 if (flags
& NDR_OUT
) {
22624 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
22625 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22626 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22627 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22628 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22629 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22631 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22632 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22634 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22636 return NDR_ERR_SUCCESS
;
22639 _PUBLIC_
void ndr_print_spoolss_EnumPorts(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPorts
*r
)
22641 uint32_t cntr_info_2
;
22642 ndr_print_struct(ndr
, name
, "spoolss_EnumPorts");
22644 if (flags
& NDR_SET_VALUES
) {
22645 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22647 if (flags
& NDR_IN
) {
22648 ndr_print_struct(ndr
, "in", "spoolss_EnumPorts");
22650 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
22652 if (r
->in
.servername
) {
22653 ndr_print_string(ndr
, "servername", r
->in
.servername
);
22656 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22657 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22659 if (r
->in
.buffer
) {
22660 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22663 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22666 if (flags
& NDR_OUT
) {
22667 ndr_print_struct(ndr
, "out", "spoolss_EnumPorts");
22669 ndr_print_ptr(ndr
, "count", r
->out
.count
);
22671 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
22673 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22675 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
22677 if (*r
->out
.info
) {
22678 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
22680 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
22682 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
22683 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
22684 ndr_print_spoolss_PortInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
22692 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22694 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22696 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22702 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumMonitors
*r
)
22704 if (flags
& NDR_IN
) {
22705 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
22706 if (r
->in
.servername
) {
22707 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22708 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22709 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
22710 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
22712 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22713 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
22714 if (r
->in
.buffer
) {
22715 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
22717 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
22719 if (flags
& NDR_OUT
) {
22720 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
22722 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
22724 if (r
->out
.needed
== NULL
) {
22725 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22727 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
22728 if (r
->out
.count
== NULL
) {
22729 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
22731 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
22732 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22734 return NDR_ERR_SUCCESS
;
22737 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumMonitors
*r
)
22739 uint32_t _ptr_servername
;
22740 uint32_t _ptr_buffer
;
22741 uint32_t _ptr_info
;
22742 TALLOC_CTX
*_mem_save_servername_0
;
22743 TALLOC_CTX
*_mem_save_buffer_0
;
22744 TALLOC_CTX
*_mem_save_info_0
;
22745 TALLOC_CTX
*_mem_save_needed_0
;
22746 TALLOC_CTX
*_mem_save_count_0
;
22747 if (flags
& NDR_IN
) {
22748 ZERO_STRUCT(r
->out
);
22750 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
22751 if (_ptr_servername
) {
22752 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
22754 r
->in
.servername
= NULL
;
22756 if (r
->in
.servername
) {
22757 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22758 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
22759 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
22760 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
22761 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
22762 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
));
22764 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
22765 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
22766 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
22768 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22769 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
22771 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
22773 r
->in
.buffer
= NULL
;
22775 if (r
->in
.buffer
) {
22776 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22777 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
22778 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
22779 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
22781 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
22782 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22783 ZERO_STRUCTP(r
->out
.needed
);
22784 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22785 ZERO_STRUCTP(r
->out
.count
);
22787 if (flags
& NDR_OUT
) {
22788 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
22790 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
22792 r
->out
.info
= NULL
;
22795 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22796 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22797 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
22798 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22800 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22801 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
22803 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22804 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
22805 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
22806 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
22807 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
22808 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
22810 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22811 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
22812 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
22813 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
22814 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22816 return NDR_ERR_SUCCESS
;
22819 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumMonitors(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumMonitors
*r
)
22821 uint32_t cntr_info_0
;
22822 if (flags
& NDR_IN
) {
22823 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
22824 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
22826 if (flags
& NDR_OUT
) {
22827 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22828 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22829 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22831 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22832 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22835 return NDR_ERR_SUCCESS
;
22838 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumMonitors(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumMonitors
*r
)
22840 uint32_t cntr_info_0
;
22841 TALLOC_CTX
*_mem_save_info_0
;
22842 if (flags
& NDR_IN
) {
22843 ZERO_STRUCT(r
->out
);
22845 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
22846 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
22848 if (flags
& NDR_OUT
) {
22849 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
22850 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22851 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
22852 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22853 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
22854 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
22856 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
22857 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
22859 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
22861 return NDR_ERR_SUCCESS
;
22864 _PUBLIC_
void ndr_print_spoolss_EnumMonitors(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumMonitors
*r
)
22866 uint32_t cntr_info_2
;
22867 ndr_print_struct(ndr
, name
, "spoolss_EnumMonitors");
22869 if (flags
& NDR_SET_VALUES
) {
22870 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22872 if (flags
& NDR_IN
) {
22873 ndr_print_struct(ndr
, "in", "spoolss_EnumMonitors");
22875 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
22877 if (r
->in
.servername
) {
22878 ndr_print_string(ndr
, "servername", r
->in
.servername
);
22881 ndr_print_uint32(ndr
, "level", r
->in
.level
);
22882 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
22884 if (r
->in
.buffer
) {
22885 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
22888 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
22891 if (flags
& NDR_OUT
) {
22892 ndr_print_struct(ndr
, "out", "spoolss_EnumMonitors");
22894 ndr_print_ptr(ndr
, "count", r
->out
.count
);
22896 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
22898 ndr_print_ptr(ndr
, "info", r
->out
.info
);
22900 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
22902 if (*r
->out
.info
) {
22903 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
22905 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
22907 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
22908 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
22909 ndr_print_spoolss_MonitorInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
22917 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
22919 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
22921 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
22927 static enum ndr_err_code
ndr_push_spoolss_AddPort(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPort
*r
)
22929 if (flags
& NDR_IN
) {
22930 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server_name
));
22931 if (r
->in
.server_name
) {
22932 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
22933 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
22935 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
));
22937 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.unknown
));
22938 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
22939 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
22940 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.monitor_name
, CH_UTF16
)));
22941 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
));
22943 if (flags
& NDR_OUT
) {
22944 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
22946 return NDR_ERR_SUCCESS
;
22949 static enum ndr_err_code
ndr_pull_spoolss_AddPort(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPort
*r
)
22951 uint32_t _ptr_server_name
;
22952 TALLOC_CTX
*_mem_save_server_name_0
;
22953 if (flags
& NDR_IN
) {
22954 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server_name
));
22955 if (_ptr_server_name
) {
22956 NDR_PULL_ALLOC(ndr
, r
->in
.server_name
);
22958 r
->in
.server_name
= NULL
;
22960 if (r
->in
.server_name
) {
22961 _mem_save_server_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
22962 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server_name
, 0);
22963 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
22964 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
22965 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
22966 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
));
22968 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
22969 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
));
22970 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_name_0
, 0);
22972 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.unknown
));
22973 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.monitor_name
));
22974 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.monitor_name
));
22975 if (ndr_get_array_length(ndr
, &r
->in
.monitor_name
) > ndr_get_array_size(ndr
, &r
->in
.monitor_name
)) {
22976 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
));
22978 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.monitor_name
), sizeof(uint16_t)));
22979 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
));
22981 if (flags
& NDR_OUT
) {
22982 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
22984 return NDR_ERR_SUCCESS
;
22987 _PUBLIC_
void ndr_print_spoolss_AddPort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPort
*r
)
22989 ndr_print_struct(ndr
, name
, "spoolss_AddPort");
22991 if (flags
& NDR_SET_VALUES
) {
22992 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
22994 if (flags
& NDR_IN
) {
22995 ndr_print_struct(ndr
, "in", "spoolss_AddPort");
22997 ndr_print_ptr(ndr
, "server_name", r
->in
.server_name
);
22999 if (r
->in
.server_name
) {
23000 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
23003 ndr_print_uint32(ndr
, "unknown", r
->in
.unknown
);
23004 ndr_print_string(ndr
, "monitor_name", r
->in
.monitor_name
);
23007 if (flags
& NDR_OUT
) {
23008 ndr_print_struct(ndr
, "out", "spoolss_AddPort");
23010 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23016 static enum ndr_err_code
ndr_push_spoolss_ConfigurePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_ConfigurePort
*r
)
23018 if (flags
& NDR_IN
) {
23020 if (flags
& NDR_OUT
) {
23021 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23023 return NDR_ERR_SUCCESS
;
23026 static enum ndr_err_code
ndr_pull_spoolss_ConfigurePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_ConfigurePort
*r
)
23028 if (flags
& NDR_IN
) {
23030 if (flags
& NDR_OUT
) {
23031 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23033 return NDR_ERR_SUCCESS
;
23036 _PUBLIC_
void ndr_print_spoolss_ConfigurePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ConfigurePort
*r
)
23038 ndr_print_struct(ndr
, name
, "spoolss_ConfigurePort");
23040 if (flags
& NDR_SET_VALUES
) {
23041 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23043 if (flags
& NDR_IN
) {
23044 ndr_print_struct(ndr
, "in", "spoolss_ConfigurePort");
23048 if (flags
& NDR_OUT
) {
23049 ndr_print_struct(ndr
, "out", "spoolss_ConfigurePort");
23051 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23057 static enum ndr_err_code
ndr_push_spoolss_DeletePort(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePort
*r
)
23059 if (flags
& NDR_IN
) {
23061 if (flags
& NDR_OUT
) {
23062 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23064 return NDR_ERR_SUCCESS
;
23067 static enum ndr_err_code
ndr_pull_spoolss_DeletePort(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePort
*r
)
23069 if (flags
& NDR_IN
) {
23071 if (flags
& NDR_OUT
) {
23072 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23074 return NDR_ERR_SUCCESS
;
23077 _PUBLIC_
void ndr_print_spoolss_DeletePort(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePort
*r
)
23079 ndr_print_struct(ndr
, name
, "spoolss_DeletePort");
23081 if (flags
& NDR_SET_VALUES
) {
23082 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23084 if (flags
& NDR_IN
) {
23085 ndr_print_struct(ndr
, "in", "spoolss_DeletePort");
23089 if (flags
& NDR_OUT
) {
23090 ndr_print_struct(ndr
, "out", "spoolss_DeletePort");
23092 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23098 static enum ndr_err_code
ndr_push_spoolss_CreatePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
23100 if (flags
& NDR_IN
) {
23102 if (flags
& NDR_OUT
) {
23103 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23105 return NDR_ERR_SUCCESS
;
23108 static enum ndr_err_code
ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_CreatePrinterIC
*r
)
23110 if (flags
& NDR_IN
) {
23112 if (flags
& NDR_OUT
) {
23113 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23115 return NDR_ERR_SUCCESS
;
23118 _PUBLIC_
void ndr_print_spoolss_CreatePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_CreatePrinterIC
*r
)
23120 ndr_print_struct(ndr
, name
, "spoolss_CreatePrinterIC");
23122 if (flags
& NDR_SET_VALUES
) {
23123 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23125 if (flags
& NDR_IN
) {
23126 ndr_print_struct(ndr
, "in", "spoolss_CreatePrinterIC");
23130 if (flags
& NDR_OUT
) {
23131 ndr_print_struct(ndr
, "out", "spoolss_CreatePrinterIC");
23133 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23139 static enum ndr_err_code
ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
23141 if (flags
& NDR_IN
) {
23143 if (flags
& NDR_OUT
) {
23144 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23146 return NDR_ERR_SUCCESS
;
23149 static enum ndr_err_code
ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
23151 if (flags
& NDR_IN
) {
23153 if (flags
& NDR_OUT
) {
23154 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23156 return NDR_ERR_SUCCESS
;
23159 _PUBLIC_
void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PlayGDIScriptOnPrinterIC
*r
)
23161 ndr_print_struct(ndr
, name
, "spoolss_PlayGDIScriptOnPrinterIC");
23163 if (flags
& NDR_SET_VALUES
) {
23164 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23166 if (flags
& NDR_IN
) {
23167 ndr_print_struct(ndr
, "in", "spoolss_PlayGDIScriptOnPrinterIC");
23171 if (flags
& NDR_OUT
) {
23172 ndr_print_struct(ndr
, "out", "spoolss_PlayGDIScriptOnPrinterIC");
23174 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23180 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterIC(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
23182 if (flags
& NDR_IN
) {
23184 if (flags
& NDR_OUT
) {
23185 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23187 return NDR_ERR_SUCCESS
;
23190 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterIC
*r
)
23192 if (flags
& NDR_IN
) {
23194 if (flags
& NDR_OUT
) {
23195 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23197 return NDR_ERR_SUCCESS
;
23200 _PUBLIC_
void ndr_print_spoolss_DeletePrinterIC(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterIC
*r
)
23202 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterIC");
23204 if (flags
& NDR_SET_VALUES
) {
23205 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23207 if (flags
& NDR_IN
) {
23208 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterIC");
23212 if (flags
& NDR_OUT
) {
23213 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterIC");
23215 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23221 static enum ndr_err_code
ndr_push_spoolss_AddPrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
23223 if (flags
& NDR_IN
) {
23225 if (flags
& NDR_OUT
) {
23226 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23228 return NDR_ERR_SUCCESS
;
23231 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterConnection
*r
)
23233 if (flags
& NDR_IN
) {
23235 if (flags
& NDR_OUT
) {
23236 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23238 return NDR_ERR_SUCCESS
;
23241 _PUBLIC_
void ndr_print_spoolss_AddPrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterConnection
*r
)
23243 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterConnection");
23245 if (flags
& NDR_SET_VALUES
) {
23246 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23248 if (flags
& NDR_IN
) {
23249 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterConnection");
23253 if (flags
& NDR_OUT
) {
23254 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterConnection");
23256 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23262 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterConnection(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
23264 if (flags
& NDR_IN
) {
23266 if (flags
& NDR_OUT
) {
23267 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23269 return NDR_ERR_SUCCESS
;
23272 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterConnection
*r
)
23274 if (flags
& NDR_IN
) {
23276 if (flags
& NDR_OUT
) {
23277 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23279 return NDR_ERR_SUCCESS
;
23282 _PUBLIC_
void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterConnection
*r
)
23284 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterConnection");
23286 if (flags
& NDR_SET_VALUES
) {
23287 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23289 if (flags
& NDR_IN
) {
23290 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterConnection");
23294 if (flags
& NDR_OUT
) {
23295 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterConnection");
23297 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23303 static enum ndr_err_code
ndr_push_spoolss_PrinterMessageBox(struct ndr_push
*ndr
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
23305 if (flags
& NDR_IN
) {
23307 if (flags
& NDR_OUT
) {
23308 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23310 return NDR_ERR_SUCCESS
;
23313 static enum ndr_err_code
ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull
*ndr
, int flags
, struct spoolss_PrinterMessageBox
*r
)
23315 if (flags
& NDR_IN
) {
23317 if (flags
& NDR_OUT
) {
23318 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23320 return NDR_ERR_SUCCESS
;
23323 _PUBLIC_
void ndr_print_spoolss_PrinterMessageBox(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_PrinterMessageBox
*r
)
23325 ndr_print_struct(ndr
, name
, "spoolss_PrinterMessageBox");
23327 if (flags
& NDR_SET_VALUES
) {
23328 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23330 if (flags
& NDR_IN
) {
23331 ndr_print_struct(ndr
, "in", "spoolss_PrinterMessageBox");
23335 if (flags
& NDR_OUT
) {
23336 ndr_print_struct(ndr
, "out", "spoolss_PrinterMessageBox");
23338 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23344 static enum ndr_err_code
ndr_push_spoolss_AddMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddMonitor
*r
)
23346 if (flags
& NDR_IN
) {
23348 if (flags
& NDR_OUT
) {
23349 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23351 return NDR_ERR_SUCCESS
;
23354 static enum ndr_err_code
ndr_pull_spoolss_AddMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddMonitor
*r
)
23356 if (flags
& NDR_IN
) {
23358 if (flags
& NDR_OUT
) {
23359 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23361 return NDR_ERR_SUCCESS
;
23364 _PUBLIC_
void ndr_print_spoolss_AddMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddMonitor
*r
)
23366 ndr_print_struct(ndr
, name
, "spoolss_AddMonitor");
23368 if (flags
& NDR_SET_VALUES
) {
23369 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23371 if (flags
& NDR_IN
) {
23372 ndr_print_struct(ndr
, "in", "spoolss_AddMonitor");
23376 if (flags
& NDR_OUT
) {
23377 ndr_print_struct(ndr
, "out", "spoolss_AddMonitor");
23379 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23385 static enum ndr_err_code
ndr_push_spoolss_DeleteMonitor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeleteMonitor
*r
)
23387 if (flags
& NDR_IN
) {
23389 if (flags
& NDR_OUT
) {
23390 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23392 return NDR_ERR_SUCCESS
;
23395 static enum ndr_err_code
ndr_pull_spoolss_DeleteMonitor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeleteMonitor
*r
)
23397 if (flags
& NDR_IN
) {
23399 if (flags
& NDR_OUT
) {
23400 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23402 return NDR_ERR_SUCCESS
;
23405 _PUBLIC_
void ndr_print_spoolss_DeleteMonitor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeleteMonitor
*r
)
23407 ndr_print_struct(ndr
, name
, "spoolss_DeleteMonitor");
23409 if (flags
& NDR_SET_VALUES
) {
23410 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23412 if (flags
& NDR_IN
) {
23413 ndr_print_struct(ndr
, "in", "spoolss_DeleteMonitor");
23417 if (flags
& NDR_OUT
) {
23418 ndr_print_struct(ndr
, "out", "spoolss_DeleteMonitor");
23420 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23426 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProcessor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
23428 if (flags
& NDR_IN
) {
23430 if (flags
& NDR_OUT
) {
23431 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23433 return NDR_ERR_SUCCESS
;
23436 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProcessor
*r
)
23438 if (flags
& NDR_IN
) {
23440 if (flags
& NDR_OUT
) {
23441 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23443 return NDR_ERR_SUCCESS
;
23446 _PUBLIC_
void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProcessor
*r
)
23448 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProcessor");
23450 if (flags
& NDR_SET_VALUES
) {
23451 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23453 if (flags
& NDR_IN
) {
23454 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProcessor");
23458 if (flags
& NDR_OUT
) {
23459 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProcessor");
23461 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23467 static enum ndr_err_code
ndr_push_spoolss_AddPrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
23469 if (flags
& NDR_IN
) {
23471 if (flags
& NDR_OUT
) {
23472 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23474 return NDR_ERR_SUCCESS
;
23477 static enum ndr_err_code
ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrintProvidor
*r
)
23479 if (flags
& NDR_IN
) {
23481 if (flags
& NDR_OUT
) {
23482 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23484 return NDR_ERR_SUCCESS
;
23487 _PUBLIC_
void ndr_print_spoolss_AddPrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrintProvidor
*r
)
23489 ndr_print_struct(ndr
, name
, "spoolss_AddPrintProvidor");
23491 if (flags
& NDR_SET_VALUES
) {
23492 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23494 if (flags
& NDR_IN
) {
23495 ndr_print_struct(ndr
, "in", "spoolss_AddPrintProvidor");
23499 if (flags
& NDR_OUT
) {
23500 ndr_print_struct(ndr
, "out", "spoolss_AddPrintProvidor");
23502 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23508 static enum ndr_err_code
ndr_push_spoolss_DeletePrintProvidor(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
23510 if (flags
& NDR_IN
) {
23512 if (flags
& NDR_OUT
) {
23513 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23515 return NDR_ERR_SUCCESS
;
23518 static enum ndr_err_code
ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrintProvidor
*r
)
23520 if (flags
& NDR_IN
) {
23522 if (flags
& NDR_OUT
) {
23523 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23525 return NDR_ERR_SUCCESS
;
23528 _PUBLIC_
void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrintProvidor
*r
)
23530 ndr_print_struct(ndr
, name
, "spoolss_DeletePrintProvidor");
23532 if (flags
& NDR_SET_VALUES
) {
23533 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23535 if (flags
& NDR_IN
) {
23536 ndr_print_struct(ndr
, "in", "spoolss_DeletePrintProvidor");
23540 if (flags
& NDR_OUT
) {
23541 ndr_print_struct(ndr
, "out", "spoolss_DeletePrintProvidor");
23543 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23549 _PUBLIC_
enum ndr_err_code
ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct _spoolss_EnumPrintProcDataTypes
*r
)
23551 if (flags
& NDR_IN
) {
23552 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
23553 if (r
->in
.servername
) {
23554 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
23555 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23556 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
23557 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23559 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.print_processor_name
));
23560 if (r
->in
.print_processor_name
) {
23561 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
23562 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23563 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.print_processor_name
, CH_UTF16
)));
23564 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
));
23566 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23567 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23568 if (r
->in
.buffer
) {
23569 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23571 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23573 if (flags
& NDR_OUT
) {
23574 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23576 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.info
));
23578 if (r
->out
.needed
== NULL
) {
23579 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23581 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23582 if (r
->out
.count
== NULL
) {
23583 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23585 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
23586 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23588 return NDR_ERR_SUCCESS
;
23591 _PUBLIC_
enum ndr_err_code
ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct _spoolss_EnumPrintProcDataTypes
*r
)
23593 uint32_t _ptr_servername
;
23594 uint32_t _ptr_print_processor_name
;
23595 uint32_t _ptr_buffer
;
23596 uint32_t _ptr_info
;
23597 TALLOC_CTX
*_mem_save_servername_0
;
23598 TALLOC_CTX
*_mem_save_print_processor_name_0
;
23599 TALLOC_CTX
*_mem_save_buffer_0
;
23600 TALLOC_CTX
*_mem_save_info_0
;
23601 TALLOC_CTX
*_mem_save_needed_0
;
23602 TALLOC_CTX
*_mem_save_count_0
;
23603 if (flags
& NDR_IN
) {
23604 ZERO_STRUCT(r
->out
);
23606 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
23607 if (_ptr_servername
) {
23608 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
23610 r
->in
.servername
= NULL
;
23612 if (r
->in
.servername
) {
23613 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23614 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
23615 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
23616 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
23617 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
23618 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
));
23620 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
23621 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
23622 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
23624 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_print_processor_name
));
23625 if (_ptr_print_processor_name
) {
23626 NDR_PULL_ALLOC(ndr
, r
->in
.print_processor_name
);
23628 r
->in
.print_processor_name
= NULL
;
23630 if (r
->in
.print_processor_name
) {
23631 _mem_save_print_processor_name_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23632 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.print_processor_name
, 0);
23633 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.print_processor_name
));
23634 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.print_processor_name
));
23635 if (ndr_get_array_length(ndr
, &r
->in
.print_processor_name
) > ndr_get_array_size(ndr
, &r
->in
.print_processor_name
)) {
23636 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
));
23638 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.print_processor_name
), sizeof(uint16_t)));
23639 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
));
23640 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_print_processor_name_0
, 0);
23642 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23643 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
23645 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
23647 r
->in
.buffer
= NULL
;
23649 if (r
->in
.buffer
) {
23650 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23651 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
23652 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
23653 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
23655 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
23656 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23657 ZERO_STRUCTP(r
->out
.needed
);
23658 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23659 ZERO_STRUCTP(r
->out
.count
);
23661 if (flags
& NDR_OUT
) {
23662 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
23664 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
23666 r
->out
.info
= NULL
;
23669 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23670 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23671 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.info
));
23672 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23674 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23675 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
23677 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23678 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
23679 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
23680 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
23681 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23682 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
23684 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23685 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
23686 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
23687 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
23688 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23690 return NDR_ERR_SUCCESS
;
23693 _PUBLIC_
enum ndr_err_code
ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push
*ndr
, int flags
, const struct __spoolss_EnumPrintProcDataTypes
*r
)
23695 uint32_t cntr_info_0
;
23696 if (flags
& NDR_IN
) {
23697 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23698 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.count
));
23700 if (flags
& NDR_OUT
) {
23701 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23702 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23703 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23705 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23706 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23709 return NDR_ERR_SUCCESS
;
23712 _PUBLIC_
enum ndr_err_code
ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull
*ndr
, int flags
, struct __spoolss_EnumPrintProcDataTypes
*r
)
23714 uint32_t cntr_info_0
;
23715 TALLOC_CTX
*_mem_save_info_0
;
23716 if (flags
& NDR_IN
) {
23717 ZERO_STRUCT(r
->out
);
23719 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
23720 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.count
));
23722 if (flags
& NDR_OUT
) {
23723 NDR_PULL_ALLOC_N(ndr
, r
->out
.info
, r
->in
.count
);
23724 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23725 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
23726 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23727 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->out
.info
[cntr_info_0
], r
->in
.level
));
23728 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_SCALARS
, &r
->out
.info
[cntr_info_0
]));
23730 for (cntr_info_0
= 0; cntr_info_0
< r
->in
.count
; cntr_info_0
++) {
23731 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr
, NDR_BUFFERS
, &r
->out
.info
[cntr_info_0
]));
23733 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
23735 return NDR_ERR_SUCCESS
;
23738 _PUBLIC_
void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrintProcDataTypes
*r
)
23740 uint32_t cntr_info_2
;
23741 ndr_print_struct(ndr
, name
, "spoolss_EnumPrintProcDataTypes");
23743 if (flags
& NDR_SET_VALUES
) {
23744 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23746 if (flags
& NDR_IN
) {
23747 ndr_print_struct(ndr
, "in", "spoolss_EnumPrintProcDataTypes");
23749 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
23751 if (r
->in
.servername
) {
23752 ndr_print_string(ndr
, "servername", r
->in
.servername
);
23755 ndr_print_ptr(ndr
, "print_processor_name", r
->in
.print_processor_name
);
23757 if (r
->in
.print_processor_name
) {
23758 ndr_print_string(ndr
, "print_processor_name", r
->in
.print_processor_name
);
23761 ndr_print_uint32(ndr
, "level", r
->in
.level
);
23762 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
23764 if (r
->in
.buffer
) {
23765 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
23768 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
23771 if (flags
& NDR_OUT
) {
23772 ndr_print_struct(ndr
, "out", "spoolss_EnumPrintProcDataTypes");
23774 ndr_print_ptr(ndr
, "count", r
->out
.count
);
23776 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
23778 ndr_print_ptr(ndr
, "info", r
->out
.info
);
23780 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
23782 if (*r
->out
.info
) {
23783 ndr
->print(ndr
, "%s: ARRAY(%d)", "info", (int)*r
->out
.count
);
23785 for (cntr_info_2
=0;cntr_info_2
<*r
->out
.count
;cntr_info_2
++) {
23787 if (asprintf(&idx_2
, "[%d]", cntr_info_2
) != -1) {
23788 ndr_print_set_switch_value(ndr
, &(*r
->out
.info
)[cntr_info_2
], r
->in
.level
);
23789 ndr_print_spoolss_PrintProcDataTypesInfo(ndr
, "info", &(*r
->out
.info
)[cntr_info_2
]);
23797 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
23799 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
23801 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23807 static enum ndr_err_code
ndr_push_spoolss_ResetPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinter
*r
)
23809 if (flags
& NDR_IN
) {
23810 if (r
->in
.handle
== NULL
) {
23811 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23813 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23814 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.data_type
));
23815 if (r
->in
.data_type
) {
23816 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
23817 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23818 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.data_type
, CH_UTF16
)));
23819 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
));
23821 if (r
->in
.devmode_ctr
== NULL
) {
23822 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23824 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
23826 if (flags
& NDR_OUT
) {
23827 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23829 return NDR_ERR_SUCCESS
;
23832 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinter
*r
)
23834 uint32_t _ptr_data_type
;
23835 TALLOC_CTX
*_mem_save_handle_0
;
23836 TALLOC_CTX
*_mem_save_data_type_0
;
23837 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
23838 if (flags
& NDR_IN
) {
23839 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23840 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23842 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23843 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23844 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23845 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23846 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_data_type
));
23847 if (_ptr_data_type
) {
23848 NDR_PULL_ALLOC(ndr
, r
->in
.data_type
);
23850 r
->in
.data_type
= NULL
;
23852 if (r
->in
.data_type
) {
23853 _mem_save_data_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23854 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.data_type
, 0);
23855 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.data_type
));
23856 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.data_type
));
23857 if (ndr_get_array_length(ndr
, &r
->in
.data_type
) > ndr_get_array_size(ndr
, &r
->in
.data_type
)) {
23858 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
));
23860 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.data_type
), sizeof(uint16_t)));
23861 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
));
23862 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_type_0
, 0);
23864 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23865 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
23867 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23868 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
23869 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
23870 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
23872 if (flags
& NDR_OUT
) {
23873 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
23875 return NDR_ERR_SUCCESS
;
23878 _PUBLIC_
void ndr_print_spoolss_ResetPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinter
*r
)
23880 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinter");
23882 if (flags
& NDR_SET_VALUES
) {
23883 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
23885 if (flags
& NDR_IN
) {
23886 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinter");
23888 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
23890 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
23892 ndr_print_ptr(ndr
, "data_type", r
->in
.data_type
);
23894 if (r
->in
.data_type
) {
23895 ndr_print_string(ndr
, "data_type", r
->in
.data_type
);
23898 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
23900 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
23904 if (flags
& NDR_OUT
) {
23905 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinter");
23907 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
23913 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDriver2(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
23915 if (flags
& NDR_IN
) {
23916 if (r
->in
.handle
== NULL
) {
23917 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23919 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23920 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.architecture
));
23921 if (r
->in
.architecture
) {
23922 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
23923 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
23924 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
23925 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
23927 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
23928 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
23929 if (r
->in
.buffer
) {
23930 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->in
.buffer
));
23932 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
23933 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_major_version
));
23934 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.client_minor_version
));
23936 if (flags
& NDR_OUT
) {
23937 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->out
.info
));
23940 struct ndr_push
*_ndr_info
;
23941 NDR_CHECK(ndr_push_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
23942 NDR_CHECK(ndr_push_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
23943 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
23944 NDR_CHECK(ndr_push_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
23947 if (r
->out
.needed
== NULL
) {
23948 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23950 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
23951 if (r
->out
.server_major_version
== NULL
) {
23952 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23954 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_major_version
));
23955 if (r
->out
.server_minor_version
== NULL
) {
23956 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
23958 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.server_minor_version
));
23959 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
23961 return NDR_ERR_SUCCESS
;
23964 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDriver2
*r
)
23966 uint32_t _ptr_architecture
;
23967 uint32_t _ptr_buffer
;
23968 uint32_t _ptr_info
;
23969 TALLOC_CTX
*_mem_save_handle_0
;
23970 TALLOC_CTX
*_mem_save_architecture_0
;
23971 TALLOC_CTX
*_mem_save_buffer_0
;
23972 TALLOC_CTX
*_mem_save_info_0
;
23973 TALLOC_CTX
*_mem_save_needed_0
;
23974 TALLOC_CTX
*_mem_save_server_major_version_0
;
23975 TALLOC_CTX
*_mem_save_server_minor_version_0
;
23976 if (flags
& NDR_IN
) {
23977 ZERO_STRUCT(r
->out
);
23979 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
23980 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
23982 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23983 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
23984 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
23985 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
23986 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_architecture
));
23987 if (_ptr_architecture
) {
23988 NDR_PULL_ALLOC(ndr
, r
->in
.architecture
);
23990 r
->in
.architecture
= NULL
;
23992 if (r
->in
.architecture
) {
23993 _mem_save_architecture_0
= NDR_PULL_GET_MEM_CTX(ndr
);
23994 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.architecture
, 0);
23995 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
23996 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
23997 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
23998 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
));
24000 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
24001 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
24002 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_architecture_0
, 0);
24004 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
24005 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24007 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24009 r
->in
.buffer
= NULL
;
24011 if (r
->in
.buffer
) {
24012 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24013 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24014 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.buffer
));
24015 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24017 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
24018 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_major_version
));
24019 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.client_minor_version
));
24020 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24021 ZERO_STRUCTP(r
->out
.needed
);
24022 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
24023 ZERO_STRUCTP(r
->out
.server_major_version
);
24024 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
24025 ZERO_STRUCTP(r
->out
.server_minor_version
);
24027 if (flags
& NDR_OUT
) {
24028 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
24030 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
24032 r
->out
.info
= NULL
;
24035 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24036 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, 0);
24038 struct ndr_pull
*_ndr_info
;
24039 NDR_CHECK(ndr_pull_subcontext_start(ndr
, &_ndr_info
, 4, r
->in
.offered
));
24040 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info
, r
->out
.info
, r
->in
.level
));
24041 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info
, NDR_SCALARS
|NDR_BUFFERS
, r
->out
.info
));
24042 NDR_CHECK(ndr_pull_subcontext_end(ndr
, _ndr_info
, 4, r
->in
.offered
));
24044 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, 0);
24046 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24047 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
24049 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24050 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
24051 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
24052 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
24053 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24054 NDR_PULL_ALLOC(ndr
, r
->out
.server_major_version
);
24056 _mem_save_server_major_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24057 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_major_version
, LIBNDR_FLAG_REF_ALLOC
);
24058 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_major_version
));
24059 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_major_version_0
, LIBNDR_FLAG_REF_ALLOC
);
24060 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24061 NDR_PULL_ALLOC(ndr
, r
->out
.server_minor_version
);
24063 _mem_save_server_minor_version_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24064 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.server_minor_version
, LIBNDR_FLAG_REF_ALLOC
);
24065 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.server_minor_version
));
24066 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_minor_version_0
, LIBNDR_FLAG_REF_ALLOC
);
24067 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24069 return NDR_ERR_SUCCESS
;
24072 _PUBLIC_
void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDriver2
*r
)
24074 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDriver2");
24076 if (flags
& NDR_SET_VALUES
) {
24077 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24079 if (flags
& NDR_IN
) {
24080 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDriver2");
24082 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24084 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24086 ndr_print_ptr(ndr
, "architecture", r
->in
.architecture
);
24088 if (r
->in
.architecture
) {
24089 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
24092 ndr_print_uint32(ndr
, "level", r
->in
.level
);
24093 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24095 if (r
->in
.buffer
) {
24096 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->in
.buffer
);
24099 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
24100 ndr_print_uint32(ndr
, "client_major_version", r
->in
.client_major_version
);
24101 ndr_print_uint32(ndr
, "client_minor_version", r
->in
.client_minor_version
);
24104 if (flags
& NDR_OUT
) {
24105 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDriver2");
24107 ndr_print_ptr(ndr
, "info", r
->out
.info
);
24110 ndr_print_set_switch_value(ndr
, r
->out
.info
, r
->in
.level
);
24111 ndr_print_spoolss_DriverInfo(ndr
, "info", r
->out
.info
);
24114 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
24116 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
24118 ndr_print_ptr(ndr
, "server_major_version", r
->out
.server_major_version
);
24120 ndr_print_uint32(ndr
, "server_major_version", *r
->out
.server_major_version
);
24122 ndr_print_ptr(ndr
, "server_minor_version", r
->out
.server_minor_version
);
24124 ndr_print_uint32(ndr
, "server_minor_version", *r
->out
.server_minor_version
);
24126 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24132 static enum ndr_err_code
ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
24134 if (flags
& NDR_IN
) {
24136 if (flags
& NDR_OUT
) {
24137 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24139 return NDR_ERR_SUCCESS
;
24142 static enum ndr_err_code
ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindFirstPrinterChangeNotification
*r
)
24144 if (flags
& NDR_IN
) {
24146 if (flags
& NDR_OUT
) {
24147 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24149 return NDR_ERR_SUCCESS
;
24152 _PUBLIC_
void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindFirstPrinterChangeNotification
*r
)
24154 ndr_print_struct(ndr
, name
, "spoolss_FindFirstPrinterChangeNotification");
24156 if (flags
& NDR_SET_VALUES
) {
24157 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24159 if (flags
& NDR_IN
) {
24160 ndr_print_struct(ndr
, "in", "spoolss_FindFirstPrinterChangeNotification");
24164 if (flags
& NDR_OUT
) {
24165 ndr_print_struct(ndr
, "out", "spoolss_FindFirstPrinterChangeNotification");
24167 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24173 static enum ndr_err_code
ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
24175 if (flags
& NDR_IN
) {
24177 if (flags
& NDR_OUT
) {
24178 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24180 return NDR_ERR_SUCCESS
;
24183 static enum ndr_err_code
ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindNextPrinterChangeNotification
*r
)
24185 if (flags
& NDR_IN
) {
24187 if (flags
& NDR_OUT
) {
24188 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24190 return NDR_ERR_SUCCESS
;
24193 _PUBLIC_
void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindNextPrinterChangeNotification
*r
)
24195 ndr_print_struct(ndr
, name
, "spoolss_FindNextPrinterChangeNotification");
24197 if (flags
& NDR_SET_VALUES
) {
24198 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24200 if (flags
& NDR_IN
) {
24201 ndr_print_struct(ndr
, "in", "spoolss_FindNextPrinterChangeNotification");
24205 if (flags
& NDR_OUT
) {
24206 ndr_print_struct(ndr
, "out", "spoolss_FindNextPrinterChangeNotification");
24208 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24214 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
24216 if (flags
& NDR_IN
) {
24217 if (r
->in
.handle
== NULL
) {
24218 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24220 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24222 if (flags
& NDR_OUT
) {
24223 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24225 return NDR_ERR_SUCCESS
;
24228 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_FindClosePrinterNotify
*r
)
24230 TALLOC_CTX
*_mem_save_handle_0
;
24231 if (flags
& NDR_IN
) {
24232 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24233 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24235 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24236 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24237 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24238 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24240 if (flags
& NDR_OUT
) {
24241 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24243 return NDR_ERR_SUCCESS
;
24246 _PUBLIC_
void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_FindClosePrinterNotify
*r
)
24248 ndr_print_struct(ndr
, name
, "spoolss_FindClosePrinterNotify");
24250 if (flags
& NDR_SET_VALUES
) {
24251 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24253 if (flags
& NDR_IN
) {
24254 ndr_print_struct(ndr
, "in", "spoolss_FindClosePrinterNotify");
24256 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24258 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24262 if (flags
& NDR_OUT
) {
24263 ndr_print_struct(ndr
, "out", "spoolss_FindClosePrinterNotify");
24265 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24271 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
24273 if (flags
& NDR_IN
) {
24275 if (flags
& NDR_OUT
) {
24276 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24278 return NDR_ERR_SUCCESS
;
24281 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
24283 if (flags
& NDR_IN
) {
24285 if (flags
& NDR_OUT
) {
24286 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24288 return NDR_ERR_SUCCESS
;
24291 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld
*r
)
24293 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24295 if (flags
& NDR_SET_VALUES
) {
24296 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24298 if (flags
& NDR_IN
) {
24299 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24303 if (flags
& NDR_OUT
) {
24304 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24306 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24312 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
24314 if (flags
& NDR_IN
) {
24315 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
24316 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24317 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server_name
, CH_UTF16
)));
24318 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
));
24319 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
24320 NDR_CHECK(ndr_push_winreg_Type(ndr
, NDR_SCALARS
, r
->in
.type
));
24321 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
24322 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24323 if (r
->in
.buffer
) {
24324 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
24325 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
24328 if (flags
& NDR_OUT
) {
24329 if (r
->out
.handle
== NULL
) {
24330 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24332 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24333 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24335 return NDR_ERR_SUCCESS
;
24338 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyOpenPrinter
*r
)
24340 uint32_t _ptr_buffer
;
24341 TALLOC_CTX
*_mem_save_buffer_0
;
24342 TALLOC_CTX
*_mem_save_handle_0
;
24343 if (flags
& NDR_IN
) {
24344 ZERO_STRUCT(r
->out
);
24346 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server_name
));
24347 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server_name
));
24348 if (ndr_get_array_length(ndr
, &r
->in
.server_name
) > ndr_get_array_size(ndr
, &r
->in
.server_name
)) {
24349 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
));
24351 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server_name
), sizeof(uint16_t)));
24352 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
));
24353 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
24354 NDR_CHECK(ndr_pull_winreg_Type(ndr
, NDR_SCALARS
, &r
->in
.type
));
24355 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
24356 if (r
->in
.bufsize
> 512) {
24357 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
24359 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24361 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24363 r
->in
.buffer
= NULL
;
24365 if (r
->in
.buffer
) {
24366 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24367 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24368 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
24369 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
24370 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
24371 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24373 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24374 ZERO_STRUCTP(r
->out
.handle
);
24375 if (r
->in
.buffer
) {
24376 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
24379 if (flags
& NDR_OUT
) {
24380 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24381 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24383 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24384 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24385 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24386 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24387 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24389 return NDR_ERR_SUCCESS
;
24392 _PUBLIC_
void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyOpenPrinter
*r
)
24394 ndr_print_struct(ndr
, name
, "spoolss_ReplyOpenPrinter");
24396 if (flags
& NDR_SET_VALUES
) {
24397 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24399 if (flags
& NDR_IN
) {
24400 ndr_print_struct(ndr
, "in", "spoolss_ReplyOpenPrinter");
24402 ndr_print_string(ndr
, "server_name", r
->in
.server_name
);
24403 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
24404 ndr_print_winreg_Type(ndr
, "type", r
->in
.type
);
24405 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
24406 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24408 if (r
->in
.buffer
) {
24409 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
24414 if (flags
& NDR_OUT
) {
24415 ndr_print_struct(ndr
, "out", "spoolss_ReplyOpenPrinter");
24417 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
24419 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
24421 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24427 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
24429 if (flags
& NDR_IN
) {
24430 if (r
->in
.handle
== NULL
) {
24431 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24433 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24434 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
24435 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
24436 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.buffer
));
24437 if (r
->in
.buffer
) {
24438 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.bufsize
));
24439 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.bufsize
));
24442 if (flags
& NDR_OUT
) {
24443 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24445 return NDR_ERR_SUCCESS
;
24448 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinter
*r
)
24450 uint32_t _ptr_buffer
;
24451 TALLOC_CTX
*_mem_save_handle_0
;
24452 TALLOC_CTX
*_mem_save_buffer_0
;
24453 if (flags
& NDR_IN
) {
24454 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24455 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24457 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24458 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24459 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24460 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24461 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
24462 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.bufsize
));
24463 if (r
->in
.bufsize
> 512) {
24464 return ndr_pull_error(ndr
, NDR_ERR_RANGE
, "value out of range");
24466 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_buffer
));
24468 NDR_PULL_ALLOC(ndr
, r
->in
.buffer
);
24470 r
->in
.buffer
= NULL
;
24472 if (r
->in
.buffer
) {
24473 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24474 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.buffer
, 0);
24475 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
24476 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
24477 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
24478 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, 0);
24480 if (r
->in
.buffer
) {
24481 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.bufsize
));
24484 if (flags
& NDR_OUT
) {
24485 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24487 return NDR_ERR_SUCCESS
;
24490 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinter
*r
)
24492 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinter");
24494 if (flags
& NDR_SET_VALUES
) {
24495 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24497 if (flags
& NDR_IN
) {
24498 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinter");
24500 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24502 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24504 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
24505 ndr_print_uint32(ndr
, "bufsize", r
->in
.bufsize
);
24506 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
24508 if (r
->in
.buffer
) {
24509 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.bufsize
);
24514 if (flags
& NDR_OUT
) {
24515 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinter");
24517 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24523 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_ReplyClosePrinter(struct ndr_push
*ndr
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
24525 if (flags
& NDR_IN
) {
24526 if (r
->in
.handle
== NULL
) {
24527 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24529 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24531 if (flags
& NDR_OUT
) {
24532 if (r
->out
.handle
== NULL
) {
24533 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24535 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24536 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24538 return NDR_ERR_SUCCESS
;
24541 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull
*ndr
, int flags
, struct spoolss_ReplyClosePrinter
*r
)
24543 TALLOC_CTX
*_mem_save_handle_0
;
24544 if (flags
& NDR_IN
) {
24545 ZERO_STRUCT(r
->out
);
24547 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24548 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24550 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24551 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24552 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24553 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24554 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24555 *r
->out
.handle
= *r
->in
.handle
;
24557 if (flags
& NDR_OUT
) {
24558 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24559 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
24561 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24562 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24563 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
24564 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24565 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24567 return NDR_ERR_SUCCESS
;
24570 _PUBLIC_
void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ReplyClosePrinter
*r
)
24572 ndr_print_struct(ndr
, name
, "spoolss_ReplyClosePrinter");
24574 if (flags
& NDR_SET_VALUES
) {
24575 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24577 if (flags
& NDR_IN
) {
24578 ndr_print_struct(ndr
, "in", "spoolss_ReplyClosePrinter");
24580 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24582 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24586 if (flags
& NDR_OUT
) {
24587 ndr_print_struct(ndr
, "out", "spoolss_ReplyClosePrinter");
24589 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
24591 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
24593 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24599 static enum ndr_err_code
ndr_push_spoolss_AddPortEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPortEx
*r
)
24601 if (flags
& NDR_IN
) {
24603 if (flags
& NDR_OUT
) {
24604 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24606 return NDR_ERR_SUCCESS
;
24609 static enum ndr_err_code
ndr_pull_spoolss_AddPortEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPortEx
*r
)
24611 if (flags
& NDR_IN
) {
24613 if (flags
& NDR_OUT
) {
24614 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24616 return NDR_ERR_SUCCESS
;
24619 _PUBLIC_
void ndr_print_spoolss_AddPortEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPortEx
*r
)
24621 ndr_print_struct(ndr
, name
, "spoolss_AddPortEx");
24623 if (flags
& NDR_SET_VALUES
) {
24624 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24626 if (flags
& NDR_IN
) {
24627 ndr_print_struct(ndr
, "in", "spoolss_AddPortEx");
24631 if (flags
& NDR_OUT
) {
24632 ndr_print_struct(ndr
, "out", "spoolss_AddPortEx");
24634 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24640 static enum ndr_err_code
ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
24642 if (flags
& NDR_IN
) {
24644 if (flags
& NDR_OUT
) {
24645 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24647 return NDR_ERR_SUCCESS
;
24650 static enum ndr_err_code
ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
24652 if (flags
& NDR_IN
) {
24654 if (flags
& NDR_OUT
) {
24655 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24657 return NDR_ERR_SUCCESS
;
24660 _PUBLIC_
void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterFindFirstPrinterChangeNotification
*r
)
24662 ndr_print_struct(ndr
, name
, "spoolss_RouterFindFirstPrinterChangeNotification");
24664 if (flags
& NDR_SET_VALUES
) {
24665 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24667 if (flags
& NDR_IN
) {
24668 ndr_print_struct(ndr
, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
24672 if (flags
& NDR_OUT
) {
24673 ndr_print_struct(ndr
, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
24675 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24681 static enum ndr_err_code
ndr_push_spoolss_SpoolerInit(struct ndr_push
*ndr
, int flags
, const struct spoolss_SpoolerInit
*r
)
24683 if (flags
& NDR_IN
) {
24685 if (flags
& NDR_OUT
) {
24686 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24688 return NDR_ERR_SUCCESS
;
24691 static enum ndr_err_code
ndr_pull_spoolss_SpoolerInit(struct ndr_pull
*ndr
, int flags
, struct spoolss_SpoolerInit
*r
)
24693 if (flags
& NDR_IN
) {
24695 if (flags
& NDR_OUT
) {
24696 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24698 return NDR_ERR_SUCCESS
;
24701 _PUBLIC_
void ndr_print_spoolss_SpoolerInit(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SpoolerInit
*r
)
24703 ndr_print_struct(ndr
, name
, "spoolss_SpoolerInit");
24705 if (flags
& NDR_SET_VALUES
) {
24706 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24708 if (flags
& NDR_IN
) {
24709 ndr_print_struct(ndr
, "in", "spoolss_SpoolerInit");
24713 if (flags
& NDR_OUT
) {
24714 ndr_print_struct(ndr
, "out", "spoolss_SpoolerInit");
24716 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24722 static enum ndr_err_code
ndr_push_spoolss_ResetPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
24724 if (flags
& NDR_IN
) {
24726 if (flags
& NDR_OUT
) {
24727 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24729 return NDR_ERR_SUCCESS
;
24732 static enum ndr_err_code
ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_ResetPrinterEx
*r
)
24734 if (flags
& NDR_IN
) {
24736 if (flags
& NDR_OUT
) {
24737 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24739 return NDR_ERR_SUCCESS
;
24742 _PUBLIC_
void ndr_print_spoolss_ResetPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_ResetPrinterEx
*r
)
24744 ndr_print_struct(ndr
, name
, "spoolss_ResetPrinterEx");
24746 if (flags
& NDR_SET_VALUES
) {
24747 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24749 if (flags
& NDR_IN
) {
24750 ndr_print_struct(ndr
, "in", "spoolss_ResetPrinterEx");
24754 if (flags
& NDR_OUT
) {
24755 ndr_print_struct(ndr
, "out", "spoolss_ResetPrinterEx");
24757 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24763 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
24765 if (flags
& NDR_IN
) {
24766 if (r
->in
.handle
== NULL
) {
24767 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24769 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24770 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
24771 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.options
));
24772 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.local_machine
));
24773 if (r
->in
.local_machine
) {
24774 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
24775 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
24776 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.local_machine
, CH_UTF16
)));
24777 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
));
24779 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.printer_local
));
24780 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.notify_options
));
24781 if (r
->in
.notify_options
) {
24782 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
24785 if (flags
& NDR_OUT
) {
24786 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24788 return NDR_ERR_SUCCESS
;
24791 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
24793 uint32_t _ptr_local_machine
;
24794 uint32_t _ptr_notify_options
;
24795 TALLOC_CTX
*_mem_save_handle_0
;
24796 TALLOC_CTX
*_mem_save_local_machine_0
;
24797 TALLOC_CTX
*_mem_save_notify_options_0
;
24798 if (flags
& NDR_IN
) {
24799 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24800 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24802 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24803 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24804 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24805 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24806 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
24807 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.options
));
24808 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_local_machine
));
24809 if (_ptr_local_machine
) {
24810 NDR_PULL_ALLOC(ndr
, r
->in
.local_machine
);
24812 r
->in
.local_machine
= NULL
;
24814 if (r
->in
.local_machine
) {
24815 _mem_save_local_machine_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24816 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.local_machine
, 0);
24817 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.local_machine
));
24818 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.local_machine
));
24819 if (ndr_get_array_length(ndr
, &r
->in
.local_machine
) > ndr_get_array_size(ndr
, &r
->in
.local_machine
)) {
24820 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
));
24822 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.local_machine
), sizeof(uint16_t)));
24823 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
));
24824 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_local_machine_0
, 0);
24826 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.printer_local
));
24827 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_notify_options
));
24828 if (_ptr_notify_options
) {
24829 NDR_PULL_ALLOC(ndr
, r
->in
.notify_options
);
24831 r
->in
.notify_options
= NULL
;
24833 if (r
->in
.notify_options
) {
24834 _mem_save_notify_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24835 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.notify_options
, 0);
24836 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.notify_options
));
24837 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_notify_options_0
, 0);
24840 if (flags
& NDR_OUT
) {
24841 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24843 return NDR_ERR_SUCCESS
;
24846 _PUBLIC_
void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
*r
)
24848 ndr_print_struct(ndr
, name
, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24850 if (flags
& NDR_SET_VALUES
) {
24851 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24853 if (flags
& NDR_IN
) {
24854 ndr_print_struct(ndr
, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24856 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24858 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24860 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
24861 ndr_print_uint32(ndr
, "options", r
->in
.options
);
24862 ndr_print_ptr(ndr
, "local_machine", r
->in
.local_machine
);
24864 if (r
->in
.local_machine
) {
24865 ndr_print_string(ndr
, "local_machine", r
->in
.local_machine
);
24868 ndr_print_uint32(ndr
, "printer_local", r
->in
.printer_local
);
24869 ndr_print_ptr(ndr
, "notify_options", r
->in
.notify_options
);
24871 if (r
->in
.notify_options
) {
24872 ndr_print_spoolss_NotifyOption(ndr
, "notify_options", r
->in
.notify_options
);
24877 if (flags
& NDR_OUT
) {
24878 ndr_print_struct(ndr
, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24880 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24886 static enum ndr_err_code
ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
24888 if (flags
& NDR_IN
) {
24889 if (r
->in
.handle
== NULL
) {
24890 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24892 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24893 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.color
));
24894 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
24895 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.reply_type
));
24896 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
24897 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24899 if (flags
& NDR_OUT
) {
24900 if (r
->out
.reply_result
== NULL
) {
24901 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24903 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, *r
->out
.reply_result
));
24904 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
24906 return NDR_ERR_SUCCESS
;
24909 static enum ndr_err_code
ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterReplyPrinterEx
*r
)
24911 TALLOC_CTX
*_mem_save_handle_0
;
24912 TALLOC_CTX
*_mem_save_reply_result_0
;
24913 if (flags
& NDR_IN
) {
24914 ZERO_STRUCT(r
->out
);
24916 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24917 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
24919 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24920 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
24921 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24922 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
24923 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.color
));
24924 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
24925 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.reply_type
));
24926 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
));
24927 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.info
));
24928 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
24929 ZERO_STRUCTP(r
->out
.reply_result
);
24931 if (flags
& NDR_OUT
) {
24932 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
24933 NDR_PULL_ALLOC(ndr
, r
->out
.reply_result
);
24935 _mem_save_reply_result_0
= NDR_PULL_GET_MEM_CTX(ndr
);
24936 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.reply_result
, LIBNDR_FLAG_REF_ALLOC
);
24937 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr
, NDR_SCALARS
, r
->out
.reply_result
));
24938 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_reply_result_0
, LIBNDR_FLAG_REF_ALLOC
);
24939 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
24941 return NDR_ERR_SUCCESS
;
24944 _PUBLIC_
void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterReplyPrinterEx
*r
)
24946 ndr_print_struct(ndr
, name
, "spoolss_RouterReplyPrinterEx");
24948 if (flags
& NDR_SET_VALUES
) {
24949 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
24951 if (flags
& NDR_IN
) {
24952 ndr_print_struct(ndr
, "in", "spoolss_RouterReplyPrinterEx");
24954 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
24956 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
24958 ndr_print_uint32(ndr
, "color", r
->in
.color
);
24959 ndr_print_spoolss_PrinterChangeFlags(ndr
, "flags", r
->in
.flags
);
24960 ndr_print_uint32(ndr
, "reply_type", r
->in
.reply_type
);
24961 ndr_print_set_switch_value(ndr
, &r
->in
.info
, r
->in
.reply_type
);
24962 ndr_print_spoolss_ReplyPrinterInfo(ndr
, "info", &r
->in
.info
);
24965 if (flags
& NDR_OUT
) {
24966 ndr_print_struct(ndr
, "out", "spoolss_RouterReplyPrinterEx");
24968 ndr_print_ptr(ndr
, "reply_result", r
->out
.reply_result
);
24970 ndr_print_spoolss_PrinterNotifyFlags(ndr
, "reply_result", *r
->out
.reply_result
);
24972 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
24978 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push
*ndr
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
24980 if (flags
& NDR_IN
) {
24981 if (r
->in
.handle
== NULL
) {
24982 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24984 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
24985 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.change_low
));
24986 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.options
));
24987 if (r
->in
.options
) {
24988 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
24991 if (flags
& NDR_OUT
) {
24992 if (r
->out
.info
== NULL
) {
24993 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
24995 NDR_CHECK(ndr_push_unique_ptr(ndr
, *r
->out
.info
));
24996 if (*r
->out
.info
) {
24997 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
24999 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25001 return NDR_ERR_SUCCESS
;
25004 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull
*ndr
, int flags
, struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
25006 uint32_t _ptr_options
;
25007 uint32_t _ptr_info
;
25008 TALLOC_CTX
*_mem_save_handle_0
;
25009 TALLOC_CTX
*_mem_save_options_0
;
25010 TALLOC_CTX
*_mem_save_info_0
;
25011 TALLOC_CTX
*_mem_save_info_1
;
25012 if (flags
& NDR_IN
) {
25013 ZERO_STRUCT(r
->out
);
25015 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25016 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25018 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25019 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25020 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25021 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25022 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.change_low
));
25023 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_options
));
25024 if (_ptr_options
) {
25025 NDR_PULL_ALLOC(ndr
, r
->in
.options
);
25027 r
->in
.options
= NULL
;
25029 if (r
->in
.options
) {
25030 _mem_save_options_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25031 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.options
, 0);
25032 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.options
));
25033 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_options_0
, 0);
25035 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25036 ZERO_STRUCTP(r
->out
.info
);
25038 if (flags
& NDR_OUT
) {
25039 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25040 NDR_PULL_ALLOC(ndr
, r
->out
.info
);
25042 _mem_save_info_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25043 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.info
, LIBNDR_FLAG_REF_ALLOC
);
25044 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_info
));
25046 NDR_PULL_ALLOC(ndr
, *r
->out
.info
);
25048 *r
->out
.info
= NULL
;
25050 if (*r
->out
.info
) {
25051 _mem_save_info_1
= NDR_PULL_GET_MEM_CTX(ndr
);
25052 NDR_PULL_SET_MEM_CTX(ndr
, *r
->out
.info
, 0);
25053 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr
, NDR_SCALARS
|NDR_BUFFERS
, *r
->out
.info
));
25054 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_1
, 0);
25056 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_0
, LIBNDR_FLAG_REF_ALLOC
);
25057 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25059 return NDR_ERR_SUCCESS
;
25062 _PUBLIC_
void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_RouterRefreshPrinterChangeNotify
*r
)
25064 ndr_print_struct(ndr
, name
, "spoolss_RouterRefreshPrinterChangeNotify");
25066 if (flags
& NDR_SET_VALUES
) {
25067 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25069 if (flags
& NDR_IN
) {
25070 ndr_print_struct(ndr
, "in", "spoolss_RouterRefreshPrinterChangeNotify");
25072 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25074 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25076 ndr_print_uint32(ndr
, "change_low", r
->in
.change_low
);
25077 ndr_print_ptr(ndr
, "options", r
->in
.options
);
25079 if (r
->in
.options
) {
25080 ndr_print_spoolss_NotifyOption(ndr
, "options", r
->in
.options
);
25085 if (flags
& NDR_OUT
) {
25086 ndr_print_struct(ndr
, "out", "spoolss_RouterRefreshPrinterChangeNotify");
25088 ndr_print_ptr(ndr
, "info", r
->out
.info
);
25090 ndr_print_ptr(ndr
, "info", *r
->out
.info
);
25092 if (*r
->out
.info
) {
25093 ndr_print_spoolss_NotifyInfo(ndr
, "info", *r
->out
.info
);
25097 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25103 static enum ndr_err_code
ndr_push_spoolss_44(struct ndr_push
*ndr
, int flags
, const struct spoolss_44
*r
)
25105 if (flags
& NDR_IN
) {
25107 if (flags
& NDR_OUT
) {
25108 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25110 return NDR_ERR_SUCCESS
;
25113 static enum ndr_err_code
ndr_pull_spoolss_44(struct ndr_pull
*ndr
, int flags
, struct spoolss_44
*r
)
25115 if (flags
& NDR_IN
) {
25117 if (flags
& NDR_OUT
) {
25118 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25120 return NDR_ERR_SUCCESS
;
25123 _PUBLIC_
void ndr_print_spoolss_44(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_44
*r
)
25125 ndr_print_struct(ndr
, name
, "spoolss_44");
25127 if (flags
& NDR_SET_VALUES
) {
25128 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25130 if (flags
& NDR_IN
) {
25131 ndr_print_struct(ndr
, "in", "spoolss_44");
25135 if (flags
& NDR_OUT
) {
25136 ndr_print_struct(ndr
, "out", "spoolss_44");
25138 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25144 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_OpenPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
25146 if (flags
& NDR_IN
) {
25147 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.printername
));
25148 if (r
->in
.printername
) {
25149 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
25150 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25151 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.printername
, CH_UTF16
)));
25152 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.printername
, ndr_charset_length(r
->in
.printername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25154 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.datatype
));
25155 if (r
->in
.datatype
) {
25156 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
25157 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25158 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
)));
25159 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.datatype
, ndr_charset_length(r
->in
.datatype
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25161 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
25162 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr
, NDR_SCALARS
, r
->in
.access_mask
));
25163 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.level
));
25164 NDR_CHECK(ndr_push_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
25165 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
25167 if (flags
& NDR_OUT
) {
25168 if (r
->out
.handle
== NULL
) {
25169 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25171 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25172 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25174 return NDR_ERR_SUCCESS
;
25177 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_OpenPrinterEx
*r
)
25179 uint32_t _ptr_printername
;
25180 uint32_t _ptr_datatype
;
25181 TALLOC_CTX
*_mem_save_printername_0
;
25182 TALLOC_CTX
*_mem_save_datatype_0
;
25183 TALLOC_CTX
*_mem_save_handle_0
;
25184 if (flags
& NDR_IN
) {
25185 ZERO_STRUCT(r
->out
);
25187 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_printername
));
25188 if (_ptr_printername
) {
25189 NDR_PULL_ALLOC(ndr
, r
->in
.printername
);
25191 r
->in
.printername
= NULL
;
25193 if (r
->in
.printername
) {
25194 _mem_save_printername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25195 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.printername
, 0);
25196 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.printername
));
25197 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.printername
));
25198 if (ndr_get_array_length(ndr
, &r
->in
.printername
) > ndr_get_array_size(ndr
, &r
->in
.printername
)) {
25199 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
));
25201 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t)));
25202 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.printername
, ndr_get_array_length(ndr
, &r
->in
.printername
), sizeof(uint16_t), CH_UTF16
));
25203 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printername_0
, 0);
25205 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_datatype
));
25206 if (_ptr_datatype
) {
25207 NDR_PULL_ALLOC(ndr
, r
->in
.datatype
);
25209 r
->in
.datatype
= NULL
;
25211 if (r
->in
.datatype
) {
25212 _mem_save_datatype_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25213 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.datatype
, 0);
25214 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.datatype
));
25215 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.datatype
));
25216 if (ndr_get_array_length(ndr
, &r
->in
.datatype
) > ndr_get_array_size(ndr
, &r
->in
.datatype
)) {
25217 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
));
25219 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t)));
25220 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.datatype
, ndr_get_array_length(ndr
, &r
->in
.datatype
), sizeof(uint16_t), CH_UTF16
));
25221 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_datatype_0
, 0);
25223 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.devmode_ctr
));
25224 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr
, NDR_SCALARS
, &r
->in
.access_mask
));
25225 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.level
));
25226 NDR_CHECK(ndr_pull_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
));
25227 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr
, NDR_SCALARS
|NDR_BUFFERS
, &r
->in
.userlevel
));
25228 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25229 ZERO_STRUCTP(r
->out
.handle
);
25231 if (flags
& NDR_OUT
) {
25232 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25233 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25235 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25236 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25237 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25238 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25239 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25241 return NDR_ERR_SUCCESS
;
25244 _PUBLIC_
void ndr_print_spoolss_OpenPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_OpenPrinterEx
*r
)
25246 ndr_print_struct(ndr
, name
, "spoolss_OpenPrinterEx");
25248 if (flags
& NDR_SET_VALUES
) {
25249 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25251 if (flags
& NDR_IN
) {
25252 ndr_print_struct(ndr
, "in", "spoolss_OpenPrinterEx");
25254 ndr_print_ptr(ndr
, "printername", r
->in
.printername
);
25256 if (r
->in
.printername
) {
25257 ndr_print_string(ndr
, "printername", r
->in
.printername
);
25260 ndr_print_ptr(ndr
, "datatype", r
->in
.datatype
);
25262 if (r
->in
.datatype
) {
25263 ndr_print_string(ndr
, "datatype", r
->in
.datatype
);
25266 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", &r
->in
.devmode_ctr
);
25267 ndr_print_spoolss_AccessRights(ndr
, "access_mask", r
->in
.access_mask
);
25268 ndr_print_uint32(ndr
, "level", r
->in
.level
);
25269 ndr_print_set_switch_value(ndr
, &r
->in
.userlevel
, r
->in
.level
);
25270 ndr_print_spoolss_UserLevel(ndr
, "userlevel", &r
->in
.userlevel
);
25273 if (flags
& NDR_OUT
) {
25274 ndr_print_struct(ndr
, "out", "spoolss_OpenPrinterEx");
25276 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
25278 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
25280 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25286 static enum ndr_err_code
ndr_push_spoolss_AddPrinterEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterEx
*r
)
25288 if (flags
& NDR_IN
) {
25289 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
25290 if (r
->in
.server
) {
25291 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
25292 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25293 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
25294 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
25296 if (r
->in
.info_ctr
== NULL
) {
25297 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25299 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
25300 if (r
->in
.devmode_ctr
== NULL
) {
25301 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25303 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25304 if (r
->in
.secdesc_ctr
== NULL
) {
25305 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25307 NDR_CHECK(ndr_push_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
25308 if (r
->in
.userlevel_ctr
== NULL
) {
25309 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25311 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
25313 if (flags
& NDR_OUT
) {
25314 if (r
->out
.handle
== NULL
) {
25315 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25317 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25318 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25320 return NDR_ERR_SUCCESS
;
25323 static enum ndr_err_code
ndr_pull_spoolss_AddPrinterEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterEx
*r
)
25325 uint32_t _ptr_server
;
25326 TALLOC_CTX
*_mem_save_server_0
;
25327 TALLOC_CTX
*_mem_save_info_ctr_0
;
25328 TALLOC_CTX
*_mem_save_devmode_ctr_0
;
25329 TALLOC_CTX
*_mem_save_secdesc_ctr_0
;
25330 TALLOC_CTX
*_mem_save_userlevel_ctr_0
;
25331 TALLOC_CTX
*_mem_save_handle_0
;
25332 if (flags
& NDR_IN
) {
25333 ZERO_STRUCT(r
->out
);
25335 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
25337 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
25339 r
->in
.server
= NULL
;
25341 if (r
->in
.server
) {
25342 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25343 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
25344 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
25345 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
25346 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
25347 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
));
25349 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
25350 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
25351 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
25353 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25354 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
25356 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25357 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25358 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
25359 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25360 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25361 NDR_PULL_ALLOC(ndr
, r
->in
.devmode_ctr
);
25363 _mem_save_devmode_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25364 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.devmode_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25365 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.devmode_ctr
));
25366 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_devmode_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25367 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25368 NDR_PULL_ALLOC(ndr
, r
->in
.secdesc_ctr
);
25370 _mem_save_secdesc_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25371 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.secdesc_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25372 NDR_CHECK(ndr_pull_sec_desc_buf(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.secdesc_ctr
));
25373 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_secdesc_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25374 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25375 NDR_PULL_ALLOC(ndr
, r
->in
.userlevel_ctr
);
25377 _mem_save_userlevel_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25378 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.userlevel_ctr
, LIBNDR_FLAG_REF_ALLOC
);
25379 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.userlevel_ctr
));
25380 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_userlevel_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
25381 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25382 ZERO_STRUCTP(r
->out
.handle
);
25384 if (flags
& NDR_OUT
) {
25385 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25386 NDR_PULL_ALLOC(ndr
, r
->out
.handle
);
25388 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25389 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25390 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->out
.handle
));
25391 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25392 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25394 return NDR_ERR_SUCCESS
;
25397 _PUBLIC_
void ndr_print_spoolss_AddPrinterEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterEx
*r
)
25399 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterEx");
25401 if (flags
& NDR_SET_VALUES
) {
25402 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25404 if (flags
& NDR_IN
) {
25405 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterEx");
25407 ndr_print_ptr(ndr
, "server", r
->in
.server
);
25409 if (r
->in
.server
) {
25410 ndr_print_string(ndr
, "server", r
->in
.server
);
25413 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
25415 ndr_print_spoolss_SetPrinterInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
25417 ndr_print_ptr(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25419 ndr_print_spoolss_DevmodeContainer(ndr
, "devmode_ctr", r
->in
.devmode_ctr
);
25421 ndr_print_ptr(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
25423 ndr_print_sec_desc_buf(ndr
, "secdesc_ctr", r
->in
.secdesc_ctr
);
25425 ndr_print_ptr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
25427 ndr_print_spoolss_UserLevelCtr(ndr
, "userlevel_ctr", r
->in
.userlevel_ctr
);
25431 if (flags
& NDR_OUT
) {
25432 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterEx");
25434 ndr_print_ptr(ndr
, "handle", r
->out
.handle
);
25436 ndr_print_policy_handle(ndr
, "handle", r
->out
.handle
);
25438 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25444 static enum ndr_err_code
ndr_push_spoolss_47(struct ndr_push
*ndr
, int flags
, const struct spoolss_47
*r
)
25446 if (flags
& NDR_IN
) {
25448 if (flags
& NDR_OUT
) {
25449 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25451 return NDR_ERR_SUCCESS
;
25454 static enum ndr_err_code
ndr_pull_spoolss_47(struct ndr_pull
*ndr
, int flags
, struct spoolss_47
*r
)
25456 if (flags
& NDR_IN
) {
25458 if (flags
& NDR_OUT
) {
25459 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25461 return NDR_ERR_SUCCESS
;
25464 _PUBLIC_
void ndr_print_spoolss_47(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_47
*r
)
25466 ndr_print_struct(ndr
, name
, "spoolss_47");
25468 if (flags
& NDR_SET_VALUES
) {
25469 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25471 if (flags
& NDR_IN
) {
25472 ndr_print_struct(ndr
, "in", "spoolss_47");
25476 if (flags
& NDR_OUT
) {
25477 ndr_print_struct(ndr
, "out", "spoolss_47");
25479 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25485 static enum ndr_err_code
ndr_push_spoolss_EnumPrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterData
*r
)
25487 if (flags
& NDR_IN
) {
25488 if (r
->in
.handle
== NULL
) {
25489 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25491 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25492 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.enum_index
));
25493 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
));
25494 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.data_offered
));
25496 if (flags
& NDR_OUT
) {
25497 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.value_offered
/ 2));
25498 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->out
.value_name
, r
->in
.value_offered
/ 2, sizeof(uint16_t), CH_UTF16
));
25499 if (r
->out
.value_needed
== NULL
) {
25500 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25502 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.value_needed
));
25503 if (r
->out
.printerdata_type
== NULL
) {
25504 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25506 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.printerdata_type
));
25507 if (r
->out
.buffer
== NULL
) {
25508 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25510 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, *r
->out
.buffer
));
25511 if (r
->out
.data_needed
== NULL
) {
25512 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25514 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.data_needed
));
25515 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25517 return NDR_ERR_SUCCESS
;
25520 static enum ndr_err_code
ndr_pull_spoolss_EnumPrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterData
*r
)
25522 TALLOC_CTX
*_mem_save_handle_0
;
25523 TALLOC_CTX
*_mem_save_value_needed_0
;
25524 TALLOC_CTX
*_mem_save_printerdata_type_0
;
25525 TALLOC_CTX
*_mem_save_buffer_0
;
25526 TALLOC_CTX
*_mem_save_data_needed_0
;
25527 if (flags
& NDR_IN
) {
25528 ZERO_STRUCT(r
->out
);
25530 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25531 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25533 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25534 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25535 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25536 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25537 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.enum_index
));
25538 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.value_offered
));
25539 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.data_offered
));
25540 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
25541 ZERO_STRUCTP(r
->out
.value_needed
);
25542 NDR_PULL_ALLOC(ndr
, r
->out
.printerdata_type
);
25543 ZERO_STRUCTP(r
->out
.printerdata_type
);
25544 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
25545 ZERO_STRUCTP(r
->out
.buffer
);
25546 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
25547 ZERO_STRUCTP(r
->out
.data_needed
);
25549 if (flags
& NDR_OUT
) {
25550 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.value_name
));
25551 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
));
25552 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25553 NDR_PULL_ALLOC(ndr
, r
->out
.value_needed
);
25555 _mem_save_value_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25556 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.value_needed
, LIBNDR_FLAG_REF_ALLOC
);
25557 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.value_needed
));
25558 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_value_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25559 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25560 NDR_PULL_ALLOC(ndr
, r
->out
.printerdata_type
);
25562 _mem_save_printerdata_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25563 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.printerdata_type
, LIBNDR_FLAG_REF_ALLOC
);
25564 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.printerdata_type
));
25565 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_printerdata_type_0
, LIBNDR_FLAG_REF_ALLOC
);
25566 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25567 NDR_PULL_ALLOC(ndr
, r
->out
.buffer
);
25569 _mem_save_buffer_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25570 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.buffer
, LIBNDR_FLAG_REF_ALLOC
);
25571 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, r
->out
.buffer
));
25572 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_buffer_0
, LIBNDR_FLAG_REF_ALLOC
);
25573 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25574 NDR_PULL_ALLOC(ndr
, r
->out
.data_needed
);
25576 _mem_save_data_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25577 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.data_needed
, LIBNDR_FLAG_REF_ALLOC
);
25578 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.data_needed
));
25579 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_data_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
25580 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25581 if (r
->out
.value_name
) {
25582 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.value_name
, r
->in
.value_offered
/ 2));
25585 return NDR_ERR_SUCCESS
;
25588 _PUBLIC_
void ndr_print_spoolss_EnumPrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterData
*r
)
25590 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterData");
25592 if (flags
& NDR_SET_VALUES
) {
25593 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25595 if (flags
& NDR_IN
) {
25596 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterData");
25598 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25600 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25602 ndr_print_uint32(ndr
, "enum_index", r
->in
.enum_index
);
25603 ndr_print_uint32(ndr
, "value_offered", r
->in
.value_offered
);
25604 ndr_print_uint32(ndr
, "data_offered", r
->in
.data_offered
);
25607 if (flags
& NDR_OUT
) {
25608 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterData");
25610 ndr_print_string(ndr
, "value_name", r
->out
.value_name
);
25611 ndr_print_ptr(ndr
, "value_needed", r
->out
.value_needed
);
25613 ndr_print_uint32(ndr
, "value_needed", *r
->out
.value_needed
);
25615 ndr_print_ptr(ndr
, "printerdata_type", r
->out
.printerdata_type
);
25617 ndr_print_uint32(ndr
, "printerdata_type", *r
->out
.printerdata_type
);
25619 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
25621 ndr_print_DATA_BLOB(ndr
, "buffer", *r
->out
.buffer
);
25623 ndr_print_ptr(ndr
, "data_needed", r
->out
.data_needed
);
25625 ndr_print_uint32(ndr
, "data_needed", *r
->out
.data_needed
);
25627 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25633 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterData(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterData
*r
)
25635 if (flags
& NDR_IN
) {
25636 if (r
->in
.handle
== NULL
) {
25637 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25639 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25640 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25641 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25642 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25643 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
));
25645 if (flags
& NDR_OUT
) {
25646 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25648 return NDR_ERR_SUCCESS
;
25651 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterData(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterData
*r
)
25653 TALLOC_CTX
*_mem_save_handle_0
;
25654 if (flags
& NDR_IN
) {
25655 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25656 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25658 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25659 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25660 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25661 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25662 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
25663 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
25664 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
25665 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
));
25667 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
25668 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
));
25670 if (flags
& NDR_OUT
) {
25671 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25673 return NDR_ERR_SUCCESS
;
25676 _PUBLIC_
void ndr_print_spoolss_DeletePrinterData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterData
*r
)
25678 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterData");
25680 if (flags
& NDR_SET_VALUES
) {
25681 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25683 if (flags
& NDR_IN
) {
25684 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterData");
25686 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25688 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25690 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
25693 if (flags
& NDR_OUT
) {
25694 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterData");
25696 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25702 static enum ndr_err_code
ndr_push_spoolss_4a(struct ndr_push
*ndr
, int flags
, const struct spoolss_4a
*r
)
25704 if (flags
& NDR_IN
) {
25706 if (flags
& NDR_OUT
) {
25707 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25709 return NDR_ERR_SUCCESS
;
25712 static enum ndr_err_code
ndr_pull_spoolss_4a(struct ndr_pull
*ndr
, int flags
, struct spoolss_4a
*r
)
25714 if (flags
& NDR_IN
) {
25716 if (flags
& NDR_OUT
) {
25717 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25719 return NDR_ERR_SUCCESS
;
25722 _PUBLIC_
void ndr_print_spoolss_4a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4a
*r
)
25724 ndr_print_struct(ndr
, name
, "spoolss_4a");
25726 if (flags
& NDR_SET_VALUES
) {
25727 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25729 if (flags
& NDR_IN
) {
25730 ndr_print_struct(ndr
, "in", "spoolss_4a");
25734 if (flags
& NDR_OUT
) {
25735 ndr_print_struct(ndr
, "out", "spoolss_4a");
25737 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25743 static enum ndr_err_code
ndr_push_spoolss_4b(struct ndr_push
*ndr
, int flags
, const struct spoolss_4b
*r
)
25745 if (flags
& NDR_IN
) {
25747 if (flags
& NDR_OUT
) {
25748 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25750 return NDR_ERR_SUCCESS
;
25753 static enum ndr_err_code
ndr_pull_spoolss_4b(struct ndr_pull
*ndr
, int flags
, struct spoolss_4b
*r
)
25755 if (flags
& NDR_IN
) {
25757 if (flags
& NDR_OUT
) {
25758 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25760 return NDR_ERR_SUCCESS
;
25763 _PUBLIC_
void ndr_print_spoolss_4b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4b
*r
)
25765 ndr_print_struct(ndr
, name
, "spoolss_4b");
25767 if (flags
& NDR_SET_VALUES
) {
25768 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25770 if (flags
& NDR_IN
) {
25771 ndr_print_struct(ndr
, "in", "spoolss_4b");
25775 if (flags
& NDR_OUT
) {
25776 ndr_print_struct(ndr
, "out", "spoolss_4b");
25778 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25784 static enum ndr_err_code
ndr_push_spoolss_4c(struct ndr_push
*ndr
, int flags
, const struct spoolss_4c
*r
)
25786 if (flags
& NDR_IN
) {
25788 if (flags
& NDR_OUT
) {
25789 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25791 return NDR_ERR_SUCCESS
;
25794 static enum ndr_err_code
ndr_pull_spoolss_4c(struct ndr_pull
*ndr
, int flags
, struct spoolss_4c
*r
)
25796 if (flags
& NDR_IN
) {
25798 if (flags
& NDR_OUT
) {
25799 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25801 return NDR_ERR_SUCCESS
;
25804 _PUBLIC_
void ndr_print_spoolss_4c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_4c
*r
)
25806 ndr_print_struct(ndr
, name
, "spoolss_4c");
25808 if (flags
& NDR_SET_VALUES
) {
25809 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25811 if (flags
& NDR_IN
) {
25812 ndr_print_struct(ndr
, "in", "spoolss_4c");
25816 if (flags
& NDR_OUT
) {
25817 ndr_print_struct(ndr
, "out", "spoolss_4c");
25819 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25825 static enum ndr_err_code
ndr_push_spoolss_SetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
25827 if (flags
& NDR_IN
) {
25828 if (r
->in
.handle
== NULL
) {
25829 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25831 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25832 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
25833 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25834 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
25835 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
));
25836 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25837 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25838 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25839 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
));
25840 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.type
));
25841 if (r
->in
.buffer
== NULL
) {
25842 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25844 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25845 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, r
->in
.offered
));
25846 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25848 if (flags
& NDR_OUT
) {
25849 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25851 return NDR_ERR_SUCCESS
;
25854 static enum ndr_err_code
ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_SetPrinterDataEx
*r
)
25856 TALLOC_CTX
*_mem_save_handle_0
;
25857 if (flags
& NDR_IN
) {
25858 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25859 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25861 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25862 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25863 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25864 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25865 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
25866 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
25867 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
25868 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
));
25870 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
25871 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
));
25872 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
25873 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
25874 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
25875 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
));
25877 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
25878 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
));
25879 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.type
));
25880 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.buffer
));
25881 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25882 NDR_PULL_ALLOC_N(ndr
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
));
25884 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->in
.buffer
, ndr_get_array_size(ndr
, &r
->in
.buffer
)));
25885 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25886 if (r
->in
.buffer
) {
25887 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->in
.buffer
, r
->in
.offered
));
25890 if (flags
& NDR_OUT
) {
25891 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
25893 return NDR_ERR_SUCCESS
;
25896 _PUBLIC_
void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_SetPrinterDataEx
*r
)
25898 ndr_print_struct(ndr
, name
, "spoolss_SetPrinterDataEx");
25900 if (flags
& NDR_SET_VALUES
) {
25901 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
25903 if (flags
& NDR_IN
) {
25904 ndr_print_struct(ndr
, "in", "spoolss_SetPrinterDataEx");
25906 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
25908 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
25910 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
25911 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
25912 ndr_print_uint32(ndr
, "type", r
->in
.type
);
25913 ndr_print_ptr(ndr
, "buffer", r
->in
.buffer
);
25915 ndr_print_array_uint8(ndr
, "buffer", r
->in
.buffer
, r
->in
.offered
);
25917 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
25920 if (flags
& NDR_OUT
) {
25921 ndr_print_struct(ndr
, "out", "spoolss_SetPrinterDataEx");
25923 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
25929 static enum ndr_err_code
ndr_push_spoolss_GetPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
25931 if (flags
& NDR_IN
) {
25932 if (r
->in
.handle
== NULL
) {
25933 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25935 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25936 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
25937 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25938 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
25939 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
));
25940 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25941 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
25942 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
25943 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
));
25944 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25946 if (flags
& NDR_OUT
) {
25947 if (r
->out
.type
== NULL
) {
25948 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25950 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.type
));
25951 if (r
->out
.buffer
== NULL
) {
25952 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25954 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
25955 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
25956 if (r
->out
.needed
== NULL
) {
25957 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
25959 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
25960 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
25962 return NDR_ERR_SUCCESS
;
25965 static enum ndr_err_code
ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_GetPrinterDataEx
*r
)
25967 TALLOC_CTX
*_mem_save_handle_0
;
25968 TALLOC_CTX
*_mem_save_type_0
;
25969 TALLOC_CTX
*_mem_save_needed_0
;
25970 if (flags
& NDR_IN
) {
25971 ZERO_STRUCT(r
->out
);
25973 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
25974 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
25976 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
25977 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
25978 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
25979 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
25980 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
25981 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
25982 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
25983 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
));
25985 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
25986 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
));
25987 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
25988 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
25989 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
25990 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
));
25992 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
25993 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
));
25994 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
25995 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
25996 ZERO_STRUCTP(r
->out
.type
);
25997 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, r
->in
.offered
);
25998 memset(r
->out
.buffer
, 0, (r
->in
.offered
) * sizeof(*r
->out
.buffer
));
25999 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26000 ZERO_STRUCTP(r
->out
.needed
);
26002 if (flags
& NDR_OUT
) {
26003 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26004 NDR_PULL_ALLOC(ndr
, r
->out
.type
);
26006 _mem_save_type_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26007 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.type
, LIBNDR_FLAG_REF_ALLOC
);
26008 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.type
));
26009 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_type_0
, LIBNDR_FLAG_REF_ALLOC
);
26010 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
26011 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26012 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
26014 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
26015 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26016 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26018 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26019 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26020 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26021 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26022 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26023 if (r
->out
.buffer
) {
26024 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
26027 return NDR_ERR_SUCCESS
;
26030 _PUBLIC_
void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_GetPrinterDataEx
*r
)
26032 ndr_print_struct(ndr
, name
, "spoolss_GetPrinterDataEx");
26034 if (flags
& NDR_SET_VALUES
) {
26035 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26037 if (flags
& NDR_IN
) {
26038 ndr_print_struct(ndr
, "in", "spoolss_GetPrinterDataEx");
26040 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26042 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26044 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26045 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
26046 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
26049 if (flags
& NDR_OUT
) {
26050 ndr_print_struct(ndr
, "out", "spoolss_GetPrinterDataEx");
26052 ndr_print_ptr(ndr
, "type", r
->out
.type
);
26054 ndr_print_uint32(ndr
, "type", *r
->out
.type
);
26056 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
26058 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
26060 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26062 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26064 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26070 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterDataEx
*r
)
26072 if (flags
& NDR_IN
) {
26073 if (r
->in
.handle
== NULL
) {
26074 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26076 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26077 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26078 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26079 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26080 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
));
26081 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26083 if (flags
& NDR_OUT
) {
26084 if (r
->out
.buffer
== NULL
) {
26085 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26087 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.offered
));
26088 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, r
->in
.offered
));
26089 if (r
->out
.needed
== NULL
) {
26090 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26092 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26093 if (r
->out
.count
== NULL
) {
26094 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26096 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.count
));
26097 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26099 return NDR_ERR_SUCCESS
;
26102 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterDataEx
*r
)
26104 TALLOC_CTX
*_mem_save_handle_0
;
26105 TALLOC_CTX
*_mem_save_needed_0
;
26106 TALLOC_CTX
*_mem_save_count_0
;
26107 if (flags
& NDR_IN
) {
26108 ZERO_STRUCT(r
->out
);
26110 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26111 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26113 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26114 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26115 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26116 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26117 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
26118 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
26119 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
26120 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
));
26122 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
26123 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
));
26124 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.offered
));
26125 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, r
->in
.offered
);
26126 memset(r
->out
.buffer
, 0, (r
->in
.offered
) * sizeof(*r
->out
.buffer
));
26127 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26128 ZERO_STRUCTP(r
->out
.needed
);
26129 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
26130 ZERO_STRUCTP(r
->out
.count
);
26132 if (flags
& NDR_OUT
) {
26133 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.buffer
));
26134 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26135 NDR_PULL_ALLOC_N(ndr
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
));
26137 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.buffer
, ndr_get_array_size(ndr
, &r
->out
.buffer
)));
26138 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26139 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26141 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26142 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26143 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26144 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26145 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26146 NDR_PULL_ALLOC(ndr
, r
->out
.count
);
26148 _mem_save_count_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26149 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.count
, LIBNDR_FLAG_REF_ALLOC
);
26150 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.count
));
26151 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_count_0
, LIBNDR_FLAG_REF_ALLOC
);
26152 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26153 if (r
->out
.buffer
) {
26154 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.buffer
, r
->in
.offered
));
26157 return NDR_ERR_SUCCESS
;
26160 _PUBLIC_
void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterDataEx
*r
)
26162 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterDataEx");
26164 if (flags
& NDR_SET_VALUES
) {
26165 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26167 if (flags
& NDR_IN
) {
26168 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterDataEx");
26170 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26172 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26174 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26175 ndr_print_uint32(ndr
, "offered", r
->in
.offered
);
26178 if (flags
& NDR_OUT
) {
26179 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterDataEx");
26181 ndr_print_ptr(ndr
, "buffer", r
->out
.buffer
);
26183 ndr_print_array_uint8(ndr
, "buffer", r
->out
.buffer
, r
->in
.offered
);
26185 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26187 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26189 ndr_print_ptr(ndr
, "count", r
->out
.count
);
26191 ndr_print_uint32(ndr
, "count", *r
->out
.count
);
26193 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26199 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_EnumPrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
26201 uint32_t cntr_key_buffer_1
;
26202 if (flags
& NDR_IN
) {
26203 if (r
->in
.handle
== NULL
) {
26204 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26206 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26207 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26208 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26209 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26210 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
));
26211 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.key_buffer_size
));
26213 if (flags
& NDR_OUT
) {
26214 if (r
->out
.key_buffer
== NULL
) {
26215 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26217 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.key_buffer_size
/ 2));
26218 for (cntr_key_buffer_1
= 0; cntr_key_buffer_1
< r
->in
.key_buffer_size
/ 2; cntr_key_buffer_1
++) {
26219 NDR_CHECK(ndr_push_uint16(ndr
, NDR_SCALARS
, r
->out
.key_buffer
[cntr_key_buffer_1
]));
26221 if (r
->out
.needed
== NULL
) {
26222 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26224 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26225 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26227 return NDR_ERR_SUCCESS
;
26230 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_EnumPrinterKey
*r
)
26232 uint32_t cntr_key_buffer_1
;
26233 TALLOC_CTX
*_mem_save_handle_0
;
26234 TALLOC_CTX
*_mem_save_key_buffer_1
;
26235 TALLOC_CTX
*_mem_save_needed_0
;
26236 if (flags
& NDR_IN
) {
26237 ZERO_STRUCT(r
->out
);
26239 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26240 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26242 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26243 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26244 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26245 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26246 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
26247 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
26248 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
26249 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
));
26251 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
26252 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
));
26253 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.key_buffer_size
));
26254 NDR_PULL_ALLOC_N(ndr
, r
->out
.key_buffer
, r
->in
.key_buffer_size
/ 2);
26255 memset(r
->out
.key_buffer
, 0, (r
->in
.key_buffer_size
/ 2) * sizeof(*r
->out
.key_buffer
));
26256 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26257 ZERO_STRUCTP(r
->out
.needed
);
26259 if (flags
& NDR_OUT
) {
26260 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.key_buffer
));
26261 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26262 NDR_PULL_ALLOC_N(ndr
, r
->out
.key_buffer
, ndr_get_array_size(ndr
, &r
->out
.key_buffer
));
26264 _mem_save_key_buffer_1
= NDR_PULL_GET_MEM_CTX(ndr
);
26265 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.key_buffer
, 0);
26266 for (cntr_key_buffer_1
= 0; cntr_key_buffer_1
< r
->in
.key_buffer_size
/ 2; cntr_key_buffer_1
++) {
26267 NDR_CHECK(ndr_pull_uint16(ndr
, NDR_SCALARS
, &r
->out
.key_buffer
[cntr_key_buffer_1
]));
26269 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_key_buffer_1
, 0);
26270 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26271 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26273 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26274 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26275 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26276 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26277 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26278 if (r
->out
.key_buffer
) {
26279 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.key_buffer
, r
->in
.key_buffer_size
/ 2));
26282 return NDR_ERR_SUCCESS
;
26285 _PUBLIC_
void ndr_print_spoolss_EnumPrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_EnumPrinterKey
*r
)
26287 uint32_t cntr_key_buffer_1
;
26288 ndr_print_struct(ndr
, name
, "spoolss_EnumPrinterKey");
26290 if (flags
& NDR_SET_VALUES
) {
26291 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26293 if (flags
& NDR_IN
) {
26294 ndr_print_struct(ndr
, "in", "spoolss_EnumPrinterKey");
26296 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26298 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26300 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26301 ndr_print_uint32(ndr
, "key_buffer_size", r
->in
.key_buffer_size
);
26304 if (flags
& NDR_OUT
) {
26305 ndr_print_struct(ndr
, "out", "spoolss_EnumPrinterKey");
26307 ndr_print_ptr(ndr
, "key_buffer", r
->out
.key_buffer
);
26309 ndr
->print(ndr
, "%s: ARRAY(%d)", "key_buffer", (int)r
->in
.key_buffer_size
/ 2);
26311 for (cntr_key_buffer_1
=0;cntr_key_buffer_1
<r
->in
.key_buffer_size
/ 2;cntr_key_buffer_1
++) {
26313 if (asprintf(&idx_1
, "[%d]", cntr_key_buffer_1
) != -1) {
26314 ndr_print_uint16(ndr
, "key_buffer", r
->out
.key_buffer
[cntr_key_buffer_1
]);
26320 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26322 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26324 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26330 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
26332 if (flags
& NDR_IN
) {
26333 if (r
->in
.handle
== NULL
) {
26334 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26336 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26337 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26338 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26339 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26340 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
));
26341 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
26342 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26343 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.value_name
, CH_UTF16
)));
26344 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
));
26346 if (flags
& NDR_OUT
) {
26347 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26349 return NDR_ERR_SUCCESS
;
26352 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDataEx
*r
)
26354 TALLOC_CTX
*_mem_save_handle_0
;
26355 if (flags
& NDR_IN
) {
26356 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26357 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26359 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26360 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26361 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26362 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26363 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
26364 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
26365 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
26366 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
));
26368 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
26369 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
));
26370 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.value_name
));
26371 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.value_name
));
26372 if (ndr_get_array_length(ndr
, &r
->in
.value_name
) > ndr_get_array_size(ndr
, &r
->in
.value_name
)) {
26373 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
));
26375 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.value_name
), sizeof(uint16_t)));
26376 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
));
26378 if (flags
& NDR_OUT
) {
26379 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26381 return NDR_ERR_SUCCESS
;
26384 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDataEx
*r
)
26386 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDataEx");
26388 if (flags
& NDR_SET_VALUES
) {
26389 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26391 if (flags
& NDR_IN
) {
26392 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDataEx");
26394 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26396 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26398 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26399 ndr_print_string(ndr
, "value_name", r
->in
.value_name
);
26402 if (flags
& NDR_OUT
) {
26403 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDataEx");
26405 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26411 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterKey(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
26413 if (flags
& NDR_IN
) {
26414 if (r
->in
.handle
== NULL
) {
26415 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26417 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26418 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26419 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26420 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.key_name
, CH_UTF16
)));
26421 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
));
26423 if (flags
& NDR_OUT
) {
26424 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26426 return NDR_ERR_SUCCESS
;
26429 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterKey
*r
)
26431 TALLOC_CTX
*_mem_save_handle_0
;
26432 if (flags
& NDR_IN
) {
26433 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26434 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26436 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26437 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26438 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26439 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26440 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.key_name
));
26441 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.key_name
));
26442 if (ndr_get_array_length(ndr
, &r
->in
.key_name
) > ndr_get_array_size(ndr
, &r
->in
.key_name
)) {
26443 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
));
26445 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.key_name
), sizeof(uint16_t)));
26446 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
));
26448 if (flags
& NDR_OUT
) {
26449 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26451 return NDR_ERR_SUCCESS
;
26454 _PUBLIC_
void ndr_print_spoolss_DeletePrinterKey(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterKey
*r
)
26456 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterKey");
26458 if (flags
& NDR_SET_VALUES
) {
26459 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26461 if (flags
& NDR_IN
) {
26462 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterKey");
26464 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26466 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26468 ndr_print_string(ndr
, "key_name", r
->in
.key_name
);
26471 if (flags
& NDR_OUT
) {
26472 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterKey");
26474 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26480 static enum ndr_err_code
ndr_push_spoolss_53(struct ndr_push
*ndr
, int flags
, const struct spoolss_53
*r
)
26482 if (flags
& NDR_IN
) {
26484 if (flags
& NDR_OUT
) {
26485 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26487 return NDR_ERR_SUCCESS
;
26490 static enum ndr_err_code
ndr_pull_spoolss_53(struct ndr_pull
*ndr
, int flags
, struct spoolss_53
*r
)
26492 if (flags
& NDR_IN
) {
26494 if (flags
& NDR_OUT
) {
26495 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26497 return NDR_ERR_SUCCESS
;
26500 _PUBLIC_
void ndr_print_spoolss_53(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_53
*r
)
26502 ndr_print_struct(ndr
, name
, "spoolss_53");
26504 if (flags
& NDR_SET_VALUES
) {
26505 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26507 if (flags
& NDR_IN
) {
26508 ndr_print_struct(ndr
, "in", "spoolss_53");
26512 if (flags
& NDR_OUT
) {
26513 ndr_print_struct(ndr
, "out", "spoolss_53");
26515 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26521 static enum ndr_err_code
ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
26523 if (flags
& NDR_IN
) {
26524 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.server
));
26525 if (r
->in
.server
) {
26526 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
26527 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26528 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.server
, CH_UTF16
)));
26529 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.server
, ndr_charset_length(r
->in
.server
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26531 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
26532 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26533 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
)));
26534 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.architecture
, ndr_charset_length(r
->in
.architecture
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26535 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
26536 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26537 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.driver
, CH_UTF16
)));
26538 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.driver
, ndr_charset_length(r
->in
.driver
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26539 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, r
->in
.delete_flags
));
26540 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.version
));
26542 if (flags
& NDR_OUT
) {
26543 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26545 return NDR_ERR_SUCCESS
;
26548 static enum ndr_err_code
ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_DeletePrinterDriverEx
*r
)
26550 uint32_t _ptr_server
;
26551 TALLOC_CTX
*_mem_save_server_0
;
26552 if (flags
& NDR_IN
) {
26553 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_server
));
26555 NDR_PULL_ALLOC(ndr
, r
->in
.server
);
26557 r
->in
.server
= NULL
;
26559 if (r
->in
.server
) {
26560 _mem_save_server_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26561 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.server
, 0);
26562 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.server
));
26563 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.server
));
26564 if (ndr_get_array_length(ndr
, &r
->in
.server
) > ndr_get_array_size(ndr
, &r
->in
.server
)) {
26565 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
));
26567 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t)));
26568 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.server
, ndr_get_array_length(ndr
, &r
->in
.server
), sizeof(uint16_t), CH_UTF16
));
26569 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_server_0
, 0);
26571 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.architecture
));
26572 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.architecture
));
26573 if (ndr_get_array_length(ndr
, &r
->in
.architecture
) > ndr_get_array_size(ndr
, &r
->in
.architecture
)) {
26574 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
));
26576 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t)));
26577 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.architecture
, ndr_get_array_length(ndr
, &r
->in
.architecture
), sizeof(uint16_t), CH_UTF16
));
26578 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.driver
));
26579 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.driver
));
26580 if (ndr_get_array_length(ndr
, &r
->in
.driver
) > ndr_get_array_size(ndr
, &r
->in
.driver
)) {
26581 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
));
26583 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t)));
26584 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.driver
, ndr_get_array_length(ndr
, &r
->in
.driver
), sizeof(uint16_t), CH_UTF16
));
26585 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr
, NDR_SCALARS
, &r
->in
.delete_flags
));
26586 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.version
));
26588 if (flags
& NDR_OUT
) {
26589 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26591 return NDR_ERR_SUCCESS
;
26594 _PUBLIC_
void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_DeletePrinterDriverEx
*r
)
26596 ndr_print_struct(ndr
, name
, "spoolss_DeletePrinterDriverEx");
26598 if (flags
& NDR_SET_VALUES
) {
26599 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26601 if (flags
& NDR_IN
) {
26602 ndr_print_struct(ndr
, "in", "spoolss_DeletePrinterDriverEx");
26604 ndr_print_ptr(ndr
, "server", r
->in
.server
);
26606 if (r
->in
.server
) {
26607 ndr_print_string(ndr
, "server", r
->in
.server
);
26610 ndr_print_string(ndr
, "architecture", r
->in
.architecture
);
26611 ndr_print_string(ndr
, "driver", r
->in
.driver
);
26612 ndr_print_spoolss_DeleteDriverFlags(ndr
, "delete_flags", r
->in
.delete_flags
);
26613 ndr_print_uint32(ndr
, "version", r
->in
.version
);
26616 if (flags
& NDR_OUT
) {
26617 ndr_print_struct(ndr
, "out", "spoolss_DeletePrinterDriverEx");
26619 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26625 static enum ndr_err_code
ndr_push_spoolss_55(struct ndr_push
*ndr
, int flags
, const struct spoolss_55
*r
)
26627 if (flags
& NDR_IN
) {
26629 if (flags
& NDR_OUT
) {
26630 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26632 return NDR_ERR_SUCCESS
;
26635 static enum ndr_err_code
ndr_pull_spoolss_55(struct ndr_pull
*ndr
, int flags
, struct spoolss_55
*r
)
26637 if (flags
& NDR_IN
) {
26639 if (flags
& NDR_OUT
) {
26640 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26642 return NDR_ERR_SUCCESS
;
26645 _PUBLIC_
void ndr_print_spoolss_55(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_55
*r
)
26647 ndr_print_struct(ndr
, name
, "spoolss_55");
26649 if (flags
& NDR_SET_VALUES
) {
26650 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26652 if (flags
& NDR_IN
) {
26653 ndr_print_struct(ndr
, "in", "spoolss_55");
26657 if (flags
& NDR_OUT
) {
26658 ndr_print_struct(ndr
, "out", "spoolss_55");
26660 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26666 static enum ndr_err_code
ndr_push_spoolss_56(struct ndr_push
*ndr
, int flags
, const struct spoolss_56
*r
)
26668 if (flags
& NDR_IN
) {
26670 if (flags
& NDR_OUT
) {
26671 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26673 return NDR_ERR_SUCCESS
;
26676 static enum ndr_err_code
ndr_pull_spoolss_56(struct ndr_pull
*ndr
, int flags
, struct spoolss_56
*r
)
26678 if (flags
& NDR_IN
) {
26680 if (flags
& NDR_OUT
) {
26681 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26683 return NDR_ERR_SUCCESS
;
26686 _PUBLIC_
void ndr_print_spoolss_56(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_56
*r
)
26688 ndr_print_struct(ndr
, name
, "spoolss_56");
26690 if (flags
& NDR_SET_VALUES
) {
26691 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26693 if (flags
& NDR_IN
) {
26694 ndr_print_struct(ndr
, "in", "spoolss_56");
26698 if (flags
& NDR_OUT
) {
26699 ndr_print_struct(ndr
, "out", "spoolss_56");
26701 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26707 static enum ndr_err_code
ndr_push_spoolss_57(struct ndr_push
*ndr
, int flags
, const struct spoolss_57
*r
)
26709 if (flags
& NDR_IN
) {
26711 if (flags
& NDR_OUT
) {
26712 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26714 return NDR_ERR_SUCCESS
;
26717 static enum ndr_err_code
ndr_pull_spoolss_57(struct ndr_pull
*ndr
, int flags
, struct spoolss_57
*r
)
26719 if (flags
& NDR_IN
) {
26721 if (flags
& NDR_OUT
) {
26722 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26724 return NDR_ERR_SUCCESS
;
26727 _PUBLIC_
void ndr_print_spoolss_57(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_57
*r
)
26729 ndr_print_struct(ndr
, name
, "spoolss_57");
26731 if (flags
& NDR_SET_VALUES
) {
26732 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26734 if (flags
& NDR_IN
) {
26735 ndr_print_struct(ndr
, "in", "spoolss_57");
26739 if (flags
& NDR_OUT
) {
26740 ndr_print_struct(ndr
, "out", "spoolss_57");
26742 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26748 static enum ndr_err_code
ndr_push_spoolss_XcvData(struct ndr_push
*ndr
, int flags
, const struct spoolss_XcvData
*r
)
26750 if (flags
& NDR_IN
) {
26751 if (r
->in
.handle
== NULL
) {
26752 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26754 NDR_CHECK(ndr_push_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26755 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
26756 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26757 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.function_name
, CH_UTF16
)));
26758 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
));
26759 NDR_CHECK(ndr_push_DATA_BLOB(ndr
, NDR_SCALARS
, r
->in
.in_data
));
26760 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.in_data
.length
));
26761 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
26762 if (r
->in
.status_code
== NULL
) {
26763 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26765 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->in
.status_code
));
26767 if (flags
& NDR_OUT
) {
26768 if (r
->out
.out_data
== NULL
) {
26769 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26771 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, r
->in
.out_data_size
));
26772 NDR_CHECK(ndr_push_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, r
->in
.out_data_size
));
26773 if (r
->out
.needed
== NULL
) {
26774 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26776 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.needed
));
26777 if (r
->out
.status_code
== NULL
) {
26778 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26780 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, *r
->out
.status_code
));
26781 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26783 return NDR_ERR_SUCCESS
;
26786 static enum ndr_err_code
ndr_pull_spoolss_XcvData(struct ndr_pull
*ndr
, int flags
, struct spoolss_XcvData
*r
)
26788 TALLOC_CTX
*_mem_save_handle_0
;
26789 TALLOC_CTX
*_mem_save_needed_0
;
26790 TALLOC_CTX
*_mem_save_status_code_0
;
26791 if (flags
& NDR_IN
) {
26792 ZERO_STRUCT(r
->out
);
26794 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26795 NDR_PULL_ALLOC(ndr
, r
->in
.handle
);
26797 _mem_save_handle_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26798 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.handle
, LIBNDR_FLAG_REF_ALLOC
);
26799 NDR_CHECK(ndr_pull_policy_handle(ndr
, NDR_SCALARS
, r
->in
.handle
));
26800 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_handle_0
, LIBNDR_FLAG_REF_ALLOC
);
26801 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.function_name
));
26802 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.function_name
));
26803 if (ndr_get_array_length(ndr
, &r
->in
.function_name
) > ndr_get_array_size(ndr
, &r
->in
.function_name
)) {
26804 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
));
26806 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.function_name
), sizeof(uint16_t)));
26807 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
));
26808 NDR_CHECK(ndr_pull_DATA_BLOB(ndr
, NDR_SCALARS
, &r
->in
.in_data
));
26809 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
._in_data_length
));
26810 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, &r
->in
.out_data_size
));
26811 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26812 NDR_PULL_ALLOC(ndr
, r
->in
.status_code
);
26814 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26815 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
26816 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->in
.status_code
));
26817 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
26818 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, r
->in
.out_data_size
);
26819 memset(r
->out
.out_data
, 0, (r
->in
.out_data_size
) * sizeof(*r
->out
.out_data
));
26820 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26821 ZERO_STRUCTP(r
->out
.needed
);
26822 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
26823 *r
->out
.status_code
= *r
->in
.status_code
;
26825 if (flags
& NDR_OUT
) {
26826 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->out
.out_data
));
26827 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26828 NDR_PULL_ALLOC_N(ndr
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
));
26830 NDR_CHECK(ndr_pull_array_uint8(ndr
, NDR_SCALARS
, r
->out
.out_data
, ndr_get_array_size(ndr
, &r
->out
.out_data
)));
26831 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26832 NDR_PULL_ALLOC(ndr
, r
->out
.needed
);
26834 _mem_save_needed_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26835 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.needed
, LIBNDR_FLAG_REF_ALLOC
);
26836 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.needed
));
26837 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_needed_0
, LIBNDR_FLAG_REF_ALLOC
);
26838 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26839 NDR_PULL_ALLOC(ndr
, r
->out
.status_code
);
26841 _mem_save_status_code_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26842 NDR_PULL_SET_MEM_CTX(ndr
, r
->out
.status_code
, LIBNDR_FLAG_REF_ALLOC
);
26843 NDR_CHECK(ndr_pull_uint32(ndr
, NDR_SCALARS
, r
->out
.status_code
));
26844 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_status_code_0
, LIBNDR_FLAG_REF_ALLOC
);
26845 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26846 if (r
->out
.out_data
) {
26847 NDR_CHECK(ndr_check_array_size(ndr
, (void*)&r
->out
.out_data
, r
->in
.out_data_size
));
26850 return NDR_ERR_SUCCESS
;
26853 _PUBLIC_
void ndr_print_spoolss_XcvData(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_XcvData
*r
)
26855 ndr_print_struct(ndr
, name
, "spoolss_XcvData");
26857 if (flags
& NDR_SET_VALUES
) {
26858 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26860 if (flags
& NDR_IN
) {
26861 ndr_print_struct(ndr
, "in", "spoolss_XcvData");
26863 ndr_print_ptr(ndr
, "handle", r
->in
.handle
);
26865 ndr_print_policy_handle(ndr
, "handle", r
->in
.handle
);
26867 ndr_print_string(ndr
, "function_name", r
->in
.function_name
);
26868 ndr_print_DATA_BLOB(ndr
, "in_data", r
->in
.in_data
);
26869 ndr_print_uint32(ndr
, "_in_data_length", (ndr
->flags
& LIBNDR_PRINT_SET_VALUES
)?r
->in
.in_data
.length
:r
->in
._in_data_length
);
26870 ndr_print_uint32(ndr
, "out_data_size", r
->in
.out_data_size
);
26871 ndr_print_ptr(ndr
, "status_code", r
->in
.status_code
);
26873 ndr_print_uint32(ndr
, "status_code", *r
->in
.status_code
);
26877 if (flags
& NDR_OUT
) {
26878 ndr_print_struct(ndr
, "out", "spoolss_XcvData");
26880 ndr_print_ptr(ndr
, "out_data", r
->out
.out_data
);
26882 ndr_print_array_uint8(ndr
, "out_data", r
->out
.out_data
, r
->in
.out_data_size
);
26884 ndr_print_ptr(ndr
, "needed", r
->out
.needed
);
26886 ndr_print_uint32(ndr
, "needed", *r
->out
.needed
);
26888 ndr_print_ptr(ndr
, "status_code", r
->out
.status_code
);
26890 ndr_print_uint32(ndr
, "status_code", *r
->out
.status_code
);
26892 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26898 _PUBLIC_
enum ndr_err_code
ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push
*ndr
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
26900 if (flags
& NDR_IN
) {
26901 NDR_CHECK(ndr_push_unique_ptr(ndr
, r
->in
.servername
));
26902 if (r
->in
.servername
) {
26903 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
26904 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, 0));
26905 NDR_CHECK(ndr_push_uint32(ndr
, NDR_SCALARS
, ndr_charset_length(r
->in
.servername
, CH_UTF16
)));
26906 NDR_CHECK(ndr_push_charset(ndr
, NDR_SCALARS
, r
->in
.servername
, ndr_charset_length(r
->in
.servername
, CH_UTF16
), sizeof(uint16_t), CH_UTF16
));
26908 if (r
->in
.info_ctr
== NULL
) {
26909 return ndr_push_error(ndr
, NDR_ERR_INVALID_POINTER
, "NULL [ref] pointer");
26911 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
26912 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, r
->in
.flags
));
26914 if (flags
& NDR_OUT
) {
26915 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26917 return NDR_ERR_SUCCESS
;
26920 _PUBLIC_
enum ndr_err_code
ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull
*ndr
, int flags
, struct spoolss_AddPrinterDriverEx
*r
)
26922 uint32_t _ptr_servername
;
26923 TALLOC_CTX
*_mem_save_servername_0
;
26924 TALLOC_CTX
*_mem_save_info_ctr_0
;
26925 if (flags
& NDR_IN
) {
26926 NDR_CHECK(ndr_pull_generic_ptr(ndr
, &_ptr_servername
));
26927 if (_ptr_servername
) {
26928 NDR_PULL_ALLOC(ndr
, r
->in
.servername
);
26930 r
->in
.servername
= NULL
;
26932 if (r
->in
.servername
) {
26933 _mem_save_servername_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26934 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.servername
, 0);
26935 NDR_CHECK(ndr_pull_array_size(ndr
, &r
->in
.servername
));
26936 NDR_CHECK(ndr_pull_array_length(ndr
, &r
->in
.servername
));
26937 if (ndr_get_array_length(ndr
, &r
->in
.servername
) > ndr_get_array_size(ndr
, &r
->in
.servername
)) {
26938 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
));
26940 NDR_CHECK(ndr_check_string_terminator(ndr
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t)));
26941 NDR_CHECK(ndr_pull_charset(ndr
, NDR_SCALARS
, &r
->in
.servername
, ndr_get_array_length(ndr
, &r
->in
.servername
), sizeof(uint16_t), CH_UTF16
));
26942 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_servername_0
, 0);
26944 if (ndr
->flags
& LIBNDR_FLAG_REF_ALLOC
) {
26945 NDR_PULL_ALLOC(ndr
, r
->in
.info_ctr
);
26947 _mem_save_info_ctr_0
= NDR_PULL_GET_MEM_CTX(ndr
);
26948 NDR_PULL_SET_MEM_CTX(ndr
, r
->in
.info_ctr
, LIBNDR_FLAG_REF_ALLOC
);
26949 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr
, NDR_SCALARS
|NDR_BUFFERS
, r
->in
.info_ctr
));
26950 NDR_PULL_SET_MEM_CTX(ndr
, _mem_save_info_ctr_0
, LIBNDR_FLAG_REF_ALLOC
);
26951 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr
, NDR_SCALARS
, &r
->in
.flags
));
26953 if (flags
& NDR_OUT
) {
26954 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
26956 return NDR_ERR_SUCCESS
;
26959 _PUBLIC_
void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_AddPrinterDriverEx
*r
)
26961 ndr_print_struct(ndr
, name
, "spoolss_AddPrinterDriverEx");
26963 if (flags
& NDR_SET_VALUES
) {
26964 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
26966 if (flags
& NDR_IN
) {
26967 ndr_print_struct(ndr
, "in", "spoolss_AddPrinterDriverEx");
26969 ndr_print_ptr(ndr
, "servername", r
->in
.servername
);
26971 if (r
->in
.servername
) {
26972 ndr_print_string(ndr
, "servername", r
->in
.servername
);
26975 ndr_print_ptr(ndr
, "info_ctr", r
->in
.info_ctr
);
26977 ndr_print_spoolss_AddDriverInfoCtr(ndr
, "info_ctr", r
->in
.info_ctr
);
26979 ndr_print_spoolss_AddPrinterDriverExFlags(ndr
, "flags", r
->in
.flags
);
26982 if (flags
& NDR_OUT
) {
26983 ndr_print_struct(ndr
, "out", "spoolss_AddPrinterDriverEx");
26985 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
26991 static enum ndr_err_code
ndr_push_spoolss_5a(struct ndr_push
*ndr
, int flags
, const struct spoolss_5a
*r
)
26993 if (flags
& NDR_IN
) {
26995 if (flags
& NDR_OUT
) {
26996 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
26998 return NDR_ERR_SUCCESS
;
27001 static enum ndr_err_code
ndr_pull_spoolss_5a(struct ndr_pull
*ndr
, int flags
, struct spoolss_5a
*r
)
27003 if (flags
& NDR_IN
) {
27005 if (flags
& NDR_OUT
) {
27006 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27008 return NDR_ERR_SUCCESS
;
27011 _PUBLIC_
void ndr_print_spoolss_5a(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5a
*r
)
27013 ndr_print_struct(ndr
, name
, "spoolss_5a");
27015 if (flags
& NDR_SET_VALUES
) {
27016 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27018 if (flags
& NDR_IN
) {
27019 ndr_print_struct(ndr
, "in", "spoolss_5a");
27023 if (flags
& NDR_OUT
) {
27024 ndr_print_struct(ndr
, "out", "spoolss_5a");
27026 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27032 static enum ndr_err_code
ndr_push_spoolss_5b(struct ndr_push
*ndr
, int flags
, const struct spoolss_5b
*r
)
27034 if (flags
& NDR_IN
) {
27036 if (flags
& NDR_OUT
) {
27037 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27039 return NDR_ERR_SUCCESS
;
27042 static enum ndr_err_code
ndr_pull_spoolss_5b(struct ndr_pull
*ndr
, int flags
, struct spoolss_5b
*r
)
27044 if (flags
& NDR_IN
) {
27046 if (flags
& NDR_OUT
) {
27047 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27049 return NDR_ERR_SUCCESS
;
27052 _PUBLIC_
void ndr_print_spoolss_5b(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5b
*r
)
27054 ndr_print_struct(ndr
, name
, "spoolss_5b");
27056 if (flags
& NDR_SET_VALUES
) {
27057 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27059 if (flags
& NDR_IN
) {
27060 ndr_print_struct(ndr
, "in", "spoolss_5b");
27064 if (flags
& NDR_OUT
) {
27065 ndr_print_struct(ndr
, "out", "spoolss_5b");
27067 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27073 static enum ndr_err_code
ndr_push_spoolss_5c(struct ndr_push
*ndr
, int flags
, const struct spoolss_5c
*r
)
27075 if (flags
& NDR_IN
) {
27077 if (flags
& NDR_OUT
) {
27078 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27080 return NDR_ERR_SUCCESS
;
27083 static enum ndr_err_code
ndr_pull_spoolss_5c(struct ndr_pull
*ndr
, int flags
, struct spoolss_5c
*r
)
27085 if (flags
& NDR_IN
) {
27087 if (flags
& NDR_OUT
) {
27088 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27090 return NDR_ERR_SUCCESS
;
27093 _PUBLIC_
void ndr_print_spoolss_5c(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5c
*r
)
27095 ndr_print_struct(ndr
, name
, "spoolss_5c");
27097 if (flags
& NDR_SET_VALUES
) {
27098 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27100 if (flags
& NDR_IN
) {
27101 ndr_print_struct(ndr
, "in", "spoolss_5c");
27105 if (flags
& NDR_OUT
) {
27106 ndr_print_struct(ndr
, "out", "spoolss_5c");
27108 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27114 static enum ndr_err_code
ndr_push_spoolss_5d(struct ndr_push
*ndr
, int flags
, const struct spoolss_5d
*r
)
27116 if (flags
& NDR_IN
) {
27118 if (flags
& NDR_OUT
) {
27119 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27121 return NDR_ERR_SUCCESS
;
27124 static enum ndr_err_code
ndr_pull_spoolss_5d(struct ndr_pull
*ndr
, int flags
, struct spoolss_5d
*r
)
27126 if (flags
& NDR_IN
) {
27128 if (flags
& NDR_OUT
) {
27129 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27131 return NDR_ERR_SUCCESS
;
27134 _PUBLIC_
void ndr_print_spoolss_5d(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5d
*r
)
27136 ndr_print_struct(ndr
, name
, "spoolss_5d");
27138 if (flags
& NDR_SET_VALUES
) {
27139 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27141 if (flags
& NDR_IN
) {
27142 ndr_print_struct(ndr
, "in", "spoolss_5d");
27146 if (flags
& NDR_OUT
) {
27147 ndr_print_struct(ndr
, "out", "spoolss_5d");
27149 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27155 static enum ndr_err_code
ndr_push_spoolss_5e(struct ndr_push
*ndr
, int flags
, const struct spoolss_5e
*r
)
27157 if (flags
& NDR_IN
) {
27159 if (flags
& NDR_OUT
) {
27160 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27162 return NDR_ERR_SUCCESS
;
27165 static enum ndr_err_code
ndr_pull_spoolss_5e(struct ndr_pull
*ndr
, int flags
, struct spoolss_5e
*r
)
27167 if (flags
& NDR_IN
) {
27169 if (flags
& NDR_OUT
) {
27170 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27172 return NDR_ERR_SUCCESS
;
27175 _PUBLIC_
void ndr_print_spoolss_5e(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5e
*r
)
27177 ndr_print_struct(ndr
, name
, "spoolss_5e");
27179 if (flags
& NDR_SET_VALUES
) {
27180 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27182 if (flags
& NDR_IN
) {
27183 ndr_print_struct(ndr
, "in", "spoolss_5e");
27187 if (flags
& NDR_OUT
) {
27188 ndr_print_struct(ndr
, "out", "spoolss_5e");
27190 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27196 static enum ndr_err_code
ndr_push_spoolss_5f(struct ndr_push
*ndr
, int flags
, const struct spoolss_5f
*r
)
27198 if (flags
& NDR_IN
) {
27200 if (flags
& NDR_OUT
) {
27201 NDR_CHECK(ndr_push_WERROR(ndr
, NDR_SCALARS
, r
->out
.result
));
27203 return NDR_ERR_SUCCESS
;
27206 static enum ndr_err_code
ndr_pull_spoolss_5f(struct ndr_pull
*ndr
, int flags
, struct spoolss_5f
*r
)
27208 if (flags
& NDR_IN
) {
27210 if (flags
& NDR_OUT
) {
27211 NDR_CHECK(ndr_pull_WERROR(ndr
, NDR_SCALARS
, &r
->out
.result
));
27213 return NDR_ERR_SUCCESS
;
27216 _PUBLIC_
void ndr_print_spoolss_5f(struct ndr_print
*ndr
, const char *name
, int flags
, const struct spoolss_5f
*r
)
27218 ndr_print_struct(ndr
, name
, "spoolss_5f");
27220 if (flags
& NDR_SET_VALUES
) {
27221 ndr
->flags
|= LIBNDR_PRINT_SET_VALUES
;
27223 if (flags
& NDR_IN
) {
27224 ndr_print_struct(ndr
, "in", "spoolss_5f");
27228 if (flags
& NDR_OUT
) {
27229 ndr_print_struct(ndr
, "out", "spoolss_5f");
27231 ndr_print_WERROR(ndr
, "result", r
->out
.result
);
27237 static const struct ndr_interface_call spoolss_calls
[] = {
27239 "spoolss_EnumPrinters",
27240 sizeof(struct spoolss_EnumPrinters
),
27241 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinters
,
27242 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinters
,
27243 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinters
,
27247 "spoolss_OpenPrinter",
27248 sizeof(struct spoolss_OpenPrinter
),
27249 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinter
,
27250 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinter
,
27251 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinter
,
27256 sizeof(struct spoolss_SetJob
),
27257 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetJob
,
27258 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetJob
,
27259 (ndr_print_function_t
) ndr_print_spoolss_SetJob
,
27264 sizeof(struct spoolss_GetJob
),
27265 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetJob
,
27266 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetJob
,
27267 (ndr_print_function_t
) ndr_print_spoolss_GetJob
,
27271 "spoolss_EnumJobs",
27272 sizeof(struct spoolss_EnumJobs
),
27273 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumJobs
,
27274 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumJobs
,
27275 (ndr_print_function_t
) ndr_print_spoolss_EnumJobs
,
27279 "spoolss_AddPrinter",
27280 sizeof(struct spoolss_AddPrinter
),
27281 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinter
,
27282 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinter
,
27283 (ndr_print_function_t
) ndr_print_spoolss_AddPrinter
,
27287 "spoolss_DeletePrinter",
27288 sizeof(struct spoolss_DeletePrinter
),
27289 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinter
,
27290 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinter
,
27291 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinter
,
27295 "spoolss_SetPrinter",
27296 sizeof(struct spoolss_SetPrinter
),
27297 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinter
,
27298 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinter
,
27299 (ndr_print_function_t
) ndr_print_spoolss_SetPrinter
,
27303 "spoolss_GetPrinter",
27304 sizeof(struct spoolss_GetPrinter
),
27305 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinter
,
27306 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinter
,
27307 (ndr_print_function_t
) ndr_print_spoolss_GetPrinter
,
27311 "spoolss_AddPrinterDriver",
27312 sizeof(struct spoolss_AddPrinterDriver
),
27313 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriver
,
27314 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriver
,
27315 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriver
,
27319 "spoolss_EnumPrinterDrivers",
27320 sizeof(struct spoolss_EnumPrinterDrivers
),
27321 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDrivers
,
27322 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDrivers
,
27323 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDrivers
,
27327 "spoolss_GetPrinterDriver",
27328 sizeof(struct spoolss_GetPrinterDriver
),
27329 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver
,
27330 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver
,
27331 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver
,
27335 "spoolss_GetPrinterDriverDirectory",
27336 sizeof(struct spoolss_GetPrinterDriverDirectory
),
27337 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriverDirectory
,
27338 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriverDirectory
,
27339 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriverDirectory
,
27343 "spoolss_DeletePrinterDriver",
27344 sizeof(struct spoolss_DeletePrinterDriver
),
27345 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriver
,
27346 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriver
,
27347 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriver
,
27351 "spoolss_AddPrintProcessor",
27352 sizeof(struct spoolss_AddPrintProcessor
),
27353 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProcessor
,
27354 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProcessor
,
27355 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProcessor
,
27359 "spoolss_EnumPrintProcessors",
27360 sizeof(struct spoolss_EnumPrintProcessors
),
27361 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcessors
,
27362 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcessors
,
27363 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcessors
,
27367 "spoolss_GetPrintProcessorDirectory",
27368 sizeof(struct spoolss_GetPrintProcessorDirectory
),
27369 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrintProcessorDirectory
,
27370 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrintProcessorDirectory
,
27371 (ndr_print_function_t
) ndr_print_spoolss_GetPrintProcessorDirectory
,
27375 "spoolss_StartDocPrinter",
27376 sizeof(struct spoolss_StartDocPrinter
),
27377 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartDocPrinter
,
27378 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartDocPrinter
,
27379 (ndr_print_function_t
) ndr_print_spoolss_StartDocPrinter
,
27383 "spoolss_StartPagePrinter",
27384 sizeof(struct spoolss_StartPagePrinter
),
27385 (ndr_push_flags_fn_t
) ndr_push_spoolss_StartPagePrinter
,
27386 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_StartPagePrinter
,
27387 (ndr_print_function_t
) ndr_print_spoolss_StartPagePrinter
,
27391 "spoolss_WritePrinter",
27392 sizeof(struct spoolss_WritePrinter
),
27393 (ndr_push_flags_fn_t
) ndr_push_spoolss_WritePrinter
,
27394 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WritePrinter
,
27395 (ndr_print_function_t
) ndr_print_spoolss_WritePrinter
,
27399 "spoolss_EndPagePrinter",
27400 sizeof(struct spoolss_EndPagePrinter
),
27401 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndPagePrinter
,
27402 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndPagePrinter
,
27403 (ndr_print_function_t
) ndr_print_spoolss_EndPagePrinter
,
27407 "spoolss_AbortPrinter",
27408 sizeof(struct spoolss_AbortPrinter
),
27409 (ndr_push_flags_fn_t
) ndr_push_spoolss_AbortPrinter
,
27410 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AbortPrinter
,
27411 (ndr_print_function_t
) ndr_print_spoolss_AbortPrinter
,
27415 "spoolss_ReadPrinter",
27416 sizeof(struct spoolss_ReadPrinter
),
27417 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReadPrinter
,
27418 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReadPrinter
,
27419 (ndr_print_function_t
) ndr_print_spoolss_ReadPrinter
,
27423 "spoolss_EndDocPrinter",
27424 sizeof(struct spoolss_EndDocPrinter
),
27425 (ndr_push_flags_fn_t
) ndr_push_spoolss_EndDocPrinter
,
27426 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EndDocPrinter
,
27427 (ndr_print_function_t
) ndr_print_spoolss_EndDocPrinter
,
27432 sizeof(struct spoolss_AddJob
),
27433 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddJob
,
27434 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddJob
,
27435 (ndr_print_function_t
) ndr_print_spoolss_AddJob
,
27439 "spoolss_ScheduleJob",
27440 sizeof(struct spoolss_ScheduleJob
),
27441 (ndr_push_flags_fn_t
) ndr_push_spoolss_ScheduleJob
,
27442 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ScheduleJob
,
27443 (ndr_print_function_t
) ndr_print_spoolss_ScheduleJob
,
27447 "spoolss_GetPrinterData",
27448 sizeof(struct spoolss_GetPrinterData
),
27449 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterData
,
27450 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterData
,
27451 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterData
,
27455 "spoolss_SetPrinterData",
27456 sizeof(struct spoolss_SetPrinterData
),
27457 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterData
,
27458 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterData
,
27459 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterData
,
27463 "spoolss_WaitForPrinterChange",
27464 sizeof(struct spoolss_WaitForPrinterChange
),
27465 (ndr_push_flags_fn_t
) ndr_push_spoolss_WaitForPrinterChange
,
27466 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_WaitForPrinterChange
,
27467 (ndr_print_function_t
) ndr_print_spoolss_WaitForPrinterChange
,
27471 "spoolss_ClosePrinter",
27472 sizeof(struct spoolss_ClosePrinter
),
27473 (ndr_push_flags_fn_t
) ndr_push_spoolss_ClosePrinter
,
27474 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ClosePrinter
,
27475 (ndr_print_function_t
) ndr_print_spoolss_ClosePrinter
,
27480 sizeof(struct spoolss_AddForm
),
27481 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddForm
,
27482 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddForm
,
27483 (ndr_print_function_t
) ndr_print_spoolss_AddForm
,
27487 "spoolss_DeleteForm",
27488 sizeof(struct spoolss_DeleteForm
),
27489 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteForm
,
27490 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteForm
,
27491 (ndr_print_function_t
) ndr_print_spoolss_DeleteForm
,
27496 sizeof(struct spoolss_GetForm
),
27497 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetForm
,
27498 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetForm
,
27499 (ndr_print_function_t
) ndr_print_spoolss_GetForm
,
27504 sizeof(struct spoolss_SetForm
),
27505 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetForm
,
27506 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetForm
,
27507 (ndr_print_function_t
) ndr_print_spoolss_SetForm
,
27511 "spoolss_EnumForms",
27512 sizeof(struct spoolss_EnumForms
),
27513 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumForms
,
27514 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumForms
,
27515 (ndr_print_function_t
) ndr_print_spoolss_EnumForms
,
27519 "spoolss_EnumPorts",
27520 sizeof(struct spoolss_EnumPorts
),
27521 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPorts
,
27522 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPorts
,
27523 (ndr_print_function_t
) ndr_print_spoolss_EnumPorts
,
27527 "spoolss_EnumMonitors",
27528 sizeof(struct spoolss_EnumMonitors
),
27529 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumMonitors
,
27530 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumMonitors
,
27531 (ndr_print_function_t
) ndr_print_spoolss_EnumMonitors
,
27536 sizeof(struct spoolss_AddPort
),
27537 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPort
,
27538 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPort
,
27539 (ndr_print_function_t
) ndr_print_spoolss_AddPort
,
27543 "spoolss_ConfigurePort",
27544 sizeof(struct spoolss_ConfigurePort
),
27545 (ndr_push_flags_fn_t
) ndr_push_spoolss_ConfigurePort
,
27546 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ConfigurePort
,
27547 (ndr_print_function_t
) ndr_print_spoolss_ConfigurePort
,
27551 "spoolss_DeletePort",
27552 sizeof(struct spoolss_DeletePort
),
27553 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePort
,
27554 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePort
,
27555 (ndr_print_function_t
) ndr_print_spoolss_DeletePort
,
27559 "spoolss_CreatePrinterIC",
27560 sizeof(struct spoolss_CreatePrinterIC
),
27561 (ndr_push_flags_fn_t
) ndr_push_spoolss_CreatePrinterIC
,
27562 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_CreatePrinterIC
,
27563 (ndr_print_function_t
) ndr_print_spoolss_CreatePrinterIC
,
27567 "spoolss_PlayGDIScriptOnPrinterIC",
27568 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC
),
27569 (ndr_push_flags_fn_t
) ndr_push_spoolss_PlayGDIScriptOnPrinterIC
,
27570 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC
,
27571 (ndr_print_function_t
) ndr_print_spoolss_PlayGDIScriptOnPrinterIC
,
27575 "spoolss_DeletePrinterIC",
27576 sizeof(struct spoolss_DeletePrinterIC
),
27577 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterIC
,
27578 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterIC
,
27579 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterIC
,
27583 "spoolss_AddPrinterConnection",
27584 sizeof(struct spoolss_AddPrinterConnection
),
27585 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterConnection
,
27586 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterConnection
,
27587 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterConnection
,
27591 "spoolss_DeletePrinterConnection",
27592 sizeof(struct spoolss_DeletePrinterConnection
),
27593 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterConnection
,
27594 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterConnection
,
27595 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterConnection
,
27599 "spoolss_PrinterMessageBox",
27600 sizeof(struct spoolss_PrinterMessageBox
),
27601 (ndr_push_flags_fn_t
) ndr_push_spoolss_PrinterMessageBox
,
27602 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_PrinterMessageBox
,
27603 (ndr_print_function_t
) ndr_print_spoolss_PrinterMessageBox
,
27607 "spoolss_AddMonitor",
27608 sizeof(struct spoolss_AddMonitor
),
27609 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddMonitor
,
27610 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddMonitor
,
27611 (ndr_print_function_t
) ndr_print_spoolss_AddMonitor
,
27615 "spoolss_DeleteMonitor",
27616 sizeof(struct spoolss_DeleteMonitor
),
27617 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeleteMonitor
,
27618 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeleteMonitor
,
27619 (ndr_print_function_t
) ndr_print_spoolss_DeleteMonitor
,
27623 "spoolss_DeletePrintProcessor",
27624 sizeof(struct spoolss_DeletePrintProcessor
),
27625 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProcessor
,
27626 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProcessor
,
27627 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProcessor
,
27631 "spoolss_AddPrintProvidor",
27632 sizeof(struct spoolss_AddPrintProvidor
),
27633 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrintProvidor
,
27634 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrintProvidor
,
27635 (ndr_print_function_t
) ndr_print_spoolss_AddPrintProvidor
,
27639 "spoolss_DeletePrintProvidor",
27640 sizeof(struct spoolss_DeletePrintProvidor
),
27641 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrintProvidor
,
27642 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrintProvidor
,
27643 (ndr_print_function_t
) ndr_print_spoolss_DeletePrintProvidor
,
27647 "spoolss_EnumPrintProcDataTypes",
27648 sizeof(struct spoolss_EnumPrintProcDataTypes
),
27649 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrintProcDataTypes
,
27650 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrintProcDataTypes
,
27651 (ndr_print_function_t
) ndr_print_spoolss_EnumPrintProcDataTypes
,
27655 "spoolss_ResetPrinter",
27656 sizeof(struct spoolss_ResetPrinter
),
27657 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinter
,
27658 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinter
,
27659 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinter
,
27663 "spoolss_GetPrinterDriver2",
27664 sizeof(struct spoolss_GetPrinterDriver2
),
27665 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDriver2
,
27666 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDriver2
,
27667 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDriver2
,
27671 "spoolss_FindFirstPrinterChangeNotification",
27672 sizeof(struct spoolss_FindFirstPrinterChangeNotification
),
27673 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindFirstPrinterChangeNotification
,
27674 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindFirstPrinterChangeNotification
,
27675 (ndr_print_function_t
) ndr_print_spoolss_FindFirstPrinterChangeNotification
,
27679 "spoolss_FindNextPrinterChangeNotification",
27680 sizeof(struct spoolss_FindNextPrinterChangeNotification
),
27681 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindNextPrinterChangeNotification
,
27682 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindNextPrinterChangeNotification
,
27683 (ndr_print_function_t
) ndr_print_spoolss_FindNextPrinterChangeNotification
,
27687 "spoolss_FindClosePrinterNotify",
27688 sizeof(struct spoolss_FindClosePrinterNotify
),
27689 (ndr_push_flags_fn_t
) ndr_push_spoolss_FindClosePrinterNotify
,
27690 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_FindClosePrinterNotify
,
27691 (ndr_print_function_t
) ndr_print_spoolss_FindClosePrinterNotify
,
27695 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
27696 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld
),
27697 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
27698 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
27699 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld
,
27703 "spoolss_ReplyOpenPrinter",
27704 sizeof(struct spoolss_ReplyOpenPrinter
),
27705 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyOpenPrinter
,
27706 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyOpenPrinter
,
27707 (ndr_print_function_t
) ndr_print_spoolss_ReplyOpenPrinter
,
27711 "spoolss_RouterReplyPrinter",
27712 sizeof(struct spoolss_RouterReplyPrinter
),
27713 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinter
,
27714 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinter
,
27715 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinter
,
27719 "spoolss_ReplyClosePrinter",
27720 sizeof(struct spoolss_ReplyClosePrinter
),
27721 (ndr_push_flags_fn_t
) ndr_push_spoolss_ReplyClosePrinter
,
27722 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ReplyClosePrinter
,
27723 (ndr_print_function_t
) ndr_print_spoolss_ReplyClosePrinter
,
27727 "spoolss_AddPortEx",
27728 sizeof(struct spoolss_AddPortEx
),
27729 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPortEx
,
27730 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPortEx
,
27731 (ndr_print_function_t
) ndr_print_spoolss_AddPortEx
,
27735 "spoolss_RouterFindFirstPrinterChangeNotification",
27736 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification
),
27737 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification
,
27738 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification
,
27739 (ndr_print_function_t
) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification
,
27743 "spoolss_SpoolerInit",
27744 sizeof(struct spoolss_SpoolerInit
),
27745 (ndr_push_flags_fn_t
) ndr_push_spoolss_SpoolerInit
,
27746 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SpoolerInit
,
27747 (ndr_print_function_t
) ndr_print_spoolss_SpoolerInit
,
27751 "spoolss_ResetPrinterEx",
27752 sizeof(struct spoolss_ResetPrinterEx
),
27753 (ndr_push_flags_fn_t
) ndr_push_spoolss_ResetPrinterEx
,
27754 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_ResetPrinterEx
,
27755 (ndr_print_function_t
) ndr_print_spoolss_ResetPrinterEx
,
27759 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
27760 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx
),
27761 (ndr_push_flags_fn_t
) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
27762 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
27763 (ndr_print_function_t
) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx
,
27767 "spoolss_RouterReplyPrinterEx",
27768 sizeof(struct spoolss_RouterReplyPrinterEx
),
27769 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterReplyPrinterEx
,
27770 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterReplyPrinterEx
,
27771 (ndr_print_function_t
) ndr_print_spoolss_RouterReplyPrinterEx
,
27775 "spoolss_RouterRefreshPrinterChangeNotify",
27776 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify
),
27777 (ndr_push_flags_fn_t
) ndr_push_spoolss_RouterRefreshPrinterChangeNotify
,
27778 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify
,
27779 (ndr_print_function_t
) ndr_print_spoolss_RouterRefreshPrinterChangeNotify
,
27784 sizeof(struct spoolss_44
),
27785 (ndr_push_flags_fn_t
) ndr_push_spoolss_44
,
27786 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_44
,
27787 (ndr_print_function_t
) ndr_print_spoolss_44
,
27791 "spoolss_OpenPrinterEx",
27792 sizeof(struct spoolss_OpenPrinterEx
),
27793 (ndr_push_flags_fn_t
) ndr_push_spoolss_OpenPrinterEx
,
27794 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_OpenPrinterEx
,
27795 (ndr_print_function_t
) ndr_print_spoolss_OpenPrinterEx
,
27799 "spoolss_AddPrinterEx",
27800 sizeof(struct spoolss_AddPrinterEx
),
27801 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterEx
,
27802 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterEx
,
27803 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterEx
,
27808 sizeof(struct spoolss_47
),
27809 (ndr_push_flags_fn_t
) ndr_push_spoolss_47
,
27810 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_47
,
27811 (ndr_print_function_t
) ndr_print_spoolss_47
,
27815 "spoolss_EnumPrinterData",
27816 sizeof(struct spoolss_EnumPrinterData
),
27817 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterData
,
27818 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterData
,
27819 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterData
,
27823 "spoolss_DeletePrinterData",
27824 sizeof(struct spoolss_DeletePrinterData
),
27825 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterData
,
27826 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterData
,
27827 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterData
,
27832 sizeof(struct spoolss_4a
),
27833 (ndr_push_flags_fn_t
) ndr_push_spoolss_4a
,
27834 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4a
,
27835 (ndr_print_function_t
) ndr_print_spoolss_4a
,
27840 sizeof(struct spoolss_4b
),
27841 (ndr_push_flags_fn_t
) ndr_push_spoolss_4b
,
27842 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4b
,
27843 (ndr_print_function_t
) ndr_print_spoolss_4b
,
27848 sizeof(struct spoolss_4c
),
27849 (ndr_push_flags_fn_t
) ndr_push_spoolss_4c
,
27850 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_4c
,
27851 (ndr_print_function_t
) ndr_print_spoolss_4c
,
27855 "spoolss_SetPrinterDataEx",
27856 sizeof(struct spoolss_SetPrinterDataEx
),
27857 (ndr_push_flags_fn_t
) ndr_push_spoolss_SetPrinterDataEx
,
27858 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_SetPrinterDataEx
,
27859 (ndr_print_function_t
) ndr_print_spoolss_SetPrinterDataEx
,
27863 "spoolss_GetPrinterDataEx",
27864 sizeof(struct spoolss_GetPrinterDataEx
),
27865 (ndr_push_flags_fn_t
) ndr_push_spoolss_GetPrinterDataEx
,
27866 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_GetPrinterDataEx
,
27867 (ndr_print_function_t
) ndr_print_spoolss_GetPrinterDataEx
,
27871 "spoolss_EnumPrinterDataEx",
27872 sizeof(struct spoolss_EnumPrinterDataEx
),
27873 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterDataEx
,
27874 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterDataEx
,
27875 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterDataEx
,
27879 "spoolss_EnumPrinterKey",
27880 sizeof(struct spoolss_EnumPrinterKey
),
27881 (ndr_push_flags_fn_t
) ndr_push_spoolss_EnumPrinterKey
,
27882 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_EnumPrinterKey
,
27883 (ndr_print_function_t
) ndr_print_spoolss_EnumPrinterKey
,
27887 "spoolss_DeletePrinterDataEx",
27888 sizeof(struct spoolss_DeletePrinterDataEx
),
27889 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDataEx
,
27890 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDataEx
,
27891 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDataEx
,
27895 "spoolss_DeletePrinterKey",
27896 sizeof(struct spoolss_DeletePrinterKey
),
27897 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterKey
,
27898 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterKey
,
27899 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterKey
,
27904 sizeof(struct spoolss_53
),
27905 (ndr_push_flags_fn_t
) ndr_push_spoolss_53
,
27906 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_53
,
27907 (ndr_print_function_t
) ndr_print_spoolss_53
,
27911 "spoolss_DeletePrinterDriverEx",
27912 sizeof(struct spoolss_DeletePrinterDriverEx
),
27913 (ndr_push_flags_fn_t
) ndr_push_spoolss_DeletePrinterDriverEx
,
27914 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_DeletePrinterDriverEx
,
27915 (ndr_print_function_t
) ndr_print_spoolss_DeletePrinterDriverEx
,
27920 sizeof(struct spoolss_55
),
27921 (ndr_push_flags_fn_t
) ndr_push_spoolss_55
,
27922 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_55
,
27923 (ndr_print_function_t
) ndr_print_spoolss_55
,
27928 sizeof(struct spoolss_56
),
27929 (ndr_push_flags_fn_t
) ndr_push_spoolss_56
,
27930 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_56
,
27931 (ndr_print_function_t
) ndr_print_spoolss_56
,
27936 sizeof(struct spoolss_57
),
27937 (ndr_push_flags_fn_t
) ndr_push_spoolss_57
,
27938 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_57
,
27939 (ndr_print_function_t
) ndr_print_spoolss_57
,
27944 sizeof(struct spoolss_XcvData
),
27945 (ndr_push_flags_fn_t
) ndr_push_spoolss_XcvData
,
27946 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_XcvData
,
27947 (ndr_print_function_t
) ndr_print_spoolss_XcvData
,
27951 "spoolss_AddPrinterDriverEx",
27952 sizeof(struct spoolss_AddPrinterDriverEx
),
27953 (ndr_push_flags_fn_t
) ndr_push_spoolss_AddPrinterDriverEx
,
27954 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_AddPrinterDriverEx
,
27955 (ndr_print_function_t
) ndr_print_spoolss_AddPrinterDriverEx
,
27960 sizeof(struct spoolss_5a
),
27961 (ndr_push_flags_fn_t
) ndr_push_spoolss_5a
,
27962 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5a
,
27963 (ndr_print_function_t
) ndr_print_spoolss_5a
,
27968 sizeof(struct spoolss_5b
),
27969 (ndr_push_flags_fn_t
) ndr_push_spoolss_5b
,
27970 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5b
,
27971 (ndr_print_function_t
) ndr_print_spoolss_5b
,
27976 sizeof(struct spoolss_5c
),
27977 (ndr_push_flags_fn_t
) ndr_push_spoolss_5c
,
27978 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5c
,
27979 (ndr_print_function_t
) ndr_print_spoolss_5c
,
27984 sizeof(struct spoolss_5d
),
27985 (ndr_push_flags_fn_t
) ndr_push_spoolss_5d
,
27986 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5d
,
27987 (ndr_print_function_t
) ndr_print_spoolss_5d
,
27992 sizeof(struct spoolss_5e
),
27993 (ndr_push_flags_fn_t
) ndr_push_spoolss_5e
,
27994 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5e
,
27995 (ndr_print_function_t
) ndr_print_spoolss_5e
,
28000 sizeof(struct spoolss_5f
),
28001 (ndr_push_flags_fn_t
) ndr_push_spoolss_5f
,
28002 (ndr_pull_flags_fn_t
) ndr_pull_spoolss_5f
,
28003 (ndr_print_function_t
) ndr_print_spoolss_5f
,
28006 { NULL
, 0, NULL
, NULL
, NULL
, false }
28009 static const char * const spoolss_endpoint_strings
[] = {
28010 "ncacn_np:[\\pipe\\spoolss]",
28013 static const struct ndr_interface_string_array spoolss_endpoints
= {
28015 .names
= spoolss_endpoint_strings
28018 static const char * const spoolss_authservice_strings
[] = {
28022 static const struct ndr_interface_string_array spoolss_authservices
= {
28024 .names
= spoolss_authservice_strings
28028 const struct ndr_interface_table ndr_table_spoolss
= {
28031 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
28032 NDR_SPOOLSS_VERSION
28034 .helpstring
= NDR_SPOOLSS_HELPSTRING
,
28036 .calls
= spoolss_calls
,
28037 .endpoints
= &spoolss_endpoints
,
28038 .authservices
= &spoolss_authservices