2 * Unix SMB/CIFS implementation.
3 * server auto-generated by pidl. DO NOT MODIFY!
8 #include "librpc/rpc/dcesrv_core.h"
9 #include "librpc/gen_ndr/ndr_spoolss.h"
10 #include "librpc/gen_ndr/ndr_winspool.h"
11 #include "librpc/gen_ndr/ndr_winspool_scompat.h"
12 #include "librpc/gen_ndr/ndr_spoolss_scompat.h"
13 #include "rpc_server/rpc_config.h"
14 #include "rpc_server/rpc_server.h"
15 #include "rpc_server/spoolss/iremotewinspool_util.h"
17 static bool forward_opnum_to_spoolss(uint16_t opnum
) {
19 case 58: /* winspool_SyncRegisterForRemoteNotifications */
20 case 59: /* winspool_SyncUnRegisterForRemoteNotifications */
21 case 60: /* winspool_SyncRefreshRemoteNotifications */
22 case 61: /* winspool_AsyncGetRemoteNotifications */
23 case 62: /* winspool_AsyncInstallPrinterDriverFromPackage */
24 case 63: /* winspool_AsyncUploadPrinterDriverPackage */
25 case 65: /* winspool_AsyncCorePrinterDriverInstalled */
26 case 67: /* winspool_AsyncDeletePrinterDriverPackage */
34 /* iremotewinspool - dcerpc server boilerplate generated by pidl */
35 static NTSTATUS
iremotewinspool__op_bind(struct dcesrv_connection_context
*context
, const struct dcesrv_interface
*iface
)
37 #ifdef DCESRV_INTERFACE_IREMOTEWINSPOOL_BIND
38 return DCESRV_INTERFACE_IREMOTEWINSPOOL_BIND(context
,iface
);
44 static void iremotewinspool__op_unbind(struct dcesrv_connection_context
*context
, const struct dcesrv_interface
*iface
)
46 #ifdef DCESRV_INTERFACE_IREMOTEWINSPOOL_UNBIND
47 DCESRV_INTERFACE_IREMOTEWINSPOOL_UNBIND(context
, iface
);
53 NTSTATUS
iremotewinspool__op_ndr_pull(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
, struct ndr_pull
*pull
, void **r
)
55 enum ndr_err_code ndr_err
;
56 uint16_t opnum
= dce_call
->pkt
.u
.request
.opnum
;
57 uint16_t mapped_opnum
;
59 dce_call
->fault_code
= 0;
61 if (forward_opnum_to_spoolss(opnum
)) {
63 ok
= iremotewinspool_map_opcode(opnum
, &mapped_opnum
);
65 dce_call
->pkt
.u
.request
.opnum
= mapped_opnum
;
67 return spoolss__op_ndr_pull(dce_call
, mem_ctx
, pull
, r
);
70 if (opnum
>= ndr_table_iremotewinspool
.num_calls
) {
71 dce_call
->fault_code
= DCERPC_FAULT_OP_RNG_ERROR
;
72 return NT_STATUS_NET_WRITE_FAULT
;
75 *r
= talloc_named(mem_ctx
, ndr_table_iremotewinspool
.calls
[opnum
].struct_size
, "struct %s", ndr_table_iremotewinspool
.calls
[opnum
].name
);
76 NT_STATUS_HAVE_NO_MEMORY(*r
);
78 /* unravel the NDR for the packet */
79 ndr_err
= ndr_table_iremotewinspool
.calls
[opnum
].ndr_pull(pull
, NDR_IN
, *r
);
80 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err
)) {
81 dce_call
->fault_code
= DCERPC_FAULT_NDR
;
82 return NT_STATUS_NET_WRITE_FAULT
;
88 static NTSTATUS
iremotewinspool__op_dispatch_internal(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
, void *r
, bool rpcint_call
)
90 uint16_t opnum
= dce_call
->pkt
.u
.request
.opnum
;
91 struct pipes_struct
*p
= NULL
;
92 NTSTATUS status
= NT_STATUS_OK
;
93 bool impersonated
= false;
95 struct GUID object_uuid
;
97 ok
= dce_call
->pkt
.pfc_flags
& DCERPC_PFC_FLAG_OBJECT_UUID
;
99 dce_call
->fault_code
= DCERPC_NCA_S_UNSUPPORTED_TYPE
;
100 return NT_STATUS_NET_WRITE_FAULT
;
103 status
= GUID_from_string(IREMOTEWINSPOOL_OBJECT_GUID
, &object_uuid
);
104 if (!NT_STATUS_IS_OK(status
)) {
105 dce_call
->fault_code
= DCERPC_NCA_S_UNSUPPORTED_TYPE
;
106 return NT_STATUS_NET_WRITE_FAULT
;
109 if (!GUID_equal(&dce_call
->pkt
.u
.request
.object
.object
, &object_uuid
)) {
110 dce_call
->fault_code
= DCERPC_NCA_S_UNSUPPORTED_TYPE
;
111 return NT_STATUS_NET_WRITE_FAULT
;
114 if (forward_opnum_to_spoolss(opnum
)) {
115 return spoolss__op_dispatch(dce_call
, mem_ctx
, r
);
118 /* Retrieve pipes struct */
119 p
= dcesrv_get_pipes_struct(dce_call
->conn
);
120 p
->dce_call
= dce_call
;
121 p
->mem_ctx
= mem_ctx
;
122 /* Reset pipes struct fault state */
127 impersonated
= become_authenticated_pipe_user(
128 dce_call
->auth_state
->session_info
);
130 dce_call
->fault_code
= DCERPC_FAULT_ACCESS_DENIED
;
131 status
= NT_STATUS_NET_WRITE_FAULT
;
137 case 0: { /* winspool_AsyncOpenPrinter */
138 struct winspool_AsyncOpenPrinter
*r2
= (struct winspool_AsyncOpenPrinter
*)r
;
139 if (DEBUGLEVEL
>= 10) {
140 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncOpenPrinter
, NDR_IN
, r2
);
142 NDR_ZERO_STRUCT(r2
->out
);
143 r2
->out
.pHandle
= talloc_zero(r2
, struct policy_handle
);
144 if (r2
->out
.pHandle
== NULL
) {
145 status
= NT_STATUS_NO_MEMORY
;
146 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
150 r2
->out
.result
= _winspool_AsyncOpenPrinter(p
, r2
);
153 case 1: { /* winspool_AsyncAddPrinter */
154 struct winspool_AsyncAddPrinter
*r2
= (struct winspool_AsyncAddPrinter
*)r
;
155 if (DEBUGLEVEL
>= 10) {
156 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPrinter
, NDR_IN
, r2
);
158 NDR_ZERO_STRUCT(r2
->out
);
159 r2
->out
.pHandle
= talloc_zero(r2
, struct policy_handle
);
160 if (r2
->out
.pHandle
== NULL
) {
161 status
= NT_STATUS_NO_MEMORY
;
162 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
166 r2
->out
.result
= _winspool_AsyncAddPrinter(p
, r2
);
169 case 2: { /* winspool_AsyncSetJob */
170 struct winspool_AsyncSetJob
*r2
= (struct winspool_AsyncSetJob
*)r
;
171 if (DEBUGLEVEL
>= 10) {
172 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetJob
, NDR_IN
, r2
);
174 r2
->out
.result
= _winspool_AsyncSetJob(p
, r2
);
177 case 3: { /* winspool_AsyncGetJob */
178 struct winspool_AsyncGetJob
*r2
= (struct winspool_AsyncGetJob
*)r
;
179 if (DEBUGLEVEL
>= 10) {
180 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetJob
, NDR_IN
, r2
);
182 NDR_ZERO_STRUCT(r2
->out
);
183 r2
->out
.pJob
= r2
->in
.pJob
;
184 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
185 if (r2
->out
.pcbNeeded
== NULL
) {
186 status
= NT_STATUS_NO_MEMORY
;
187 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
191 r2
->out
.result
= _winspool_AsyncGetJob(p
, r2
);
194 case 4: { /* winspool_AsyncEnumJobs */
195 struct winspool_AsyncEnumJobs
*r2
= (struct winspool_AsyncEnumJobs
*)r
;
196 if (DEBUGLEVEL
>= 10) {
197 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumJobs
, NDR_IN
, r2
);
199 NDR_ZERO_STRUCT(r2
->out
);
200 r2
->out
.pJob
= r2
->in
.pJob
;
201 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
202 if (r2
->out
.pcbNeeded
== NULL
) {
203 status
= NT_STATUS_NO_MEMORY
;
204 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
208 r2
->out
.pcReturned
= talloc_zero(r2
, uint32_t);
209 if (r2
->out
.pcReturned
== NULL
) {
210 status
= NT_STATUS_NO_MEMORY
;
211 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
215 r2
->out
.result
= _winspool_AsyncEnumJobs(p
, r2
);
218 case 5: { /* winspool_AsyncAddJob */
219 struct winspool_AsyncAddJob
*r2
= (struct winspool_AsyncAddJob
*)r
;
220 if (DEBUGLEVEL
>= 10) {
221 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddJob
, NDR_IN
, r2
);
223 NDR_ZERO_STRUCT(r2
->out
);
224 r2
->out
.pAddJob
= r2
->in
.pAddJob
;
225 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
226 if (r2
->out
.pcbNeeded
== NULL
) {
227 status
= NT_STATUS_NO_MEMORY
;
228 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
232 r2
->out
.result
= _winspool_AsyncAddJob(p
, r2
);
235 case 6: { /* winspool_AsyncScheduleJob */
236 struct winspool_AsyncScheduleJob
*r2
= (struct winspool_AsyncScheduleJob
*)r
;
237 if (DEBUGLEVEL
>= 10) {
238 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncScheduleJob
, NDR_IN
, r2
);
240 r2
->out
.result
= _winspool_AsyncScheduleJob(p
, r2
);
243 case 7: { /* winspool_AsyncDeletePrinter */
244 struct winspool_AsyncDeletePrinter
*r2
= (struct winspool_AsyncDeletePrinter
*)r
;
245 if (DEBUGLEVEL
>= 10) {
246 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinter
, NDR_IN
, r2
);
248 r2
->out
.result
= _winspool_AsyncDeletePrinter(p
, r2
);
251 case 8: { /* winspool_AsyncSetPrinter */
252 struct winspool_AsyncSetPrinter
*r2
= (struct winspool_AsyncSetPrinter
*)r
;
253 if (DEBUGLEVEL
>= 10) {
254 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetPrinter
, NDR_IN
, r2
);
256 r2
->out
.result
= _winspool_AsyncSetPrinter(p
, r2
);
259 case 9: { /* winspool_AsyncGetPrinter */
260 struct winspool_AsyncGetPrinter
*r2
= (struct winspool_AsyncGetPrinter
*)r
;
261 if (DEBUGLEVEL
>= 10) {
262 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinter
, NDR_IN
, r2
);
264 NDR_ZERO_STRUCT(r2
->out
);
265 r2
->out
.pPrinter
= r2
->in
.pPrinter
;
266 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
267 if (r2
->out
.pcbNeeded
== NULL
) {
268 status
= NT_STATUS_NO_MEMORY
;
269 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
273 r2
->out
.result
= _winspool_AsyncGetPrinter(p
, r2
);
276 case 10: { /* winspool_AsyncStartDocPrinter */
277 struct winspool_AsyncStartDocPrinter
*r2
= (struct winspool_AsyncStartDocPrinter
*)r
;
278 if (DEBUGLEVEL
>= 10) {
279 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncStartDocPrinter
, NDR_IN
, r2
);
281 NDR_ZERO_STRUCT(r2
->out
);
282 r2
->out
.pJobId
= talloc_zero(r2
, uint32_t);
283 if (r2
->out
.pJobId
== NULL
) {
284 status
= NT_STATUS_NO_MEMORY
;
285 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
289 r2
->out
.result
= _winspool_AsyncStartDocPrinter(p
, r2
);
292 case 11: { /* winspool_AsyncStartPagePrinter */
293 struct winspool_AsyncStartPagePrinter
*r2
= (struct winspool_AsyncStartPagePrinter
*)r
;
294 if (DEBUGLEVEL
>= 10) {
295 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncStartPagePrinter
, NDR_IN
, r2
);
297 r2
->out
.result
= _winspool_AsyncStartPagePrinter(p
, r2
);
300 case 12: { /* winspool_AsyncWritePrinter */
301 struct winspool_AsyncWritePrinter
*r2
= (struct winspool_AsyncWritePrinter
*)r
;
302 if (DEBUGLEVEL
>= 10) {
303 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncWritePrinter
, NDR_IN
, r2
);
305 NDR_ZERO_STRUCT(r2
->out
);
306 r2
->out
.pcWritten
= talloc_zero(r2
, uint32_t);
307 if (r2
->out
.pcWritten
== NULL
) {
308 status
= NT_STATUS_NO_MEMORY
;
309 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
313 r2
->out
.result
= _winspool_AsyncWritePrinter(p
, r2
);
316 case 13: { /* winspool_AsyncEndPagePrinter */
317 struct winspool_AsyncEndPagePrinter
*r2
= (struct winspool_AsyncEndPagePrinter
*)r
;
318 if (DEBUGLEVEL
>= 10) {
319 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEndPagePrinter
, NDR_IN
, r2
);
321 r2
->out
.result
= _winspool_AsyncEndPagePrinter(p
, r2
);
324 case 14: { /* winspool_AsyncEndDocPrinter */
325 struct winspool_AsyncEndDocPrinter
*r2
= (struct winspool_AsyncEndDocPrinter
*)r
;
326 if (DEBUGLEVEL
>= 10) {
327 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEndDocPrinter
, NDR_IN
, r2
);
329 r2
->out
.result
= _winspool_AsyncEndDocPrinter(p
, r2
);
332 case 15: { /* winspool_AsyncAbortPrinter */
333 struct winspool_AsyncAbortPrinter
*r2
= (struct winspool_AsyncAbortPrinter
*)r
;
334 if (DEBUGLEVEL
>= 10) {
335 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAbortPrinter
, NDR_IN
, r2
);
337 r2
->out
.result
= _winspool_AsyncAbortPrinter(p
, r2
);
340 case 16: { /* winspool_AsyncGetPrinterData */
341 struct winspool_AsyncGetPrinterData
*r2
= (struct winspool_AsyncGetPrinterData
*)r
;
342 if (DEBUGLEVEL
>= 10) {
343 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterData
, NDR_IN
, r2
);
345 NDR_ZERO_STRUCT(r2
->out
);
346 r2
->out
.pType
= talloc_zero(r2
, uint32_t);
347 if (r2
->out
.pType
== NULL
) {
348 status
= NT_STATUS_NO_MEMORY
;
349 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
353 r2
->out
.pData
= talloc_zero_array(r2
, uint8_t, r2
->in
.nSize
);
354 if (r2
->out
.pData
== NULL
) {
355 status
= NT_STATUS_NO_MEMORY
;
356 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
360 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
361 if (r2
->out
.pcbNeeded
== NULL
) {
362 status
= NT_STATUS_NO_MEMORY
;
363 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
367 r2
->out
.result
= _winspool_AsyncGetPrinterData(p
, r2
);
370 case 17: { /* winspool_AsyncGetPrinterDataEx */
371 struct winspool_AsyncGetPrinterDataEx
*r2
= (struct winspool_AsyncGetPrinterDataEx
*)r
;
372 if (DEBUGLEVEL
>= 10) {
373 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterDataEx
, NDR_IN
, r2
);
375 NDR_ZERO_STRUCT(r2
->out
);
376 r2
->out
.pType
= talloc_zero(r2
, uint32_t);
377 if (r2
->out
.pType
== NULL
) {
378 status
= NT_STATUS_NO_MEMORY
;
379 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
383 r2
->out
.pData
= talloc_zero_array(r2
, uint8_t, r2
->in
.nSize
);
384 if (r2
->out
.pData
== NULL
) {
385 status
= NT_STATUS_NO_MEMORY
;
386 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
390 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
391 if (r2
->out
.pcbNeeded
== NULL
) {
392 status
= NT_STATUS_NO_MEMORY
;
393 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
397 r2
->out
.result
= _winspool_AsyncGetPrinterDataEx(p
, r2
);
400 case 18: { /* winspool_AsyncSetPrinterData */
401 struct winspool_AsyncSetPrinterData
*r2
= (struct winspool_AsyncSetPrinterData
*)r
;
402 if (DEBUGLEVEL
>= 10) {
403 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetPrinterData
, NDR_IN
, r2
);
405 r2
->out
.result
= _winspool_AsyncSetPrinterData(p
, r2
);
408 case 19: { /* winspool_AsyncSetPrinterDataEx */
409 struct winspool_AsyncSetPrinterDataEx
*r2
= (struct winspool_AsyncSetPrinterDataEx
*)r
;
410 if (DEBUGLEVEL
>= 10) {
411 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetPrinterDataEx
, NDR_IN
, r2
);
413 r2
->out
.result
= _winspool_AsyncSetPrinterDataEx(p
, r2
);
416 case 20: { /* winspool_AsyncClosePrinter */
417 struct winspool_AsyncClosePrinter
*r2
= (struct winspool_AsyncClosePrinter
*)r
;
418 if (DEBUGLEVEL
>= 10) {
419 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncClosePrinter
, NDR_IN
, r2
);
421 NDR_ZERO_STRUCT(r2
->out
);
422 r2
->out
.phPrinter
= r2
->in
.phPrinter
;
423 r2
->out
.result
= _winspool_AsyncClosePrinter(p
, r2
);
426 case 21: { /* winspool_AsyncAddForm */
427 struct winspool_AsyncAddForm
*r2
= (struct winspool_AsyncAddForm
*)r
;
428 if (DEBUGLEVEL
>= 10) {
429 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddForm
, NDR_IN
, r2
);
431 r2
->out
.result
= _winspool_AsyncAddForm(p
, r2
);
434 case 22: { /* winspool_AsyncDeleteForm */
435 struct winspool_AsyncDeleteForm
*r2
= (struct winspool_AsyncDeleteForm
*)r
;
436 if (DEBUGLEVEL
>= 10) {
437 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeleteForm
, NDR_IN
, r2
);
439 r2
->out
.result
= _winspool_AsyncDeleteForm(p
, r2
);
442 case 23: { /* winspool_AsyncGetForm */
443 struct winspool_AsyncGetForm
*r2
= (struct winspool_AsyncGetForm
*)r
;
444 if (DEBUGLEVEL
>= 10) {
445 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetForm
, NDR_IN
, r2
);
447 NDR_ZERO_STRUCT(r2
->out
);
448 r2
->out
.pForm
= r2
->in
.pForm
;
449 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
450 if (r2
->out
.pcbNeeded
== NULL
) {
451 status
= NT_STATUS_NO_MEMORY
;
452 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
456 r2
->out
.result
= _winspool_AsyncGetForm(p
, r2
);
459 case 24: { /* winspool_AsyncSetForm */
460 struct winspool_AsyncSetForm
*r2
= (struct winspool_AsyncSetForm
*)r
;
461 if (DEBUGLEVEL
>= 10) {
462 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetForm
, NDR_IN
, r2
);
464 r2
->out
.result
= _winspool_AsyncSetForm(p
, r2
);
467 case 25: { /* winspool_AsyncEnumForms */
468 struct winspool_AsyncEnumForms
*r2
= (struct winspool_AsyncEnumForms
*)r
;
469 if (DEBUGLEVEL
>= 10) {
470 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumForms
, NDR_IN
, r2
);
472 NDR_ZERO_STRUCT(r2
->out
);
473 r2
->out
.pForm
= r2
->in
.pForm
;
474 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
475 if (r2
->out
.pcbNeeded
== NULL
) {
476 status
= NT_STATUS_NO_MEMORY
;
477 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
481 r2
->out
.pcReturned
= talloc_zero(r2
, uint32_t);
482 if (r2
->out
.pcReturned
== NULL
) {
483 status
= NT_STATUS_NO_MEMORY
;
484 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
488 r2
->out
.result
= _winspool_AsyncEnumForms(p
, r2
);
491 case 26: { /* winspool_AsyncGetPrinterDriver */
492 struct winspool_AsyncGetPrinterDriver
*r2
= (struct winspool_AsyncGetPrinterDriver
*)r
;
493 if (DEBUGLEVEL
>= 10) {
494 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterDriver
, NDR_IN
, r2
);
496 NDR_ZERO_STRUCT(r2
->out
);
497 r2
->out
.pDriver
= r2
->in
.pDriver
;
498 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
499 if (r2
->out
.pcbNeeded
== NULL
) {
500 status
= NT_STATUS_NO_MEMORY
;
501 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
505 r2
->out
.pdwServerMaxVersion
= talloc_zero(r2
, uint32_t);
506 if (r2
->out
.pdwServerMaxVersion
== NULL
) {
507 status
= NT_STATUS_NO_MEMORY
;
508 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
512 r2
->out
.pdwServerMinVersion
= talloc_zero(r2
, uint32_t);
513 if (r2
->out
.pdwServerMinVersion
== NULL
) {
514 status
= NT_STATUS_NO_MEMORY
;
515 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
519 r2
->out
.result
= _winspool_AsyncGetPrinterDriver(p
, r2
);
522 case 27: { /* winspool_AsyncEnumPrinterData */
523 struct winspool_AsyncEnumPrinterData
*r2
= (struct winspool_AsyncEnumPrinterData
*)r
;
524 if (DEBUGLEVEL
>= 10) {
525 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinterData
, NDR_IN
, r2
);
527 NDR_ZERO_STRUCT(r2
->out
);
528 r2
->out
.pValueName
= talloc_zero_array(r2
, uint16_t, r2
->in
.cbValueName
/ 2);
529 if (r2
->out
.pValueName
== NULL
) {
530 status
= NT_STATUS_NO_MEMORY
;
531 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
535 r2
->out
.pcbValueName
= talloc_zero(r2
, uint32_t);
536 if (r2
->out
.pcbValueName
== NULL
) {
537 status
= NT_STATUS_NO_MEMORY
;
538 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
542 r2
->out
.pType
= talloc_zero(r2
, uint32_t);
543 if (r2
->out
.pType
== NULL
) {
544 status
= NT_STATUS_NO_MEMORY
;
545 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
549 r2
->out
.pData
= talloc_zero_array(r2
, uint8_t, r2
->in
.cbData
);
550 if (r2
->out
.pData
== NULL
) {
551 status
= NT_STATUS_NO_MEMORY
;
552 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
556 r2
->out
.pcbData
= talloc_zero(r2
, uint32_t);
557 if (r2
->out
.pcbData
== NULL
) {
558 status
= NT_STATUS_NO_MEMORY
;
559 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
563 r2
->out
.result
= _winspool_AsyncEnumPrinterData(p
, r2
);
566 case 28: { /* winspool_AsyncEnumPrinterDataEx */
567 struct winspool_AsyncEnumPrinterDataEx
*r2
= (struct winspool_AsyncEnumPrinterDataEx
*)r
;
568 if (DEBUGLEVEL
>= 10) {
569 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinterDataEx
, NDR_IN
, r2
);
571 NDR_ZERO_STRUCT(r2
->out
);
572 r2
->out
.pEnumValues
= talloc_zero_array(r2
, uint8_t, r2
->in
.cbEnumValues
);
573 if (r2
->out
.pEnumValues
== NULL
) {
574 status
= NT_STATUS_NO_MEMORY
;
575 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
579 r2
->out
.pcbEnumValues
= talloc_zero(r2
, uint32_t);
580 if (r2
->out
.pcbEnumValues
== NULL
) {
581 status
= NT_STATUS_NO_MEMORY
;
582 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
586 r2
->out
.pnEnumValues
= talloc_zero(r2
, uint32_t);
587 if (r2
->out
.pnEnumValues
== NULL
) {
588 status
= NT_STATUS_NO_MEMORY
;
589 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
593 r2
->out
.result
= _winspool_AsyncEnumPrinterDataEx(p
, r2
);
596 case 29: { /* winspool_AsyncEnumPrinterKey */
597 struct winspool_AsyncEnumPrinterKey
*r2
= (struct winspool_AsyncEnumPrinterKey
*)r
;
598 if (DEBUGLEVEL
>= 10) {
599 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinterKey
, NDR_IN
, r2
);
601 NDR_ZERO_STRUCT(r2
->out
);
602 r2
->out
.pSubkey
= talloc_zero_array(r2
, uint16_t, r2
->in
.cbSubkey
/ 2);
603 if (r2
->out
.pSubkey
== NULL
) {
604 status
= NT_STATUS_NO_MEMORY
;
605 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
609 r2
->out
.pcbSubkey
= talloc_zero(r2
, uint32_t);
610 if (r2
->out
.pcbSubkey
== NULL
) {
611 status
= NT_STATUS_NO_MEMORY
;
612 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
616 r2
->out
.result
= _winspool_AsyncEnumPrinterKey(p
, r2
);
619 case 30: { /* winspool_AsyncDeletePrinterData */
620 struct winspool_AsyncDeletePrinterData
*r2
= (struct winspool_AsyncDeletePrinterData
*)r
;
621 if (DEBUGLEVEL
>= 10) {
622 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterData
, NDR_IN
, r2
);
624 r2
->out
.result
= _winspool_AsyncDeletePrinterData(p
, r2
);
627 case 31: { /* winspool_AsyncDeletePrinterDataEx */
628 struct winspool_AsyncDeletePrinterDataEx
*r2
= (struct winspool_AsyncDeletePrinterDataEx
*)r
;
629 if (DEBUGLEVEL
>= 10) {
630 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterDataEx
, NDR_IN
, r2
);
632 r2
->out
.result
= _winspool_AsyncDeletePrinterDataEx(p
, r2
);
635 case 32: { /* winspool_AsyncDeletePrinterKey */
636 struct winspool_AsyncDeletePrinterKey
*r2
= (struct winspool_AsyncDeletePrinterKey
*)r
;
637 if (DEBUGLEVEL
>= 10) {
638 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterKey
, NDR_IN
, r2
);
640 r2
->out
.result
= _winspool_AsyncDeletePrinterKey(p
, r2
);
643 case 33: { /* winspool_AsyncXcvData */
644 struct winspool_AsyncXcvData
*r2
= (struct winspool_AsyncXcvData
*)r
;
645 if (DEBUGLEVEL
>= 10) {
646 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncXcvData
, NDR_IN
, r2
);
648 NDR_ZERO_STRUCT(r2
->out
);
649 r2
->out
.pdwStatus
= r2
->in
.pdwStatus
;
650 r2
->out
.pOutputData
= talloc_zero_array(r2
, uint8_t, r2
->in
.cbOutputData
);
651 if (r2
->out
.pOutputData
== NULL
) {
652 status
= NT_STATUS_NO_MEMORY
;
653 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
657 r2
->out
.pcbOutputNeeded
= talloc_zero(r2
, uint32_t);
658 if (r2
->out
.pcbOutputNeeded
== NULL
) {
659 status
= NT_STATUS_NO_MEMORY
;
660 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
664 r2
->out
.result
= _winspool_AsyncXcvData(p
, r2
);
667 case 34: { /* winspool_AsyncSendRecvBidiData */
668 struct winspool_AsyncSendRecvBidiData
*r2
= (struct winspool_AsyncSendRecvBidiData
*)r
;
669 if (DEBUGLEVEL
>= 10) {
670 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSendRecvBidiData
, NDR_IN
, r2
);
672 NDR_ZERO_STRUCT(r2
->out
);
673 r2
->out
.ppRespData
= talloc_zero(r2
, struct RPC_BIDI_RESPONSE_CONTAINER
*);
674 if (r2
->out
.ppRespData
== NULL
) {
675 status
= NT_STATUS_NO_MEMORY
;
676 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
680 r2
->out
.result
= _winspool_AsyncSendRecvBidiData(p
, r2
);
683 case 35: { /* winspool_AsyncCreatePrinterIC */
684 struct winspool_AsyncCreatePrinterIC
*r2
= (struct winspool_AsyncCreatePrinterIC
*)r
;
685 if (DEBUGLEVEL
>= 10) {
686 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncCreatePrinterIC
, NDR_IN
, r2
);
688 NDR_ZERO_STRUCT(r2
->out
);
689 r2
->out
.pHandle
= talloc_zero(r2
, struct policy_handle
);
690 if (r2
->out
.pHandle
== NULL
) {
691 status
= NT_STATUS_NO_MEMORY
;
692 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
696 r2
->out
.result
= _winspool_AsyncCreatePrinterIC(p
, r2
);
699 case 36: { /* winspool_AsyncPlayGdiScriptOnPrinterIC */
700 struct winspool_AsyncPlayGdiScriptOnPrinterIC
*r2
= (struct winspool_AsyncPlayGdiScriptOnPrinterIC
*)r
;
701 if (DEBUGLEVEL
>= 10) {
702 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncPlayGdiScriptOnPrinterIC
, NDR_IN
, r2
);
704 NDR_ZERO_STRUCT(r2
->out
);
705 r2
->out
.pOut
= talloc_zero_array(r2
, uint8_t, r2
->in
.cOut
);
706 if (r2
->out
.pOut
== NULL
) {
707 status
= NT_STATUS_NO_MEMORY
;
708 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
712 r2
->out
.result
= _winspool_AsyncPlayGdiScriptOnPrinterIC(p
, r2
);
715 case 37: { /* winspool_AsyncDeletePrinterIC */
716 struct winspool_AsyncDeletePrinterIC
*r2
= (struct winspool_AsyncDeletePrinterIC
*)r
;
717 if (DEBUGLEVEL
>= 10) {
718 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterIC
, NDR_IN
, r2
);
720 NDR_ZERO_STRUCT(r2
->out
);
721 r2
->out
.phPrinterIC
= r2
->in
.phPrinterIC
;
722 r2
->out
.result
= _winspool_AsyncDeletePrinterIC(p
, r2
);
725 case 38: { /* winspool_AsyncEnumPrinters */
726 struct winspool_AsyncEnumPrinters
*r2
= (struct winspool_AsyncEnumPrinters
*)r
;
727 if (DEBUGLEVEL
>= 10) {
728 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinters
, NDR_IN
, r2
);
730 NDR_ZERO_STRUCT(r2
->out
);
731 r2
->out
.pPrinterEnum
= r2
->in
.pPrinterEnum
;
732 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
733 if (r2
->out
.pcbNeeded
== NULL
) {
734 status
= NT_STATUS_NO_MEMORY
;
735 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
739 r2
->out
.pcReturned
= talloc_zero(r2
, uint32_t);
740 if (r2
->out
.pcReturned
== NULL
) {
741 status
= NT_STATUS_NO_MEMORY
;
742 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
746 r2
->out
.result
= _winspool_AsyncEnumPrinters(p
, r2
);
749 case 39: { /* winspool_AsyncAddPrinterDriver */
750 struct winspool_AsyncAddPrinterDriver
*r2
= (struct winspool_AsyncAddPrinterDriver
*)r
;
751 if (DEBUGLEVEL
>= 10) {
752 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPrinterDriver
, NDR_IN
, r2
);
754 r2
->out
.result
= _winspool_AsyncAddPrinterDriver(p
, r2
);
757 case 40: { /* winspool_AsyncEnumPrinterDrivers */
758 struct winspool_AsyncEnumPrinterDrivers
*r2
= (struct winspool_AsyncEnumPrinterDrivers
*)r
;
759 if (DEBUGLEVEL
>= 10) {
760 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinterDrivers
, NDR_IN
, r2
);
762 NDR_ZERO_STRUCT(r2
->out
);
763 r2
->out
.pDrivers
= r2
->in
.pDrivers
;
764 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
765 if (r2
->out
.pcbNeeded
== NULL
) {
766 status
= NT_STATUS_NO_MEMORY
;
767 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
771 r2
->out
.pcReturned
= talloc_zero(r2
, uint32_t);
772 if (r2
->out
.pcReturned
== NULL
) {
773 status
= NT_STATUS_NO_MEMORY
;
774 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
778 r2
->out
.result
= _winspool_AsyncEnumPrinterDrivers(p
, r2
);
781 case 41: { /* winspool_AsyncGetPrinterDriverDirectory */
782 struct winspool_AsyncGetPrinterDriverDirectory
*r2
= (struct winspool_AsyncGetPrinterDriverDirectory
*)r
;
783 if (DEBUGLEVEL
>= 10) {
784 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterDriverDirectory
, NDR_IN
, r2
);
786 NDR_ZERO_STRUCT(r2
->out
);
787 r2
->out
.pDriverDirectory
= r2
->in
.pDriverDirectory
;
788 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
789 if (r2
->out
.pcbNeeded
== NULL
) {
790 status
= NT_STATUS_NO_MEMORY
;
791 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
795 r2
->out
.result
= _winspool_AsyncGetPrinterDriverDirectory(p
, r2
);
798 case 42: { /* winspool_AsyncDeletePrinterDriver */
799 struct winspool_AsyncDeletePrinterDriver
*r2
= (struct winspool_AsyncDeletePrinterDriver
*)r
;
800 if (DEBUGLEVEL
>= 10) {
801 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterDriver
, NDR_IN
, r2
);
803 r2
->out
.result
= _winspool_AsyncDeletePrinterDriver(p
, r2
);
806 case 43: { /* winspool_AsyncDeletePrinterDriverEx */
807 struct winspool_AsyncDeletePrinterDriverEx
*r2
= (struct winspool_AsyncDeletePrinterDriverEx
*)r
;
808 if (DEBUGLEVEL
>= 10) {
809 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterDriverEx
, NDR_IN
, r2
);
811 r2
->out
.result
= _winspool_AsyncDeletePrinterDriverEx(p
, r2
);
814 case 44: { /* winspool_AsyncAddPrintProcessor */
815 struct winspool_AsyncAddPrintProcessor
*r2
= (struct winspool_AsyncAddPrintProcessor
*)r
;
816 if (DEBUGLEVEL
>= 10) {
817 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPrintProcessor
, NDR_IN
, r2
);
819 r2
->out
.result
= _winspool_AsyncAddPrintProcessor(p
, r2
);
822 case 45: { /* winspool_AsyncEnumPrintProcessors */
823 struct winspool_AsyncEnumPrintProcessors
*r2
= (struct winspool_AsyncEnumPrintProcessors
*)r
;
824 if (DEBUGLEVEL
>= 10) {
825 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrintProcessors
, NDR_IN
, r2
);
827 NDR_ZERO_STRUCT(r2
->out
);
828 r2
->out
.pPrintProcessorInfo
= r2
->in
.pPrintProcessorInfo
;
829 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
830 if (r2
->out
.pcbNeeded
== NULL
) {
831 status
= NT_STATUS_NO_MEMORY
;
832 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
836 r2
->out
.pcReturned
= talloc_zero(r2
, uint32_t);
837 if (r2
->out
.pcReturned
== NULL
) {
838 status
= NT_STATUS_NO_MEMORY
;
839 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
843 r2
->out
.result
= _winspool_AsyncEnumPrintProcessors(p
, r2
);
846 case 46: { /* winspool_AsyncGetPrintProcessorDirectory */
847 struct winspool_AsyncGetPrintProcessorDirectory
*r2
= (struct winspool_AsyncGetPrintProcessorDirectory
*)r
;
848 if (DEBUGLEVEL
>= 10) {
849 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrintProcessorDirectory
, NDR_IN
, r2
);
851 NDR_ZERO_STRUCT(r2
->out
);
852 r2
->out
.pPrintProcessorDirectory
= r2
->in
.pPrintProcessorDirectory
;
853 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
854 if (r2
->out
.pcbNeeded
== NULL
) {
855 status
= NT_STATUS_NO_MEMORY
;
856 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
860 r2
->out
.result
= _winspool_AsyncGetPrintProcessorDirectory(p
, r2
);
863 case 47: { /* winspool_AsyncEnumPorts */
864 struct winspool_AsyncEnumPorts
*r2
= (struct winspool_AsyncEnumPorts
*)r
;
865 if (DEBUGLEVEL
>= 10) {
866 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPorts
, NDR_IN
, r2
);
868 NDR_ZERO_STRUCT(r2
->out
);
869 r2
->out
.pPort
= r2
->in
.pPort
;
870 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
871 if (r2
->out
.pcbNeeded
== NULL
) {
872 status
= NT_STATUS_NO_MEMORY
;
873 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
877 r2
->out
.pcReturned
= talloc_zero(r2
, uint32_t);
878 if (r2
->out
.pcReturned
== NULL
) {
879 status
= NT_STATUS_NO_MEMORY
;
880 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
884 r2
->out
.result
= _winspool_AsyncEnumPorts(p
, r2
);
887 case 48: { /* winspool_AsyncEnumMonitors */
888 struct winspool_AsyncEnumMonitors
*r2
= (struct winspool_AsyncEnumMonitors
*)r
;
889 if (DEBUGLEVEL
>= 10) {
890 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumMonitors
, NDR_IN
, r2
);
892 NDR_ZERO_STRUCT(r2
->out
);
893 r2
->out
.pMonitor
= r2
->in
.pMonitor
;
894 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
895 if (r2
->out
.pcbNeeded
== NULL
) {
896 status
= NT_STATUS_NO_MEMORY
;
897 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
901 r2
->out
.pcReturned
= talloc_zero(r2
, uint32_t);
902 if (r2
->out
.pcReturned
== NULL
) {
903 status
= NT_STATUS_NO_MEMORY
;
904 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
908 r2
->out
.result
= _winspool_AsyncEnumMonitors(p
, r2
);
911 case 49: { /* winspool_AsyncAddPort */
912 struct winspool_AsyncAddPort
*r2
= (struct winspool_AsyncAddPort
*)r
;
913 if (DEBUGLEVEL
>= 10) {
914 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPort
, NDR_IN
, r2
);
916 r2
->out
.result
= _winspool_AsyncAddPort(p
, r2
);
919 case 50: { /* winspool_AsyncSetPort */
920 struct winspool_AsyncSetPort
*r2
= (struct winspool_AsyncSetPort
*)r
;
921 if (DEBUGLEVEL
>= 10) {
922 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetPort
, NDR_IN
, r2
);
924 r2
->out
.result
= _winspool_AsyncSetPort(p
, r2
);
927 case 51: { /* winspool_AsyncAddMonitor */
928 struct winspool_AsyncAddMonitor
*r2
= (struct winspool_AsyncAddMonitor
*)r
;
929 if (DEBUGLEVEL
>= 10) {
930 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddMonitor
, NDR_IN
, r2
);
932 r2
->out
.result
= _winspool_AsyncAddMonitor(p
, r2
);
935 case 52: { /* winspool_AsyncDeleteMonitor */
936 struct winspool_AsyncDeleteMonitor
*r2
= (struct winspool_AsyncDeleteMonitor
*)r
;
937 if (DEBUGLEVEL
>= 10) {
938 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeleteMonitor
, NDR_IN
, r2
);
940 r2
->out
.result
= _winspool_AsyncDeleteMonitor(p
, r2
);
943 case 53: { /* winspool_AsyncDeletePrintProcessor */
944 struct winspool_AsyncDeletePrintProcessor
*r2
= (struct winspool_AsyncDeletePrintProcessor
*)r
;
945 if (DEBUGLEVEL
>= 10) {
946 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrintProcessor
, NDR_IN
, r2
);
948 r2
->out
.result
= _winspool_AsyncDeletePrintProcessor(p
, r2
);
951 case 54: { /* winspool_AsyncEnumPrintProcessorDatatypes */
952 struct winspool_AsyncEnumPrintProcessorDatatypes
*r2
= (struct winspool_AsyncEnumPrintProcessorDatatypes
*)r
;
953 if (DEBUGLEVEL
>= 10) {
954 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrintProcessorDatatypes
, NDR_IN
, r2
);
956 NDR_ZERO_STRUCT(r2
->out
);
957 r2
->out
.pDatatypes
= r2
->in
.pDatatypes
;
958 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
959 if (r2
->out
.pcbNeeded
== NULL
) {
960 status
= NT_STATUS_NO_MEMORY
;
961 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
965 r2
->out
.pcReturned
= talloc_zero(r2
, uint32_t);
966 if (r2
->out
.pcReturned
== NULL
) {
967 status
= NT_STATUS_NO_MEMORY
;
968 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
972 r2
->out
.result
= _winspool_AsyncEnumPrintProcessorDatatypes(p
, r2
);
975 case 55: { /* winspool_AsyncAddPerMachineConnection */
976 struct winspool_AsyncAddPerMachineConnection
*r2
= (struct winspool_AsyncAddPerMachineConnection
*)r
;
977 if (DEBUGLEVEL
>= 10) {
978 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPerMachineConnection
, NDR_IN
, r2
);
980 r2
->out
.result
= _winspool_AsyncAddPerMachineConnection(p
, r2
);
983 case 56: { /* winspool_AsyncDeletePerMachineConnection */
984 struct winspool_AsyncDeletePerMachineConnection
*r2
= (struct winspool_AsyncDeletePerMachineConnection
*)r
;
985 if (DEBUGLEVEL
>= 10) {
986 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePerMachineConnection
, NDR_IN
, r2
);
988 r2
->out
.result
= _winspool_AsyncDeletePerMachineConnection(p
, r2
);
991 case 57: { /* winspool_AsyncEnumPerMachineConnections */
992 struct winspool_AsyncEnumPerMachineConnections
*r2
= (struct winspool_AsyncEnumPerMachineConnections
*)r
;
993 if (DEBUGLEVEL
>= 10) {
994 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPerMachineConnections
, NDR_IN
, r2
);
996 NDR_ZERO_STRUCT(r2
->out
);
997 r2
->out
.pPrinterEnum
= r2
->in
.pPrinterEnum
;
998 r2
->out
.pcbNeeded
= talloc_zero(r2
, uint32_t);
999 if (r2
->out
.pcbNeeded
== NULL
) {
1000 status
= NT_STATUS_NO_MEMORY
;
1001 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
1005 r2
->out
.pcReturned
= talloc_zero(r2
, uint32_t);
1006 if (r2
->out
.pcReturned
== NULL
) {
1007 status
= NT_STATUS_NO_MEMORY
;
1008 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
1012 r2
->out
.result
= _winspool_AsyncEnumPerMachineConnections(p
, r2
);
1015 case 58: { /* winspool_SyncRegisterForRemoteNotifications */
1016 struct winspool_SyncRegisterForRemoteNotifications
*r2
= (struct winspool_SyncRegisterForRemoteNotifications
*)r
;
1017 if (DEBUGLEVEL
>= 10) {
1018 NDR_PRINT_FUNCTION_DEBUG(winspool_SyncRegisterForRemoteNotifications
, NDR_IN
, r2
);
1020 NDR_ZERO_STRUCT(r2
->out
);
1021 r2
->out
.phRpcHandle
= talloc_zero(r2
, struct policy_handle
);
1022 if (r2
->out
.phRpcHandle
== NULL
) {
1023 status
= NT_STATUS_NO_MEMORY
;
1024 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
1028 r2
->out
.result
= _winspool_SyncRegisterForRemoteNotifications(p
, r2
);
1031 case 59: { /* winspool_SyncUnRegisterForRemoteNotifications */
1032 struct winspool_SyncUnRegisterForRemoteNotifications
*r2
= (struct winspool_SyncUnRegisterForRemoteNotifications
*)r
;
1033 if (DEBUGLEVEL
>= 10) {
1034 NDR_PRINT_FUNCTION_DEBUG(winspool_SyncUnRegisterForRemoteNotifications
, NDR_IN
, r2
);
1036 NDR_ZERO_STRUCT(r2
->out
);
1037 r2
->out
.phRpcHandle
= r2
->in
.phRpcHandle
;
1038 r2
->out
.result
= _winspool_SyncUnRegisterForRemoteNotifications(p
, r2
);
1041 case 60: { /* winspool_SyncRefreshRemoteNotifications */
1042 struct winspool_SyncRefreshRemoteNotifications
*r2
= (struct winspool_SyncRefreshRemoteNotifications
*)r
;
1043 if (DEBUGLEVEL
>= 10) {
1044 NDR_PRINT_FUNCTION_DEBUG(winspool_SyncRefreshRemoteNotifications
, NDR_IN
, r2
);
1046 NDR_ZERO_STRUCT(r2
->out
);
1047 r2
->out
.ppNotifyData
= talloc_zero(r2
, struct winspool_PrintPropertiesCollection
*);
1048 if (r2
->out
.ppNotifyData
== NULL
) {
1049 status
= NT_STATUS_NO_MEMORY
;
1050 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
1054 r2
->out
.result
= _winspool_SyncRefreshRemoteNotifications(p
, r2
);
1057 case 61: { /* winspool_AsyncGetRemoteNotifications */
1058 struct winspool_AsyncGetRemoteNotifications
*r2
= (struct winspool_AsyncGetRemoteNotifications
*)r
;
1059 if (DEBUGLEVEL
>= 10) {
1060 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetRemoteNotifications
, NDR_IN
, r2
);
1062 NDR_ZERO_STRUCT(r2
->out
);
1063 r2
->out
.ppNotifyData
= talloc_zero(r2
, struct winspool_PrintPropertiesCollection
*);
1064 if (r2
->out
.ppNotifyData
== NULL
) {
1065 status
= NT_STATUS_NO_MEMORY
;
1066 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
1070 r2
->out
.result
= _winspool_AsyncGetRemoteNotifications(p
, r2
);
1073 case 62: { /* winspool_AsyncInstallPrinterDriverFromPackage */
1074 struct winspool_AsyncInstallPrinterDriverFromPackage
*r2
= (struct winspool_AsyncInstallPrinterDriverFromPackage
*)r
;
1075 if (DEBUGLEVEL
>= 10) {
1076 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncInstallPrinterDriverFromPackage
, NDR_IN
, r2
);
1078 r2
->out
.result
= _winspool_AsyncInstallPrinterDriverFromPackage(p
, r2
);
1081 case 63: { /* winspool_AsyncUploadPrinterDriverPackage */
1082 struct winspool_AsyncUploadPrinterDriverPackage
*r2
= (struct winspool_AsyncUploadPrinterDriverPackage
*)r
;
1083 if (DEBUGLEVEL
>= 10) {
1084 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncUploadPrinterDriverPackage
, NDR_IN
, r2
);
1086 NDR_ZERO_STRUCT(r2
->out
);
1087 r2
->out
.pszDestInfPath
= r2
->in
.pszDestInfPath
;
1088 r2
->out
.pcchDestInfPath
= r2
->in
.pcchDestInfPath
;
1089 r2
->out
.result
= _winspool_AsyncUploadPrinterDriverPackage(p
, r2
);
1092 case 64: { /* winspool_AsyncGetCorePrinterDrivers */
1093 struct winspool_AsyncGetCorePrinterDrivers
*r2
= (struct winspool_AsyncGetCorePrinterDrivers
*)r
;
1094 if (DEBUGLEVEL
>= 10) {
1095 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetCorePrinterDrivers
, NDR_IN
, r2
);
1097 NDR_ZERO_STRUCT(r2
->out
);
1098 r2
->out
.pCorePrinterDrivers
= talloc_zero_array(r2
, struct spoolss_CorePrinterDriver
, r2
->in
.cCorePrinterDrivers
);
1099 if (r2
->out
.pCorePrinterDrivers
== NULL
) {
1100 status
= NT_STATUS_NO_MEMORY
;
1101 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
1105 r2
->out
.result
= _winspool_AsyncGetCorePrinterDrivers(p
, r2
);
1108 case 65: { /* winspool_AsyncCorePrinterDriverInstalled */
1109 struct winspool_AsyncCorePrinterDriverInstalled
*r2
= (struct winspool_AsyncCorePrinterDriverInstalled
*)r
;
1110 if (DEBUGLEVEL
>= 10) {
1111 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncCorePrinterDriverInstalled
, NDR_IN
, r2
);
1113 NDR_ZERO_STRUCT(r2
->out
);
1114 r2
->out
.pbDriverInstalled
= talloc_zero(r2
, int32_t);
1115 if (r2
->out
.pbDriverInstalled
== NULL
) {
1116 status
= NT_STATUS_NO_MEMORY
;
1117 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
1121 r2
->out
.result
= _winspool_AsyncCorePrinterDriverInstalled(p
, r2
);
1124 case 66: { /* winspool_AsyncGetPrinterDriverPackagePath */
1125 struct winspool_AsyncGetPrinterDriverPackagePath
*r2
= (struct winspool_AsyncGetPrinterDriverPackagePath
*)r
;
1126 if (DEBUGLEVEL
>= 10) {
1127 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterDriverPackagePath
, NDR_IN
, r2
);
1129 NDR_ZERO_STRUCT(r2
->out
);
1130 r2
->out
.pszDriverPackageCab
= r2
->in
.pszDriverPackageCab
;
1131 r2
->out
.pcchRequiredSize
= talloc_zero(r2
, uint32_t);
1132 if (r2
->out
.pcchRequiredSize
== NULL
) {
1133 status
= NT_STATUS_NO_MEMORY
;
1134 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
1138 r2
->out
.result
= _winspool_AsyncGetPrinterDriverPackagePath(p
, r2
);
1141 case 67: { /* winspool_AsyncDeletePrinterDriverPackage */
1142 struct winspool_AsyncDeletePrinterDriverPackage
*r2
= (struct winspool_AsyncDeletePrinterDriverPackage
*)r
;
1143 if (DEBUGLEVEL
>= 10) {
1144 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterDriverPackage
, NDR_IN
, r2
);
1146 r2
->out
.result
= _winspool_AsyncDeletePrinterDriverPackage(p
, r2
);
1149 case 68: { /* winspool_AsyncReadPrinter */
1150 struct winspool_AsyncReadPrinter
*r2
= (struct winspool_AsyncReadPrinter
*)r
;
1151 if (DEBUGLEVEL
>= 10) {
1152 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncReadPrinter
, NDR_IN
, r2
);
1154 NDR_ZERO_STRUCT(r2
->out
);
1155 r2
->out
.pBuf
= talloc_zero_array(r2
, uint8_t, r2
->in
.cbBuf
);
1156 if (r2
->out
.pBuf
== NULL
) {
1157 status
= NT_STATUS_NO_MEMORY
;
1158 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
1162 r2
->out
.pcNoBytesRead
= talloc_zero(r2
, uint32_t);
1163 if (r2
->out
.pcNoBytesRead
== NULL
) {
1164 status
= NT_STATUS_NO_MEMORY
;
1165 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
1169 r2
->out
.result
= _winspool_AsyncReadPrinter(p
, r2
);
1172 case 69: { /* winspool_AsyncResetPrinter */
1173 struct winspool_AsyncResetPrinter
*r2
= (struct winspool_AsyncResetPrinter
*)r
;
1174 if (DEBUGLEVEL
>= 10) {
1175 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncResetPrinter
, NDR_IN
, r2
);
1177 r2
->out
.result
= _winspool_AsyncResetPrinter(p
, r2
);
1180 case 70: { /* winspool_AsyncGetJobNamedPropertyValue */
1181 struct winspool_AsyncGetJobNamedPropertyValue
*r2
= (struct winspool_AsyncGetJobNamedPropertyValue
*)r
;
1182 if (DEBUGLEVEL
>= 10) {
1183 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetJobNamedPropertyValue
, NDR_IN
, r2
);
1185 NDR_ZERO_STRUCT(r2
->out
);
1186 r2
->out
.pValue
= talloc_zero(r2
, struct spoolss_PrintPropertyValue
);
1187 if (r2
->out
.pValue
== NULL
) {
1188 status
= NT_STATUS_NO_MEMORY
;
1189 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
1193 r2
->out
.result
= _winspool_AsyncGetJobNamedPropertyValue(p
, r2
);
1196 case 71: { /* winspool_AsyncSetJobNamedProperty */
1197 struct winspool_AsyncSetJobNamedProperty
*r2
= (struct winspool_AsyncSetJobNamedProperty
*)r
;
1198 if (DEBUGLEVEL
>= 10) {
1199 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetJobNamedProperty
, NDR_IN
, r2
);
1201 r2
->out
.result
= _winspool_AsyncSetJobNamedProperty(p
, r2
);
1204 case 72: { /* winspool_AsyncDeleteJobNamedProperty */
1205 struct winspool_AsyncDeleteJobNamedProperty
*r2
= (struct winspool_AsyncDeleteJobNamedProperty
*)r
;
1206 if (DEBUGLEVEL
>= 10) {
1207 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeleteJobNamedProperty
, NDR_IN
, r2
);
1209 r2
->out
.result
= _winspool_AsyncDeleteJobNamedProperty(p
, r2
);
1212 case 73: { /* winspool_AsyncEnumJobNamedProperties */
1213 struct winspool_AsyncEnumJobNamedProperties
*r2
= (struct winspool_AsyncEnumJobNamedProperties
*)r
;
1214 if (DEBUGLEVEL
>= 10) {
1215 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumJobNamedProperties
, NDR_IN
, r2
);
1217 NDR_ZERO_STRUCT(r2
->out
);
1218 r2
->out
.pcProperties
= talloc_zero(r2
, uint32_t);
1219 if (r2
->out
.pcProperties
== NULL
) {
1220 status
= NT_STATUS_NO_MEMORY
;
1221 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
1225 r2
->out
.ppProperties
= talloc_zero(r2
, struct spoolss_PrintNamedProperty
*);
1226 if (r2
->out
.ppProperties
== NULL
) {
1227 status
= NT_STATUS_NO_MEMORY
;
1228 p
->fault_state
= DCERPC_FAULT_CANT_PERFORM
;
1232 r2
->out
.result
= _winspool_AsyncEnumJobNamedProperties(p
, r2
);
1235 case 74: { /* winspool_AsyncLogJobInfoForBranchOffice */
1236 struct winspool_AsyncLogJobInfoForBranchOffice
*r2
= (struct winspool_AsyncLogJobInfoForBranchOffice
*)r
;
1237 if (DEBUGLEVEL
>= 10) {
1238 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncLogJobInfoForBranchOffice
, NDR_IN
, r2
);
1240 r2
->out
.result
= _winspool_AsyncLogJobInfoForBranchOffice(p
, r2
);
1244 dce_call
->fault_code
= DCERPC_FAULT_OP_RNG_ERROR
;
1251 unbecome_authenticated_pipe_user();
1256 /* Check pipes struct fault state */
1257 if (p
->fault_state
!= 0) {
1258 dce_call
->fault_code
= p
->fault_state
;
1260 if (dce_call
->fault_code
!= 0) {
1261 status
= NT_STATUS_NET_WRITE_FAULT
;
1267 NTSTATUS
iremotewinspool__op_dispatch(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
, void *r
)
1269 return iremotewinspool__op_dispatch_internal(dce_call
, mem_ctx
, r
, false);
1272 NTSTATUS
iremotewinspool__op_reply(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
, void *r
)
1274 uint16_t opnum
= dce_call
->pkt
.u
.request
.opnum
;
1276 if (forward_opnum_to_spoolss(opnum
)) {
1277 return spoolss__op_reply(dce_call
, mem_ctx
, r
);
1281 case 0: { /* winspool_AsyncOpenPrinter */
1282 struct winspool_AsyncOpenPrinter
*r2
= (struct winspool_AsyncOpenPrinter
*)r
;
1283 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1284 DEBUG(5,("function winspool_AsyncOpenPrinter replied async\n"));
1286 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1287 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncOpenPrinter
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1289 if (dce_call
->fault_code
!= 0) {
1290 DBG_WARNING("dcerpc_fault %s in winspool_AsyncOpenPrinter\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1294 case 1: { /* winspool_AsyncAddPrinter */
1295 struct winspool_AsyncAddPrinter
*r2
= (struct winspool_AsyncAddPrinter
*)r
;
1296 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1297 DEBUG(5,("function winspool_AsyncAddPrinter replied async\n"));
1299 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1300 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPrinter
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1302 if (dce_call
->fault_code
!= 0) {
1303 DBG_WARNING("dcerpc_fault %s in winspool_AsyncAddPrinter\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1307 case 2: { /* winspool_AsyncSetJob */
1308 struct winspool_AsyncSetJob
*r2
= (struct winspool_AsyncSetJob
*)r
;
1309 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1310 DEBUG(5,("function winspool_AsyncSetJob replied async\n"));
1312 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1313 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetJob
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1315 if (dce_call
->fault_code
!= 0) {
1316 DBG_WARNING("dcerpc_fault %s in winspool_AsyncSetJob\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1320 case 3: { /* winspool_AsyncGetJob */
1321 struct winspool_AsyncGetJob
*r2
= (struct winspool_AsyncGetJob
*)r
;
1322 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1323 DEBUG(5,("function winspool_AsyncGetJob replied async\n"));
1325 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1326 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetJob
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1328 if (dce_call
->fault_code
!= 0) {
1329 DBG_WARNING("dcerpc_fault %s in winspool_AsyncGetJob\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1333 case 4: { /* winspool_AsyncEnumJobs */
1334 struct winspool_AsyncEnumJobs
*r2
= (struct winspool_AsyncEnumJobs
*)r
;
1335 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1336 DEBUG(5,("function winspool_AsyncEnumJobs replied async\n"));
1338 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1339 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumJobs
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1341 if (dce_call
->fault_code
!= 0) {
1342 DBG_WARNING("dcerpc_fault %s in winspool_AsyncEnumJobs\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1346 case 5: { /* winspool_AsyncAddJob */
1347 struct winspool_AsyncAddJob
*r2
= (struct winspool_AsyncAddJob
*)r
;
1348 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1349 DEBUG(5,("function winspool_AsyncAddJob replied async\n"));
1351 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1352 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddJob
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1354 if (dce_call
->fault_code
!= 0) {
1355 DBG_WARNING("dcerpc_fault %s in winspool_AsyncAddJob\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1359 case 6: { /* winspool_AsyncScheduleJob */
1360 struct winspool_AsyncScheduleJob
*r2
= (struct winspool_AsyncScheduleJob
*)r
;
1361 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1362 DEBUG(5,("function winspool_AsyncScheduleJob replied async\n"));
1364 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1365 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncScheduleJob
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1367 if (dce_call
->fault_code
!= 0) {
1368 DBG_WARNING("dcerpc_fault %s in winspool_AsyncScheduleJob\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1372 case 7: { /* winspool_AsyncDeletePrinter */
1373 struct winspool_AsyncDeletePrinter
*r2
= (struct winspool_AsyncDeletePrinter
*)r
;
1374 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1375 DEBUG(5,("function winspool_AsyncDeletePrinter replied async\n"));
1377 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1378 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinter
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1380 if (dce_call
->fault_code
!= 0) {
1381 DBG_WARNING("dcerpc_fault %s in winspool_AsyncDeletePrinter\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1385 case 8: { /* winspool_AsyncSetPrinter */
1386 struct winspool_AsyncSetPrinter
*r2
= (struct winspool_AsyncSetPrinter
*)r
;
1387 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1388 DEBUG(5,("function winspool_AsyncSetPrinter replied async\n"));
1390 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1391 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetPrinter
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1393 if (dce_call
->fault_code
!= 0) {
1394 DBG_WARNING("dcerpc_fault %s in winspool_AsyncSetPrinter\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1398 case 9: { /* winspool_AsyncGetPrinter */
1399 struct winspool_AsyncGetPrinter
*r2
= (struct winspool_AsyncGetPrinter
*)r
;
1400 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1401 DEBUG(5,("function winspool_AsyncGetPrinter replied async\n"));
1403 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1404 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinter
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1406 if (dce_call
->fault_code
!= 0) {
1407 DBG_WARNING("dcerpc_fault %s in winspool_AsyncGetPrinter\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1411 case 10: { /* winspool_AsyncStartDocPrinter */
1412 struct winspool_AsyncStartDocPrinter
*r2
= (struct winspool_AsyncStartDocPrinter
*)r
;
1413 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1414 DEBUG(5,("function winspool_AsyncStartDocPrinter replied async\n"));
1416 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1417 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncStartDocPrinter
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1419 if (dce_call
->fault_code
!= 0) {
1420 DBG_WARNING("dcerpc_fault %s in winspool_AsyncStartDocPrinter\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1424 case 11: { /* winspool_AsyncStartPagePrinter */
1425 struct winspool_AsyncStartPagePrinter
*r2
= (struct winspool_AsyncStartPagePrinter
*)r
;
1426 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1427 DEBUG(5,("function winspool_AsyncStartPagePrinter replied async\n"));
1429 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1430 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncStartPagePrinter
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1432 if (dce_call
->fault_code
!= 0) {
1433 DBG_WARNING("dcerpc_fault %s in winspool_AsyncStartPagePrinter\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1437 case 12: { /* winspool_AsyncWritePrinter */
1438 struct winspool_AsyncWritePrinter
*r2
= (struct winspool_AsyncWritePrinter
*)r
;
1439 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1440 DEBUG(5,("function winspool_AsyncWritePrinter replied async\n"));
1442 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1443 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncWritePrinter
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1445 if (dce_call
->fault_code
!= 0) {
1446 DBG_WARNING("dcerpc_fault %s in winspool_AsyncWritePrinter\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1450 case 13: { /* winspool_AsyncEndPagePrinter */
1451 struct winspool_AsyncEndPagePrinter
*r2
= (struct winspool_AsyncEndPagePrinter
*)r
;
1452 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1453 DEBUG(5,("function winspool_AsyncEndPagePrinter replied async\n"));
1455 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1456 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEndPagePrinter
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1458 if (dce_call
->fault_code
!= 0) {
1459 DBG_WARNING("dcerpc_fault %s in winspool_AsyncEndPagePrinter\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1463 case 14: { /* winspool_AsyncEndDocPrinter */
1464 struct winspool_AsyncEndDocPrinter
*r2
= (struct winspool_AsyncEndDocPrinter
*)r
;
1465 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1466 DEBUG(5,("function winspool_AsyncEndDocPrinter replied async\n"));
1468 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1469 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEndDocPrinter
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1471 if (dce_call
->fault_code
!= 0) {
1472 DBG_WARNING("dcerpc_fault %s in winspool_AsyncEndDocPrinter\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1476 case 15: { /* winspool_AsyncAbortPrinter */
1477 struct winspool_AsyncAbortPrinter
*r2
= (struct winspool_AsyncAbortPrinter
*)r
;
1478 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1479 DEBUG(5,("function winspool_AsyncAbortPrinter replied async\n"));
1481 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1482 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAbortPrinter
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1484 if (dce_call
->fault_code
!= 0) {
1485 DBG_WARNING("dcerpc_fault %s in winspool_AsyncAbortPrinter\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1489 case 16: { /* winspool_AsyncGetPrinterData */
1490 struct winspool_AsyncGetPrinterData
*r2
= (struct winspool_AsyncGetPrinterData
*)r
;
1491 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1492 DEBUG(5,("function winspool_AsyncGetPrinterData replied async\n"));
1494 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1495 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterData
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1497 if (dce_call
->fault_code
!= 0) {
1498 DBG_WARNING("dcerpc_fault %s in winspool_AsyncGetPrinterData\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1502 case 17: { /* winspool_AsyncGetPrinterDataEx */
1503 struct winspool_AsyncGetPrinterDataEx
*r2
= (struct winspool_AsyncGetPrinterDataEx
*)r
;
1504 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1505 DEBUG(5,("function winspool_AsyncGetPrinterDataEx replied async\n"));
1507 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1508 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterDataEx
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1510 if (dce_call
->fault_code
!= 0) {
1511 DBG_WARNING("dcerpc_fault %s in winspool_AsyncGetPrinterDataEx\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1515 case 18: { /* winspool_AsyncSetPrinterData */
1516 struct winspool_AsyncSetPrinterData
*r2
= (struct winspool_AsyncSetPrinterData
*)r
;
1517 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1518 DEBUG(5,("function winspool_AsyncSetPrinterData replied async\n"));
1520 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1521 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetPrinterData
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1523 if (dce_call
->fault_code
!= 0) {
1524 DBG_WARNING("dcerpc_fault %s in winspool_AsyncSetPrinterData\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1528 case 19: { /* winspool_AsyncSetPrinterDataEx */
1529 struct winspool_AsyncSetPrinterDataEx
*r2
= (struct winspool_AsyncSetPrinterDataEx
*)r
;
1530 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1531 DEBUG(5,("function winspool_AsyncSetPrinterDataEx replied async\n"));
1533 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1534 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetPrinterDataEx
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1536 if (dce_call
->fault_code
!= 0) {
1537 DBG_WARNING("dcerpc_fault %s in winspool_AsyncSetPrinterDataEx\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1541 case 20: { /* winspool_AsyncClosePrinter */
1542 struct winspool_AsyncClosePrinter
*r2
= (struct winspool_AsyncClosePrinter
*)r
;
1543 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1544 DEBUG(5,("function winspool_AsyncClosePrinter replied async\n"));
1546 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1547 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncClosePrinter
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1549 if (dce_call
->fault_code
!= 0) {
1550 DBG_WARNING("dcerpc_fault %s in winspool_AsyncClosePrinter\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1554 case 21: { /* winspool_AsyncAddForm */
1555 struct winspool_AsyncAddForm
*r2
= (struct winspool_AsyncAddForm
*)r
;
1556 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1557 DEBUG(5,("function winspool_AsyncAddForm replied async\n"));
1559 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1560 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddForm
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1562 if (dce_call
->fault_code
!= 0) {
1563 DBG_WARNING("dcerpc_fault %s in winspool_AsyncAddForm\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1567 case 22: { /* winspool_AsyncDeleteForm */
1568 struct winspool_AsyncDeleteForm
*r2
= (struct winspool_AsyncDeleteForm
*)r
;
1569 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1570 DEBUG(5,("function winspool_AsyncDeleteForm replied async\n"));
1572 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1573 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeleteForm
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1575 if (dce_call
->fault_code
!= 0) {
1576 DBG_WARNING("dcerpc_fault %s in winspool_AsyncDeleteForm\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1580 case 23: { /* winspool_AsyncGetForm */
1581 struct winspool_AsyncGetForm
*r2
= (struct winspool_AsyncGetForm
*)r
;
1582 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1583 DEBUG(5,("function winspool_AsyncGetForm replied async\n"));
1585 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1586 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetForm
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1588 if (dce_call
->fault_code
!= 0) {
1589 DBG_WARNING("dcerpc_fault %s in winspool_AsyncGetForm\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1593 case 24: { /* winspool_AsyncSetForm */
1594 struct winspool_AsyncSetForm
*r2
= (struct winspool_AsyncSetForm
*)r
;
1595 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1596 DEBUG(5,("function winspool_AsyncSetForm replied async\n"));
1598 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1599 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetForm
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1601 if (dce_call
->fault_code
!= 0) {
1602 DBG_WARNING("dcerpc_fault %s in winspool_AsyncSetForm\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1606 case 25: { /* winspool_AsyncEnumForms */
1607 struct winspool_AsyncEnumForms
*r2
= (struct winspool_AsyncEnumForms
*)r
;
1608 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1609 DEBUG(5,("function winspool_AsyncEnumForms replied async\n"));
1611 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1612 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumForms
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1614 if (dce_call
->fault_code
!= 0) {
1615 DBG_WARNING("dcerpc_fault %s in winspool_AsyncEnumForms\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1619 case 26: { /* winspool_AsyncGetPrinterDriver */
1620 struct winspool_AsyncGetPrinterDriver
*r2
= (struct winspool_AsyncGetPrinterDriver
*)r
;
1621 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1622 DEBUG(5,("function winspool_AsyncGetPrinterDriver replied async\n"));
1624 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1625 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterDriver
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1627 if (dce_call
->fault_code
!= 0) {
1628 DBG_WARNING("dcerpc_fault %s in winspool_AsyncGetPrinterDriver\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1632 case 27: { /* winspool_AsyncEnumPrinterData */
1633 struct winspool_AsyncEnumPrinterData
*r2
= (struct winspool_AsyncEnumPrinterData
*)r
;
1634 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1635 DEBUG(5,("function winspool_AsyncEnumPrinterData replied async\n"));
1637 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1638 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinterData
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1640 if (dce_call
->fault_code
!= 0) {
1641 DBG_WARNING("dcerpc_fault %s in winspool_AsyncEnumPrinterData\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1645 case 28: { /* winspool_AsyncEnumPrinterDataEx */
1646 struct winspool_AsyncEnumPrinterDataEx
*r2
= (struct winspool_AsyncEnumPrinterDataEx
*)r
;
1647 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1648 DEBUG(5,("function winspool_AsyncEnumPrinterDataEx replied async\n"));
1650 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1651 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinterDataEx
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1653 if (dce_call
->fault_code
!= 0) {
1654 DBG_WARNING("dcerpc_fault %s in winspool_AsyncEnumPrinterDataEx\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1658 case 29: { /* winspool_AsyncEnumPrinterKey */
1659 struct winspool_AsyncEnumPrinterKey
*r2
= (struct winspool_AsyncEnumPrinterKey
*)r
;
1660 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1661 DEBUG(5,("function winspool_AsyncEnumPrinterKey replied async\n"));
1663 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1664 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinterKey
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1666 if (dce_call
->fault_code
!= 0) {
1667 DBG_WARNING("dcerpc_fault %s in winspool_AsyncEnumPrinterKey\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1671 case 30: { /* winspool_AsyncDeletePrinterData */
1672 struct winspool_AsyncDeletePrinterData
*r2
= (struct winspool_AsyncDeletePrinterData
*)r
;
1673 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1674 DEBUG(5,("function winspool_AsyncDeletePrinterData replied async\n"));
1676 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1677 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterData
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1679 if (dce_call
->fault_code
!= 0) {
1680 DBG_WARNING("dcerpc_fault %s in winspool_AsyncDeletePrinterData\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1684 case 31: { /* winspool_AsyncDeletePrinterDataEx */
1685 struct winspool_AsyncDeletePrinterDataEx
*r2
= (struct winspool_AsyncDeletePrinterDataEx
*)r
;
1686 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1687 DEBUG(5,("function winspool_AsyncDeletePrinterDataEx replied async\n"));
1689 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1690 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterDataEx
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1692 if (dce_call
->fault_code
!= 0) {
1693 DBG_WARNING("dcerpc_fault %s in winspool_AsyncDeletePrinterDataEx\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1697 case 32: { /* winspool_AsyncDeletePrinterKey */
1698 struct winspool_AsyncDeletePrinterKey
*r2
= (struct winspool_AsyncDeletePrinterKey
*)r
;
1699 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1700 DEBUG(5,("function winspool_AsyncDeletePrinterKey replied async\n"));
1702 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1703 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterKey
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1705 if (dce_call
->fault_code
!= 0) {
1706 DBG_WARNING("dcerpc_fault %s in winspool_AsyncDeletePrinterKey\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1710 case 33: { /* winspool_AsyncXcvData */
1711 struct winspool_AsyncXcvData
*r2
= (struct winspool_AsyncXcvData
*)r
;
1712 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1713 DEBUG(5,("function winspool_AsyncXcvData replied async\n"));
1715 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1716 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncXcvData
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1718 if (dce_call
->fault_code
!= 0) {
1719 DBG_WARNING("dcerpc_fault %s in winspool_AsyncXcvData\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1723 case 34: { /* winspool_AsyncSendRecvBidiData */
1724 struct winspool_AsyncSendRecvBidiData
*r2
= (struct winspool_AsyncSendRecvBidiData
*)r
;
1725 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1726 DEBUG(5,("function winspool_AsyncSendRecvBidiData replied async\n"));
1728 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1729 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSendRecvBidiData
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1731 if (dce_call
->fault_code
!= 0) {
1732 DBG_WARNING("dcerpc_fault %s in winspool_AsyncSendRecvBidiData\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1736 case 35: { /* winspool_AsyncCreatePrinterIC */
1737 struct winspool_AsyncCreatePrinterIC
*r2
= (struct winspool_AsyncCreatePrinterIC
*)r
;
1738 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1739 DEBUG(5,("function winspool_AsyncCreatePrinterIC replied async\n"));
1741 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1742 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncCreatePrinterIC
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1744 if (dce_call
->fault_code
!= 0) {
1745 DBG_WARNING("dcerpc_fault %s in winspool_AsyncCreatePrinterIC\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1749 case 36: { /* winspool_AsyncPlayGdiScriptOnPrinterIC */
1750 struct winspool_AsyncPlayGdiScriptOnPrinterIC
*r2
= (struct winspool_AsyncPlayGdiScriptOnPrinterIC
*)r
;
1751 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1752 DEBUG(5,("function winspool_AsyncPlayGdiScriptOnPrinterIC replied async\n"));
1754 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1755 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncPlayGdiScriptOnPrinterIC
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1757 if (dce_call
->fault_code
!= 0) {
1758 DBG_WARNING("dcerpc_fault %s in winspool_AsyncPlayGdiScriptOnPrinterIC\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1762 case 37: { /* winspool_AsyncDeletePrinterIC */
1763 struct winspool_AsyncDeletePrinterIC
*r2
= (struct winspool_AsyncDeletePrinterIC
*)r
;
1764 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1765 DEBUG(5,("function winspool_AsyncDeletePrinterIC replied async\n"));
1767 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1768 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterIC
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1770 if (dce_call
->fault_code
!= 0) {
1771 DBG_WARNING("dcerpc_fault %s in winspool_AsyncDeletePrinterIC\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1775 case 38: { /* winspool_AsyncEnumPrinters */
1776 struct winspool_AsyncEnumPrinters
*r2
= (struct winspool_AsyncEnumPrinters
*)r
;
1777 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1778 DEBUG(5,("function winspool_AsyncEnumPrinters replied async\n"));
1780 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1781 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinters
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1783 if (dce_call
->fault_code
!= 0) {
1784 DBG_WARNING("dcerpc_fault %s in winspool_AsyncEnumPrinters\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1788 case 39: { /* winspool_AsyncAddPrinterDriver */
1789 struct winspool_AsyncAddPrinterDriver
*r2
= (struct winspool_AsyncAddPrinterDriver
*)r
;
1790 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1791 DEBUG(5,("function winspool_AsyncAddPrinterDriver replied async\n"));
1793 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1794 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPrinterDriver
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1796 if (dce_call
->fault_code
!= 0) {
1797 DBG_WARNING("dcerpc_fault %s in winspool_AsyncAddPrinterDriver\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1801 case 40: { /* winspool_AsyncEnumPrinterDrivers */
1802 struct winspool_AsyncEnumPrinterDrivers
*r2
= (struct winspool_AsyncEnumPrinterDrivers
*)r
;
1803 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1804 DEBUG(5,("function winspool_AsyncEnumPrinterDrivers replied async\n"));
1806 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1807 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrinterDrivers
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1809 if (dce_call
->fault_code
!= 0) {
1810 DBG_WARNING("dcerpc_fault %s in winspool_AsyncEnumPrinterDrivers\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1814 case 41: { /* winspool_AsyncGetPrinterDriverDirectory */
1815 struct winspool_AsyncGetPrinterDriverDirectory
*r2
= (struct winspool_AsyncGetPrinterDriverDirectory
*)r
;
1816 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1817 DEBUG(5,("function winspool_AsyncGetPrinterDriverDirectory replied async\n"));
1819 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1820 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterDriverDirectory
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1822 if (dce_call
->fault_code
!= 0) {
1823 DBG_WARNING("dcerpc_fault %s in winspool_AsyncGetPrinterDriverDirectory\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1827 case 42: { /* winspool_AsyncDeletePrinterDriver */
1828 struct winspool_AsyncDeletePrinterDriver
*r2
= (struct winspool_AsyncDeletePrinterDriver
*)r
;
1829 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1830 DEBUG(5,("function winspool_AsyncDeletePrinterDriver replied async\n"));
1832 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1833 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterDriver
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1835 if (dce_call
->fault_code
!= 0) {
1836 DBG_WARNING("dcerpc_fault %s in winspool_AsyncDeletePrinterDriver\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1840 case 43: { /* winspool_AsyncDeletePrinterDriverEx */
1841 struct winspool_AsyncDeletePrinterDriverEx
*r2
= (struct winspool_AsyncDeletePrinterDriverEx
*)r
;
1842 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1843 DEBUG(5,("function winspool_AsyncDeletePrinterDriverEx replied async\n"));
1845 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1846 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterDriverEx
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1848 if (dce_call
->fault_code
!= 0) {
1849 DBG_WARNING("dcerpc_fault %s in winspool_AsyncDeletePrinterDriverEx\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1853 case 44: { /* winspool_AsyncAddPrintProcessor */
1854 struct winspool_AsyncAddPrintProcessor
*r2
= (struct winspool_AsyncAddPrintProcessor
*)r
;
1855 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1856 DEBUG(5,("function winspool_AsyncAddPrintProcessor replied async\n"));
1858 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1859 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPrintProcessor
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1861 if (dce_call
->fault_code
!= 0) {
1862 DBG_WARNING("dcerpc_fault %s in winspool_AsyncAddPrintProcessor\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1866 case 45: { /* winspool_AsyncEnumPrintProcessors */
1867 struct winspool_AsyncEnumPrintProcessors
*r2
= (struct winspool_AsyncEnumPrintProcessors
*)r
;
1868 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1869 DEBUG(5,("function winspool_AsyncEnumPrintProcessors replied async\n"));
1871 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1872 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrintProcessors
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1874 if (dce_call
->fault_code
!= 0) {
1875 DBG_WARNING("dcerpc_fault %s in winspool_AsyncEnumPrintProcessors\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1879 case 46: { /* winspool_AsyncGetPrintProcessorDirectory */
1880 struct winspool_AsyncGetPrintProcessorDirectory
*r2
= (struct winspool_AsyncGetPrintProcessorDirectory
*)r
;
1881 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1882 DEBUG(5,("function winspool_AsyncGetPrintProcessorDirectory replied async\n"));
1884 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1885 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrintProcessorDirectory
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1887 if (dce_call
->fault_code
!= 0) {
1888 DBG_WARNING("dcerpc_fault %s in winspool_AsyncGetPrintProcessorDirectory\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1892 case 47: { /* winspool_AsyncEnumPorts */
1893 struct winspool_AsyncEnumPorts
*r2
= (struct winspool_AsyncEnumPorts
*)r
;
1894 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1895 DEBUG(5,("function winspool_AsyncEnumPorts replied async\n"));
1897 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1898 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPorts
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1900 if (dce_call
->fault_code
!= 0) {
1901 DBG_WARNING("dcerpc_fault %s in winspool_AsyncEnumPorts\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1905 case 48: { /* winspool_AsyncEnumMonitors */
1906 struct winspool_AsyncEnumMonitors
*r2
= (struct winspool_AsyncEnumMonitors
*)r
;
1907 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1908 DEBUG(5,("function winspool_AsyncEnumMonitors replied async\n"));
1910 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1911 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumMonitors
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1913 if (dce_call
->fault_code
!= 0) {
1914 DBG_WARNING("dcerpc_fault %s in winspool_AsyncEnumMonitors\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1918 case 49: { /* winspool_AsyncAddPort */
1919 struct winspool_AsyncAddPort
*r2
= (struct winspool_AsyncAddPort
*)r
;
1920 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1921 DEBUG(5,("function winspool_AsyncAddPort replied async\n"));
1923 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1924 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPort
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1926 if (dce_call
->fault_code
!= 0) {
1927 DBG_WARNING("dcerpc_fault %s in winspool_AsyncAddPort\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1931 case 50: { /* winspool_AsyncSetPort */
1932 struct winspool_AsyncSetPort
*r2
= (struct winspool_AsyncSetPort
*)r
;
1933 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1934 DEBUG(5,("function winspool_AsyncSetPort replied async\n"));
1936 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1937 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetPort
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1939 if (dce_call
->fault_code
!= 0) {
1940 DBG_WARNING("dcerpc_fault %s in winspool_AsyncSetPort\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1944 case 51: { /* winspool_AsyncAddMonitor */
1945 struct winspool_AsyncAddMonitor
*r2
= (struct winspool_AsyncAddMonitor
*)r
;
1946 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1947 DEBUG(5,("function winspool_AsyncAddMonitor replied async\n"));
1949 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1950 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddMonitor
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1952 if (dce_call
->fault_code
!= 0) {
1953 DBG_WARNING("dcerpc_fault %s in winspool_AsyncAddMonitor\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1957 case 52: { /* winspool_AsyncDeleteMonitor */
1958 struct winspool_AsyncDeleteMonitor
*r2
= (struct winspool_AsyncDeleteMonitor
*)r
;
1959 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1960 DEBUG(5,("function winspool_AsyncDeleteMonitor replied async\n"));
1962 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1963 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeleteMonitor
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1965 if (dce_call
->fault_code
!= 0) {
1966 DBG_WARNING("dcerpc_fault %s in winspool_AsyncDeleteMonitor\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1970 case 53: { /* winspool_AsyncDeletePrintProcessor */
1971 struct winspool_AsyncDeletePrintProcessor
*r2
= (struct winspool_AsyncDeletePrintProcessor
*)r
;
1972 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1973 DEBUG(5,("function winspool_AsyncDeletePrintProcessor replied async\n"));
1975 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1976 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrintProcessor
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1978 if (dce_call
->fault_code
!= 0) {
1979 DBG_WARNING("dcerpc_fault %s in winspool_AsyncDeletePrintProcessor\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1983 case 54: { /* winspool_AsyncEnumPrintProcessorDatatypes */
1984 struct winspool_AsyncEnumPrintProcessorDatatypes
*r2
= (struct winspool_AsyncEnumPrintProcessorDatatypes
*)r
;
1985 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1986 DEBUG(5,("function winspool_AsyncEnumPrintProcessorDatatypes replied async\n"));
1988 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
1989 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPrintProcessorDatatypes
, NDR_OUT
| NDR_SET_VALUES
, r2
);
1991 if (dce_call
->fault_code
!= 0) {
1992 DBG_WARNING("dcerpc_fault %s in winspool_AsyncEnumPrintProcessorDatatypes\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
1996 case 55: { /* winspool_AsyncAddPerMachineConnection */
1997 struct winspool_AsyncAddPerMachineConnection
*r2
= (struct winspool_AsyncAddPerMachineConnection
*)r
;
1998 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
1999 DEBUG(5,("function winspool_AsyncAddPerMachineConnection replied async\n"));
2001 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2002 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncAddPerMachineConnection
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2004 if (dce_call
->fault_code
!= 0) {
2005 DBG_WARNING("dcerpc_fault %s in winspool_AsyncAddPerMachineConnection\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2009 case 56: { /* winspool_AsyncDeletePerMachineConnection */
2010 struct winspool_AsyncDeletePerMachineConnection
*r2
= (struct winspool_AsyncDeletePerMachineConnection
*)r
;
2011 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2012 DEBUG(5,("function winspool_AsyncDeletePerMachineConnection replied async\n"));
2014 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2015 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePerMachineConnection
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2017 if (dce_call
->fault_code
!= 0) {
2018 DBG_WARNING("dcerpc_fault %s in winspool_AsyncDeletePerMachineConnection\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2022 case 57: { /* winspool_AsyncEnumPerMachineConnections */
2023 struct winspool_AsyncEnumPerMachineConnections
*r2
= (struct winspool_AsyncEnumPerMachineConnections
*)r
;
2024 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2025 DEBUG(5,("function winspool_AsyncEnumPerMachineConnections replied async\n"));
2027 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2028 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumPerMachineConnections
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2030 if (dce_call
->fault_code
!= 0) {
2031 DBG_WARNING("dcerpc_fault %s in winspool_AsyncEnumPerMachineConnections\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2035 case 58: { /* winspool_SyncRegisterForRemoteNotifications */
2036 struct winspool_SyncRegisterForRemoteNotifications
*r2
= (struct winspool_SyncRegisterForRemoteNotifications
*)r
;
2037 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2038 DEBUG(5,("function winspool_SyncRegisterForRemoteNotifications replied async\n"));
2040 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2041 NDR_PRINT_FUNCTION_DEBUG(winspool_SyncRegisterForRemoteNotifications
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2043 if (dce_call
->fault_code
!= 0) {
2044 DBG_WARNING("dcerpc_fault %s in winspool_SyncRegisterForRemoteNotifications\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2048 case 59: { /* winspool_SyncUnRegisterForRemoteNotifications */
2049 struct winspool_SyncUnRegisterForRemoteNotifications
*r2
= (struct winspool_SyncUnRegisterForRemoteNotifications
*)r
;
2050 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2051 DEBUG(5,("function winspool_SyncUnRegisterForRemoteNotifications replied async\n"));
2053 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2054 NDR_PRINT_FUNCTION_DEBUG(winspool_SyncUnRegisterForRemoteNotifications
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2056 if (dce_call
->fault_code
!= 0) {
2057 DBG_WARNING("dcerpc_fault %s in winspool_SyncUnRegisterForRemoteNotifications\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2061 case 60: { /* winspool_SyncRefreshRemoteNotifications */
2062 struct winspool_SyncRefreshRemoteNotifications
*r2
= (struct winspool_SyncRefreshRemoteNotifications
*)r
;
2063 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2064 DEBUG(5,("function winspool_SyncRefreshRemoteNotifications replied async\n"));
2066 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2067 NDR_PRINT_FUNCTION_DEBUG(winspool_SyncRefreshRemoteNotifications
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2069 if (dce_call
->fault_code
!= 0) {
2070 DBG_WARNING("dcerpc_fault %s in winspool_SyncRefreshRemoteNotifications\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2074 case 61: { /* winspool_AsyncGetRemoteNotifications */
2075 struct winspool_AsyncGetRemoteNotifications
*r2
= (struct winspool_AsyncGetRemoteNotifications
*)r
;
2076 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2077 DEBUG(5,("function winspool_AsyncGetRemoteNotifications replied async\n"));
2079 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2080 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetRemoteNotifications
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2082 if (dce_call
->fault_code
!= 0) {
2083 DBG_WARNING("dcerpc_fault %s in winspool_AsyncGetRemoteNotifications\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2087 case 62: { /* winspool_AsyncInstallPrinterDriverFromPackage */
2088 struct winspool_AsyncInstallPrinterDriverFromPackage
*r2
= (struct winspool_AsyncInstallPrinterDriverFromPackage
*)r
;
2089 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2090 DEBUG(5,("function winspool_AsyncInstallPrinterDriverFromPackage replied async\n"));
2092 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2093 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncInstallPrinterDriverFromPackage
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2095 if (dce_call
->fault_code
!= 0) {
2096 DBG_WARNING("dcerpc_fault %s in winspool_AsyncInstallPrinterDriverFromPackage\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2100 case 63: { /* winspool_AsyncUploadPrinterDriverPackage */
2101 struct winspool_AsyncUploadPrinterDriverPackage
*r2
= (struct winspool_AsyncUploadPrinterDriverPackage
*)r
;
2102 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2103 DEBUG(5,("function winspool_AsyncUploadPrinterDriverPackage replied async\n"));
2105 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2106 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncUploadPrinterDriverPackage
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2108 if (dce_call
->fault_code
!= 0) {
2109 DBG_WARNING("dcerpc_fault %s in winspool_AsyncUploadPrinterDriverPackage\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2113 case 64: { /* winspool_AsyncGetCorePrinterDrivers */
2114 struct winspool_AsyncGetCorePrinterDrivers
*r2
= (struct winspool_AsyncGetCorePrinterDrivers
*)r
;
2115 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2116 DEBUG(5,("function winspool_AsyncGetCorePrinterDrivers replied async\n"));
2118 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2119 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetCorePrinterDrivers
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2121 if (dce_call
->fault_code
!= 0) {
2122 DBG_WARNING("dcerpc_fault %s in winspool_AsyncGetCorePrinterDrivers\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2126 case 65: { /* winspool_AsyncCorePrinterDriverInstalled */
2127 struct winspool_AsyncCorePrinterDriverInstalled
*r2
= (struct winspool_AsyncCorePrinterDriverInstalled
*)r
;
2128 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2129 DEBUG(5,("function winspool_AsyncCorePrinterDriverInstalled replied async\n"));
2131 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2132 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncCorePrinterDriverInstalled
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2134 if (dce_call
->fault_code
!= 0) {
2135 DBG_WARNING("dcerpc_fault %s in winspool_AsyncCorePrinterDriverInstalled\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2139 case 66: { /* winspool_AsyncGetPrinterDriverPackagePath */
2140 struct winspool_AsyncGetPrinterDriverPackagePath
*r2
= (struct winspool_AsyncGetPrinterDriverPackagePath
*)r
;
2141 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2142 DEBUG(5,("function winspool_AsyncGetPrinterDriverPackagePath replied async\n"));
2144 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2145 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetPrinterDriverPackagePath
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2147 if (dce_call
->fault_code
!= 0) {
2148 DBG_WARNING("dcerpc_fault %s in winspool_AsyncGetPrinterDriverPackagePath\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2152 case 67: { /* winspool_AsyncDeletePrinterDriverPackage */
2153 struct winspool_AsyncDeletePrinterDriverPackage
*r2
= (struct winspool_AsyncDeletePrinterDriverPackage
*)r
;
2154 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2155 DEBUG(5,("function winspool_AsyncDeletePrinterDriverPackage replied async\n"));
2157 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2158 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeletePrinterDriverPackage
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2160 if (dce_call
->fault_code
!= 0) {
2161 DBG_WARNING("dcerpc_fault %s in winspool_AsyncDeletePrinterDriverPackage\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2165 case 68: { /* winspool_AsyncReadPrinter */
2166 struct winspool_AsyncReadPrinter
*r2
= (struct winspool_AsyncReadPrinter
*)r
;
2167 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2168 DEBUG(5,("function winspool_AsyncReadPrinter replied async\n"));
2170 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2171 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncReadPrinter
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2173 if (dce_call
->fault_code
!= 0) {
2174 DBG_WARNING("dcerpc_fault %s in winspool_AsyncReadPrinter\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2178 case 69: { /* winspool_AsyncResetPrinter */
2179 struct winspool_AsyncResetPrinter
*r2
= (struct winspool_AsyncResetPrinter
*)r
;
2180 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2181 DEBUG(5,("function winspool_AsyncResetPrinter replied async\n"));
2183 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2184 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncResetPrinter
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2186 if (dce_call
->fault_code
!= 0) {
2187 DBG_WARNING("dcerpc_fault %s in winspool_AsyncResetPrinter\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2191 case 70: { /* winspool_AsyncGetJobNamedPropertyValue */
2192 struct winspool_AsyncGetJobNamedPropertyValue
*r2
= (struct winspool_AsyncGetJobNamedPropertyValue
*)r
;
2193 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2194 DEBUG(5,("function winspool_AsyncGetJobNamedPropertyValue replied async\n"));
2196 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2197 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncGetJobNamedPropertyValue
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2199 if (dce_call
->fault_code
!= 0) {
2200 DBG_WARNING("dcerpc_fault %s in winspool_AsyncGetJobNamedPropertyValue\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2204 case 71: { /* winspool_AsyncSetJobNamedProperty */
2205 struct winspool_AsyncSetJobNamedProperty
*r2
= (struct winspool_AsyncSetJobNamedProperty
*)r
;
2206 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2207 DEBUG(5,("function winspool_AsyncSetJobNamedProperty replied async\n"));
2209 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2210 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncSetJobNamedProperty
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2212 if (dce_call
->fault_code
!= 0) {
2213 DBG_WARNING("dcerpc_fault %s in winspool_AsyncSetJobNamedProperty\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2217 case 72: { /* winspool_AsyncDeleteJobNamedProperty */
2218 struct winspool_AsyncDeleteJobNamedProperty
*r2
= (struct winspool_AsyncDeleteJobNamedProperty
*)r
;
2219 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2220 DEBUG(5,("function winspool_AsyncDeleteJobNamedProperty replied async\n"));
2222 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2223 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncDeleteJobNamedProperty
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2225 if (dce_call
->fault_code
!= 0) {
2226 DBG_WARNING("dcerpc_fault %s in winspool_AsyncDeleteJobNamedProperty\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2230 case 73: { /* winspool_AsyncEnumJobNamedProperties */
2231 struct winspool_AsyncEnumJobNamedProperties
*r2
= (struct winspool_AsyncEnumJobNamedProperties
*)r
;
2232 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2233 DEBUG(5,("function winspool_AsyncEnumJobNamedProperties replied async\n"));
2235 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2236 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncEnumJobNamedProperties
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2238 if (dce_call
->fault_code
!= 0) {
2239 DBG_WARNING("dcerpc_fault %s in winspool_AsyncEnumJobNamedProperties\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2243 case 74: { /* winspool_AsyncLogJobInfoForBranchOffice */
2244 struct winspool_AsyncLogJobInfoForBranchOffice
*r2
= (struct winspool_AsyncLogJobInfoForBranchOffice
*)r
;
2245 if (dce_call
->state_flags
& DCESRV_CALL_STATE_FLAG_ASYNC
) {
2246 DEBUG(5,("function winspool_AsyncLogJobInfoForBranchOffice replied async\n"));
2248 if (DEBUGLEVEL
>= 10 && dce_call
->fault_code
== 0) {
2249 NDR_PRINT_FUNCTION_DEBUG(winspool_AsyncLogJobInfoForBranchOffice
, NDR_OUT
| NDR_SET_VALUES
, r2
);
2251 if (dce_call
->fault_code
!= 0) {
2252 DBG_WARNING("dcerpc_fault %s in winspool_AsyncLogJobInfoForBranchOffice\n", dcerpc_errstr(mem_ctx
, dce_call
->fault_code
));
2257 dce_call
->fault_code
= DCERPC_FAULT_OP_RNG_ERROR
;
2261 if (dce_call
->fault_code
!= 0) {
2262 return NT_STATUS_NET_WRITE_FAULT
;
2265 return NT_STATUS_OK
;
2268 NTSTATUS
iremotewinspool__op_ndr_push(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
, struct ndr_push
*push
, const void *r
)
2270 enum ndr_err_code ndr_err
;
2271 uint16_t opnum
= dce_call
->pkt
.u
.request
.opnum
;
2273 if (forward_opnum_to_spoolss(opnum
)) {
2274 return spoolss__op_ndr_push(dce_call
, mem_ctx
, push
, r
);
2277 ndr_err
= ndr_table_iremotewinspool
.calls
[opnum
].ndr_push(push
, NDR_OUT
, r
);
2278 if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err
)) {
2279 dce_call
->fault_code
= DCERPC_FAULT_NDR
;
2280 return NT_STATUS_NET_WRITE_FAULT
;
2283 return NT_STATUS_OK
;
2286 NTSTATUS
iremotewinspool__op_local(struct dcesrv_call_state
*dce_call
, TALLOC_CTX
*mem_ctx
, void *r
)
2288 return iremotewinspool__op_dispatch_internal(dce_call
, mem_ctx
, r
, true);
2291 static const struct dcesrv_interface dcesrv_iremotewinspool_interface
= {
2292 .name
= "iremotewinspool",
2293 .syntax_id
= {{0x76f03f96,0xcdfd,0x44fc,{0xa2,0x2c},{0x64,0x95,0x0a,0x00,0x12,0x09}},1.0},
2294 .bind
= iremotewinspool__op_bind
,
2295 .unbind
= iremotewinspool__op_unbind
,
2296 .ndr_pull
= iremotewinspool__op_ndr_pull
,
2297 .dispatch
= iremotewinspool__op_dispatch
,
2298 .reply
= iremotewinspool__op_reply
,
2299 .ndr_push
= iremotewinspool__op_ndr_push
,
2300 .local
= iremotewinspool__op_local
,
2301 #ifdef DCESRV_INTERFACE_IREMOTEWINSPOOL_FLAGS
2302 .flags
= DCESRV_INTERFACE_IREMOTEWINSPOOL_FLAGS
2308 static NTSTATUS
iremotewinspool__op_init_server(struct dcesrv_context
*dce_ctx
, const struct dcesrv_endpoint_server
*ep_server
)
2313 #ifdef DCESRV_INTERFACE_IREMOTEWINSPOOL_NCACN_NP_SECONDARY_ENDPOINT
2314 const char *ncacn_np_secondary_endpoint
= DCESRV_INTERFACE_IREMOTEWINSPOOL_NCACN_NP_SECONDARY_ENDPOINT
;
2316 const char *ncacn_np_secondary_endpoint
= NULL
;
2319 for (i
=0;i
<ndr_table_iremotewinspool
.endpoints
->count
;i
++) {
2320 const char *name
= ndr_table_iremotewinspool
.endpoints
->names
[i
];
2322 ret
= dcesrv_interface_register(dce_ctx
, name
, ncacn_np_secondary_endpoint
, &dcesrv_iremotewinspool_interface
, NULL
);
2323 if (!NT_STATUS_IS_OK(ret
)) {
2324 DBG_ERR("Failed to register endpoint '%s'\n",name
);
2329 return NT_STATUS_OK
;
2332 static NTSTATUS
iremotewinspool__op_shutdown_server(struct dcesrv_context
*dce_ctx
, const struct dcesrv_endpoint_server
*ep_server
)
2334 return NT_STATUS_OK
;
2337 static bool iremotewinspool__op_interface_by_uuid(struct dcesrv_interface
*iface
, const struct GUID
*uuid
, uint32_t if_version
)
2339 if (dcesrv_iremotewinspool_interface
.syntax_id
.if_version
== if_version
&& GUID_equal(&dcesrv_iremotewinspool_interface
.syntax_id
.uuid
, uuid
)) {
2340 memcpy(iface
,&dcesrv_iremotewinspool_interface
, sizeof(*iface
));
2347 static bool iremotewinspool__op_interface_by_name(struct dcesrv_interface
*iface
, const char *name
)
2349 if (strcmp(dcesrv_iremotewinspool_interface
.name
, name
)==0) {
2350 memcpy(iface
, &dcesrv_iremotewinspool_interface
, sizeof(*iface
));
2357 static const struct dcesrv_endpoint_server iremotewinspool_ep_server
= {
2358 /* fill in our name */
2359 .name
= "iremotewinspool",
2361 /* Initialization flag */
2362 .initialized
= false,
2364 /* fill in all the operations */
2365 #ifdef DCESRV_INTERFACE_IREMOTEWINSPOOL_INIT_SERVER
2366 .init_server
= DCESRV_INTERFACE_IREMOTEWINSPOOL_INIT_SERVER
,
2368 .init_server
= iremotewinspool__op_init_server
,
2370 #ifdef DCESRV_INTERFACE_IREMOTEWINSPOOL_SHUTDOWN_SERVER
2371 .shutdown_server
= DCESRV_INTERFACE_IREMOTEWINSPOOL_SHUTDOWN_SERVER
,
2373 .shutdown_server
= iremotewinspool__op_shutdown_server
,
2375 .interface_by_uuid
= iremotewinspool__op_interface_by_uuid
,
2376 .interface_by_name
= iremotewinspool__op_interface_by_name
2379 const struct dcesrv_endpoint_server
*iremotewinspool_get_ep_server(void)
2381 return &iremotewinspool_ep_server
;