LCOV - code coverage report
Current view: top level - bin/default/librpc/gen_ndr - ndr_spoolss_scompat.c (source / functions) Hit Total Coverage
Test: coverage report for fix-15632 9995c5c2 Lines: 737 2307 31.9 %
Date: 2024-04-13 12:30:31 Functions: 10 13 76.9 %

          Line data    Source code
       1             : /* s3 compat server functions auto-generated by pidl */
       2             : #include "bin/default/librpc/gen_ndr/ndr_spoolss.h"
       3             : #include "bin/default/librpc/gen_ndr/ndr_spoolss_scompat.h"
       4             : #include <librpc/rpc/dcesrv_core.h>
       5             : #include <rpc_server/rpc_config.h>
       6             : #include <rpc_server/rpc_server.h>
       7             : #include <util/debug.h>
       8             : 
       9             : enum s3compat_rpc_dispatch {
      10             :         S3COMPAT_RPC_DISPATCH_EXTERNAL = 0x00000001,
      11             :         S3COMPAT_RPC_DISPATCH_INTERNAL = 0x00000002,
      12             : };
      13             : 
      14             : /* spoolss - dcerpc server boilerplate generated by pidl */
      15          60 : static NTSTATUS spoolss__op_bind(struct dcesrv_connection_context *context, const struct dcesrv_interface *iface)
      16             : {
      17             : #ifdef DCESRV_INTERFACE_SPOOLSS_BIND
      18             :         return DCESRV_INTERFACE_SPOOLSS_BIND(context,iface);
      19             : #else
      20          60 :         return NT_STATUS_OK;
      21             : #endif
      22             : }
      23             : 
      24          60 : static void spoolss__op_unbind(struct dcesrv_connection_context *context, const struct dcesrv_interface *iface)
      25             : {
      26             : #ifdef DCESRV_INTERFACE_SPOOLSS_UNBIND
      27             :         DCESRV_INTERFACE_SPOOLSS_UNBIND(context, iface);
      28             : #else
      29          60 :         return;
      30             : #endif
      31             : }
      32             : 
      33       35258 : NTSTATUS spoolss__op_ndr_pull(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct ndr_pull *pull, void **r)
      34             : {
      35           0 :         enum ndr_err_code ndr_err;
      36       35258 :         uint16_t opnum = dce_call->pkt.u.request.opnum;
      37             : 
      38       35258 :         dce_call->fault_code = 0;
      39             : 
      40       35258 :         if (opnum >= ndr_table_spoolss.num_calls) {
      41           0 :                 dce_call->fault_code = DCERPC_FAULT_OP_RNG_ERROR;
      42           0 :                 return NT_STATUS_NET_WRITE_FAULT;
      43             :         }
      44             : 
      45       35258 :         *r = talloc_named(mem_ctx, ndr_table_spoolss.calls[opnum].struct_size, "struct %s", ndr_table_spoolss.calls[opnum].name);
      46       35258 :         NT_STATUS_HAVE_NO_MEMORY(*r);
      47             : 
      48             :         /* unravel the NDR for the packet */
      49       35258 :         ndr_err = ndr_table_spoolss.calls[opnum].ndr_pull(pull, NDR_IN, *r);
      50       35258 :         if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
      51           0 :                 dce_call->fault_code = DCERPC_FAULT_NDR;
      52           0 :                 return NT_STATUS_NET_WRITE_FAULT;
      53             :         }
      54             : 
      55       35258 :         return NT_STATUS_OK;
      56             : }
      57             : 
      58       35258 : static NTSTATUS spoolss__op_dispatch_internal(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, void *r, enum s3compat_rpc_dispatch dispatch)
      59             : {
      60       35258 :         uint16_t opnum = dce_call->pkt.u.request.opnum;
      61       35258 :         struct pipes_struct *p = NULL;
      62       35258 :         NTSTATUS status = NT_STATUS_OK;
      63       35258 :         bool impersonated = false;
      64             : 
      65             :         /* Retrieve pipes struct */
      66       35258 :         p = dcesrv_get_pipes_struct(dce_call->conn);
      67       35258 :         p->dce_call = dce_call;
      68       35258 :         p->mem_ctx = mem_ctx;
      69             :         /* Reset pipes struct fault state */
      70       35258 :         p->fault_state = 0;
      71             : 
      72             :         /* Impersonate */
      73       35258 :         if (dispatch == S3COMPAT_RPC_DISPATCH_EXTERNAL) {
      74       35258 :                 impersonated = become_authenticated_pipe_user(dce_call->auth_state->session_info);
      75       35258 :                 if (!impersonated) {
      76           0 :                         dce_call->fault_code = DCERPC_FAULT_ACCESS_DENIED;
      77           0 :                         status = NT_STATUS_NET_WRITE_FAULT;
      78           0 :                         goto fail;
      79             :                 }
      80             :         }
      81             : 
      82       35258 :         switch (opnum) {
      83         180 :         case 0: { /* spoolss_EnumPrinters */
      84         180 :                 struct spoolss_EnumPrinters *r2 = (struct spoolss_EnumPrinters *)r;
      85         180 :                 if (DEBUGLEVEL >= 10) {
      86           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPrinters, NDR_IN, r2);
      87             :                 }
      88         180 :                 NDR_ZERO_STRUCT(r2->out);
      89         180 :                 r2->out.count = talloc_zero(r2, uint32_t);
      90         180 :                 if (r2->out.count == NULL) {
      91           0 :                         status = NT_STATUS_NO_MEMORY;
      92           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
      93           0 :                         goto fail;
      94             :                 }
      95             : 
      96         180 :                 r2->out.info = talloc_zero(r2, union spoolss_PrinterInfo *);
      97         180 :                 if (r2->out.info == NULL) {
      98           0 :                         status = NT_STATUS_NO_MEMORY;
      99           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     100           0 :                         goto fail;
     101             :                 }
     102             : 
     103         180 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     104         180 :                 if (r2->out.needed == NULL) {
     105           0 :                         status = NT_STATUS_NO_MEMORY;
     106           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     107           0 :                         goto fail;
     108             :                 }
     109             : 
     110         180 :                 r2->out.result = _spoolss_EnumPrinters(p, r2);
     111         180 :                 break;
     112             :         }
     113         194 :         case 1: { /* spoolss_OpenPrinter */
     114         194 :                 struct spoolss_OpenPrinter *r2 = (struct spoolss_OpenPrinter *)r;
     115         194 :                 if (DEBUGLEVEL >= 10) {
     116           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_OpenPrinter, NDR_IN, r2);
     117             :                 }
     118         194 :                 NDR_ZERO_STRUCT(r2->out);
     119         194 :                 r2->out.handle = talloc_zero(r2, struct policy_handle);
     120         194 :                 if (r2->out.handle == NULL) {
     121           0 :                         status = NT_STATUS_NO_MEMORY;
     122           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     123           0 :                         goto fail;
     124             :                 }
     125             : 
     126         194 :                 r2->out.result = _spoolss_OpenPrinter(p, r2);
     127         194 :                 break;
     128             :         }
     129         640 :         case 2: { /* spoolss_SetJob */
     130         640 :                 struct spoolss_SetJob *r2 = (struct spoolss_SetJob *)r;
     131         640 :                 if (DEBUGLEVEL >= 10) {
     132           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SetJob, NDR_IN, r2);
     133             :                 }
     134         640 :                 r2->out.result = _spoolss_SetJob(p, r2);
     135         640 :                 break;
     136             :         }
     137        2048 :         case 3: { /* spoolss_GetJob */
     138        2048 :                 struct spoolss_GetJob *r2 = (struct spoolss_GetJob *)r;
     139        2048 :                 if (DEBUGLEVEL >= 10) {
     140           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetJob, NDR_IN, r2);
     141             :                 }
     142        2048 :                 NDR_ZERO_STRUCT(r2->out);
     143        2048 :                 r2->out.info = talloc_zero(r2, union spoolss_JobInfo);
     144        2048 :                 if (r2->out.info == NULL) {
     145           0 :                         status = NT_STATUS_NO_MEMORY;
     146           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     147           0 :                         goto fail;
     148             :                 }
     149             : 
     150        2048 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     151        2048 :                 if (r2->out.needed == NULL) {
     152           0 :                         status = NT_STATUS_NO_MEMORY;
     153           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     154           0 :                         goto fail;
     155             :                 }
     156             : 
     157        2048 :                 r2->out.result = _spoolss_GetJob(p, r2);
     158        2048 :                 break;
     159             :         }
     160          96 :         case 4: { /* spoolss_EnumJobs */
     161          96 :                 struct spoolss_EnumJobs *r2 = (struct spoolss_EnumJobs *)r;
     162          96 :                 if (DEBUGLEVEL >= 10) {
     163           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumJobs, NDR_IN, r2);
     164             :                 }
     165          96 :                 NDR_ZERO_STRUCT(r2->out);
     166          96 :                 r2->out.count = talloc_zero(r2, uint32_t);
     167          96 :                 if (r2->out.count == NULL) {
     168           0 :                         status = NT_STATUS_NO_MEMORY;
     169           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     170           0 :                         goto fail;
     171             :                 }
     172             : 
     173          96 :                 r2->out.info = talloc_zero(r2, union spoolss_JobInfo *);
     174          96 :                 if (r2->out.info == NULL) {
     175           0 :                         status = NT_STATUS_NO_MEMORY;
     176           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     177           0 :                         goto fail;
     178             :                 }
     179             : 
     180          96 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     181          96 :                 if (r2->out.needed == NULL) {
     182           0 :                         status = NT_STATUS_NO_MEMORY;
     183           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     184           0 :                         goto fail;
     185             :                 }
     186             : 
     187          96 :                 r2->out.result = _spoolss_EnumJobs(p, r2);
     188          96 :                 break;
     189             :         }
     190          72 :         case 5: { /* spoolss_AddPrinter */
     191          72 :                 struct spoolss_AddPrinter *r2 = (struct spoolss_AddPrinter *)r;
     192          72 :                 if (DEBUGLEVEL >= 10) {
     193           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPrinter, NDR_IN, r2);
     194             :                 }
     195          72 :                 NDR_ZERO_STRUCT(r2->out);
     196          72 :                 r2->out.handle = talloc_zero(r2, struct policy_handle);
     197          72 :                 if (r2->out.handle == NULL) {
     198           0 :                         status = NT_STATUS_NO_MEMORY;
     199           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     200           0 :                         goto fail;
     201             :                 }
     202             : 
     203          72 :                 r2->out.result = _spoolss_AddPrinter(p, r2);
     204          72 :                 break;
     205             :         }
     206          16 :         case 6: { /* spoolss_DeletePrinter */
     207          16 :                 struct spoolss_DeletePrinter *r2 = (struct spoolss_DeletePrinter *)r;
     208          16 :                 if (DEBUGLEVEL >= 10) {
     209           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrinter, NDR_IN, r2);
     210             :                 }
     211          16 :                 r2->out.result = _spoolss_DeletePrinter(p, r2);
     212          16 :                 break;
     213             :         }
     214         584 :         case 7: { /* spoolss_SetPrinter */
     215         584 :                 struct spoolss_SetPrinter *r2 = (struct spoolss_SetPrinter *)r;
     216         584 :                 if (DEBUGLEVEL >= 10) {
     217           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SetPrinter, NDR_IN, r2);
     218             :                 }
     219         584 :                 r2->out.result = _spoolss_SetPrinter(p, r2);
     220         584 :                 break;
     221             :         }
     222        3512 :         case 8: { /* spoolss_GetPrinter */
     223        3512 :                 struct spoolss_GetPrinter *r2 = (struct spoolss_GetPrinter *)r;
     224        3512 :                 if (DEBUGLEVEL >= 10) {
     225           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetPrinter, NDR_IN, r2);
     226             :                 }
     227        3512 :                 NDR_ZERO_STRUCT(r2->out);
     228        3512 :                 r2->out.info = talloc_zero(r2, union spoolss_PrinterInfo);
     229        3512 :                 if (r2->out.info == NULL) {
     230           0 :                         status = NT_STATUS_NO_MEMORY;
     231           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     232           0 :                         goto fail;
     233             :                 }
     234             : 
     235        3512 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     236        3512 :                 if (r2->out.needed == NULL) {
     237           0 :                         status = NT_STATUS_NO_MEMORY;
     238           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     239           0 :                         goto fail;
     240             :                 }
     241             : 
     242        3512 :                 r2->out.result = _spoolss_GetPrinter(p, r2);
     243        3512 :                 break;
     244             :         }
     245           0 :         case 9: { /* spoolss_AddPrinterDriver */
     246           0 :                 struct spoolss_AddPrinterDriver *r2 = (struct spoolss_AddPrinterDriver *)r;
     247           0 :                 if (DEBUGLEVEL >= 10) {
     248           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPrinterDriver, NDR_IN, r2);
     249             :                 }
     250           0 :                 r2->out.result = _spoolss_AddPrinterDriver(p, r2);
     251           0 :                 break;
     252             :         }
     253         108 :         case 10: { /* spoolss_EnumPrinterDrivers */
     254         108 :                 struct spoolss_EnumPrinterDrivers *r2 = (struct spoolss_EnumPrinterDrivers *)r;
     255         108 :                 if (DEBUGLEVEL >= 10) {
     256           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPrinterDrivers, NDR_IN, r2);
     257             :                 }
     258         108 :                 NDR_ZERO_STRUCT(r2->out);
     259         108 :                 r2->out.count = talloc_zero(r2, uint32_t);
     260         108 :                 if (r2->out.count == NULL) {
     261           0 :                         status = NT_STATUS_NO_MEMORY;
     262           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     263           0 :                         goto fail;
     264             :                 }
     265             : 
     266         108 :                 r2->out.info = talloc_zero(r2, union spoolss_DriverInfo *);
     267         108 :                 if (r2->out.info == NULL) {
     268           0 :                         status = NT_STATUS_NO_MEMORY;
     269           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     270           0 :                         goto fail;
     271             :                 }
     272             : 
     273         108 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     274         108 :                 if (r2->out.needed == NULL) {
     275           0 :                         status = NT_STATUS_NO_MEMORY;
     276           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     277           0 :                         goto fail;
     278             :                 }
     279             : 
     280         108 :                 r2->out.result = _spoolss_EnumPrinterDrivers(p, r2);
     281         108 :                 break;
     282             :         }
     283           0 :         case 11: { /* spoolss_GetPrinterDriver */
     284           0 :                 struct spoolss_GetPrinterDriver *r2 = (struct spoolss_GetPrinterDriver *)r;
     285           0 :                 if (DEBUGLEVEL >= 10) {
     286           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetPrinterDriver, NDR_IN, r2);
     287             :                 }
     288           0 :                 NDR_ZERO_STRUCT(r2->out);
     289           0 :                 r2->out.info = talloc_zero(r2, union spoolss_DriverInfo);
     290           0 :                 if (r2->out.info == NULL) {
     291           0 :                         status = NT_STATUS_NO_MEMORY;
     292           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     293           0 :                         goto fail;
     294             :                 }
     295             : 
     296           0 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     297           0 :                 if (r2->out.needed == NULL) {
     298           0 :                         status = NT_STATUS_NO_MEMORY;
     299           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     300           0 :                         goto fail;
     301             :                 }
     302             : 
     303           0 :                 r2->out.result = _spoolss_GetPrinterDriver(p, r2);
     304           0 :                 break;
     305             :         }
     306         168 :         case 12: { /* spoolss_GetPrinterDriverDirectory */
     307         168 :                 struct spoolss_GetPrinterDriverDirectory *r2 = (struct spoolss_GetPrinterDriverDirectory *)r;
     308         168 :                 if (DEBUGLEVEL >= 10) {
     309           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetPrinterDriverDirectory, NDR_IN, r2);
     310             :                 }
     311         168 :                 NDR_ZERO_STRUCT(r2->out);
     312         168 :                 r2->out.info = talloc_zero(r2, union spoolss_DriverDirectoryInfo);
     313         168 :                 if (r2->out.info == NULL) {
     314           0 :                         status = NT_STATUS_NO_MEMORY;
     315           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     316           0 :                         goto fail;
     317             :                 }
     318             : 
     319         168 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     320         168 :                 if (r2->out.needed == NULL) {
     321           0 :                         status = NT_STATUS_NO_MEMORY;
     322           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     323           0 :                         goto fail;
     324             :                 }
     325             : 
     326         168 :                 r2->out.result = _spoolss_GetPrinterDriverDirectory(p, r2);
     327         168 :                 break;
     328             :         }
     329           0 :         case 13: { /* spoolss_DeletePrinterDriver */
     330           0 :                 struct spoolss_DeletePrinterDriver *r2 = (struct spoolss_DeletePrinterDriver *)r;
     331           0 :                 if (DEBUGLEVEL >= 10) {
     332           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrinterDriver, NDR_IN, r2);
     333             :                 }
     334           0 :                 r2->out.result = _spoolss_DeletePrinterDriver(p, r2);
     335           0 :                 break;
     336             :         }
     337           4 :         case 14: { /* spoolss_AddPrintProcessor */
     338           4 :                 struct spoolss_AddPrintProcessor *r2 = (struct spoolss_AddPrintProcessor *)r;
     339           4 :                 if (DEBUGLEVEL >= 10) {
     340           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPrintProcessor, NDR_IN, r2);
     341             :                 }
     342           4 :                 r2->out.result = _spoolss_AddPrintProcessor(p, r2);
     343           4 :                 break;
     344             :         }
     345          48 :         case 15: { /* spoolss_EnumPrintProcessors */
     346          48 :                 struct spoolss_EnumPrintProcessors *r2 = (struct spoolss_EnumPrintProcessors *)r;
     347          48 :                 if (DEBUGLEVEL >= 10) {
     348           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPrintProcessors, NDR_IN, r2);
     349             :                 }
     350          48 :                 NDR_ZERO_STRUCT(r2->out);
     351          48 :                 r2->out.count = talloc_zero(r2, uint32_t);
     352          48 :                 if (r2->out.count == NULL) {
     353           0 :                         status = NT_STATUS_NO_MEMORY;
     354           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     355           0 :                         goto fail;
     356             :                 }
     357             : 
     358          48 :                 r2->out.info = talloc_zero(r2, union spoolss_PrintProcessorInfo *);
     359          48 :                 if (r2->out.info == NULL) {
     360           0 :                         status = NT_STATUS_NO_MEMORY;
     361           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     362           0 :                         goto fail;
     363             :                 }
     364             : 
     365          48 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     366          48 :                 if (r2->out.needed == NULL) {
     367           0 :                         status = NT_STATUS_NO_MEMORY;
     368           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     369           0 :                         goto fail;
     370             :                 }
     371             : 
     372          48 :                 r2->out.result = _spoolss_EnumPrintProcessors(p, r2);
     373          48 :                 break;
     374             :         }
     375          40 :         case 16: { /* spoolss_GetPrintProcessorDirectory */
     376          40 :                 struct spoolss_GetPrintProcessorDirectory *r2 = (struct spoolss_GetPrintProcessorDirectory *)r;
     377          40 :                 if (DEBUGLEVEL >= 10) {
     378           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetPrintProcessorDirectory, NDR_IN, r2);
     379             :                 }
     380          40 :                 NDR_ZERO_STRUCT(r2->out);
     381          40 :                 r2->out.info = talloc_zero(r2, union spoolss_PrintProcessorDirectoryInfo);
     382          40 :                 if (r2->out.info == NULL) {
     383           0 :                         status = NT_STATUS_NO_MEMORY;
     384           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     385           0 :                         goto fail;
     386             :                 }
     387             : 
     388          40 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     389          40 :                 if (r2->out.needed == NULL) {
     390           0 :                         status = NT_STATUS_NO_MEMORY;
     391           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     392           0 :                         goto fail;
     393             :                 }
     394             : 
     395          40 :                 r2->out.result = _spoolss_GetPrintProcessorDirectory(p, r2);
     396          40 :                 break;
     397             :         }
     398         668 :         case 17: { /* spoolss_StartDocPrinter */
     399         668 :                 struct spoolss_StartDocPrinter *r2 = (struct spoolss_StartDocPrinter *)r;
     400         668 :                 if (DEBUGLEVEL >= 10) {
     401           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_StartDocPrinter, NDR_IN, r2);
     402             :                 }
     403         668 :                 NDR_ZERO_STRUCT(r2->out);
     404         668 :                 r2->out.job_id = talloc_zero(r2, uint32_t);
     405         668 :                 if (r2->out.job_id == NULL) {
     406           0 :                         status = NT_STATUS_NO_MEMORY;
     407           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     408           0 :                         goto fail;
     409             :                 }
     410             : 
     411         668 :                 r2->out.result = _spoolss_StartDocPrinter(p, r2);
     412         668 :                 break;
     413             :         }
     414        1920 :         case 18: { /* spoolss_StartPagePrinter */
     415        1920 :                 struct spoolss_StartPagePrinter *r2 = (struct spoolss_StartPagePrinter *)r;
     416        1920 :                 if (DEBUGLEVEL >= 10) {
     417           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_StartPagePrinter, NDR_IN, r2);
     418             :                 }
     419        1920 :                 r2->out.result = _spoolss_StartPagePrinter(p, r2);
     420        1920 :                 break;
     421             :         }
     422        1920 :         case 19: { /* spoolss_WritePrinter */
     423        1920 :                 struct spoolss_WritePrinter *r2 = (struct spoolss_WritePrinter *)r;
     424        1920 :                 if (DEBUGLEVEL >= 10) {
     425           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_WritePrinter, NDR_IN, r2);
     426             :                 }
     427        1920 :                 NDR_ZERO_STRUCT(r2->out);
     428        1920 :                 r2->out.num_written = talloc_zero(r2, uint32_t);
     429        1920 :                 if (r2->out.num_written == NULL) {
     430           0 :                         status = NT_STATUS_NO_MEMORY;
     431           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     432           0 :                         goto fail;
     433             :                 }
     434             : 
     435        1920 :                 r2->out.result = _spoolss_WritePrinter(p, r2);
     436        1920 :                 break;
     437             :         }
     438        1920 :         case 20: { /* spoolss_EndPagePrinter */
     439        1920 :                 struct spoolss_EndPagePrinter *r2 = (struct spoolss_EndPagePrinter *)r;
     440        1920 :                 if (DEBUGLEVEL >= 10) {
     441           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EndPagePrinter, NDR_IN, r2);
     442             :                 }
     443        1920 :                 r2->out.result = _spoolss_EndPagePrinter(p, r2);
     444        1920 :                 break;
     445             :         }
     446           0 :         case 21: { /* spoolss_AbortPrinter */
     447           0 :                 struct spoolss_AbortPrinter *r2 = (struct spoolss_AbortPrinter *)r;
     448           0 :                 if (DEBUGLEVEL >= 10) {
     449           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AbortPrinter, NDR_IN, r2);
     450             :                 }
     451           0 :                 r2->out.result = _spoolss_AbortPrinter(p, r2);
     452           0 :                 break;
     453             :         }
     454           0 :         case 22: { /* spoolss_ReadPrinter */
     455           0 :                 struct spoolss_ReadPrinter *r2 = (struct spoolss_ReadPrinter *)r;
     456           0 :                 if (DEBUGLEVEL >= 10) {
     457           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_ReadPrinter, NDR_IN, r2);
     458             :                 }
     459           0 :                 NDR_ZERO_STRUCT(r2->out);
     460           0 :                 r2->out.data = talloc_zero_array(r2, uint8_t, r2->in.data_size);
     461           0 :                 if (r2->out.data == NULL) {
     462           0 :                         status = NT_STATUS_NO_MEMORY;
     463           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     464           0 :                         goto fail;
     465             :                 }
     466             : 
     467           0 :                 r2->out._data_size = talloc_zero(r2, uint32_t);
     468           0 :                 if (r2->out._data_size == NULL) {
     469           0 :                         status = NT_STATUS_NO_MEMORY;
     470           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     471           0 :                         goto fail;
     472             :                 }
     473             : 
     474           0 :                 r2->out.result = _spoolss_ReadPrinter(p, r2);
     475           0 :                 break;
     476             :         }
     477         640 :         case 23: { /* spoolss_EndDocPrinter */
     478         640 :                 struct spoolss_EndDocPrinter *r2 = (struct spoolss_EndDocPrinter *)r;
     479         640 :                 if (DEBUGLEVEL >= 10) {
     480           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EndDocPrinter, NDR_IN, r2);
     481             :                 }
     482         640 :                 r2->out.result = _spoolss_EndDocPrinter(p, r2);
     483         640 :                 break;
     484             :         }
     485          16 :         case 24: { /* spoolss_AddJob */
     486          16 :                 struct spoolss_AddJob *r2 = (struct spoolss_AddJob *)r;
     487          16 :                 if (DEBUGLEVEL >= 10) {
     488           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddJob, NDR_IN, r2);
     489             :                 }
     490          16 :                 NDR_ZERO_STRUCT(r2->out);
     491          16 :                 r2->out.buffer = r2->in.buffer;
     492          16 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     493          16 :                 if (r2->out.needed == NULL) {
     494           0 :                         status = NT_STATUS_NO_MEMORY;
     495           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     496           0 :                         goto fail;
     497             :                 }
     498             : 
     499          16 :                 r2->out.result = _spoolss_AddJob(p, r2);
     500          16 :                 break;
     501             :         }
     502           0 :         case 25: { /* spoolss_ScheduleJob */
     503           0 :                 struct spoolss_ScheduleJob *r2 = (struct spoolss_ScheduleJob *)r;
     504           0 :                 if (DEBUGLEVEL >= 10) {
     505           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_ScheduleJob, NDR_IN, r2);
     506             :                 }
     507           0 :                 r2->out.result = _spoolss_ScheduleJob(p, r2);
     508           0 :                 break;
     509             :         }
     510         480 :         case 26: { /* spoolss_GetPrinterData */
     511         480 :                 struct spoolss_GetPrinterData *r2 = (struct spoolss_GetPrinterData *)r;
     512         480 :                 if (DEBUGLEVEL >= 10) {
     513           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetPrinterData, NDR_IN, r2);
     514             :                 }
     515         480 :                 NDR_ZERO_STRUCT(r2->out);
     516         480 :                 r2->out.type = talloc_zero(r2, enum winreg_Type);
     517         480 :                 if (r2->out.type == NULL) {
     518           0 :                         status = NT_STATUS_NO_MEMORY;
     519           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     520           0 :                         goto fail;
     521             :                 }
     522             : 
     523         480 :                 r2->out.data = talloc_zero_array(r2, uint8_t, r2->in.offered);
     524         480 :                 if (r2->out.data == NULL) {
     525           0 :                         status = NT_STATUS_NO_MEMORY;
     526           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     527           0 :                         goto fail;
     528             :                 }
     529             : 
     530         480 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     531         480 :                 if (r2->out.needed == NULL) {
     532           0 :                         status = NT_STATUS_NO_MEMORY;
     533           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     534           0 :                         goto fail;
     535             :                 }
     536             : 
     537         480 :                 r2->out.result = _spoolss_GetPrinterData(p, r2);
     538         480 :                 break;
     539             :         }
     540         168 :         case 27: { /* spoolss_SetPrinterData */
     541         168 :                 struct spoolss_SetPrinterData *r2 = (struct spoolss_SetPrinterData *)r;
     542         168 :                 if (DEBUGLEVEL >= 10) {
     543           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SetPrinterData, NDR_IN, r2);
     544             :                 }
     545         168 :                 r2->out.result = _spoolss_SetPrinterData(p, r2);
     546         168 :                 break;
     547             :         }
     548           0 :         case 28: { /* spoolss_WaitForPrinterChange */
     549           0 :                 struct spoolss_WaitForPrinterChange *r2 = (struct spoolss_WaitForPrinterChange *)r;
     550           0 :                 if (DEBUGLEVEL >= 10) {
     551           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_WaitForPrinterChange, NDR_IN, r2);
     552             :                 }
     553           0 :                 r2->out.result = _spoolss_WaitForPrinterChange(p, r2);
     554           0 :                 break;
     555             :         }
     556         620 :         case 29: { /* spoolss_ClosePrinter */
     557         620 :                 struct spoolss_ClosePrinter *r2 = (struct spoolss_ClosePrinter *)r;
     558         620 :                 if (DEBUGLEVEL >= 10) {
     559           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_ClosePrinter, NDR_IN, r2);
     560             :                 }
     561         620 :                 NDR_ZERO_STRUCT(r2->out);
     562         620 :                 r2->out.handle = r2->in.handle;
     563         620 :                 r2->out.result = _spoolss_ClosePrinter(p, r2);
     564         620 :                 break;
     565             :         }
     566         576 :         case 30: { /* spoolss_AddForm */
     567         576 :                 struct spoolss_AddForm *r2 = (struct spoolss_AddForm *)r;
     568         576 :                 if (DEBUGLEVEL >= 10) {
     569           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddForm, NDR_IN, r2);
     570             :                 }
     571         576 :                 r2->out.result = _spoolss_AddForm(p, r2);
     572         576 :                 break;
     573             :         }
     574         384 :         case 31: { /* spoolss_DeleteForm */
     575         384 :                 struct spoolss_DeleteForm *r2 = (struct spoolss_DeleteForm *)r;
     576         384 :                 if (DEBUGLEVEL >= 10) {
     577           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeleteForm, NDR_IN, r2);
     578             :                 }
     579         384 :                 r2->out.result = _spoolss_DeleteForm(p, r2);
     580         384 :                 break;
     581             :         }
     582        5040 :         case 32: { /* spoolss_GetForm */
     583        5040 :                 struct spoolss_GetForm *r2 = (struct spoolss_GetForm *)r;
     584        5040 :                 if (DEBUGLEVEL >= 10) {
     585           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetForm, NDR_IN, r2);
     586             :                 }
     587        5040 :                 NDR_ZERO_STRUCT(r2->out);
     588        5040 :                 r2->out.info = talloc_zero(r2, union spoolss_FormInfo);
     589        5040 :                 if (r2->out.info == NULL) {
     590           0 :                         status = NT_STATUS_NO_MEMORY;
     591           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     592           0 :                         goto fail;
     593             :                 }
     594             : 
     595        5040 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     596        5040 :                 if (r2->out.needed == NULL) {
     597           0 :                         status = NT_STATUS_NO_MEMORY;
     598           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     599           0 :                         goto fail;
     600             :                 }
     601             : 
     602        5040 :                 r2->out.result = _spoolss_GetForm(p, r2);
     603        5040 :                 break;
     604             :         }
     605          80 :         case 33: { /* spoolss_SetForm */
     606          80 :                 struct spoolss_SetForm *r2 = (struct spoolss_SetForm *)r;
     607          80 :                 if (DEBUGLEVEL >= 10) {
     608           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SetForm, NDR_IN, r2);
     609             :                 }
     610          80 :                 r2->out.result = _spoolss_SetForm(p, r2);
     611          80 :                 break;
     612             :         }
     613         560 :         case 34: { /* spoolss_EnumForms */
     614         560 :                 struct spoolss_EnumForms *r2 = (struct spoolss_EnumForms *)r;
     615         560 :                 if (DEBUGLEVEL >= 10) {
     616           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumForms, NDR_IN, r2);
     617             :                 }
     618         560 :                 NDR_ZERO_STRUCT(r2->out);
     619         560 :                 r2->out.count = talloc_zero(r2, uint32_t);
     620         560 :                 if (r2->out.count == NULL) {
     621           0 :                         status = NT_STATUS_NO_MEMORY;
     622           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     623           0 :                         goto fail;
     624             :                 }
     625             : 
     626         560 :                 r2->out.info = talloc_zero(r2, union spoolss_FormInfo *);
     627         560 :                 if (r2->out.info == NULL) {
     628           0 :                         status = NT_STATUS_NO_MEMORY;
     629           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     630           0 :                         goto fail;
     631             :                 }
     632             : 
     633         560 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     634         560 :                 if (r2->out.needed == NULL) {
     635           0 :                         status = NT_STATUS_NO_MEMORY;
     636           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     637           0 :                         goto fail;
     638             :                 }
     639             : 
     640         560 :                 r2->out.result = _spoolss_EnumForms(p, r2);
     641         560 :                 break;
     642             :         }
     643          24 :         case 35: { /* spoolss_EnumPorts */
     644          24 :                 struct spoolss_EnumPorts *r2 = (struct spoolss_EnumPorts *)r;
     645          24 :                 if (DEBUGLEVEL >= 10) {
     646           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPorts, NDR_IN, r2);
     647             :                 }
     648          24 :                 NDR_ZERO_STRUCT(r2->out);
     649          24 :                 r2->out.count = talloc_zero(r2, uint32_t);
     650          24 :                 if (r2->out.count == NULL) {
     651           0 :                         status = NT_STATUS_NO_MEMORY;
     652           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     653           0 :                         goto fail;
     654             :                 }
     655             : 
     656          24 :                 r2->out.info = talloc_zero(r2, union spoolss_PortInfo *);
     657          24 :                 if (r2->out.info == NULL) {
     658           0 :                         status = NT_STATUS_NO_MEMORY;
     659           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     660           0 :                         goto fail;
     661             :                 }
     662             : 
     663          24 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     664          24 :                 if (r2->out.needed == NULL) {
     665           0 :                         status = NT_STATUS_NO_MEMORY;
     666           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     667           0 :                         goto fail;
     668             :                 }
     669             : 
     670          24 :                 r2->out.result = _spoolss_EnumPorts(p, r2);
     671          24 :                 break;
     672             :         }
     673          16 :         case 36: { /* spoolss_EnumMonitors */
     674          16 :                 struct spoolss_EnumMonitors *r2 = (struct spoolss_EnumMonitors *)r;
     675          16 :                 if (DEBUGLEVEL >= 10) {
     676           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumMonitors, NDR_IN, r2);
     677             :                 }
     678          16 :                 NDR_ZERO_STRUCT(r2->out);
     679          16 :                 r2->out.count = talloc_zero(r2, uint32_t);
     680          16 :                 if (r2->out.count == NULL) {
     681           0 :                         status = NT_STATUS_NO_MEMORY;
     682           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     683           0 :                         goto fail;
     684             :                 }
     685             : 
     686          16 :                 r2->out.info = talloc_zero(r2, union spoolss_MonitorInfo *);
     687          16 :                 if (r2->out.info == NULL) {
     688           0 :                         status = NT_STATUS_NO_MEMORY;
     689           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     690           0 :                         goto fail;
     691             :                 }
     692             : 
     693          16 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     694          16 :                 if (r2->out.needed == NULL) {
     695           0 :                         status = NT_STATUS_NO_MEMORY;
     696           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     697           0 :                         goto fail;
     698             :                 }
     699             : 
     700          16 :                 r2->out.result = _spoolss_EnumMonitors(p, r2);
     701          16 :                 break;
     702             :         }
     703           4 :         case 37: { /* spoolss_AddPort */
     704           4 :                 struct spoolss_AddPort *r2 = (struct spoolss_AddPort *)r;
     705           4 :                 if (DEBUGLEVEL >= 10) {
     706           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPort, NDR_IN, r2);
     707             :                 }
     708           4 :                 r2->out.result = _spoolss_AddPort(p, r2);
     709           4 :                 break;
     710             :         }
     711           0 :         case 38: { /* spoolss_ConfigurePort */
     712           0 :                 struct spoolss_ConfigurePort *r2 = (struct spoolss_ConfigurePort *)r;
     713           0 :                 if (DEBUGLEVEL >= 10) {
     714           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_ConfigurePort, NDR_IN, r2);
     715             :                 }
     716           0 :                 r2->out.result = _spoolss_ConfigurePort(p, r2);
     717           0 :                 break;
     718             :         }
     719           0 :         case 39: { /* spoolss_DeletePort */
     720           0 :                 struct spoolss_DeletePort *r2 = (struct spoolss_DeletePort *)r;
     721           0 :                 if (DEBUGLEVEL >= 10) {
     722           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePort, NDR_IN, r2);
     723             :                 }
     724           0 :                 r2->out.result = _spoolss_DeletePort(p, r2);
     725           0 :                 break;
     726             :         }
     727           0 :         case 40: { /* spoolss_CreatePrinterIC */
     728           0 :                 struct spoolss_CreatePrinterIC *r2 = (struct spoolss_CreatePrinterIC *)r;
     729           0 :                 if (DEBUGLEVEL >= 10) {
     730           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_CreatePrinterIC, NDR_IN, r2);
     731             :                 }
     732           0 :                 NDR_ZERO_STRUCT(r2->out);
     733           0 :                 r2->out.gdi_handle = talloc_zero(r2, struct policy_handle);
     734           0 :                 if (r2->out.gdi_handle == NULL) {
     735           0 :                         status = NT_STATUS_NO_MEMORY;
     736           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     737           0 :                         goto fail;
     738             :                 }
     739             : 
     740           0 :                 r2->out.result = _spoolss_CreatePrinterIC(p, r2);
     741           0 :                 break;
     742             :         }
     743           0 :         case 41: { /* spoolss_PlayGDIScriptOnPrinterIC */
     744           0 :                 struct spoolss_PlayGDIScriptOnPrinterIC *r2 = (struct spoolss_PlayGDIScriptOnPrinterIC *)r;
     745           0 :                 if (DEBUGLEVEL >= 10) {
     746           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_PlayGDIScriptOnPrinterIC, NDR_IN, r2);
     747             :                 }
     748           0 :                 NDR_ZERO_STRUCT(r2->out);
     749           0 :                 r2->out.pOut = talloc_zero_array(r2, uint8_t, r2->in.cOut);
     750           0 :                 if (r2->out.pOut == NULL) {
     751           0 :                         status = NT_STATUS_NO_MEMORY;
     752           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     753           0 :                         goto fail;
     754             :                 }
     755             : 
     756           0 :                 r2->out.result = _spoolss_PlayGDIScriptOnPrinterIC(p, r2);
     757           0 :                 break;
     758             :         }
     759           0 :         case 42: { /* spoolss_DeletePrinterIC */
     760           0 :                 struct spoolss_DeletePrinterIC *r2 = (struct spoolss_DeletePrinterIC *)r;
     761           0 :                 if (DEBUGLEVEL >= 10) {
     762           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrinterIC, NDR_IN, r2);
     763             :                 }
     764           0 :                 NDR_ZERO_STRUCT(r2->out);
     765           0 :                 r2->out.gdi_handle = r2->in.gdi_handle;
     766           0 :                 r2->out.result = _spoolss_DeletePrinterIC(p, r2);
     767           0 :                 break;
     768             :         }
     769           0 :         case 43: { /* spoolss_AddPrinterConnection */
     770           0 :                 struct spoolss_AddPrinterConnection *r2 = (struct spoolss_AddPrinterConnection *)r;
     771           0 :                 if (DEBUGLEVEL >= 10) {
     772           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPrinterConnection, NDR_IN, r2);
     773             :                 }
     774           0 :                 r2->out.result = _spoolss_AddPrinterConnection(p, r2);
     775           0 :                 break;
     776             :         }
     777           0 :         case 44: { /* spoolss_DeletePrinterConnection */
     778           0 :                 struct spoolss_DeletePrinterConnection *r2 = (struct spoolss_DeletePrinterConnection *)r;
     779           0 :                 if (DEBUGLEVEL >= 10) {
     780           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrinterConnection, NDR_IN, r2);
     781             :                 }
     782           0 :                 r2->out.result = _spoolss_DeletePrinterConnection(p, r2);
     783           0 :                 break;
     784             :         }
     785           0 :         case 45: { /* spoolss_PrinterMessageBox */
     786           0 :                 struct spoolss_PrinterMessageBox *r2 = (struct spoolss_PrinterMessageBox *)r;
     787           0 :                 if (DEBUGLEVEL >= 10) {
     788           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_PrinterMessageBox, NDR_IN, r2);
     789             :                 }
     790           0 :                 r2->out.result = _spoolss_PrinterMessageBox(p, r2);
     791           0 :                 break;
     792             :         }
     793           0 :         case 46: { /* spoolss_AddMonitor */
     794           0 :                 struct spoolss_AddMonitor *r2 = (struct spoolss_AddMonitor *)r;
     795           0 :                 if (DEBUGLEVEL >= 10) {
     796           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddMonitor, NDR_IN, r2);
     797             :                 }
     798           0 :                 r2->out.result = _spoolss_AddMonitor(p, r2);
     799           0 :                 break;
     800             :         }
     801           0 :         case 47: { /* spoolss_DeleteMonitor */
     802           0 :                 struct spoolss_DeleteMonitor *r2 = (struct spoolss_DeleteMonitor *)r;
     803           0 :                 if (DEBUGLEVEL >= 10) {
     804           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeleteMonitor, NDR_IN, r2);
     805             :                 }
     806           0 :                 r2->out.result = _spoolss_DeleteMonitor(p, r2);
     807           0 :                 break;
     808             :         }
     809           0 :         case 48: { /* spoolss_DeletePrintProcessor */
     810           0 :                 struct spoolss_DeletePrintProcessor *r2 = (struct spoolss_DeletePrintProcessor *)r;
     811           0 :                 if (DEBUGLEVEL >= 10) {
     812           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrintProcessor, NDR_IN, r2);
     813             :                 }
     814           0 :                 r2->out.result = _spoolss_DeletePrintProcessor(p, r2);
     815           0 :                 break;
     816             :         }
     817           0 :         case 49: { /* spoolss_AddPrintProvidor */
     818           0 :                 struct spoolss_AddPrintProvidor *r2 = (struct spoolss_AddPrintProvidor *)r;
     819           0 :                 if (DEBUGLEVEL >= 10) {
     820           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPrintProvidor, NDR_IN, r2);
     821             :                 }
     822           0 :                 r2->out.result = _spoolss_AddPrintProvidor(p, r2);
     823           0 :                 break;
     824             :         }
     825           0 :         case 50: { /* spoolss_DeletePrintProvidor */
     826           0 :                 struct spoolss_DeletePrintProvidor *r2 = (struct spoolss_DeletePrintProvidor *)r;
     827           0 :                 if (DEBUGLEVEL >= 10) {
     828           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrintProvidor, NDR_IN, r2);
     829             :                 }
     830           0 :                 r2->out.result = _spoolss_DeletePrintProvidor(p, r2);
     831           0 :                 break;
     832             :         }
     833          44 :         case 51: { /* spoolss_EnumPrintProcessorDataTypes */
     834          44 :                 struct spoolss_EnumPrintProcessorDataTypes *r2 = (struct spoolss_EnumPrintProcessorDataTypes *)r;
     835          44 :                 if (DEBUGLEVEL >= 10) {
     836           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPrintProcessorDataTypes, NDR_IN, r2);
     837             :                 }
     838          44 :                 NDR_ZERO_STRUCT(r2->out);
     839          44 :                 r2->out.count = talloc_zero(r2, uint32_t);
     840          44 :                 if (r2->out.count == NULL) {
     841           0 :                         status = NT_STATUS_NO_MEMORY;
     842           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     843           0 :                         goto fail;
     844             :                 }
     845             : 
     846          44 :                 r2->out.info = talloc_zero(r2, union spoolss_PrintProcDataTypesInfo *);
     847          44 :                 if (r2->out.info == NULL) {
     848           0 :                         status = NT_STATUS_NO_MEMORY;
     849           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     850           0 :                         goto fail;
     851             :                 }
     852             : 
     853          44 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     854          44 :                 if (r2->out.needed == NULL) {
     855           0 :                         status = NT_STATUS_NO_MEMORY;
     856           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     857           0 :                         goto fail;
     858             :                 }
     859             : 
     860          44 :                 r2->out.result = _spoolss_EnumPrintProcessorDataTypes(p, r2);
     861          44 :                 break;
     862             :         }
     863           0 :         case 52: { /* spoolss_ResetPrinter */
     864           0 :                 struct spoolss_ResetPrinter *r2 = (struct spoolss_ResetPrinter *)r;
     865           0 :                 if (DEBUGLEVEL >= 10) {
     866           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_ResetPrinter, NDR_IN, r2);
     867             :                 }
     868           0 :                 r2->out.result = _spoolss_ResetPrinter(p, r2);
     869           0 :                 break;
     870             :         }
     871           4 :         case 53: { /* spoolss_GetPrinterDriver2 */
     872           4 :                 struct spoolss_GetPrinterDriver2 *r2 = (struct spoolss_GetPrinterDriver2 *)r;
     873           4 :                 if (DEBUGLEVEL >= 10) {
     874           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetPrinterDriver2, NDR_IN, r2);
     875             :                 }
     876           4 :                 NDR_ZERO_STRUCT(r2->out);
     877           4 :                 r2->out.info = talloc_zero(r2, union spoolss_DriverInfo);
     878           4 :                 if (r2->out.info == NULL) {
     879           0 :                         status = NT_STATUS_NO_MEMORY;
     880           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     881           0 :                         goto fail;
     882             :                 }
     883             : 
     884           4 :                 r2->out.needed = talloc_zero(r2, uint32_t);
     885           4 :                 if (r2->out.needed == NULL) {
     886           0 :                         status = NT_STATUS_NO_MEMORY;
     887           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     888           0 :                         goto fail;
     889             :                 }
     890             : 
     891           4 :                 r2->out.server_major_version = talloc_zero(r2, uint32_t);
     892           4 :                 if (r2->out.server_major_version == NULL) {
     893           0 :                         status = NT_STATUS_NO_MEMORY;
     894           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     895           0 :                         goto fail;
     896             :                 }
     897             : 
     898           4 :                 r2->out.server_minor_version = talloc_zero(r2, uint32_t);
     899           4 :                 if (r2->out.server_minor_version == NULL) {
     900           0 :                         status = NT_STATUS_NO_MEMORY;
     901           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     902           0 :                         goto fail;
     903             :                 }
     904             : 
     905           4 :                 r2->out.result = _spoolss_GetPrinterDriver2(p, r2);
     906           4 :                 break;
     907             :         }
     908           0 :         case 54: { /* spoolss_FindFirstPrinterChangeNotification */
     909           0 :                 struct spoolss_FindFirstPrinterChangeNotification *r2 = (struct spoolss_FindFirstPrinterChangeNotification *)r;
     910           0 :                 if (DEBUGLEVEL >= 10) {
     911           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_FindFirstPrinterChangeNotification, NDR_IN, r2);
     912             :                 }
     913           0 :                 r2->out.result = _spoolss_FindFirstPrinterChangeNotification(p, r2);
     914           0 :                 break;
     915             :         }
     916           0 :         case 55: { /* spoolss_FindNextPrinterChangeNotification */
     917           0 :                 struct spoolss_FindNextPrinterChangeNotification *r2 = (struct spoolss_FindNextPrinterChangeNotification *)r;
     918           0 :                 if (DEBUGLEVEL >= 10) {
     919           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_FindNextPrinterChangeNotification, NDR_IN, r2);
     920             :                 }
     921           0 :                 r2->out.result = _spoolss_FindNextPrinterChangeNotification(p, r2);
     922           0 :                 break;
     923             :         }
     924           0 :         case 56: { /* spoolss_FindClosePrinterNotify */
     925           0 :                 struct spoolss_FindClosePrinterNotify *r2 = (struct spoolss_FindClosePrinterNotify *)r;
     926           0 :                 if (DEBUGLEVEL >= 10) {
     927           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_FindClosePrinterNotify, NDR_IN, r2);
     928             :                 }
     929           0 :                 r2->out.result = _spoolss_FindClosePrinterNotify(p, r2);
     930           0 :                 break;
     931             :         }
     932           0 :         case 57: { /* spoolss_RouterFindFirstPrinterChangeNotificationOld */
     933           0 :                 struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r2 = (struct spoolss_RouterFindFirstPrinterChangeNotificationOld *)r;
     934           0 :                 if (DEBUGLEVEL >= 10) {
     935           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_RouterFindFirstPrinterChangeNotificationOld, NDR_IN, r2);
     936             :                 }
     937           0 :                 r2->out.result = _spoolss_RouterFindFirstPrinterChangeNotificationOld(p, r2);
     938           0 :                 break;
     939             :         }
     940           0 :         case 58: { /* spoolss_ReplyOpenPrinter */
     941           0 :                 struct spoolss_ReplyOpenPrinter *r2 = (struct spoolss_ReplyOpenPrinter *)r;
     942           0 :                 if (DEBUGLEVEL >= 10) {
     943           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_ReplyOpenPrinter, NDR_IN, r2);
     944             :                 }
     945           0 :                 NDR_ZERO_STRUCT(r2->out);
     946           0 :                 r2->out.handle = talloc_zero(r2, struct policy_handle);
     947           0 :                 if (r2->out.handle == NULL) {
     948           0 :                         status = NT_STATUS_NO_MEMORY;
     949           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
     950           0 :                         goto fail;
     951             :                 }
     952             : 
     953           0 :                 r2->out.result = _spoolss_ReplyOpenPrinter(p, r2);
     954           0 :                 break;
     955             :         }
     956           0 :         case 59: { /* spoolss_RouterReplyPrinter */
     957           0 :                 struct spoolss_RouterReplyPrinter *r2 = (struct spoolss_RouterReplyPrinter *)r;
     958           0 :                 if (DEBUGLEVEL >= 10) {
     959           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_RouterReplyPrinter, NDR_IN, r2);
     960             :                 }
     961           0 :                 r2->out.result = _spoolss_RouterReplyPrinter(p, r2);
     962           0 :                 break;
     963             :         }
     964           0 :         case 60: { /* spoolss_ReplyClosePrinter */
     965           0 :                 struct spoolss_ReplyClosePrinter *r2 = (struct spoolss_ReplyClosePrinter *)r;
     966           0 :                 if (DEBUGLEVEL >= 10) {
     967           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_ReplyClosePrinter, NDR_IN, r2);
     968             :                 }
     969           0 :                 NDR_ZERO_STRUCT(r2->out);
     970           0 :                 r2->out.handle = r2->in.handle;
     971           0 :                 r2->out.result = _spoolss_ReplyClosePrinter(p, r2);
     972           0 :                 break;
     973             :         }
     974           0 :         case 61: { /* spoolss_AddPortEx */
     975           0 :                 struct spoolss_AddPortEx *r2 = (struct spoolss_AddPortEx *)r;
     976           0 :                 if (DEBUGLEVEL >= 10) {
     977           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPortEx, NDR_IN, r2);
     978             :                 }
     979           0 :                 r2->out.result = _spoolss_AddPortEx(p, r2);
     980           0 :                 break;
     981             :         }
     982           0 :         case 62: { /* spoolss_RouterFindFirstPrinterChangeNotification */
     983           0 :                 struct spoolss_RouterFindFirstPrinterChangeNotification *r2 = (struct spoolss_RouterFindFirstPrinterChangeNotification *)r;
     984           0 :                 if (DEBUGLEVEL >= 10) {
     985           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_RouterFindFirstPrinterChangeNotification, NDR_IN, r2);
     986             :                 }
     987           0 :                 r2->out.result = _spoolss_RouterFindFirstPrinterChangeNotification(p, r2);
     988           0 :                 break;
     989             :         }
     990           0 :         case 63: { /* spoolss_SpoolerInit */
     991           0 :                 struct spoolss_SpoolerInit *r2 = (struct spoolss_SpoolerInit *)r;
     992           0 :                 if (DEBUGLEVEL >= 10) {
     993           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SpoolerInit, NDR_IN, r2);
     994             :                 }
     995           0 :                 r2->out.result = _spoolss_SpoolerInit(p, r2);
     996           0 :                 break;
     997             :         }
     998           0 :         case 64: { /* spoolss_ResetPrinterEx */
     999           0 :                 struct spoolss_ResetPrinterEx *r2 = (struct spoolss_ResetPrinterEx *)r;
    1000           0 :                 if (DEBUGLEVEL >= 10) {
    1001           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_ResetPrinterEx, NDR_IN, r2);
    1002             :                 }
    1003           0 :                 r2->out.result = _spoolss_ResetPrinterEx(p, r2);
    1004           0 :                 break;
    1005             :         }
    1006           2 :         case 65: { /* spoolss_RemoteFindFirstPrinterChangeNotifyEx */
    1007           2 :                 struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r2 = (struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *)r;
    1008           2 :                 if (DEBUGLEVEL >= 10) {
    1009           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_RemoteFindFirstPrinterChangeNotifyEx, NDR_IN, r2);
    1010             :                 }
    1011           2 :                 r2->out.result = _spoolss_RemoteFindFirstPrinterChangeNotifyEx(p, r2);
    1012           2 :                 break;
    1013             :         }
    1014           0 :         case 66: { /* spoolss_RouterReplyPrinterEx */
    1015           0 :                 struct spoolss_RouterReplyPrinterEx *r2 = (struct spoolss_RouterReplyPrinterEx *)r;
    1016           0 :                 if (DEBUGLEVEL >= 10) {
    1017           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_RouterReplyPrinterEx, NDR_IN, r2);
    1018             :                 }
    1019           0 :                 NDR_ZERO_STRUCT(r2->out);
    1020           0 :                 r2->out.reply_result = talloc_zero(r2, uint32_t);
    1021           0 :                 if (r2->out.reply_result == NULL) {
    1022           0 :                         status = NT_STATUS_NO_MEMORY;
    1023           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1024           0 :                         goto fail;
    1025             :                 }
    1026             : 
    1027           0 :                 r2->out.result = _spoolss_RouterReplyPrinterEx(p, r2);
    1028           0 :                 break;
    1029             :         }
    1030           4 :         case 67: { /* spoolss_RouterRefreshPrinterChangeNotify */
    1031           4 :                 struct spoolss_RouterRefreshPrinterChangeNotify *r2 = (struct spoolss_RouterRefreshPrinterChangeNotify *)r;
    1032           4 :                 if (DEBUGLEVEL >= 10) {
    1033           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_RouterRefreshPrinterChangeNotify, NDR_IN, r2);
    1034             :                 }
    1035           4 :                 NDR_ZERO_STRUCT(r2->out);
    1036           4 :                 r2->out.info = talloc_zero(r2, struct spoolss_NotifyInfo *);
    1037           4 :                 if (r2->out.info == NULL) {
    1038           0 :                         status = NT_STATUS_NO_MEMORY;
    1039           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1040           0 :                         goto fail;
    1041             :                 }
    1042             : 
    1043           4 :                 r2->out.result = _spoolss_RouterRefreshPrinterChangeNotify(p, r2);
    1044           4 :                 break;
    1045             :         }
    1046           0 :         case 68: { /* spoolss_44 */
    1047           0 :                 struct spoolss_44 *r2 = (struct spoolss_44 *)r;
    1048           0 :                 if (DEBUGLEVEL >= 10) {
    1049           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_44, NDR_IN, r2);
    1050             :                 }
    1051           0 :                 r2->out.result = _spoolss_44(p, r2);
    1052           0 :                 break;
    1053             :         }
    1054         794 :         case 69: { /* spoolss_OpenPrinterEx */
    1055         794 :                 struct spoolss_OpenPrinterEx *r2 = (struct spoolss_OpenPrinterEx *)r;
    1056         794 :                 if (DEBUGLEVEL >= 10) {
    1057           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_OpenPrinterEx, NDR_IN, r2);
    1058             :                 }
    1059         794 :                 NDR_ZERO_STRUCT(r2->out);
    1060         794 :                 r2->out.handle = talloc_zero(r2, struct policy_handle);
    1061         794 :                 if (r2->out.handle == NULL) {
    1062           0 :                         status = NT_STATUS_NO_MEMORY;
    1063           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1064           0 :                         goto fail;
    1065             :                 }
    1066             : 
    1067         794 :                 r2->out.result = _spoolss_OpenPrinterEx(p, r2);
    1068         794 :                 break;
    1069             :         }
    1070          24 :         case 70: { /* spoolss_AddPrinterEx */
    1071          24 :                 struct spoolss_AddPrinterEx *r2 = (struct spoolss_AddPrinterEx *)r;
    1072          24 :                 if (DEBUGLEVEL >= 10) {
    1073           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPrinterEx, NDR_IN, r2);
    1074             :                 }
    1075          24 :                 NDR_ZERO_STRUCT(r2->out);
    1076          24 :                 r2->out.handle = talloc_zero(r2, struct policy_handle);
    1077          24 :                 if (r2->out.handle == NULL) {
    1078           0 :                         status = NT_STATUS_NO_MEMORY;
    1079           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1080           0 :                         goto fail;
    1081             :                 }
    1082             : 
    1083          24 :                 r2->out.result = _spoolss_AddPrinterEx(p, r2);
    1084          24 :                 break;
    1085             :         }
    1086           0 :         case 71: { /* spoolss_SetPort */
    1087           0 :                 struct spoolss_SetPort *r2 = (struct spoolss_SetPort *)r;
    1088           0 :                 if (DEBUGLEVEL >= 10) {
    1089           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SetPort, NDR_IN, r2);
    1090             :                 }
    1091           0 :                 r2->out.result = _spoolss_SetPort(p, r2);
    1092           0 :                 break;
    1093             :         }
    1094         152 :         case 72: { /* spoolss_EnumPrinterData */
    1095         152 :                 struct spoolss_EnumPrinterData *r2 = (struct spoolss_EnumPrinterData *)r;
    1096         152 :                 if (DEBUGLEVEL >= 10) {
    1097           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPrinterData, NDR_IN, r2);
    1098             :                 }
    1099         152 :                 NDR_ZERO_STRUCT(r2->out);
    1100         152 :                 r2->out.value_name = talloc_zero_array(r2, const char, r2->in.value_offered / 2);
    1101         152 :                 if (r2->out.value_name == NULL) {
    1102           0 :                         status = NT_STATUS_NO_MEMORY;
    1103           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1104           0 :                         goto fail;
    1105             :                 }
    1106             : 
    1107         152 :                 r2->out.value_needed = talloc_zero(r2, uint32_t);
    1108         152 :                 if (r2->out.value_needed == NULL) {
    1109           0 :                         status = NT_STATUS_NO_MEMORY;
    1110           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1111           0 :                         goto fail;
    1112             :                 }
    1113             : 
    1114         152 :                 r2->out.type = talloc_zero(r2, enum winreg_Type);
    1115         152 :                 if (r2->out.type == NULL) {
    1116           0 :                         status = NT_STATUS_NO_MEMORY;
    1117           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1118           0 :                         goto fail;
    1119             :                 }
    1120             : 
    1121         152 :                 r2->out.data = talloc_zero_array(r2, uint8_t, r2->in.data_offered);
    1122         152 :                 if (r2->out.data == NULL) {
    1123           0 :                         status = NT_STATUS_NO_MEMORY;
    1124           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1125           0 :                         goto fail;
    1126             :                 }
    1127             : 
    1128         152 :                 r2->out.data_needed = talloc_zero(r2, uint32_t);
    1129         152 :                 if (r2->out.data_needed == NULL) {
    1130           0 :                         status = NT_STATUS_NO_MEMORY;
    1131           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1132           0 :                         goto fail;
    1133             :                 }
    1134             : 
    1135         152 :                 r2->out.result = _spoolss_EnumPrinterData(p, r2);
    1136         152 :                 break;
    1137             :         }
    1138         168 :         case 73: { /* spoolss_DeletePrinterData */
    1139         168 :                 struct spoolss_DeletePrinterData *r2 = (struct spoolss_DeletePrinterData *)r;
    1140         168 :                 if (DEBUGLEVEL >= 10) {
    1141           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrinterData, NDR_IN, r2);
    1142             :                 }
    1143         168 :                 r2->out.result = _spoolss_DeletePrinterData(p, r2);
    1144         168 :                 break;
    1145             :         }
    1146           0 :         case 74: { /* spoolss_4a */
    1147           0 :                 struct spoolss_4a *r2 = (struct spoolss_4a *)r;
    1148           0 :                 if (DEBUGLEVEL >= 10) {
    1149           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_4a, NDR_IN, r2);
    1150             :                 }
    1151           0 :                 r2->out.result = _spoolss_4a(p, r2);
    1152           0 :                 break;
    1153             :         }
    1154           0 :         case 75: { /* spoolss_4b */
    1155           0 :                 struct spoolss_4b *r2 = (struct spoolss_4b *)r;
    1156           0 :                 if (DEBUGLEVEL >= 10) {
    1157           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_4b, NDR_IN, r2);
    1158             :                 }
    1159           0 :                 r2->out.result = _spoolss_4b(p, r2);
    1160           0 :                 break;
    1161             :         }
    1162           0 :         case 76: { /* spoolss_4c */
    1163           0 :                 struct spoolss_4c *r2 = (struct spoolss_4c *)r;
    1164           0 :                 if (DEBUGLEVEL >= 10) {
    1165           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_4c, NDR_IN, r2);
    1166             :                 }
    1167           0 :                 r2->out.result = _spoolss_4c(p, r2);
    1168           0 :                 break;
    1169             :         }
    1170        1200 :         case 77: { /* spoolss_SetPrinterDataEx */
    1171        1200 :                 struct spoolss_SetPrinterDataEx *r2 = (struct spoolss_SetPrinterDataEx *)r;
    1172        1200 :                 if (DEBUGLEVEL >= 10) {
    1173           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SetPrinterDataEx, NDR_IN, r2);
    1174             :                 }
    1175        1200 :                 r2->out.result = _spoolss_SetPrinterDataEx(p, r2);
    1176        1200 :                 break;
    1177             :         }
    1178        2700 :         case 78: { /* spoolss_GetPrinterDataEx */
    1179        2700 :                 struct spoolss_GetPrinterDataEx *r2 = (struct spoolss_GetPrinterDataEx *)r;
    1180        2700 :                 if (DEBUGLEVEL >= 10) {
    1181           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetPrinterDataEx, NDR_IN, r2);
    1182             :                 }
    1183        2700 :                 NDR_ZERO_STRUCT(r2->out);
    1184        2700 :                 r2->out.type = talloc_zero(r2, enum winreg_Type);
    1185        2700 :                 if (r2->out.type == NULL) {
    1186           0 :                         status = NT_STATUS_NO_MEMORY;
    1187           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1188           0 :                         goto fail;
    1189             :                 }
    1190             : 
    1191        2700 :                 r2->out.data = talloc_zero_array(r2, uint8_t, r2->in.offered);
    1192        2700 :                 if (r2->out.data == NULL) {
    1193           0 :                         status = NT_STATUS_NO_MEMORY;
    1194           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1195           0 :                         goto fail;
    1196             :                 }
    1197             : 
    1198        2700 :                 r2->out.needed = talloc_zero(r2, uint32_t);
    1199        2700 :                 if (r2->out.needed == NULL) {
    1200           0 :                         status = NT_STATUS_NO_MEMORY;
    1201           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1202           0 :                         goto fail;
    1203             :                 }
    1204             : 
    1205        2700 :                 r2->out.result = _spoolss_GetPrinterDataEx(p, r2);
    1206        2700 :                 break;
    1207             :         }
    1208        2596 :         case 79: { /* spoolss_EnumPrinterDataEx */
    1209        2596 :                 struct spoolss_EnumPrinterDataEx *r2 = (struct spoolss_EnumPrinterDataEx *)r;
    1210        2596 :                 if (DEBUGLEVEL >= 10) {
    1211           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPrinterDataEx, NDR_IN, r2);
    1212             :                 }
    1213        2596 :                 NDR_ZERO_STRUCT(r2->out);
    1214        2596 :                 r2->out.count = talloc_zero(r2, uint32_t);
    1215        2596 :                 if (r2->out.count == NULL) {
    1216           0 :                         status = NT_STATUS_NO_MEMORY;
    1217           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1218           0 :                         goto fail;
    1219             :                 }
    1220             : 
    1221        2596 :                 r2->out.info = talloc_zero(r2, struct spoolss_PrinterEnumValues *);
    1222        2596 :                 if (r2->out.info == NULL) {
    1223           0 :                         status = NT_STATUS_NO_MEMORY;
    1224           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1225           0 :                         goto fail;
    1226             :                 }
    1227             : 
    1228        2596 :                 r2->out.needed = talloc_zero(r2, uint32_t);
    1229        2596 :                 if (r2->out.needed == NULL) {
    1230           0 :                         status = NT_STATUS_NO_MEMORY;
    1231           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1232           0 :                         goto fail;
    1233             :                 }
    1234             : 
    1235        2596 :                 r2->out.result = _spoolss_EnumPrinterDataEx(p, r2);
    1236        2596 :                 break;
    1237             :         }
    1238        3384 :         case 80: { /* spoolss_EnumPrinterKey */
    1239        3384 :                 struct spoolss_EnumPrinterKey *r2 = (struct spoolss_EnumPrinterKey *)r;
    1240        3384 :                 if (DEBUGLEVEL >= 10) {
    1241           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPrinterKey, NDR_IN, r2);
    1242             :                 }
    1243        3384 :                 NDR_ZERO_STRUCT(r2->out);
    1244        3384 :                 r2->out._ndr_size = talloc_zero(r2, uint32_t);
    1245        3384 :                 if (r2->out._ndr_size == NULL) {
    1246           0 :                         status = NT_STATUS_NO_MEMORY;
    1247           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1248           0 :                         goto fail;
    1249             :                 }
    1250             : 
    1251        3384 :                 r2->out.key_buffer = talloc_zero(r2, union spoolss_KeyNames);
    1252        3384 :                 if (r2->out.key_buffer == NULL) {
    1253           0 :                         status = NT_STATUS_NO_MEMORY;
    1254           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1255           0 :                         goto fail;
    1256             :                 }
    1257             : 
    1258        3384 :                 r2->out.needed = talloc_zero(r2, uint32_t);
    1259        3384 :                 if (r2->out.needed == NULL) {
    1260           0 :                         status = NT_STATUS_NO_MEMORY;
    1261           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1262           0 :                         goto fail;
    1263             :                 }
    1264             : 
    1265        3384 :                 r2->out.result = _spoolss_EnumPrinterKey(p, r2);
    1266        3384 :                 break;
    1267             :         }
    1268        1200 :         case 81: { /* spoolss_DeletePrinterDataEx */
    1269        1200 :                 struct spoolss_DeletePrinterDataEx *r2 = (struct spoolss_DeletePrinterDataEx *)r;
    1270        1200 :                 if (DEBUGLEVEL >= 10) {
    1271           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrinterDataEx, NDR_IN, r2);
    1272             :                 }
    1273        1200 :                 r2->out.result = _spoolss_DeletePrinterDataEx(p, r2);
    1274        1200 :                 break;
    1275             :         }
    1276         216 :         case 82: { /* spoolss_DeletePrinterKey */
    1277         216 :                 struct spoolss_DeletePrinterKey *r2 = (struct spoolss_DeletePrinterKey *)r;
    1278         216 :                 if (DEBUGLEVEL >= 10) {
    1279           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrinterKey, NDR_IN, r2);
    1280             :                 }
    1281         216 :                 r2->out.result = _spoolss_DeletePrinterKey(p, r2);
    1282         216 :                 break;
    1283             :         }
    1284           0 :         case 83: { /* spoolss_53 */
    1285           0 :                 struct spoolss_53 *r2 = (struct spoolss_53 *)r;
    1286           0 :                 if (DEBUGLEVEL >= 10) {
    1287           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_53, NDR_IN, r2);
    1288             :                 }
    1289           0 :                 r2->out.result = _spoolss_53(p, r2);
    1290           0 :                 break;
    1291             :         }
    1292           0 :         case 84: { /* spoolss_DeletePrinterDriverEx */
    1293           0 :                 struct spoolss_DeletePrinterDriverEx *r2 = (struct spoolss_DeletePrinterDriverEx *)r;
    1294           0 :                 if (DEBUGLEVEL >= 10) {
    1295           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrinterDriverEx, NDR_IN, r2);
    1296             :                 }
    1297           0 :                 r2->out.result = _spoolss_DeletePrinterDriverEx(p, r2);
    1298           0 :                 break;
    1299             :         }
    1300           4 :         case 85: { /* spoolss_AddPerMachineConnection */
    1301           4 :                 struct spoolss_AddPerMachineConnection *r2 = (struct spoolss_AddPerMachineConnection *)r;
    1302           4 :                 if (DEBUGLEVEL >= 10) {
    1303           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPerMachineConnection, NDR_IN, r2);
    1304             :                 }
    1305           4 :                 r2->out.result = _spoolss_AddPerMachineConnection(p, r2);
    1306           4 :                 break;
    1307             :         }
    1308           0 :         case 86: { /* spoolss_DeletePerMachineConnection */
    1309           0 :                 struct spoolss_DeletePerMachineConnection *r2 = (struct spoolss_DeletePerMachineConnection *)r;
    1310           0 :                 if (DEBUGLEVEL >= 10) {
    1311           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePerMachineConnection, NDR_IN, r2);
    1312             :                 }
    1313           0 :                 r2->out.result = _spoolss_DeletePerMachineConnection(p, r2);
    1314           0 :                 break;
    1315             :         }
    1316           0 :         case 87: { /* spoolss_EnumPerMachineConnections */
    1317           0 :                 struct spoolss_EnumPerMachineConnections *r2 = (struct spoolss_EnumPerMachineConnections *)r;
    1318           0 :                 if (DEBUGLEVEL >= 10) {
    1319           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPerMachineConnections, NDR_IN, r2);
    1320             :                 }
    1321           0 :                 NDR_ZERO_STRUCT(r2->out);
    1322           0 :                 r2->out.count = talloc_zero(r2, uint32_t);
    1323           0 :                 if (r2->out.count == NULL) {
    1324           0 :                         status = NT_STATUS_NO_MEMORY;
    1325           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1326           0 :                         goto fail;
    1327             :                 }
    1328             : 
    1329           0 :                 r2->out.info = talloc_zero(r2, struct spoolss_PrinterInfo4 *);
    1330           0 :                 if (r2->out.info == NULL) {
    1331           0 :                         status = NT_STATUS_NO_MEMORY;
    1332           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1333           0 :                         goto fail;
    1334             :                 }
    1335             : 
    1336           0 :                 r2->out.needed = talloc_zero(r2, uint32_t);
    1337           0 :                 if (r2->out.needed == NULL) {
    1338           0 :                         status = NT_STATUS_NO_MEMORY;
    1339           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1340           0 :                         goto fail;
    1341             :                 }
    1342             : 
    1343           0 :                 r2->out.result = _spoolss_EnumPerMachineConnections(p, r2);
    1344           0 :                 break;
    1345             :         }
    1346           0 :         case 88: { /* spoolss_XcvData */
    1347           0 :                 struct spoolss_XcvData *r2 = (struct spoolss_XcvData *)r;
    1348           0 :                 if (DEBUGLEVEL >= 10) {
    1349           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_XcvData, NDR_IN, r2);
    1350             :                 }
    1351           0 :                 NDR_ZERO_STRUCT(r2->out);
    1352           0 :                 r2->out.status_code = r2->in.status_code;
    1353           0 :                 r2->out.out_data = talloc_zero_array(r2, uint8_t, r2->in.out_data_size);
    1354           0 :                 if (r2->out.out_data == NULL) {
    1355           0 :                         status = NT_STATUS_NO_MEMORY;
    1356           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1357           0 :                         goto fail;
    1358             :                 }
    1359             : 
    1360           0 :                 r2->out.needed = talloc_zero(r2, uint32_t);
    1361           0 :                 if (r2->out.needed == NULL) {
    1362           0 :                         status = NT_STATUS_NO_MEMORY;
    1363           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1364           0 :                         goto fail;
    1365             :                 }
    1366             : 
    1367           0 :                 r2->out.result = _spoolss_XcvData(p, r2);
    1368           0 :                 break;
    1369             :         }
    1370           0 :         case 89: { /* spoolss_AddPrinterDriverEx */
    1371           0 :                 struct spoolss_AddPrinterDriverEx *r2 = (struct spoolss_AddPrinterDriverEx *)r;
    1372           0 :                 if (DEBUGLEVEL >= 10) {
    1373           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPrinterDriverEx, NDR_IN, r2);
    1374             :                 }
    1375           0 :                 r2->out.result = _spoolss_AddPrinterDriverEx(p, r2);
    1376           0 :                 break;
    1377             :         }
    1378           0 :         case 90: { /* spoolss_5a */
    1379           0 :                 struct spoolss_5a *r2 = (struct spoolss_5a *)r;
    1380           0 :                 if (DEBUGLEVEL >= 10) {
    1381           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_5a, NDR_IN, r2);
    1382             :                 }
    1383           0 :                 r2->out.result = _spoolss_5a(p, r2);
    1384           0 :                 break;
    1385             :         }
    1386           0 :         case 91: { /* spoolss_5b */
    1387           0 :                 struct spoolss_5b *r2 = (struct spoolss_5b *)r;
    1388           0 :                 if (DEBUGLEVEL >= 10) {
    1389           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_5b, NDR_IN, r2);
    1390             :                 }
    1391           0 :                 r2->out.result = _spoolss_5b(p, r2);
    1392           0 :                 break;
    1393             :         }
    1394           0 :         case 92: { /* spoolss_5c */
    1395           0 :                 struct spoolss_5c *r2 = (struct spoolss_5c *)r;
    1396           0 :                 if (DEBUGLEVEL >= 10) {
    1397           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_5c, NDR_IN, r2);
    1398             :                 }
    1399           0 :                 r2->out.result = _spoolss_5c(p, r2);
    1400           0 :                 break;
    1401             :         }
    1402           0 :         case 93: { /* spoolss_5d */
    1403           0 :                 struct spoolss_5d *r2 = (struct spoolss_5d *)r;
    1404           0 :                 if (DEBUGLEVEL >= 10) {
    1405           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_5d, NDR_IN, r2);
    1406             :                 }
    1407           0 :                 r2->out.result = _spoolss_5d(p, r2);
    1408           0 :                 break;
    1409             :         }
    1410           0 :         case 94: { /* spoolss_5e */
    1411           0 :                 struct spoolss_5e *r2 = (struct spoolss_5e *)r;
    1412           0 :                 if (DEBUGLEVEL >= 10) {
    1413           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_5e, NDR_IN, r2);
    1414             :                 }
    1415           0 :                 r2->out.result = _spoolss_5e(p, r2);
    1416           0 :                 break;
    1417             :         }
    1418           0 :         case 95: { /* spoolss_5f */
    1419           0 :                 struct spoolss_5f *r2 = (struct spoolss_5f *)r;
    1420           0 :                 if (DEBUGLEVEL >= 10) {
    1421           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_5f, NDR_IN, r2);
    1422             :                 }
    1423           0 :                 r2->out.result = _spoolss_5f(p, r2);
    1424           0 :                 break;
    1425             :         }
    1426           0 :         case 96: { /* spoolss_60 */
    1427           0 :                 struct spoolss_60 *r2 = (struct spoolss_60 *)r;
    1428           0 :                 if (DEBUGLEVEL >= 10) {
    1429           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_60, NDR_IN, r2);
    1430             :                 }
    1431           0 :                 r2->out.result = _spoolss_60(p, r2);
    1432           0 :                 break;
    1433             :         }
    1434           0 :         case 97: { /* spoolss_SendRecvBidiData */
    1435           0 :                 struct spoolss_SendRecvBidiData *r2 = (struct spoolss_SendRecvBidiData *)r;
    1436           0 :                 if (DEBUGLEVEL >= 10) {
    1437           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SendRecvBidiData, NDR_IN, r2);
    1438             :                 }
    1439           0 :                 NDR_ZERO_STRUCT(r2->out);
    1440           0 :                 r2->out.ppRespData = talloc_zero(r2, struct RPC_BIDI_RESPONSE_CONTAINER *);
    1441           0 :                 if (r2->out.ppRespData == NULL) {
    1442           0 :                         status = NT_STATUS_NO_MEMORY;
    1443           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1444           0 :                         goto fail;
    1445             :                 }
    1446             : 
    1447           0 :                 r2->out.result = _spoolss_SendRecvBidiData(p, r2);
    1448           0 :                 break;
    1449             :         }
    1450           0 :         case 98: { /* spoolss_62 */
    1451           0 :                 struct spoolss_62 *r2 = (struct spoolss_62 *)r;
    1452           0 :                 if (DEBUGLEVEL >= 10) {
    1453           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_62, NDR_IN, r2);
    1454             :                 }
    1455           0 :                 r2->out.result = _spoolss_62(p, r2);
    1456           0 :                 break;
    1457             :         }
    1458           0 :         case 99: { /* spoolss_63 */
    1459           0 :                 struct spoolss_63 *r2 = (struct spoolss_63 *)r;
    1460           0 :                 if (DEBUGLEVEL >= 10) {
    1461           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_63, NDR_IN, r2);
    1462             :                 }
    1463           0 :                 r2->out.result = _spoolss_63(p, r2);
    1464           0 :                 break;
    1465             :         }
    1466           0 :         case 100: { /* spoolss_64 */
    1467           0 :                 struct spoolss_64 *r2 = (struct spoolss_64 *)r;
    1468           0 :                 if (DEBUGLEVEL >= 10) {
    1469           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_64, NDR_IN, r2);
    1470             :                 }
    1471           0 :                 r2->out.result = _spoolss_64(p, r2);
    1472           0 :                 break;
    1473             :         }
    1474           0 :         case 101: { /* spoolss_65 */
    1475           0 :                 struct spoolss_65 *r2 = (struct spoolss_65 *)r;
    1476           0 :                 if (DEBUGLEVEL >= 10) {
    1477           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_65, NDR_IN, r2);
    1478             :                 }
    1479           0 :                 r2->out.result = _spoolss_65(p, r2);
    1480           0 :                 break;
    1481             :         }
    1482           8 :         case 102: { /* spoolss_GetCorePrinterDrivers */
    1483           8 :                 struct spoolss_GetCorePrinterDrivers *r2 = (struct spoolss_GetCorePrinterDrivers *)r;
    1484           8 :                 if (DEBUGLEVEL >= 10) {
    1485           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetCorePrinterDrivers, NDR_IN, r2);
    1486             :                 }
    1487           8 :                 NDR_ZERO_STRUCT(r2->out);
    1488           8 :                 r2->out.core_printer_drivers = talloc_zero_array(r2, struct spoolss_CorePrinterDriver, r2->in.core_printer_driver_count);
    1489           8 :                 if (r2->out.core_printer_drivers == NULL) {
    1490           0 :                         status = NT_STATUS_NO_MEMORY;
    1491           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1492           0 :                         goto fail;
    1493             :                 }
    1494             : 
    1495           8 :                 r2->out.result = _spoolss_GetCorePrinterDrivers(p, r2);
    1496           8 :                 break;
    1497             :         }
    1498           0 :         case 103: { /* spoolss_67 */
    1499           0 :                 struct spoolss_67 *r2 = (struct spoolss_67 *)r;
    1500           0 :                 if (DEBUGLEVEL >= 10) {
    1501           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_67, NDR_IN, r2);
    1502             :                 }
    1503           0 :                 r2->out.result = _spoolss_67(p, r2);
    1504           0 :                 break;
    1505             :         }
    1506           4 :         case 104: { /* spoolss_GetPrinterDriverPackagePath */
    1507           4 :                 struct spoolss_GetPrinterDriverPackagePath *r2 = (struct spoolss_GetPrinterDriverPackagePath *)r;
    1508           4 :                 if (DEBUGLEVEL >= 10) {
    1509           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetPrinterDriverPackagePath, NDR_IN, r2);
    1510             :                 }
    1511           4 :                 NDR_ZERO_STRUCT(r2->out);
    1512           4 :                 r2->out.driver_package_cab = r2->in.driver_package_cab;
    1513           4 :                 r2->out.required = talloc_zero(r2, uint32_t);
    1514           4 :                 if (r2->out.required == NULL) {
    1515           0 :                         status = NT_STATUS_NO_MEMORY;
    1516           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1517           0 :                         goto fail;
    1518             :                 }
    1519             : 
    1520           4 :                 r2->out.result = _spoolss_GetPrinterDriverPackagePath(p, r2);
    1521           4 :                 break;
    1522             :         }
    1523           0 :         case 105: { /* spoolss_69 */
    1524           0 :                 struct spoolss_69 *r2 = (struct spoolss_69 *)r;
    1525           0 :                 if (DEBUGLEVEL >= 10) {
    1526           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_69, NDR_IN, r2);
    1527             :                 }
    1528           0 :                 r2->out.result = _spoolss_69(p, r2);
    1529           0 :                 break;
    1530             :         }
    1531           0 :         case 106: { /* spoolss_6a */
    1532           0 :                 struct spoolss_6a *r2 = (struct spoolss_6a *)r;
    1533           0 :                 if (DEBUGLEVEL >= 10) {
    1534           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_6a, NDR_IN, r2);
    1535             :                 }
    1536           0 :                 r2->out.result = _spoolss_6a(p, r2);
    1537           0 :                 break;
    1538             :         }
    1539           0 :         case 107: { /* spoolss_6b */
    1540           0 :                 struct spoolss_6b *r2 = (struct spoolss_6b *)r;
    1541           0 :                 if (DEBUGLEVEL >= 10) {
    1542           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_6b, NDR_IN, r2);
    1543             :                 }
    1544           0 :                 r2->out.result = _spoolss_6b(p, r2);
    1545           0 :                 break;
    1546             :         }
    1547           0 :         case 108: { /* spoolss_6c */
    1548           0 :                 struct spoolss_6c *r2 = (struct spoolss_6c *)r;
    1549           0 :                 if (DEBUGLEVEL >= 10) {
    1550           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_6c, NDR_IN, r2);
    1551             :                 }
    1552           0 :                 r2->out.result = _spoolss_6c(p, r2);
    1553           0 :                 break;
    1554             :         }
    1555           0 :         case 109: { /* spoolss_6d */
    1556           0 :                 struct spoolss_6d *r2 = (struct spoolss_6d *)r;
    1557           0 :                 if (DEBUGLEVEL >= 10) {
    1558           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_6d, NDR_IN, r2);
    1559             :                 }
    1560           0 :                 r2->out.result = _spoolss_6d(p, r2);
    1561           0 :                 break;
    1562             :         }
    1563           0 :         case 110: { /* spoolss_GetJobNamedPropertyValue */
    1564           0 :                 struct spoolss_GetJobNamedPropertyValue *r2 = (struct spoolss_GetJobNamedPropertyValue *)r;
    1565           0 :                 if (DEBUGLEVEL >= 10) {
    1566           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetJobNamedPropertyValue, NDR_IN, r2);
    1567             :                 }
    1568           0 :                 NDR_ZERO_STRUCT(r2->out);
    1569           0 :                 r2->out.pValue = talloc_zero(r2, struct spoolss_PrintPropertyValue);
    1570           0 :                 if (r2->out.pValue == NULL) {
    1571           0 :                         status = NT_STATUS_NO_MEMORY;
    1572           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1573           0 :                         goto fail;
    1574             :                 }
    1575             : 
    1576           0 :                 r2->out.result = _spoolss_GetJobNamedPropertyValue(p, r2);
    1577           0 :                 break;
    1578             :         }
    1579           0 :         case 111: { /* spoolss_SetJobNamedProperty */
    1580           0 :                 struct spoolss_SetJobNamedProperty *r2 = (struct spoolss_SetJobNamedProperty *)r;
    1581           0 :                 if (DEBUGLEVEL >= 10) {
    1582           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SetJobNamedProperty, NDR_IN, r2);
    1583             :                 }
    1584           0 :                 r2->out.result = _spoolss_SetJobNamedProperty(p, r2);
    1585           0 :                 break;
    1586             :         }
    1587           0 :         case 112: { /* spoolss_DeleteJobNamedProperty */
    1588           0 :                 struct spoolss_DeleteJobNamedProperty *r2 = (struct spoolss_DeleteJobNamedProperty *)r;
    1589           0 :                 if (DEBUGLEVEL >= 10) {
    1590           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeleteJobNamedProperty, NDR_IN, r2);
    1591             :                 }
    1592           0 :                 r2->out.result = _spoolss_DeleteJobNamedProperty(p, r2);
    1593           0 :                 break;
    1594             :         }
    1595           0 :         case 113: { /* spoolss_EnumJobNamedProperties */
    1596           0 :                 struct spoolss_EnumJobNamedProperties *r2 = (struct spoolss_EnumJobNamedProperties *)r;
    1597           0 :                 if (DEBUGLEVEL >= 10) {
    1598           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumJobNamedProperties, NDR_IN, r2);
    1599             :                 }
    1600           0 :                 NDR_ZERO_STRUCT(r2->out);
    1601           0 :                 r2->out.pcProperties = talloc_zero(r2, uint32_t);
    1602           0 :                 if (r2->out.pcProperties == NULL) {
    1603           0 :                         status = NT_STATUS_NO_MEMORY;
    1604           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1605           0 :                         goto fail;
    1606             :                 }
    1607             : 
    1608           0 :                 r2->out.ppProperties = talloc_zero(r2, struct spoolss_PrintNamedProperty *);
    1609           0 :                 if (r2->out.ppProperties == NULL) {
    1610           0 :                         status = NT_STATUS_NO_MEMORY;
    1611           0 :                         p->fault_state = DCERPC_FAULT_CANT_PERFORM;
    1612           0 :                         goto fail;
    1613             :                 }
    1614             : 
    1615           0 :                 r2->out.result = _spoolss_EnumJobNamedProperties(p, r2);
    1616           0 :                 break;
    1617             :         }
    1618           0 :         case 114: { /* spoolss_72 */
    1619           0 :                 struct spoolss_72 *r2 = (struct spoolss_72 *)r;
    1620           0 :                 if (DEBUGLEVEL >= 10) {
    1621           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_72, NDR_IN, r2);
    1622             :                 }
    1623           0 :                 r2->out.result = _spoolss_72(p, r2);
    1624           0 :                 break;
    1625             :         }
    1626           0 :         case 115: { /* spoolss_73 */
    1627           0 :                 struct spoolss_73 *r2 = (struct spoolss_73 *)r;
    1628           0 :                 if (DEBUGLEVEL >= 10) {
    1629           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_73, NDR_IN, r2);
    1630             :                 }
    1631           0 :                 r2->out.result = _spoolss_73(p, r2);
    1632           0 :                 break;
    1633             :         }
    1634           8 :         case 116: { /* spoolss_LogJobInfoForBranchOffice */
    1635           8 :                 struct spoolss_LogJobInfoForBranchOffice *r2 = (struct spoolss_LogJobInfoForBranchOffice *)r;
    1636           8 :                 if (DEBUGLEVEL >= 10) {
    1637           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_LogJobInfoForBranchOffice, NDR_IN, r2);
    1638             :                 }
    1639           8 :                 r2->out.result = _spoolss_LogJobInfoForBranchOffice(p, r2);
    1640           8 :                 break;
    1641             :         }
    1642           0 :         default:
    1643           0 :                 dce_call->fault_code = DCERPC_FAULT_OP_RNG_ERROR;
    1644           0 :                 break;
    1645             :         }
    1646             : 
    1647       35258 : fail:
    1648             :         /* Unimpersonate */
    1649       35258 :         if (impersonated) {
    1650       35258 :                 unbecome_authenticated_pipe_user();
    1651             :         }
    1652             : 
    1653       35258 :         p->dce_call = NULL;
    1654       35258 :         p->mem_ctx = NULL;
    1655             :         /* Check pipes struct fault state */
    1656       35258 :         if (p->fault_state != 0) {
    1657          24 :                 dce_call->fault_code = p->fault_state;
    1658             :         }
    1659       35258 :         if (dce_call->fault_code != 0) {
    1660          24 :                 status = NT_STATUS_NET_WRITE_FAULT;
    1661             :         }
    1662             : 
    1663       35258 :         return status;
    1664             : }
    1665             : 
    1666       35258 : NTSTATUS spoolss__op_dispatch(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, void *r)
    1667             : {
    1668       35258 :         return spoolss__op_dispatch_internal(dce_call, mem_ctx, r, S3COMPAT_RPC_DISPATCH_EXTERNAL);
    1669             : }
    1670             : 
    1671       35234 : NTSTATUS spoolss__op_reply(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, void *r)
    1672             : {
    1673       35234 :         uint16_t opnum = dce_call->pkt.u.request.opnum;
    1674             : 
    1675       35234 :         switch (opnum) {
    1676         180 :         case 0: { /* spoolss_EnumPrinters */
    1677         180 :                 struct spoolss_EnumPrinters *r2 = (struct spoolss_EnumPrinters *)r;
    1678         180 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1679           0 :                         DEBUG(5,("function spoolss_EnumPrinters replied async\n"));
    1680             :                 }
    1681         180 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1682           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPrinters, NDR_OUT | NDR_SET_VALUES, r2);
    1683             :                 }
    1684         180 :                 if (dce_call->fault_code != 0) {
    1685           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_EnumPrinters\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1686             :                 }
    1687         180 :                 break;
    1688             :         }
    1689         194 :         case 1: { /* spoolss_OpenPrinter */
    1690         194 :                 struct spoolss_OpenPrinter *r2 = (struct spoolss_OpenPrinter *)r;
    1691         194 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1692           0 :                         DEBUG(5,("function spoolss_OpenPrinter replied async\n"));
    1693             :                 }
    1694         194 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1695           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_OpenPrinter, NDR_OUT | NDR_SET_VALUES, r2);
    1696             :                 }
    1697         194 :                 if (dce_call->fault_code != 0) {
    1698           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_OpenPrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1699             :                 }
    1700         194 :                 break;
    1701             :         }
    1702         640 :         case 2: { /* spoolss_SetJob */
    1703         640 :                 struct spoolss_SetJob *r2 = (struct spoolss_SetJob *)r;
    1704         640 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1705           0 :                         DEBUG(5,("function spoolss_SetJob replied async\n"));
    1706             :                 }
    1707         640 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1708           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SetJob, NDR_OUT | NDR_SET_VALUES, r2);
    1709             :                 }
    1710         640 :                 if (dce_call->fault_code != 0) {
    1711           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_SetJob\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1712             :                 }
    1713         640 :                 break;
    1714             :         }
    1715        2048 :         case 3: { /* spoolss_GetJob */
    1716        2048 :                 struct spoolss_GetJob *r2 = (struct spoolss_GetJob *)r;
    1717        2048 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1718           0 :                         DEBUG(5,("function spoolss_GetJob replied async\n"));
    1719             :                 }
    1720        2048 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1721           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetJob, NDR_OUT | NDR_SET_VALUES, r2);
    1722             :                 }
    1723        2048 :                 if (dce_call->fault_code != 0) {
    1724           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_GetJob\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1725             :                 }
    1726        2048 :                 break;
    1727             :         }
    1728          96 :         case 4: { /* spoolss_EnumJobs */
    1729          96 :                 struct spoolss_EnumJobs *r2 = (struct spoolss_EnumJobs *)r;
    1730          96 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1731           0 :                         DEBUG(5,("function spoolss_EnumJobs replied async\n"));
    1732             :                 }
    1733          96 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1734           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumJobs, NDR_OUT | NDR_SET_VALUES, r2);
    1735             :                 }
    1736          96 :                 if (dce_call->fault_code != 0) {
    1737           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_EnumJobs\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1738             :                 }
    1739          96 :                 break;
    1740             :         }
    1741          72 :         case 5: { /* spoolss_AddPrinter */
    1742          72 :                 struct spoolss_AddPrinter *r2 = (struct spoolss_AddPrinter *)r;
    1743          72 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1744           0 :                         DEBUG(5,("function spoolss_AddPrinter replied async\n"));
    1745             :                 }
    1746          72 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1747           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPrinter, NDR_OUT | NDR_SET_VALUES, r2);
    1748             :                 }
    1749          72 :                 if (dce_call->fault_code != 0) {
    1750           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_AddPrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1751             :                 }
    1752          72 :                 break;
    1753             :         }
    1754          16 :         case 6: { /* spoolss_DeletePrinter */
    1755          16 :                 struct spoolss_DeletePrinter *r2 = (struct spoolss_DeletePrinter *)r;
    1756          16 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1757           0 :                         DEBUG(5,("function spoolss_DeletePrinter replied async\n"));
    1758             :                 }
    1759          16 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1760           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrinter, NDR_OUT | NDR_SET_VALUES, r2);
    1761             :                 }
    1762          16 :                 if (dce_call->fault_code != 0) {
    1763           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_DeletePrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1764             :                 }
    1765          16 :                 break;
    1766             :         }
    1767         584 :         case 7: { /* spoolss_SetPrinter */
    1768         584 :                 struct spoolss_SetPrinter *r2 = (struct spoolss_SetPrinter *)r;
    1769         584 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1770           0 :                         DEBUG(5,("function spoolss_SetPrinter replied async\n"));
    1771             :                 }
    1772         584 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1773           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SetPrinter, NDR_OUT | NDR_SET_VALUES, r2);
    1774             :                 }
    1775         584 :                 if (dce_call->fault_code != 0) {
    1776           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_SetPrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1777             :                 }
    1778         584 :                 break;
    1779             :         }
    1780        3512 :         case 8: { /* spoolss_GetPrinter */
    1781        3512 :                 struct spoolss_GetPrinter *r2 = (struct spoolss_GetPrinter *)r;
    1782        3512 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1783           0 :                         DEBUG(5,("function spoolss_GetPrinter replied async\n"));
    1784             :                 }
    1785        3512 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1786           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetPrinter, NDR_OUT | NDR_SET_VALUES, r2);
    1787             :                 }
    1788        3512 :                 if (dce_call->fault_code != 0) {
    1789           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_GetPrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1790             :                 }
    1791        3512 :                 break;
    1792             :         }
    1793           0 :         case 9: { /* spoolss_AddPrinterDriver */
    1794           0 :                 struct spoolss_AddPrinterDriver *r2 = (struct spoolss_AddPrinterDriver *)r;
    1795           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1796           0 :                         DEBUG(5,("function spoolss_AddPrinterDriver replied async\n"));
    1797             :                 }
    1798           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1799           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPrinterDriver, NDR_OUT | NDR_SET_VALUES, r2);
    1800             :                 }
    1801           0 :                 if (dce_call->fault_code != 0) {
    1802           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_AddPrinterDriver\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1803             :                 }
    1804           0 :                 break;
    1805             :         }
    1806         108 :         case 10: { /* spoolss_EnumPrinterDrivers */
    1807         108 :                 struct spoolss_EnumPrinterDrivers *r2 = (struct spoolss_EnumPrinterDrivers *)r;
    1808         108 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1809           0 :                         DEBUG(5,("function spoolss_EnumPrinterDrivers replied async\n"));
    1810             :                 }
    1811         108 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1812           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPrinterDrivers, NDR_OUT | NDR_SET_VALUES, r2);
    1813             :                 }
    1814         108 :                 if (dce_call->fault_code != 0) {
    1815           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_EnumPrinterDrivers\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1816             :                 }
    1817         108 :                 break;
    1818             :         }
    1819           0 :         case 11: { /* spoolss_GetPrinterDriver */
    1820           0 :                 struct spoolss_GetPrinterDriver *r2 = (struct spoolss_GetPrinterDriver *)r;
    1821           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1822           0 :                         DEBUG(5,("function spoolss_GetPrinterDriver replied async\n"));
    1823             :                 }
    1824           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1825           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetPrinterDriver, NDR_OUT | NDR_SET_VALUES, r2);
    1826             :                 }
    1827           0 :                 if (dce_call->fault_code != 0) {
    1828           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_GetPrinterDriver\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1829             :                 }
    1830           0 :                 break;
    1831             :         }
    1832         168 :         case 12: { /* spoolss_GetPrinterDriverDirectory */
    1833         168 :                 struct spoolss_GetPrinterDriverDirectory *r2 = (struct spoolss_GetPrinterDriverDirectory *)r;
    1834         168 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1835           0 :                         DEBUG(5,("function spoolss_GetPrinterDriverDirectory replied async\n"));
    1836             :                 }
    1837         168 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1838           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetPrinterDriverDirectory, NDR_OUT | NDR_SET_VALUES, r2);
    1839             :                 }
    1840         168 :                 if (dce_call->fault_code != 0) {
    1841           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_GetPrinterDriverDirectory\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1842             :                 }
    1843         168 :                 break;
    1844             :         }
    1845           0 :         case 13: { /* spoolss_DeletePrinterDriver */
    1846           0 :                 struct spoolss_DeletePrinterDriver *r2 = (struct spoolss_DeletePrinterDriver *)r;
    1847           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1848           0 :                         DEBUG(5,("function spoolss_DeletePrinterDriver replied async\n"));
    1849             :                 }
    1850           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1851           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrinterDriver, NDR_OUT | NDR_SET_VALUES, r2);
    1852             :                 }
    1853           0 :                 if (dce_call->fault_code != 0) {
    1854           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_DeletePrinterDriver\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1855             :                 }
    1856           0 :                 break;
    1857             :         }
    1858           4 :         case 14: { /* spoolss_AddPrintProcessor */
    1859           4 :                 struct spoolss_AddPrintProcessor *r2 = (struct spoolss_AddPrintProcessor *)r;
    1860           4 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1861           0 :                         DEBUG(5,("function spoolss_AddPrintProcessor replied async\n"));
    1862             :                 }
    1863           4 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1864           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPrintProcessor, NDR_OUT | NDR_SET_VALUES, r2);
    1865             :                 }
    1866           4 :                 if (dce_call->fault_code != 0) {
    1867           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_AddPrintProcessor\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1868             :                 }
    1869           4 :                 break;
    1870             :         }
    1871          48 :         case 15: { /* spoolss_EnumPrintProcessors */
    1872          48 :                 struct spoolss_EnumPrintProcessors *r2 = (struct spoolss_EnumPrintProcessors *)r;
    1873          48 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1874           0 :                         DEBUG(5,("function spoolss_EnumPrintProcessors replied async\n"));
    1875             :                 }
    1876          48 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1877           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPrintProcessors, NDR_OUT | NDR_SET_VALUES, r2);
    1878             :                 }
    1879          48 :                 if (dce_call->fault_code != 0) {
    1880           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_EnumPrintProcessors\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1881             :                 }
    1882          48 :                 break;
    1883             :         }
    1884          40 :         case 16: { /* spoolss_GetPrintProcessorDirectory */
    1885          40 :                 struct spoolss_GetPrintProcessorDirectory *r2 = (struct spoolss_GetPrintProcessorDirectory *)r;
    1886          40 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1887           0 :                         DEBUG(5,("function spoolss_GetPrintProcessorDirectory replied async\n"));
    1888             :                 }
    1889          40 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1890           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetPrintProcessorDirectory, NDR_OUT | NDR_SET_VALUES, r2);
    1891             :                 }
    1892          40 :                 if (dce_call->fault_code != 0) {
    1893           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_GetPrintProcessorDirectory\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1894             :                 }
    1895          40 :                 break;
    1896             :         }
    1897         668 :         case 17: { /* spoolss_StartDocPrinter */
    1898         668 :                 struct spoolss_StartDocPrinter *r2 = (struct spoolss_StartDocPrinter *)r;
    1899         668 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1900           0 :                         DEBUG(5,("function spoolss_StartDocPrinter replied async\n"));
    1901             :                 }
    1902         668 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1903           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_StartDocPrinter, NDR_OUT | NDR_SET_VALUES, r2);
    1904             :                 }
    1905         668 :                 if (dce_call->fault_code != 0) {
    1906           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_StartDocPrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1907             :                 }
    1908         668 :                 break;
    1909             :         }
    1910        1920 :         case 18: { /* spoolss_StartPagePrinter */
    1911        1920 :                 struct spoolss_StartPagePrinter *r2 = (struct spoolss_StartPagePrinter *)r;
    1912        1920 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1913           0 :                         DEBUG(5,("function spoolss_StartPagePrinter replied async\n"));
    1914             :                 }
    1915        1920 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1916           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_StartPagePrinter, NDR_OUT | NDR_SET_VALUES, r2);
    1917             :                 }
    1918        1920 :                 if (dce_call->fault_code != 0) {
    1919           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_StartPagePrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1920             :                 }
    1921        1920 :                 break;
    1922             :         }
    1923        1920 :         case 19: { /* spoolss_WritePrinter */
    1924        1920 :                 struct spoolss_WritePrinter *r2 = (struct spoolss_WritePrinter *)r;
    1925        1920 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1926           0 :                         DEBUG(5,("function spoolss_WritePrinter replied async\n"));
    1927             :                 }
    1928        1920 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1929           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_WritePrinter, NDR_OUT | NDR_SET_VALUES, r2);
    1930             :                 }
    1931        1920 :                 if (dce_call->fault_code != 0) {
    1932           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_WritePrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1933             :                 }
    1934        1920 :                 break;
    1935             :         }
    1936        1920 :         case 20: { /* spoolss_EndPagePrinter */
    1937        1920 :                 struct spoolss_EndPagePrinter *r2 = (struct spoolss_EndPagePrinter *)r;
    1938        1920 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1939           0 :                         DEBUG(5,("function spoolss_EndPagePrinter replied async\n"));
    1940             :                 }
    1941        1920 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1942           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EndPagePrinter, NDR_OUT | NDR_SET_VALUES, r2);
    1943             :                 }
    1944        1920 :                 if (dce_call->fault_code != 0) {
    1945           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_EndPagePrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1946             :                 }
    1947        1920 :                 break;
    1948             :         }
    1949           0 :         case 21: { /* spoolss_AbortPrinter */
    1950           0 :                 struct spoolss_AbortPrinter *r2 = (struct spoolss_AbortPrinter *)r;
    1951           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1952           0 :                         DEBUG(5,("function spoolss_AbortPrinter replied async\n"));
    1953             :                 }
    1954           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1955           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AbortPrinter, NDR_OUT | NDR_SET_VALUES, r2);
    1956             :                 }
    1957           0 :                 if (dce_call->fault_code != 0) {
    1958           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_AbortPrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1959             :                 }
    1960           0 :                 break;
    1961             :         }
    1962           0 :         case 22: { /* spoolss_ReadPrinter */
    1963           0 :                 struct spoolss_ReadPrinter *r2 = (struct spoolss_ReadPrinter *)r;
    1964           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1965           0 :                         DEBUG(5,("function spoolss_ReadPrinter replied async\n"));
    1966             :                 }
    1967           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1968           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_ReadPrinter, NDR_OUT | NDR_SET_VALUES, r2);
    1969             :                 }
    1970           0 :                 if (dce_call->fault_code != 0) {
    1971           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_ReadPrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1972             :                 }
    1973           0 :                 break;
    1974             :         }
    1975         640 :         case 23: { /* spoolss_EndDocPrinter */
    1976         640 :                 struct spoolss_EndDocPrinter *r2 = (struct spoolss_EndDocPrinter *)r;
    1977         640 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1978           0 :                         DEBUG(5,("function spoolss_EndDocPrinter replied async\n"));
    1979             :                 }
    1980         640 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1981           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EndDocPrinter, NDR_OUT | NDR_SET_VALUES, r2);
    1982             :                 }
    1983         640 :                 if (dce_call->fault_code != 0) {
    1984           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_EndDocPrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1985             :                 }
    1986         640 :                 break;
    1987             :         }
    1988          16 :         case 24: { /* spoolss_AddJob */
    1989          16 :                 struct spoolss_AddJob *r2 = (struct spoolss_AddJob *)r;
    1990          16 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    1991           0 :                         DEBUG(5,("function spoolss_AddJob replied async\n"));
    1992             :                 }
    1993          16 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    1994           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddJob, NDR_OUT | NDR_SET_VALUES, r2);
    1995             :                 }
    1996          16 :                 if (dce_call->fault_code != 0) {
    1997           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_AddJob\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    1998             :                 }
    1999          16 :                 break;
    2000             :         }
    2001           0 :         case 25: { /* spoolss_ScheduleJob */
    2002           0 :                 struct spoolss_ScheduleJob *r2 = (struct spoolss_ScheduleJob *)r;
    2003           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2004           0 :                         DEBUG(5,("function spoolss_ScheduleJob replied async\n"));
    2005             :                 }
    2006           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2007           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_ScheduleJob, NDR_OUT | NDR_SET_VALUES, r2);
    2008             :                 }
    2009           0 :                 if (dce_call->fault_code != 0) {
    2010           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_ScheduleJob\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2011             :                 }
    2012           0 :                 break;
    2013             :         }
    2014         480 :         case 26: { /* spoolss_GetPrinterData */
    2015         480 :                 struct spoolss_GetPrinterData *r2 = (struct spoolss_GetPrinterData *)r;
    2016         480 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2017           0 :                         DEBUG(5,("function spoolss_GetPrinterData replied async\n"));
    2018             :                 }
    2019         480 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2020           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetPrinterData, NDR_OUT | NDR_SET_VALUES, r2);
    2021             :                 }
    2022         480 :                 if (dce_call->fault_code != 0) {
    2023           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_GetPrinterData\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2024             :                 }
    2025         480 :                 break;
    2026             :         }
    2027         168 :         case 27: { /* spoolss_SetPrinterData */
    2028         168 :                 struct spoolss_SetPrinterData *r2 = (struct spoolss_SetPrinterData *)r;
    2029         168 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2030           0 :                         DEBUG(5,("function spoolss_SetPrinterData replied async\n"));
    2031             :                 }
    2032         168 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2033           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SetPrinterData, NDR_OUT | NDR_SET_VALUES, r2);
    2034             :                 }
    2035         168 :                 if (dce_call->fault_code != 0) {
    2036           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_SetPrinterData\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2037             :                 }
    2038         168 :                 break;
    2039             :         }
    2040           0 :         case 28: { /* spoolss_WaitForPrinterChange */
    2041           0 :                 struct spoolss_WaitForPrinterChange *r2 = (struct spoolss_WaitForPrinterChange *)r;
    2042           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2043           0 :                         DEBUG(5,("function spoolss_WaitForPrinterChange replied async\n"));
    2044             :                 }
    2045           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2046           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_WaitForPrinterChange, NDR_OUT | NDR_SET_VALUES, r2);
    2047             :                 }
    2048           0 :                 if (dce_call->fault_code != 0) {
    2049           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_WaitForPrinterChange\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2050             :                 }
    2051           0 :                 break;
    2052             :         }
    2053         620 :         case 29: { /* spoolss_ClosePrinter */
    2054         620 :                 struct spoolss_ClosePrinter *r2 = (struct spoolss_ClosePrinter *)r;
    2055         620 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2056           0 :                         DEBUG(5,("function spoolss_ClosePrinter replied async\n"));
    2057             :                 }
    2058         620 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2059           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_ClosePrinter, NDR_OUT | NDR_SET_VALUES, r2);
    2060             :                 }
    2061         620 :                 if (dce_call->fault_code != 0) {
    2062           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_ClosePrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2063             :                 }
    2064         620 :                 break;
    2065             :         }
    2066         576 :         case 30: { /* spoolss_AddForm */
    2067         576 :                 struct spoolss_AddForm *r2 = (struct spoolss_AddForm *)r;
    2068         576 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2069           0 :                         DEBUG(5,("function spoolss_AddForm replied async\n"));
    2070             :                 }
    2071         576 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2072           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddForm, NDR_OUT | NDR_SET_VALUES, r2);
    2073             :                 }
    2074         576 :                 if (dce_call->fault_code != 0) {
    2075           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_AddForm\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2076             :                 }
    2077         576 :                 break;
    2078             :         }
    2079         384 :         case 31: { /* spoolss_DeleteForm */
    2080         384 :                 struct spoolss_DeleteForm *r2 = (struct spoolss_DeleteForm *)r;
    2081         384 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2082           0 :                         DEBUG(5,("function spoolss_DeleteForm replied async\n"));
    2083             :                 }
    2084         384 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2085           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeleteForm, NDR_OUT | NDR_SET_VALUES, r2);
    2086             :                 }
    2087         384 :                 if (dce_call->fault_code != 0) {
    2088           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_DeleteForm\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2089             :                 }
    2090         384 :                 break;
    2091             :         }
    2092        5040 :         case 32: { /* spoolss_GetForm */
    2093        5040 :                 struct spoolss_GetForm *r2 = (struct spoolss_GetForm *)r;
    2094        5040 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2095           0 :                         DEBUG(5,("function spoolss_GetForm replied async\n"));
    2096             :                 }
    2097        5040 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2098           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetForm, NDR_OUT | NDR_SET_VALUES, r2);
    2099             :                 }
    2100        5040 :                 if (dce_call->fault_code != 0) {
    2101           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_GetForm\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2102             :                 }
    2103        5040 :                 break;
    2104             :         }
    2105          80 :         case 33: { /* spoolss_SetForm */
    2106          80 :                 struct spoolss_SetForm *r2 = (struct spoolss_SetForm *)r;
    2107          80 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2108           0 :                         DEBUG(5,("function spoolss_SetForm replied async\n"));
    2109             :                 }
    2110          80 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2111           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SetForm, NDR_OUT | NDR_SET_VALUES, r2);
    2112             :                 }
    2113          80 :                 if (dce_call->fault_code != 0) {
    2114           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_SetForm\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2115             :                 }
    2116          80 :                 break;
    2117             :         }
    2118         560 :         case 34: { /* spoolss_EnumForms */
    2119         560 :                 struct spoolss_EnumForms *r2 = (struct spoolss_EnumForms *)r;
    2120         560 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2121           0 :                         DEBUG(5,("function spoolss_EnumForms replied async\n"));
    2122             :                 }
    2123         560 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2124           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumForms, NDR_OUT | NDR_SET_VALUES, r2);
    2125             :                 }
    2126         560 :                 if (dce_call->fault_code != 0) {
    2127           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_EnumForms\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2128             :                 }
    2129         560 :                 break;
    2130             :         }
    2131          24 :         case 35: { /* spoolss_EnumPorts */
    2132          24 :                 struct spoolss_EnumPorts *r2 = (struct spoolss_EnumPorts *)r;
    2133          24 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2134           0 :                         DEBUG(5,("function spoolss_EnumPorts replied async\n"));
    2135             :                 }
    2136          24 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2137           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPorts, NDR_OUT | NDR_SET_VALUES, r2);
    2138             :                 }
    2139          24 :                 if (dce_call->fault_code != 0) {
    2140           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_EnumPorts\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2141             :                 }
    2142          24 :                 break;
    2143             :         }
    2144          16 :         case 36: { /* spoolss_EnumMonitors */
    2145          16 :                 struct spoolss_EnumMonitors *r2 = (struct spoolss_EnumMonitors *)r;
    2146          16 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2147           0 :                         DEBUG(5,("function spoolss_EnumMonitors replied async\n"));
    2148             :                 }
    2149          16 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2150           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumMonitors, NDR_OUT | NDR_SET_VALUES, r2);
    2151             :                 }
    2152          16 :                 if (dce_call->fault_code != 0) {
    2153           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_EnumMonitors\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2154             :                 }
    2155          16 :                 break;
    2156             :         }
    2157           4 :         case 37: { /* spoolss_AddPort */
    2158           4 :                 struct spoolss_AddPort *r2 = (struct spoolss_AddPort *)r;
    2159           4 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2160           0 :                         DEBUG(5,("function spoolss_AddPort replied async\n"));
    2161             :                 }
    2162           4 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2163           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPort, NDR_OUT | NDR_SET_VALUES, r2);
    2164             :                 }
    2165           4 :                 if (dce_call->fault_code != 0) {
    2166           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_AddPort\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2167             :                 }
    2168           4 :                 break;
    2169             :         }
    2170           0 :         case 38: { /* spoolss_ConfigurePort */
    2171           0 :                 struct spoolss_ConfigurePort *r2 = (struct spoolss_ConfigurePort *)r;
    2172           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2173           0 :                         DEBUG(5,("function spoolss_ConfigurePort replied async\n"));
    2174             :                 }
    2175           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2176           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_ConfigurePort, NDR_OUT | NDR_SET_VALUES, r2);
    2177             :                 }
    2178           0 :                 if (dce_call->fault_code != 0) {
    2179           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_ConfigurePort\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2180             :                 }
    2181           0 :                 break;
    2182             :         }
    2183           0 :         case 39: { /* spoolss_DeletePort */
    2184           0 :                 struct spoolss_DeletePort *r2 = (struct spoolss_DeletePort *)r;
    2185           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2186           0 :                         DEBUG(5,("function spoolss_DeletePort replied async\n"));
    2187             :                 }
    2188           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2189           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePort, NDR_OUT | NDR_SET_VALUES, r2);
    2190             :                 }
    2191           0 :                 if (dce_call->fault_code != 0) {
    2192           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_DeletePort\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2193             :                 }
    2194           0 :                 break;
    2195             :         }
    2196           0 :         case 40: { /* spoolss_CreatePrinterIC */
    2197           0 :                 struct spoolss_CreatePrinterIC *r2 = (struct spoolss_CreatePrinterIC *)r;
    2198           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2199           0 :                         DEBUG(5,("function spoolss_CreatePrinterIC replied async\n"));
    2200             :                 }
    2201           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2202           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_CreatePrinterIC, NDR_OUT | NDR_SET_VALUES, r2);
    2203             :                 }
    2204           0 :                 if (dce_call->fault_code != 0) {
    2205           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_CreatePrinterIC\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2206             :                 }
    2207           0 :                 break;
    2208             :         }
    2209           0 :         case 41: { /* spoolss_PlayGDIScriptOnPrinterIC */
    2210           0 :                 struct spoolss_PlayGDIScriptOnPrinterIC *r2 = (struct spoolss_PlayGDIScriptOnPrinterIC *)r;
    2211           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2212           0 :                         DEBUG(5,("function spoolss_PlayGDIScriptOnPrinterIC replied async\n"));
    2213             :                 }
    2214           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2215           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_PlayGDIScriptOnPrinterIC, NDR_OUT | NDR_SET_VALUES, r2);
    2216             :                 }
    2217           0 :                 if (dce_call->fault_code != 0) {
    2218           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_PlayGDIScriptOnPrinterIC\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2219             :                 }
    2220           0 :                 break;
    2221             :         }
    2222           0 :         case 42: { /* spoolss_DeletePrinterIC */
    2223           0 :                 struct spoolss_DeletePrinterIC *r2 = (struct spoolss_DeletePrinterIC *)r;
    2224           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2225           0 :                         DEBUG(5,("function spoolss_DeletePrinterIC replied async\n"));
    2226             :                 }
    2227           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2228           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrinterIC, NDR_OUT | NDR_SET_VALUES, r2);
    2229             :                 }
    2230           0 :                 if (dce_call->fault_code != 0) {
    2231           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_DeletePrinterIC\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2232             :                 }
    2233           0 :                 break;
    2234             :         }
    2235           0 :         case 43: { /* spoolss_AddPrinterConnection */
    2236           0 :                 struct spoolss_AddPrinterConnection *r2 = (struct spoolss_AddPrinterConnection *)r;
    2237           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2238           0 :                         DEBUG(5,("function spoolss_AddPrinterConnection replied async\n"));
    2239             :                 }
    2240           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2241           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPrinterConnection, NDR_OUT | NDR_SET_VALUES, r2);
    2242             :                 }
    2243           0 :                 if (dce_call->fault_code != 0) {
    2244           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_AddPrinterConnection\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2245             :                 }
    2246           0 :                 break;
    2247             :         }
    2248           0 :         case 44: { /* spoolss_DeletePrinterConnection */
    2249           0 :                 struct spoolss_DeletePrinterConnection *r2 = (struct spoolss_DeletePrinterConnection *)r;
    2250           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2251           0 :                         DEBUG(5,("function spoolss_DeletePrinterConnection replied async\n"));
    2252             :                 }
    2253           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2254           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrinterConnection, NDR_OUT | NDR_SET_VALUES, r2);
    2255             :                 }
    2256           0 :                 if (dce_call->fault_code != 0) {
    2257           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_DeletePrinterConnection\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2258             :                 }
    2259           0 :                 break;
    2260             :         }
    2261           0 :         case 45: { /* spoolss_PrinterMessageBox */
    2262           0 :                 struct spoolss_PrinterMessageBox *r2 = (struct spoolss_PrinterMessageBox *)r;
    2263           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2264           0 :                         DEBUG(5,("function spoolss_PrinterMessageBox replied async\n"));
    2265             :                 }
    2266           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2267           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_PrinterMessageBox, NDR_OUT | NDR_SET_VALUES, r2);
    2268             :                 }
    2269           0 :                 if (dce_call->fault_code != 0) {
    2270           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_PrinterMessageBox\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2271             :                 }
    2272           0 :                 break;
    2273             :         }
    2274           0 :         case 46: { /* spoolss_AddMonitor */
    2275           0 :                 struct spoolss_AddMonitor *r2 = (struct spoolss_AddMonitor *)r;
    2276           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2277           0 :                         DEBUG(5,("function spoolss_AddMonitor replied async\n"));
    2278             :                 }
    2279           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2280           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddMonitor, NDR_OUT | NDR_SET_VALUES, r2);
    2281             :                 }
    2282           0 :                 if (dce_call->fault_code != 0) {
    2283           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_AddMonitor\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2284             :                 }
    2285           0 :                 break;
    2286             :         }
    2287           0 :         case 47: { /* spoolss_DeleteMonitor */
    2288           0 :                 struct spoolss_DeleteMonitor *r2 = (struct spoolss_DeleteMonitor *)r;
    2289           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2290           0 :                         DEBUG(5,("function spoolss_DeleteMonitor replied async\n"));
    2291             :                 }
    2292           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2293           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeleteMonitor, NDR_OUT | NDR_SET_VALUES, r2);
    2294             :                 }
    2295           0 :                 if (dce_call->fault_code != 0) {
    2296           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_DeleteMonitor\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2297             :                 }
    2298           0 :                 break;
    2299             :         }
    2300           0 :         case 48: { /* spoolss_DeletePrintProcessor */
    2301           0 :                 struct spoolss_DeletePrintProcessor *r2 = (struct spoolss_DeletePrintProcessor *)r;
    2302           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2303           0 :                         DEBUG(5,("function spoolss_DeletePrintProcessor replied async\n"));
    2304             :                 }
    2305           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2306           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrintProcessor, NDR_OUT | NDR_SET_VALUES, r2);
    2307             :                 }
    2308           0 :                 if (dce_call->fault_code != 0) {
    2309           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_DeletePrintProcessor\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2310             :                 }
    2311           0 :                 break;
    2312             :         }
    2313           0 :         case 49: { /* spoolss_AddPrintProvidor */
    2314           0 :                 struct spoolss_AddPrintProvidor *r2 = (struct spoolss_AddPrintProvidor *)r;
    2315           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2316           0 :                         DEBUG(5,("function spoolss_AddPrintProvidor replied async\n"));
    2317             :                 }
    2318           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2319           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPrintProvidor, NDR_OUT | NDR_SET_VALUES, r2);
    2320             :                 }
    2321           0 :                 if (dce_call->fault_code != 0) {
    2322           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_AddPrintProvidor\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2323             :                 }
    2324           0 :                 break;
    2325             :         }
    2326           0 :         case 50: { /* spoolss_DeletePrintProvidor */
    2327           0 :                 struct spoolss_DeletePrintProvidor *r2 = (struct spoolss_DeletePrintProvidor *)r;
    2328           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2329           0 :                         DEBUG(5,("function spoolss_DeletePrintProvidor replied async\n"));
    2330             :                 }
    2331           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2332           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrintProvidor, NDR_OUT | NDR_SET_VALUES, r2);
    2333             :                 }
    2334           0 :                 if (dce_call->fault_code != 0) {
    2335           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_DeletePrintProvidor\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2336             :                 }
    2337           0 :                 break;
    2338             :         }
    2339          44 :         case 51: { /* spoolss_EnumPrintProcessorDataTypes */
    2340          44 :                 struct spoolss_EnumPrintProcessorDataTypes *r2 = (struct spoolss_EnumPrintProcessorDataTypes *)r;
    2341          44 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2342           0 :                         DEBUG(5,("function spoolss_EnumPrintProcessorDataTypes replied async\n"));
    2343             :                 }
    2344          44 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2345           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPrintProcessorDataTypes, NDR_OUT | NDR_SET_VALUES, r2);
    2346             :                 }
    2347          44 :                 if (dce_call->fault_code != 0) {
    2348           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_EnumPrintProcessorDataTypes\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2349             :                 }
    2350          44 :                 break;
    2351             :         }
    2352           0 :         case 52: { /* spoolss_ResetPrinter */
    2353           0 :                 struct spoolss_ResetPrinter *r2 = (struct spoolss_ResetPrinter *)r;
    2354           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2355           0 :                         DEBUG(5,("function spoolss_ResetPrinter replied async\n"));
    2356             :                 }
    2357           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2358           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_ResetPrinter, NDR_OUT | NDR_SET_VALUES, r2);
    2359             :                 }
    2360           0 :                 if (dce_call->fault_code != 0) {
    2361           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_ResetPrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2362             :                 }
    2363           0 :                 break;
    2364             :         }
    2365           4 :         case 53: { /* spoolss_GetPrinterDriver2 */
    2366           4 :                 struct spoolss_GetPrinterDriver2 *r2 = (struct spoolss_GetPrinterDriver2 *)r;
    2367           4 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2368           0 :                         DEBUG(5,("function spoolss_GetPrinterDriver2 replied async\n"));
    2369             :                 }
    2370           4 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2371           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetPrinterDriver2, NDR_OUT | NDR_SET_VALUES, r2);
    2372             :                 }
    2373           4 :                 if (dce_call->fault_code != 0) {
    2374           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_GetPrinterDriver2\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2375             :                 }
    2376           4 :                 break;
    2377             :         }
    2378           0 :         case 54: { /* spoolss_FindFirstPrinterChangeNotification */
    2379           0 :                 struct spoolss_FindFirstPrinterChangeNotification *r2 = (struct spoolss_FindFirstPrinterChangeNotification *)r;
    2380           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2381           0 :                         DEBUG(5,("function spoolss_FindFirstPrinterChangeNotification replied async\n"));
    2382             :                 }
    2383           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2384           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_FindFirstPrinterChangeNotification, NDR_OUT | NDR_SET_VALUES, r2);
    2385             :                 }
    2386           0 :                 if (dce_call->fault_code != 0) {
    2387           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_FindFirstPrinterChangeNotification\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2388             :                 }
    2389           0 :                 break;
    2390             :         }
    2391           0 :         case 55: { /* spoolss_FindNextPrinterChangeNotification */
    2392           0 :                 struct spoolss_FindNextPrinterChangeNotification *r2 = (struct spoolss_FindNextPrinterChangeNotification *)r;
    2393           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2394           0 :                         DEBUG(5,("function spoolss_FindNextPrinterChangeNotification replied async\n"));
    2395             :                 }
    2396           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2397           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_FindNextPrinterChangeNotification, NDR_OUT | NDR_SET_VALUES, r2);
    2398             :                 }
    2399           0 :                 if (dce_call->fault_code != 0) {
    2400           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_FindNextPrinterChangeNotification\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2401             :                 }
    2402           0 :                 break;
    2403             :         }
    2404           0 :         case 56: { /* spoolss_FindClosePrinterNotify */
    2405           0 :                 struct spoolss_FindClosePrinterNotify *r2 = (struct spoolss_FindClosePrinterNotify *)r;
    2406           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2407           0 :                         DEBUG(5,("function spoolss_FindClosePrinterNotify replied async\n"));
    2408             :                 }
    2409           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2410           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_FindClosePrinterNotify, NDR_OUT | NDR_SET_VALUES, r2);
    2411             :                 }
    2412           0 :                 if (dce_call->fault_code != 0) {
    2413           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_FindClosePrinterNotify\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2414             :                 }
    2415           0 :                 break;
    2416             :         }
    2417           0 :         case 57: { /* spoolss_RouterFindFirstPrinterChangeNotificationOld */
    2418           0 :                 struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r2 = (struct spoolss_RouterFindFirstPrinterChangeNotificationOld *)r;
    2419           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2420           0 :                         DEBUG(5,("function spoolss_RouterFindFirstPrinterChangeNotificationOld replied async\n"));
    2421             :                 }
    2422           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2423           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_RouterFindFirstPrinterChangeNotificationOld, NDR_OUT | NDR_SET_VALUES, r2);
    2424             :                 }
    2425           0 :                 if (dce_call->fault_code != 0) {
    2426           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_RouterFindFirstPrinterChangeNotificationOld\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2427             :                 }
    2428           0 :                 break;
    2429             :         }
    2430           0 :         case 58: { /* spoolss_ReplyOpenPrinter */
    2431           0 :                 struct spoolss_ReplyOpenPrinter *r2 = (struct spoolss_ReplyOpenPrinter *)r;
    2432           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2433           0 :                         DEBUG(5,("function spoolss_ReplyOpenPrinter replied async\n"));
    2434             :                 }
    2435           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2436           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_ReplyOpenPrinter, NDR_OUT | NDR_SET_VALUES, r2);
    2437             :                 }
    2438           0 :                 if (dce_call->fault_code != 0) {
    2439           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_ReplyOpenPrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2440             :                 }
    2441           0 :                 break;
    2442             :         }
    2443           0 :         case 59: { /* spoolss_RouterReplyPrinter */
    2444           0 :                 struct spoolss_RouterReplyPrinter *r2 = (struct spoolss_RouterReplyPrinter *)r;
    2445           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2446           0 :                         DEBUG(5,("function spoolss_RouterReplyPrinter replied async\n"));
    2447             :                 }
    2448           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2449           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_RouterReplyPrinter, NDR_OUT | NDR_SET_VALUES, r2);
    2450             :                 }
    2451           0 :                 if (dce_call->fault_code != 0) {
    2452           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_RouterReplyPrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2453             :                 }
    2454           0 :                 break;
    2455             :         }
    2456           0 :         case 60: { /* spoolss_ReplyClosePrinter */
    2457           0 :                 struct spoolss_ReplyClosePrinter *r2 = (struct spoolss_ReplyClosePrinter *)r;
    2458           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2459           0 :                         DEBUG(5,("function spoolss_ReplyClosePrinter replied async\n"));
    2460             :                 }
    2461           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2462           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_ReplyClosePrinter, NDR_OUT | NDR_SET_VALUES, r2);
    2463             :                 }
    2464           0 :                 if (dce_call->fault_code != 0) {
    2465           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_ReplyClosePrinter\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2466             :                 }
    2467           0 :                 break;
    2468             :         }
    2469           0 :         case 61: { /* spoolss_AddPortEx */
    2470           0 :                 struct spoolss_AddPortEx *r2 = (struct spoolss_AddPortEx *)r;
    2471           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2472           0 :                         DEBUG(5,("function spoolss_AddPortEx replied async\n"));
    2473             :                 }
    2474           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2475           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPortEx, NDR_OUT | NDR_SET_VALUES, r2);
    2476             :                 }
    2477           0 :                 if (dce_call->fault_code != 0) {
    2478           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_AddPortEx\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2479             :                 }
    2480           0 :                 break;
    2481             :         }
    2482           0 :         case 62: { /* spoolss_RouterFindFirstPrinterChangeNotification */
    2483           0 :                 struct spoolss_RouterFindFirstPrinterChangeNotification *r2 = (struct spoolss_RouterFindFirstPrinterChangeNotification *)r;
    2484           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2485           0 :                         DEBUG(5,("function spoolss_RouterFindFirstPrinterChangeNotification replied async\n"));
    2486             :                 }
    2487           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2488           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_RouterFindFirstPrinterChangeNotification, NDR_OUT | NDR_SET_VALUES, r2);
    2489             :                 }
    2490           0 :                 if (dce_call->fault_code != 0) {
    2491           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_RouterFindFirstPrinterChangeNotification\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2492             :                 }
    2493           0 :                 break;
    2494             :         }
    2495           0 :         case 63: { /* spoolss_SpoolerInit */
    2496           0 :                 struct spoolss_SpoolerInit *r2 = (struct spoolss_SpoolerInit *)r;
    2497           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2498           0 :                         DEBUG(5,("function spoolss_SpoolerInit replied async\n"));
    2499             :                 }
    2500           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2501           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SpoolerInit, NDR_OUT | NDR_SET_VALUES, r2);
    2502             :                 }
    2503           0 :                 if (dce_call->fault_code != 0) {
    2504           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_SpoolerInit\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2505             :                 }
    2506           0 :                 break;
    2507             :         }
    2508           0 :         case 64: { /* spoolss_ResetPrinterEx */
    2509           0 :                 struct spoolss_ResetPrinterEx *r2 = (struct spoolss_ResetPrinterEx *)r;
    2510           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2511           0 :                         DEBUG(5,("function spoolss_ResetPrinterEx replied async\n"));
    2512             :                 }
    2513           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2514           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_ResetPrinterEx, NDR_OUT | NDR_SET_VALUES, r2);
    2515             :                 }
    2516           0 :                 if (dce_call->fault_code != 0) {
    2517           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_ResetPrinterEx\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2518             :                 }
    2519           0 :                 break;
    2520             :         }
    2521           2 :         case 65: { /* spoolss_RemoteFindFirstPrinterChangeNotifyEx */
    2522           2 :                 struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r2 = (struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *)r;
    2523           2 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2524           0 :                         DEBUG(5,("function spoolss_RemoteFindFirstPrinterChangeNotifyEx replied async\n"));
    2525             :                 }
    2526           2 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2527           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_RemoteFindFirstPrinterChangeNotifyEx, NDR_OUT | NDR_SET_VALUES, r2);
    2528             :                 }
    2529           2 :                 if (dce_call->fault_code != 0) {
    2530           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_RemoteFindFirstPrinterChangeNotifyEx\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2531             :                 }
    2532           2 :                 break;
    2533             :         }
    2534           0 :         case 66: { /* spoolss_RouterReplyPrinterEx */
    2535           0 :                 struct spoolss_RouterReplyPrinterEx *r2 = (struct spoolss_RouterReplyPrinterEx *)r;
    2536           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2537           0 :                         DEBUG(5,("function spoolss_RouterReplyPrinterEx replied async\n"));
    2538             :                 }
    2539           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2540           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_RouterReplyPrinterEx, NDR_OUT | NDR_SET_VALUES, r2);
    2541             :                 }
    2542           0 :                 if (dce_call->fault_code != 0) {
    2543           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_RouterReplyPrinterEx\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2544             :                 }
    2545           0 :                 break;
    2546             :         }
    2547           4 :         case 67: { /* spoolss_RouterRefreshPrinterChangeNotify */
    2548           4 :                 struct spoolss_RouterRefreshPrinterChangeNotify *r2 = (struct spoolss_RouterRefreshPrinterChangeNotify *)r;
    2549           4 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2550           0 :                         DEBUG(5,("function spoolss_RouterRefreshPrinterChangeNotify replied async\n"));
    2551             :                 }
    2552           4 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2553           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_RouterRefreshPrinterChangeNotify, NDR_OUT | NDR_SET_VALUES, r2);
    2554             :                 }
    2555           4 :                 if (dce_call->fault_code != 0) {
    2556           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_RouterRefreshPrinterChangeNotify\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2557             :                 }
    2558           4 :                 break;
    2559             :         }
    2560           0 :         case 68: { /* spoolss_44 */
    2561           0 :                 struct spoolss_44 *r2 = (struct spoolss_44 *)r;
    2562           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2563           0 :                         DEBUG(5,("function spoolss_44 replied async\n"));
    2564             :                 }
    2565           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2566           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_44, NDR_OUT | NDR_SET_VALUES, r2);
    2567             :                 }
    2568           0 :                 if (dce_call->fault_code != 0) {
    2569           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_44\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2570             :                 }
    2571           0 :                 break;
    2572             :         }
    2573         794 :         case 69: { /* spoolss_OpenPrinterEx */
    2574         794 :                 struct spoolss_OpenPrinterEx *r2 = (struct spoolss_OpenPrinterEx *)r;
    2575         794 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2576           0 :                         DEBUG(5,("function spoolss_OpenPrinterEx replied async\n"));
    2577             :                 }
    2578         794 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2579           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_OpenPrinterEx, NDR_OUT | NDR_SET_VALUES, r2);
    2580             :                 }
    2581         794 :                 if (dce_call->fault_code != 0) {
    2582           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_OpenPrinterEx\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2583             :                 }
    2584         794 :                 break;
    2585             :         }
    2586          24 :         case 70: { /* spoolss_AddPrinterEx */
    2587          24 :                 struct spoolss_AddPrinterEx *r2 = (struct spoolss_AddPrinterEx *)r;
    2588          24 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2589           0 :                         DEBUG(5,("function spoolss_AddPrinterEx replied async\n"));
    2590             :                 }
    2591          24 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2592           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPrinterEx, NDR_OUT | NDR_SET_VALUES, r2);
    2593             :                 }
    2594          24 :                 if (dce_call->fault_code != 0) {
    2595           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_AddPrinterEx\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2596             :                 }
    2597          24 :                 break;
    2598             :         }
    2599           0 :         case 71: { /* spoolss_SetPort */
    2600           0 :                 struct spoolss_SetPort *r2 = (struct spoolss_SetPort *)r;
    2601           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2602           0 :                         DEBUG(5,("function spoolss_SetPort replied async\n"));
    2603             :                 }
    2604           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2605           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SetPort, NDR_OUT | NDR_SET_VALUES, r2);
    2606             :                 }
    2607           0 :                 if (dce_call->fault_code != 0) {
    2608           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_SetPort\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2609             :                 }
    2610           0 :                 break;
    2611             :         }
    2612         152 :         case 72: { /* spoolss_EnumPrinterData */
    2613         152 :                 struct spoolss_EnumPrinterData *r2 = (struct spoolss_EnumPrinterData *)r;
    2614         152 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2615           0 :                         DEBUG(5,("function spoolss_EnumPrinterData replied async\n"));
    2616             :                 }
    2617         152 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2618           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPrinterData, NDR_OUT | NDR_SET_VALUES, r2);
    2619             :                 }
    2620         152 :                 if (dce_call->fault_code != 0) {
    2621           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_EnumPrinterData\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2622             :                 }
    2623         152 :                 break;
    2624             :         }
    2625         168 :         case 73: { /* spoolss_DeletePrinterData */
    2626         168 :                 struct spoolss_DeletePrinterData *r2 = (struct spoolss_DeletePrinterData *)r;
    2627         168 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2628           0 :                         DEBUG(5,("function spoolss_DeletePrinterData replied async\n"));
    2629             :                 }
    2630         168 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2631           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrinterData, NDR_OUT | NDR_SET_VALUES, r2);
    2632             :                 }
    2633         168 :                 if (dce_call->fault_code != 0) {
    2634           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_DeletePrinterData\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2635             :                 }
    2636         168 :                 break;
    2637             :         }
    2638           0 :         case 74: { /* spoolss_4a */
    2639           0 :                 struct spoolss_4a *r2 = (struct spoolss_4a *)r;
    2640           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2641           0 :                         DEBUG(5,("function spoolss_4a replied async\n"));
    2642             :                 }
    2643           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2644           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_4a, NDR_OUT | NDR_SET_VALUES, r2);
    2645             :                 }
    2646           0 :                 if (dce_call->fault_code != 0) {
    2647           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_4a\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2648             :                 }
    2649           0 :                 break;
    2650             :         }
    2651           0 :         case 75: { /* spoolss_4b */
    2652           0 :                 struct spoolss_4b *r2 = (struct spoolss_4b *)r;
    2653           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2654           0 :                         DEBUG(5,("function spoolss_4b replied async\n"));
    2655             :                 }
    2656           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2657           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_4b, NDR_OUT | NDR_SET_VALUES, r2);
    2658             :                 }
    2659           0 :                 if (dce_call->fault_code != 0) {
    2660           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_4b\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2661             :                 }
    2662           0 :                 break;
    2663             :         }
    2664           0 :         case 76: { /* spoolss_4c */
    2665           0 :                 struct spoolss_4c *r2 = (struct spoolss_4c *)r;
    2666           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2667           0 :                         DEBUG(5,("function spoolss_4c replied async\n"));
    2668             :                 }
    2669           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2670           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_4c, NDR_OUT | NDR_SET_VALUES, r2);
    2671             :                 }
    2672           0 :                 if (dce_call->fault_code != 0) {
    2673           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_4c\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2674             :                 }
    2675           0 :                 break;
    2676             :         }
    2677        1200 :         case 77: { /* spoolss_SetPrinterDataEx */
    2678        1200 :                 struct spoolss_SetPrinterDataEx *r2 = (struct spoolss_SetPrinterDataEx *)r;
    2679        1200 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2680           0 :                         DEBUG(5,("function spoolss_SetPrinterDataEx replied async\n"));
    2681             :                 }
    2682        1200 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2683           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SetPrinterDataEx, NDR_OUT | NDR_SET_VALUES, r2);
    2684             :                 }
    2685        1200 :                 if (dce_call->fault_code != 0) {
    2686           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_SetPrinterDataEx\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2687             :                 }
    2688        1200 :                 break;
    2689             :         }
    2690        2700 :         case 78: { /* spoolss_GetPrinterDataEx */
    2691        2700 :                 struct spoolss_GetPrinterDataEx *r2 = (struct spoolss_GetPrinterDataEx *)r;
    2692        2700 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2693           0 :                         DEBUG(5,("function spoolss_GetPrinterDataEx replied async\n"));
    2694             :                 }
    2695        2700 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2696           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetPrinterDataEx, NDR_OUT | NDR_SET_VALUES, r2);
    2697             :                 }
    2698        2700 :                 if (dce_call->fault_code != 0) {
    2699           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_GetPrinterDataEx\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2700             :                 }
    2701        2700 :                 break;
    2702             :         }
    2703        2596 :         case 79: { /* spoolss_EnumPrinterDataEx */
    2704        2596 :                 struct spoolss_EnumPrinterDataEx *r2 = (struct spoolss_EnumPrinterDataEx *)r;
    2705        2596 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2706           0 :                         DEBUG(5,("function spoolss_EnumPrinterDataEx replied async\n"));
    2707             :                 }
    2708        2596 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2709           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPrinterDataEx, NDR_OUT | NDR_SET_VALUES, r2);
    2710             :                 }
    2711        2596 :                 if (dce_call->fault_code != 0) {
    2712           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_EnumPrinterDataEx\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2713             :                 }
    2714        2596 :                 break;
    2715             :         }
    2716        3384 :         case 80: { /* spoolss_EnumPrinterKey */
    2717        3384 :                 struct spoolss_EnumPrinterKey *r2 = (struct spoolss_EnumPrinterKey *)r;
    2718        3384 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2719           0 :                         DEBUG(5,("function spoolss_EnumPrinterKey replied async\n"));
    2720             :                 }
    2721        3384 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2722           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPrinterKey, NDR_OUT | NDR_SET_VALUES, r2);
    2723             :                 }
    2724        3384 :                 if (dce_call->fault_code != 0) {
    2725           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_EnumPrinterKey\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2726             :                 }
    2727        3384 :                 break;
    2728             :         }
    2729        1200 :         case 81: { /* spoolss_DeletePrinterDataEx */
    2730        1200 :                 struct spoolss_DeletePrinterDataEx *r2 = (struct spoolss_DeletePrinterDataEx *)r;
    2731        1200 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2732           0 :                         DEBUG(5,("function spoolss_DeletePrinterDataEx replied async\n"));
    2733             :                 }
    2734        1200 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2735           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrinterDataEx, NDR_OUT | NDR_SET_VALUES, r2);
    2736             :                 }
    2737        1200 :                 if (dce_call->fault_code != 0) {
    2738           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_DeletePrinterDataEx\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2739             :                 }
    2740        1200 :                 break;
    2741             :         }
    2742         216 :         case 82: { /* spoolss_DeletePrinterKey */
    2743         216 :                 struct spoolss_DeletePrinterKey *r2 = (struct spoolss_DeletePrinterKey *)r;
    2744         216 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2745           0 :                         DEBUG(5,("function spoolss_DeletePrinterKey replied async\n"));
    2746             :                 }
    2747         216 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2748           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrinterKey, NDR_OUT | NDR_SET_VALUES, r2);
    2749             :                 }
    2750         216 :                 if (dce_call->fault_code != 0) {
    2751           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_DeletePrinterKey\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2752             :                 }
    2753         216 :                 break;
    2754             :         }
    2755           0 :         case 83: { /* spoolss_53 */
    2756           0 :                 struct spoolss_53 *r2 = (struct spoolss_53 *)r;
    2757           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2758           0 :                         DEBUG(5,("function spoolss_53 replied async\n"));
    2759             :                 }
    2760           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2761           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_53, NDR_OUT | NDR_SET_VALUES, r2);
    2762             :                 }
    2763           0 :                 if (dce_call->fault_code != 0) {
    2764           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_53\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2765             :                 }
    2766           0 :                 break;
    2767             :         }
    2768           0 :         case 84: { /* spoolss_DeletePrinterDriverEx */
    2769           0 :                 struct spoolss_DeletePrinterDriverEx *r2 = (struct spoolss_DeletePrinterDriverEx *)r;
    2770           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2771           0 :                         DEBUG(5,("function spoolss_DeletePrinterDriverEx replied async\n"));
    2772             :                 }
    2773           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2774           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePrinterDriverEx, NDR_OUT | NDR_SET_VALUES, r2);
    2775             :                 }
    2776           0 :                 if (dce_call->fault_code != 0) {
    2777           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_DeletePrinterDriverEx\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2778             :                 }
    2779           0 :                 break;
    2780             :         }
    2781           0 :         case 85: { /* spoolss_AddPerMachineConnection */
    2782           0 :                 struct spoolss_AddPerMachineConnection *r2 = (struct spoolss_AddPerMachineConnection *)r;
    2783           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2784           0 :                         DEBUG(5,("function spoolss_AddPerMachineConnection replied async\n"));
    2785             :                 }
    2786           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2787           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPerMachineConnection, NDR_OUT | NDR_SET_VALUES, r2);
    2788             :                 }
    2789           0 :                 if (dce_call->fault_code != 0) {
    2790           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_AddPerMachineConnection\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2791             :                 }
    2792           0 :                 break;
    2793             :         }
    2794           0 :         case 86: { /* spoolss_DeletePerMachineConnection */
    2795           0 :                 struct spoolss_DeletePerMachineConnection *r2 = (struct spoolss_DeletePerMachineConnection *)r;
    2796           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2797           0 :                         DEBUG(5,("function spoolss_DeletePerMachineConnection replied async\n"));
    2798             :                 }
    2799           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2800           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeletePerMachineConnection, NDR_OUT | NDR_SET_VALUES, r2);
    2801             :                 }
    2802           0 :                 if (dce_call->fault_code != 0) {
    2803           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_DeletePerMachineConnection\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2804             :                 }
    2805           0 :                 break;
    2806             :         }
    2807           0 :         case 87: { /* spoolss_EnumPerMachineConnections */
    2808           0 :                 struct spoolss_EnumPerMachineConnections *r2 = (struct spoolss_EnumPerMachineConnections *)r;
    2809           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2810           0 :                         DEBUG(5,("function spoolss_EnumPerMachineConnections replied async\n"));
    2811             :                 }
    2812           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2813           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumPerMachineConnections, NDR_OUT | NDR_SET_VALUES, r2);
    2814             :                 }
    2815           0 :                 if (dce_call->fault_code != 0) {
    2816           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_EnumPerMachineConnections\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2817             :                 }
    2818           0 :                 break;
    2819             :         }
    2820           0 :         case 88: { /* spoolss_XcvData */
    2821           0 :                 struct spoolss_XcvData *r2 = (struct spoolss_XcvData *)r;
    2822           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2823           0 :                         DEBUG(5,("function spoolss_XcvData replied async\n"));
    2824             :                 }
    2825           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2826           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_XcvData, NDR_OUT | NDR_SET_VALUES, r2);
    2827             :                 }
    2828           0 :                 if (dce_call->fault_code != 0) {
    2829           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_XcvData\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2830             :                 }
    2831           0 :                 break;
    2832             :         }
    2833           0 :         case 89: { /* spoolss_AddPrinterDriverEx */
    2834           0 :                 struct spoolss_AddPrinterDriverEx *r2 = (struct spoolss_AddPrinterDriverEx *)r;
    2835           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2836           0 :                         DEBUG(5,("function spoolss_AddPrinterDriverEx replied async\n"));
    2837             :                 }
    2838           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2839           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_AddPrinterDriverEx, NDR_OUT | NDR_SET_VALUES, r2);
    2840             :                 }
    2841           0 :                 if (dce_call->fault_code != 0) {
    2842           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_AddPrinterDriverEx\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2843             :                 }
    2844           0 :                 break;
    2845             :         }
    2846           0 :         case 90: { /* spoolss_5a */
    2847           0 :                 struct spoolss_5a *r2 = (struct spoolss_5a *)r;
    2848           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2849           0 :                         DEBUG(5,("function spoolss_5a replied async\n"));
    2850             :                 }
    2851           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2852           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_5a, NDR_OUT | NDR_SET_VALUES, r2);
    2853             :                 }
    2854           0 :                 if (dce_call->fault_code != 0) {
    2855           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_5a\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2856             :                 }
    2857           0 :                 break;
    2858             :         }
    2859           0 :         case 91: { /* spoolss_5b */
    2860           0 :                 struct spoolss_5b *r2 = (struct spoolss_5b *)r;
    2861           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2862           0 :                         DEBUG(5,("function spoolss_5b replied async\n"));
    2863             :                 }
    2864           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2865           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_5b, NDR_OUT | NDR_SET_VALUES, r2);
    2866             :                 }
    2867           0 :                 if (dce_call->fault_code != 0) {
    2868           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_5b\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2869             :                 }
    2870           0 :                 break;
    2871             :         }
    2872           0 :         case 92: { /* spoolss_5c */
    2873           0 :                 struct spoolss_5c *r2 = (struct spoolss_5c *)r;
    2874           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2875           0 :                         DEBUG(5,("function spoolss_5c replied async\n"));
    2876             :                 }
    2877           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2878           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_5c, NDR_OUT | NDR_SET_VALUES, r2);
    2879             :                 }
    2880           0 :                 if (dce_call->fault_code != 0) {
    2881           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_5c\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2882             :                 }
    2883           0 :                 break;
    2884             :         }
    2885           0 :         case 93: { /* spoolss_5d */
    2886           0 :                 struct spoolss_5d *r2 = (struct spoolss_5d *)r;
    2887           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2888           0 :                         DEBUG(5,("function spoolss_5d replied async\n"));
    2889             :                 }
    2890           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2891           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_5d, NDR_OUT | NDR_SET_VALUES, r2);
    2892             :                 }
    2893           0 :                 if (dce_call->fault_code != 0) {
    2894           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_5d\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2895             :                 }
    2896           0 :                 break;
    2897             :         }
    2898           0 :         case 94: { /* spoolss_5e */
    2899           0 :                 struct spoolss_5e *r2 = (struct spoolss_5e *)r;
    2900           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2901           0 :                         DEBUG(5,("function spoolss_5e replied async\n"));
    2902             :                 }
    2903           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2904           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_5e, NDR_OUT | NDR_SET_VALUES, r2);
    2905             :                 }
    2906           0 :                 if (dce_call->fault_code != 0) {
    2907           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_5e\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2908             :                 }
    2909           0 :                 break;
    2910             :         }
    2911           0 :         case 95: { /* spoolss_5f */
    2912           0 :                 struct spoolss_5f *r2 = (struct spoolss_5f *)r;
    2913           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2914           0 :                         DEBUG(5,("function spoolss_5f replied async\n"));
    2915             :                 }
    2916           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2917           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_5f, NDR_OUT | NDR_SET_VALUES, r2);
    2918             :                 }
    2919           0 :                 if (dce_call->fault_code != 0) {
    2920           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_5f\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2921             :                 }
    2922           0 :                 break;
    2923             :         }
    2924           0 :         case 96: { /* spoolss_60 */
    2925           0 :                 struct spoolss_60 *r2 = (struct spoolss_60 *)r;
    2926           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2927           0 :                         DEBUG(5,("function spoolss_60 replied async\n"));
    2928             :                 }
    2929           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2930           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_60, NDR_OUT | NDR_SET_VALUES, r2);
    2931             :                 }
    2932           0 :                 if (dce_call->fault_code != 0) {
    2933           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_60\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2934             :                 }
    2935           0 :                 break;
    2936             :         }
    2937           0 :         case 97: { /* spoolss_SendRecvBidiData */
    2938           0 :                 struct spoolss_SendRecvBidiData *r2 = (struct spoolss_SendRecvBidiData *)r;
    2939           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2940           0 :                         DEBUG(5,("function spoolss_SendRecvBidiData replied async\n"));
    2941             :                 }
    2942           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2943           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SendRecvBidiData, NDR_OUT | NDR_SET_VALUES, r2);
    2944             :                 }
    2945           0 :                 if (dce_call->fault_code != 0) {
    2946           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_SendRecvBidiData\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2947             :                 }
    2948           0 :                 break;
    2949             :         }
    2950           0 :         case 98: { /* spoolss_62 */
    2951           0 :                 struct spoolss_62 *r2 = (struct spoolss_62 *)r;
    2952           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2953           0 :                         DEBUG(5,("function spoolss_62 replied async\n"));
    2954             :                 }
    2955           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2956           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_62, NDR_OUT | NDR_SET_VALUES, r2);
    2957             :                 }
    2958           0 :                 if (dce_call->fault_code != 0) {
    2959           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_62\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2960             :                 }
    2961           0 :                 break;
    2962             :         }
    2963           0 :         case 99: { /* spoolss_63 */
    2964           0 :                 struct spoolss_63 *r2 = (struct spoolss_63 *)r;
    2965           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2966           0 :                         DEBUG(5,("function spoolss_63 replied async\n"));
    2967             :                 }
    2968           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2969           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_63, NDR_OUT | NDR_SET_VALUES, r2);
    2970             :                 }
    2971           0 :                 if (dce_call->fault_code != 0) {
    2972           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_63\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2973             :                 }
    2974           0 :                 break;
    2975             :         }
    2976           0 :         case 100: { /* spoolss_64 */
    2977           0 :                 struct spoolss_64 *r2 = (struct spoolss_64 *)r;
    2978           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2979           0 :                         DEBUG(5,("function spoolss_64 replied async\n"));
    2980             :                 }
    2981           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2982           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_64, NDR_OUT | NDR_SET_VALUES, r2);
    2983             :                 }
    2984           0 :                 if (dce_call->fault_code != 0) {
    2985           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_64\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2986             :                 }
    2987           0 :                 break;
    2988             :         }
    2989           0 :         case 101: { /* spoolss_65 */
    2990           0 :                 struct spoolss_65 *r2 = (struct spoolss_65 *)r;
    2991           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    2992           0 :                         DEBUG(5,("function spoolss_65 replied async\n"));
    2993             :                 }
    2994           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    2995           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_65, NDR_OUT | NDR_SET_VALUES, r2);
    2996             :                 }
    2997           0 :                 if (dce_call->fault_code != 0) {
    2998           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_65\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    2999             :                 }
    3000           0 :                 break;
    3001             :         }
    3002           0 :         case 102: { /* spoolss_GetCorePrinterDrivers */
    3003           0 :                 struct spoolss_GetCorePrinterDrivers *r2 = (struct spoolss_GetCorePrinterDrivers *)r;
    3004           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    3005           0 :                         DEBUG(5,("function spoolss_GetCorePrinterDrivers replied async\n"));
    3006             :                 }
    3007           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    3008           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetCorePrinterDrivers, NDR_OUT | NDR_SET_VALUES, r2);
    3009             :                 }
    3010           0 :                 if (dce_call->fault_code != 0) {
    3011           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_GetCorePrinterDrivers\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    3012             :                 }
    3013           0 :                 break;
    3014             :         }
    3015           0 :         case 103: { /* spoolss_67 */
    3016           0 :                 struct spoolss_67 *r2 = (struct spoolss_67 *)r;
    3017           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    3018           0 :                         DEBUG(5,("function spoolss_67 replied async\n"));
    3019             :                 }
    3020           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    3021           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_67, NDR_OUT | NDR_SET_VALUES, r2);
    3022             :                 }
    3023           0 :                 if (dce_call->fault_code != 0) {
    3024           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_67\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    3025             :                 }
    3026           0 :                 break;
    3027             :         }
    3028           0 :         case 104: { /* spoolss_GetPrinterDriverPackagePath */
    3029           0 :                 struct spoolss_GetPrinterDriverPackagePath *r2 = (struct spoolss_GetPrinterDriverPackagePath *)r;
    3030           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    3031           0 :                         DEBUG(5,("function spoolss_GetPrinterDriverPackagePath replied async\n"));
    3032             :                 }
    3033           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    3034           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetPrinterDriverPackagePath, NDR_OUT | NDR_SET_VALUES, r2);
    3035             :                 }
    3036           0 :                 if (dce_call->fault_code != 0) {
    3037           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_GetPrinterDriverPackagePath\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    3038             :                 }
    3039           0 :                 break;
    3040             :         }
    3041           0 :         case 105: { /* spoolss_69 */
    3042           0 :                 struct spoolss_69 *r2 = (struct spoolss_69 *)r;
    3043           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    3044           0 :                         DEBUG(5,("function spoolss_69 replied async\n"));
    3045             :                 }
    3046           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    3047           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_69, NDR_OUT | NDR_SET_VALUES, r2);
    3048             :                 }
    3049           0 :                 if (dce_call->fault_code != 0) {
    3050           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_69\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    3051             :                 }
    3052           0 :                 break;
    3053             :         }
    3054           0 :         case 106: { /* spoolss_6a */
    3055           0 :                 struct spoolss_6a *r2 = (struct spoolss_6a *)r;
    3056           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    3057           0 :                         DEBUG(5,("function spoolss_6a replied async\n"));
    3058             :                 }
    3059           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    3060           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_6a, NDR_OUT | NDR_SET_VALUES, r2);
    3061             :                 }
    3062           0 :                 if (dce_call->fault_code != 0) {
    3063           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_6a\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    3064             :                 }
    3065           0 :                 break;
    3066             :         }
    3067           0 :         case 107: { /* spoolss_6b */
    3068           0 :                 struct spoolss_6b *r2 = (struct spoolss_6b *)r;
    3069           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    3070           0 :                         DEBUG(5,("function spoolss_6b replied async\n"));
    3071             :                 }
    3072           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    3073           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_6b, NDR_OUT | NDR_SET_VALUES, r2);
    3074             :                 }
    3075           0 :                 if (dce_call->fault_code != 0) {
    3076           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_6b\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    3077             :                 }
    3078           0 :                 break;
    3079             :         }
    3080           0 :         case 108: { /* spoolss_6c */
    3081           0 :                 struct spoolss_6c *r2 = (struct spoolss_6c *)r;
    3082           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    3083           0 :                         DEBUG(5,("function spoolss_6c replied async\n"));
    3084             :                 }
    3085           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    3086           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_6c, NDR_OUT | NDR_SET_VALUES, r2);
    3087             :                 }
    3088           0 :                 if (dce_call->fault_code != 0) {
    3089           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_6c\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    3090             :                 }
    3091           0 :                 break;
    3092             :         }
    3093           0 :         case 109: { /* spoolss_6d */
    3094           0 :                 struct spoolss_6d *r2 = (struct spoolss_6d *)r;
    3095           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    3096           0 :                         DEBUG(5,("function spoolss_6d replied async\n"));
    3097             :                 }
    3098           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    3099           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_6d, NDR_OUT | NDR_SET_VALUES, r2);
    3100             :                 }
    3101           0 :                 if (dce_call->fault_code != 0) {
    3102           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_6d\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    3103             :                 }
    3104           0 :                 break;
    3105             :         }
    3106           0 :         case 110: { /* spoolss_GetJobNamedPropertyValue */
    3107           0 :                 struct spoolss_GetJobNamedPropertyValue *r2 = (struct spoolss_GetJobNamedPropertyValue *)r;
    3108           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    3109           0 :                         DEBUG(5,("function spoolss_GetJobNamedPropertyValue replied async\n"));
    3110             :                 }
    3111           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    3112           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_GetJobNamedPropertyValue, NDR_OUT | NDR_SET_VALUES, r2);
    3113             :                 }
    3114           0 :                 if (dce_call->fault_code != 0) {
    3115           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_GetJobNamedPropertyValue\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    3116             :                 }
    3117           0 :                 break;
    3118             :         }
    3119           0 :         case 111: { /* spoolss_SetJobNamedProperty */
    3120           0 :                 struct spoolss_SetJobNamedProperty *r2 = (struct spoolss_SetJobNamedProperty *)r;
    3121           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    3122           0 :                         DEBUG(5,("function spoolss_SetJobNamedProperty replied async\n"));
    3123             :                 }
    3124           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    3125           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_SetJobNamedProperty, NDR_OUT | NDR_SET_VALUES, r2);
    3126             :                 }
    3127           0 :                 if (dce_call->fault_code != 0) {
    3128           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_SetJobNamedProperty\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    3129             :                 }
    3130           0 :                 break;
    3131             :         }
    3132           0 :         case 112: { /* spoolss_DeleteJobNamedProperty */
    3133           0 :                 struct spoolss_DeleteJobNamedProperty *r2 = (struct spoolss_DeleteJobNamedProperty *)r;
    3134           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    3135           0 :                         DEBUG(5,("function spoolss_DeleteJobNamedProperty replied async\n"));
    3136             :                 }
    3137           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    3138           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_DeleteJobNamedProperty, NDR_OUT | NDR_SET_VALUES, r2);
    3139             :                 }
    3140           0 :                 if (dce_call->fault_code != 0) {
    3141           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_DeleteJobNamedProperty\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    3142             :                 }
    3143           0 :                 break;
    3144             :         }
    3145           0 :         case 113: { /* spoolss_EnumJobNamedProperties */
    3146           0 :                 struct spoolss_EnumJobNamedProperties *r2 = (struct spoolss_EnumJobNamedProperties *)r;
    3147           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    3148           0 :                         DEBUG(5,("function spoolss_EnumJobNamedProperties replied async\n"));
    3149             :                 }
    3150           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    3151           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_EnumJobNamedProperties, NDR_OUT | NDR_SET_VALUES, r2);
    3152             :                 }
    3153           0 :                 if (dce_call->fault_code != 0) {
    3154           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_EnumJobNamedProperties\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    3155             :                 }
    3156           0 :                 break;
    3157             :         }
    3158           0 :         case 114: { /* spoolss_72 */
    3159           0 :                 struct spoolss_72 *r2 = (struct spoolss_72 *)r;
    3160           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    3161           0 :                         DEBUG(5,("function spoolss_72 replied async\n"));
    3162             :                 }
    3163           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    3164           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_72, NDR_OUT | NDR_SET_VALUES, r2);
    3165             :                 }
    3166           0 :                 if (dce_call->fault_code != 0) {
    3167           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_72\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    3168             :                 }
    3169           0 :                 break;
    3170             :         }
    3171           0 :         case 115: { /* spoolss_73 */
    3172           0 :                 struct spoolss_73 *r2 = (struct spoolss_73 *)r;
    3173           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    3174           0 :                         DEBUG(5,("function spoolss_73 replied async\n"));
    3175             :                 }
    3176           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    3177           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_73, NDR_OUT | NDR_SET_VALUES, r2);
    3178             :                 }
    3179           0 :                 if (dce_call->fault_code != 0) {
    3180           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_73\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    3181             :                 }
    3182           0 :                 break;
    3183             :         }
    3184           0 :         case 116: { /* spoolss_LogJobInfoForBranchOffice */
    3185           0 :                 struct spoolss_LogJobInfoForBranchOffice *r2 = (struct spoolss_LogJobInfoForBranchOffice *)r;
    3186           0 :                 if (dce_call->state_flags & DCESRV_CALL_STATE_FLAG_ASYNC) {
    3187           0 :                         DEBUG(5,("function spoolss_LogJobInfoForBranchOffice replied async\n"));
    3188             :                 }
    3189           0 :                 if (DEBUGLEVEL >= 10 && dce_call->fault_code == 0) {
    3190           0 :                         NDR_PRINT_FUNCTION_DEBUG(spoolss_LogJobInfoForBranchOffice, NDR_OUT | NDR_SET_VALUES, r2);
    3191             :                 }
    3192           0 :                 if (dce_call->fault_code != 0) {
    3193           0 :                         DBG_WARNING("dcerpc_fault %s in spoolss_LogJobInfoForBranchOffice\n", dcerpc_errstr(mem_ctx, dce_call->fault_code));
    3194             :                 }
    3195           0 :                 break;
    3196             :         }
    3197           0 :         default:
    3198           0 :                 dce_call->fault_code = DCERPC_FAULT_OP_RNG_ERROR;
    3199           0 :                 break;
    3200             :         }
    3201             : 
    3202       35234 :         if (dce_call->fault_code != 0) {
    3203           0 :                 return NT_STATUS_NET_WRITE_FAULT;
    3204             :         }
    3205             : 
    3206       35234 :         return NT_STATUS_OK;
    3207             : }
    3208             : 
    3209       35234 : NTSTATUS spoolss__op_ndr_push(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, struct ndr_push *push, const void *r)
    3210             : {
    3211           0 :         enum ndr_err_code ndr_err;
    3212       35234 :         uint16_t opnum = dce_call->pkt.u.request.opnum;
    3213             : 
    3214       35234 :         ndr_err = ndr_table_spoolss.calls[opnum].ndr_push(push, NDR_OUT, r);
    3215       35234 :         if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
    3216           0 :                 dce_call->fault_code = DCERPC_FAULT_NDR;
    3217           0 :                 return NT_STATUS_NET_WRITE_FAULT;
    3218             :         }
    3219             : 
    3220       35234 :         return NT_STATUS_OK;
    3221             : }
    3222             : 
    3223           0 : NTSTATUS spoolss__op_local(struct dcesrv_call_state *dce_call, TALLOC_CTX *mem_ctx, void *r)
    3224             : {
    3225           0 :         return spoolss__op_dispatch_internal(dce_call, mem_ctx, r, S3COMPAT_RPC_DISPATCH_INTERNAL);
    3226             : }
    3227             : 
    3228             : static const struct dcesrv_interface dcesrv_spoolss_interface = {
    3229             :         .name      = "spoolss",
    3230             :         .syntax_id = {{0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},1.0},
    3231             :         .bind      = spoolss__op_bind,
    3232             :         .unbind    = spoolss__op_unbind,
    3233             :         .ndr_pull  = spoolss__op_ndr_pull,
    3234             :         .dispatch  = spoolss__op_dispatch,
    3235             :         .reply     = spoolss__op_reply,
    3236             :         .ndr_push  = spoolss__op_ndr_push,
    3237             :         .local     = spoolss__op_local,
    3238             : #ifdef DCESRV_INTERFACE_SPOOLSS_FLAGS
    3239             :         .flags     = DCESRV_INTERFACE_SPOOLSS_FLAGS
    3240             : #else
    3241             :         .flags     = 0
    3242             : #endif
    3243             : };
    3244             : 
    3245          28 : static NTSTATUS spoolss__op_init_server(struct dcesrv_context *dce_ctx, const struct dcesrv_endpoint_server *ep_server)
    3246             : {
    3247           0 :         uint32_t i;
    3248           0 :         NTSTATUS ret;
    3249             : 
    3250             : #ifdef DCESRV_INTERFACE_SPOOLSS_NCACN_NP_SECONDARY_ENDPOINT
    3251             :         const char *ncacn_np_secondary_endpoint = DCESRV_INTERFACE_SPOOLSS_NCACN_NP_SECONDARY_ENDPOINT;
    3252             : #else
    3253          28 :         const char *ncacn_np_secondary_endpoint = NULL;
    3254             : #endif
    3255             : 
    3256          84 :         for (i=0;i<ndr_table_spoolss.endpoints->count;i++) {
    3257          56 :                 const char *name = ndr_table_spoolss.endpoints->names[i];
    3258             : 
    3259          56 :                 ret = dcesrv_interface_register(dce_ctx, name, ncacn_np_secondary_endpoint, &dcesrv_spoolss_interface, NULL);
    3260          56 :                 if (!NT_STATUS_IS_OK(ret)) {
    3261           0 :                         DBG_ERR("Failed to register endpoint '%s'\n",name);
    3262           0 :                         return ret;
    3263             :                 }
    3264             :         }
    3265             : 
    3266          28 :         return NT_STATUS_OK;
    3267             : }
    3268             : 
    3269          28 : static NTSTATUS spoolss__op_shutdown_server(struct dcesrv_context *dce_ctx, const struct dcesrv_endpoint_server *ep_server)
    3270             : {
    3271          28 :         return NT_STATUS_OK;
    3272             : }
    3273             : 
    3274           0 : static bool spoolss__op_interface_by_uuid(struct dcesrv_interface *iface, const struct GUID *uuid, uint32_t if_version)
    3275             : {
    3276           0 :         if (dcesrv_spoolss_interface.syntax_id.if_version == if_version && GUID_equal(&dcesrv_spoolss_interface.syntax_id.uuid, uuid)) {
    3277           0 :                 memcpy(iface,&dcesrv_spoolss_interface, sizeof(*iface));
    3278           0 :                 return true;
    3279             :         }
    3280             : 
    3281           0 :         return false;
    3282             : }
    3283             : 
    3284           0 : static bool spoolss__op_interface_by_name(struct dcesrv_interface *iface, const char *name)
    3285             : {
    3286           0 :         if (strcmp(dcesrv_spoolss_interface.name, name)==0) {
    3287           0 :                 memcpy(iface, &dcesrv_spoolss_interface, sizeof(*iface));
    3288           0 :                 return true;
    3289             :         }
    3290             : 
    3291           0 :         return false;
    3292             : }
    3293             : 
    3294             : static const struct dcesrv_endpoint_server spoolss_ep_server = {
    3295             :         /* fill in our name */
    3296             :         .name = "spoolss",
    3297             : 
    3298             :         /* Initialization flag */
    3299             :         .initialized = false,
    3300             : 
    3301             :         /* fill in all the operations */
    3302             : #ifdef DCESRV_INTERFACE_SPOOLSS_INIT_SERVER
    3303             :         .init_server = DCESRV_INTERFACE_SPOOLSS_INIT_SERVER,
    3304             : #else
    3305             :         .init_server = spoolss__op_init_server,
    3306             : #endif
    3307             : #ifdef DCESRV_INTERFACE_SPOOLSS_SHUTDOWN_SERVER
    3308             :         .shutdown_server = DCESRV_INTERFACE_SPOOLSS_SHUTDOWN_SERVER,
    3309             : #else
    3310             :         .shutdown_server = spoolss__op_shutdown_server,
    3311             : #endif
    3312             :         .interface_by_uuid = spoolss__op_interface_by_uuid,
    3313             :         .interface_by_name = spoolss__op_interface_by_name
    3314             : };
    3315             : 
    3316          28 : const struct dcesrv_endpoint_server *spoolss_get_ep_server(void)
    3317             : {
    3318          28 :         return &spoolss_ep_server;
    3319             : }

Generated by: LCOV version 1.14